问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VHDL语言设计分频器

发布网友 发布时间:2022-04-24 11:35

我来回答

1个回答

热心网友 时间:2022-05-07 07:53

输入信号10HZ的话 你要分频咯 这个频率无所谓的 主要看你分频的精度

毕业设计这个层次的东西要求不会很高的 那就选25MHz的吧 最好用有源晶振
无源也问题不大 呵呵

我给你个万能分频代码吧 你的分数也太低了吧 0分

VHDL的任意整数且占空比为50%分频代码

说明如下:

1.其中top file 为 division,其中的clk_com是比较的频率,用它来和分频后波形进行比较,便于观察,

2.any_enve为任意偶数分频文件

3.any_odd为任意奇数分频文件

4.是一个用于2进制与8进制的译码器,我用它来显示在数码管上当前到底是多少分频

5.以下代码在开发板上实验过,请大家放心使用,欢迎转载,但请注明出处,另外说明由于用的是quartus7.1编辑的,中间无法加中文注释,请大家慢慢读了;以下是代码:

------the top file of the design division
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity division is
port (input : in std_logic_vector(7 downto 0);
clk : in std_logic;
clk_out : out std_logic;
clk_com : out std_logic;
led1: out std_logic_vector(6 downto 0);
led2: out std_logic_vector(6 downto 0);
led3: out std_logic_vector(6 downto 0));
end entity division;
--------------------------------------------------

architecture freq of division is
component decoder is----decoder
port(bin : in std_logic_vector(2 downto 0);
de : out std_logic_vector(6 downto 0));
end component;
component any_even is----any_even division
generic (data_width : integer := 8 );
port(input1 : in std_logic_vector(data_width-1 downto 0);
clk_in : in std_logic;
clk_out : out std_logic);
end component any_even;
component any_odd is-----any_even division
generic (data_width : integer := 8);
port(input2 : in std_logic_vector(data_width - 1 downto 0);
clk_in : in std_logic;
clk_out : out std_logic);
end component any_odd;
signal temp1,temp2 : std_logic;
begin
u1: decoder port map(bin=>input(2)&input(1)&input(0),de=>led1);
u2: decoder port map(bin=>input(5)&input(4)&input(3),de=>led2);
u3: decoder port map(bin=>'0'&input(7)&input(6),de=>led3);
u4: any_even port map(input,clk,temp1);
U5: any_odd port map(input,clk,temp2);
process(clk,input)
begin
if input(0)= '0' then
clk_out <= temp1;
else clk_out <= temp2;
end if;
end process;
clk_com <= clk;
end architecture freq;

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity any_even is
generic (data_width : integer := 8 );
port(input1 : in std_logic_vector(data_width-1 downto 0);
clk_in : in std_logic;
clk_out : out std_logic);
end entity any_even;

architecture div1 of any_even is
signal clk_outQ : std_logic ;
signal coutQ : std_logic_vector (data_width - 1 downto 0);
begin
-------------------------------------------------
process(clk_in)
begin
if clk_in'event and clk_in = '1' then
if coutQ < (conv_integer(input1) - 1) then
coutQ <= coutQ + 1;
else coutQ <= (others => '0');
end if;
end if;
end process;
---------------------------------------------------
process(coutQ)
begin
if coutQ < (conv_integer(input1))/2 then
clk_outQ <= '0';
else clk_outQ <= '1';
end if;
end process;
clk_out <= clk_outQ;
end architecture div1;

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity any_odd is
generic (data_width : integer := 8);
port(input2 : in std_logic_vector(data_width - 1 downto 0);
clk_in : in std_logic;
clk_out : out std_logic);
end entity any_odd;

architecture div2 of any_odd is
signal cout1,cout2 : std_logic_vector(data_width - 1 downto 0);
signal clk1,clk2 : std_logic;
begin
process(clk_in)------rising edge
begin
if clk_in'event and clk_in='1' then
if cout1 < (conv_integer(input2)-1) then
cout1 <= cout1 + 1;
else cout1 <= (others => '0');
end if;
if cout1 < (conv_integer(input2)-1)/2 then
clk1 <= '1';
else clk1 <= '0';
end if;
end if;
end process;

