《分频器的VHDL代码在数字电路中,常需_001.doc》由会员分享,可在线阅读,更多相关《分频器的VHDL代码在数字电路中,常需_001.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date分频器的VHDL代码在数字电路中,常需_001分频器的VHDL代码在数字电路中,常需_001分频器的VHDL代码 在数字电路中,常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号。我们知道,在硬件电路设计中时钟信号是最重要的信号之一。 下面我们介绍分频器的 VHDL 描述,在源代码中完成对时钟信号 CLK 的 2 分频, 4 分频, 8 分频, 16 分频。
2、这也是最简单的分频电路,只需要一个计数器即可。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clkdiv IS PORT(clk : IN STD_LOGIC; clk_div2 : OUT STD_LOGIC; clk_div4 : OUT STD_LOGIC; clk_div8 : OUT STD_LOGIC; clk_div16 : OUT STD_LOGIC); END clkdiv; ARCHITECTUR
3、E rtl OF clkdiv IS SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(clk) BEGIN IF (clkevent AND clk=1) THEN IF(count=1111 ) THEN Count 0 ); ELSE Count = count +1; END IF ; END IF ; END PROCESS; clk_div2 = count(0); clk_div4 = count(1); clk_div8 = count(2); clk_div16 = count(3); END rtl; 对于
4、分频倍数不是 2 的整数次幂的情况,我们只需要对vhDL源代码中的计数器进行一下计数控制就可以了,如下面源代码描述一个对时钟信号进行 6 分频的分频器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clkdiv_1 IS PORT(clk : IN STD_LOGIC; clk_div6 : OUT STD_LOGIC);END; ARCHITECTURE rtl OF clkdiv_1 IS SIGNAL cou
5、nt : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL clk_temp : STD_LOGIC; BEGIN PROCESS(clk) BEGIN IF (clkevent AND clk=1) THEN IF(count=10 ) THEN count 0 ); clk_temp =NOT clk_temp; ELSE count = count +1; END IF ; END IF ; END PROCESS; clk_div6 = clk_temp; END rtl; 对于上述源代码描述的这种分频器,在硬件电路设计中应用十分广泛,设计人员常采用这种分频器来产生选通信号、中断信号和数字通信中常常用到的帧头信号等。-