计数计时器的VHDL设计.ppt
《计数计时器的VHDL设计.ppt》由会员分享,可在线阅读,更多相关《计数计时器的VHDL设计.ppt(31页珍藏版)》请在第壹文秘上搜索。
1、计数/计时器的VHDL设计本课要解决的问题:n一般计时器的VHDL描述;n六十进制计数器和计时器的VHDL设计;n二十四进制计时器的VHDL设计;n数字钟的VHDL设计。一、计数器的作用n在时钟的驱动下,对输入脉冲进行计数;如果输入的脉冲为时钟脉冲,就成为计时器。n当计数值达到一定数值,计数器产生进位输出,并复位。二、计数器的设计(P63-67)n简单计时器的设计;n六十进制计数器和计时器的设计;n二十四进制计时器的设计;n数字钟的设计。n最简单的计时器ENTITY CNT4 IS PORT(CLK:IN BIT;Q :BUFFER INTEGER RANGE 15 DOWNTO 0 );EN
2、D;ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q=Q+1;END IF;END PROCESS;END bhv;BUFFER模式才可以读取在时钟CLK信号的驱动下Q对时钟信号CLK进行计数;由于Q为BUFFER模式,所以可以读取Q的值【例3-19】表式表式Q=Q+1Q=Q+1的右项与左项并非处于相同的时刻内,对于时序电的右项与左项并非处于相同的时刻内,对于时序电路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即左项
3、要获得当前的左项要获得当前的Q+1Q+1,需等待下一个时钟周期。,需等待下一个时钟周期。时钟信号到来?时钟信号到来?Q计数加计数加1结束结束 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 IS PORT(CLK:IN STD_LOGIC;Q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 ISSIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS
4、(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=Q1+1;END IF;END PROCESS;Q 0);ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN IF CQI 0);END IF;END IF;END IF;IF CQI=9 THEN COUT=1;ELSE COUT=0;END IF;CQ 0)为省略赋值方式,对CQI清零检测是否允许计数允许计数允许计数,检测是否小于检测是否小于9大于大于9,计数值清零,计数值清零计数大于等于9,输出进位信号将计数值向端口输出LIBRARY IEEE;USE IEEE.STD_L
5、OGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY bcd60count ISPORT(clk,bcd1wr,bcd10wr,cin:IN STD_LOGIC;co:OUT STD_LOGIC;datain:IN STD_LOGIC_VECTOR(3 DOWNTO 0);bcd10n:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);bcd1n:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END bcd60count;【六十进制计数器】|实体n 六十进制计数器的设计clk:时钟端;bcd1w
6、r,bcd10wr:计数初值的个位和十位允许写入端;datain:计数初值输入端;bcd1n,bcd10n:计数值的个位输出和十位输出;co:计数值进位输出。|结构体ARCHITECTURE behave OF bcd60count ISBEGINEND behave;PROCESS(clk,bcd1wr)BEGINIF(bcd1wr=1)THEN bcd1n=datain;ELSIF(clkEVENT AND clk=1)THEN IF(cin=1)THEN IF(bcd1n=“1001”)THEN bcd1n=0000;ELSE bcd1n=bcd1n+1;END IF;END IF;EN
7、D IF;END PROCESS;PROCESS(bcd10n,bcd1n,cin)BEGINIF(cin=1 AND bcd1n=“1001”AND bcd10n=“101”)THEN co=1;ELSE co=0;END IF;END PROCESS;PROCESS(clk,bcd10wr)BEGINIF(bcd10wr=1)THEN bcd10n=datain(2 DOWNTO 0);ELSIF(clkEVENT AND clk=1)THEN IF(cin=1 AND bcd1n=“1001”)THEN IF(bcd10n=“101”)THEN bcd10n=000;ELSE bcd10
8、n=bcd10n+1;END IF;END IF;END IF;END PROCESS;PROCESS(clk,bcd1wr)BEGINIF(bcd1wr=1)THEN bcd1n=datain;ELSIF(clkEVENT AND clk=1)THEN IF(cin=1)THEN IF(bcd1n=“1001”)THEN bcd1n=0000;ELSE bcd1n=bcd1n+1;END IF;END IF;END IF;END PROCESS;进程处理个位计数bcd1wr为1时,对个位bcd1n进行置位在时钟信号驱动下,当进位输入cin为1时,若bcd1n为9则归零;否则bcd1n加1计数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计数 计时器 VHDL 设计