---------------------------
process(clk_in)------falling edge
begin
if clk_in'event and clk_in='0' then
if cout2 < (conv_integer(input2)-1) then
cout2 <= cout2 + 1;
else cout2 <= (others => '0');
end if;
if cout2 < (conv_integer(input2)-1)/2 then
clk2 <= '1';
else clk2 <= '0';
end if;
end if;
end process;
clk_out <= clk1 or clk2;
end architecture div2;

library ieee;
use ieee.std_logic_1164.all;
entity decoder is
port(bin : in std_logic_vector(2 downto 0);
de : out std_logic_vector(6 downto 0));
end entity;
----------------------------------------------------
architecture deco of decoder is
begin
process(bin)
begin
case bin is
when "000" => de <= "0111111";---0
when "001" => de <= "0000110";---1
when "010" => de <= "1011011";---2
when "011" => de <= "1001111";---3
when "100" => de <= "1100110";---4
when "101" => de <= "1101101";---5
when "110" => de <= "1111101";---6
when others => de <= "0000111";---7

end case;
end process;
end architecture;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
情侣文案英文高级浪漫87句 Love to the people don't wave.什么意思 gladtomeetyou怎么 gladtomeetyou.怎么回答 2016生肖猴运程 武汉买房88平方满50万落户政策 非武汉市户口在武汉市购买70平方总价50万的商品房,可以转户口吗... 我想在武汉买一套50万左右的新房子,谁能告诉我现在武昌,关山,江夏,有... 支付宝怎么开通步数授权? 总价50万能在武汉买一套两室一天的二手房吗? 动物气象员是怎么预报天气的? 74ls160 一千分频器设计(三个级联) 【菜鸟求教:请用vhdl语言设计一个分频器。100分拜谢!!!】 铜钱草怎么分株? a8平台是什么意思 三分频音箱设计是什么意思 铜钱草适合什么温度养殖 的养殖方法 铜钱草怎么养 vhdl分频器设计 哪位大神能详细的告知铜钱草水培的养法,一年四季,以及注意点,因为... 重庆九龙坡明天会下雨吗? EDA,设计一个1000分频的分频器? 重庆大渡口9月9日是什么天气啊? 快快快~~~ 快点啊,急需重庆大渡口9月9日的天气预报啊! 谁能帮我设计一个7分频的分频器,非常感谢 怎样在WPS2010中安装方正小标宋字体 如何给铜钱草分株? 甘肃文县到重庆九龙坡四月八日到四月十五日沿途城市的天气情况 铜钱草几月份栽培比较好 制作二分频器需要什么元器件? 求2011年7月五日重庆天气预报? 铜钱草什么时候需要分盆? 铜钱草什么季节都种的活吗? 很适合夏季养的铜钱草,只要做好4点就可以苗壮很漂亮,是哪4点呢?_百度... 铜钱草怎么养才好? 铜钱草什么季节都种的活吗 铜钱草适合什么温度养殖? 黑胡椒酱用放冰箱冻吗 黑胡椒烤肠的做法,黑胡椒烤肠怎么做好吃,黑胡 在超市买的冷冻牛排里的黑胡椒汁冻了怎么办 什么是一本B类大学? 黑椒酱冻成冰块后还能吃吗? 广东本b学院有哪些? 黑胡椒汁鸡胸肉怎么做 广州有什么大学是本B? 全国一本B大学有哪些 香肠为什么放黑胡椒 广东有哪些本B大学 《海贼王》中如果黑胡子想要青雉的冰冻果实,那么黑胡子一伙能够干掉青雉嘛? 通常本B学校学费多少 一本B段大学哪些比较好 广州有什么本B大学?拜托各位大神