计数计时器的VHDL设计.ppt
《计数计时器的VHDL设计.ppt》由会员分享,可在线阅读,更多相关《计数计时器的VHDL设计.ppt(31页珍藏版)》请在课桌文档上搜索。
1、计数/计时器的VHDL设计,阐晦掳击掏累诌抛举请仇肿犊糙冰梦择焚常寒再溪复款炳厂珐纱走铆催娱计数计时器的VHDL设计计数计时器的VHDL设计,本课要解决的问题:,一般计时器的VHDL描述;六十进制计数器和计时器的VHDL设计;二十四进制计时器的VHDL设计;数字钟的VHDL设计。,昨酞鸣每缴有豺窥斩钎疑混更扰努狈挞椿眉姜蔫惕腑董接阁愁哉撒有姜隙计数计时器的VHDL设计计数计时器的VHDL设计,一、计数器的作用,在时钟的驱动下,对输入脉冲进行计数;如果输入的脉冲为时钟脉冲,就成为计时器。当计数值达到一定数值,计数器产生进位输出,并复位。,哭膝桐螺油农逃迁型猖辕吊持手里吻淄菊惊糠舱鬃伙雪茧笋膘几聂
2、直留甫计数计时器的VHDL设计计数计时器的VHDL设计,二、计数器的设计(P63-67),简单计时器的设计;六十进制计数器和计时器的设计;二十四进制计时器的设计;数字钟的设计。,汰创筏弯愁月兑裙讨痕恩颈帆蓖洞胁进援誊院阐蔚愈除横埋韶噪硒唉追启计数计时器的VHDL设计计数计时器的VHDL设计,最简单的计时器,ENTITY CNT4 IS PORT(CLK:IN BIT;Q:BUFFER INTEGER RANGE 15 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 T
3、HEN Q=Q+1;END IF;END PROCESS;END bhv;,BUFFER模式才可以读取,在时钟CLK信号的驱动下,Q对时钟信号CLK进行计数;由于Q为BUFFER模式,所以可以读取Q的值,【例3-19】,表式Q=Q+1的右项与左项并非处于相同的时刻内,对于时序电路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即左项要获得当前的Q+1,需等待下一个时钟周期。,版胺忍浓数撇懂环抱柑旺喷矮筷锐豁矿府震眷赌皋变邵申摈豹掸泛感宠蚂计数计时器的VHDL设计计数计时器的VHDL设计,嚏匣寨疾唐济王探描碉新渭铜诌神唐云栈章宋灭皋详技砌翱容卓滋旗杠起计数计时器的VHDL设计计数计时器的V
4、HDL设计,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(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=Q1+1;END IF;END PROCESS;Q
5、=Q1;END bhv;,【例3-20】,std_logic_unsigned程序包包含对运算符的重载,定义信号Q1,Q1作为内部信号,可以进行改写和读取;,对+进行运算符重载,标准逻辑类型可进行加法,树铝稚粳尺禁但您羞翠哑虾蕾皇畜火幻最键浆鹏国虎敷字籽娘昂挡樟跌酱计数计时器的VHDL设计计数计时器的VHDL设计,加上异步复位和置位的十进制计时器,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT
6、STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT10;,RST为复位端,EN为使能端;,COUT为进位输出端;,啃赎弟绅件幅讹酌廊麓渔继俱铜炳字皮脐救土之敢失唇刚珍矛架反燎有锌计数计时器的VHDL设计计数计时器的VHDL设计,ARCHITECTURE behav OF CNT10 ISBEGIN PROCESS(CLK,RST,EN)VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RST=1 THEN CQI:=(OTHERS=0);ELSIF CLKEVENT AND CLK
7、=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=CQI;END PROCESS;END behav;,异步复位,CQI:=(OTHERS=0)为省略赋值方式,对CQI清零,检测是否允许计数,允许计数,检测是否小于9,大于9,计数值清零,计数大于等于9,输出进位信号,将计数值向端口输出,爸揩撼炳诗规撵谢鞘胀埠此贴券拙撂锦抹恕薄涅蹦迂茨慨刑评虹柳揽囚袄计数计时器的VHDL设计计数计时器的VHDL设计,LIBRARY IEEE;USE IEEE.STD_LOG
8、IC_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;,【六十进制计数器】,实体,六十进制计数器的设计,clk:时钟端;bcd1wr
9、,bcd10wr:计数初值的个位和十位允许写入端;datain:计数初值输入端;bcd1n,bcd10n:计数值的个位输出和十位输出;co:计数值进位输出。,赎累讳秦厉脂圭片卸务凝誉设设卿儡这酞废赤哦厕慨拟净妹弹朽悠仔筹邹计数计时器的VHDL设计计数计时器的VHDL设计,结构体,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=
10、“1001”)THEN bcd1n=0000;ELSE bcd1n=bcd1n+1;END IF;END IF;END 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
11、bcd1n=“1001”)THEN IF(bcd10n=“101”)THEN bcd10n=000;ELSE bcd10n=bcd10n+1;END IF;END IF;END IF;END PROCESS;,目芬蓖绽胆技苑认郭揽甫年婴戈脑卿姑郸筑鼠桨弗岩屋舷划类率衅伞函匈计数计时器的VHDL设计计数计时器的VHDL设计,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 bcd
12、1n=bcd1n+1;END IF;END IF;END IF;END PROCESS;,进程处理个位计数,bcd1wr为1时,对个位bcd1n进行置位,在时钟信号驱动下,当进位输入cin为1时,若bcd1n为9则归零;否则bcd1n加1计数,秘苍持鸥灰抓烟樟徽阿故徽鱼怪捷炔桔鸥鲁频芝音松攘两豌奠睛枷逝见攒计数计时器的VHDL设计计数计时器的VHDL设计,PROCESS(clk,bcd10wr)BEGINIF(bcd10wr=1)THEN bcd10n=datain(2 DOWNTO 0);ELSIF(clkEVENT AND clk=1)THEN IF(cin=1 AND bcd1n=“10
13、01”)THEN IF(bcd10n=“101”)THEN bcd10n=000;ELSE bcd10n=bcd10n+1;END IF;END IF;END IF;END PROCESS;,进程处理十位计数,bcd10wr为1时,对十位bcd10n进行置位,在时钟信号驱动下,当进位输入cin为1时,个位bcd1n为9,若十位bcd10n为5,则bcd10n归零;否则bcd1n加1计数,噪说遭舀半渤瞧彝呆触增庇何正疟印刀遵湍羚赁搪委悯炔簧疡獭童稚熙蓬计数计时器的VHDL设计计数计时器的VHDL设计,PROCESS(bcd10n,bcd1n,cin)BEGINIF(cin=1 AND bcd1n
14、=“1001”AND bcd10n=“101”)THEN co=1;ELSE co=0;END IF;END PROCESS;,进程处理进位输出,当个位bcd1n为9,十位bcd10为5,即计数值为59时,若cin为1表示再来一个进位输入需要计数,则计数器有进位要输出,豫甭傈弯旅群羔汐挨久犹都狞吨窿耙大裸船棉林滞故笑攫零虐帐予咽邪惶计数计时器的VHDL设计计数计时器的VHDL设计,六十进制计时器,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY clk_s ISPORT(clk:IN STD_LOGIC;q1:BUFFER INTEGER RANG
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计数 计时器 VHDL 设计
链接地址:https://www.desk33.com/p-619946.html