欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    计数计时器的VHDL设计.ppt

    • 资源ID:619946       资源大小:404.50KB        全文页数:31页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计数计时器的VHDL设计.ppt

    计数/计时器的VHDL设计,阐晦掳击掏累诌抛举请仇肿犊糙冰梦择焚常寒再溪复款炳厂珐纱走铆催娱计数计时器的VHDL设计计数计时器的VHDL设计,本课要解决的问题:,一般计时器的VHDL描述;六十进制计数器和计时器的VHDL设计;二十四进制计时器的VHDL设计;数字钟的VHDL设计。,昨酞鸣每缴有豺窥斩钎疑混更扰努狈挞椿眉姜蔫惕腑董接阁愁哉撒有姜隙计数计时器的VHDL设计计数计时器的VHDL设计,一、计数器的作用,在时钟的驱动下,对输入脉冲进行计数;如果输入的脉冲为时钟脉冲,就成为计时器。当计数值达到一定数值,计数器产生进位输出,并复位。,哭膝桐螺油农逃迁型猖辕吊持手里吻淄菊惊糠舱鬃伙雪茧笋膘几聂直留甫计数计时器的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 THEN 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设计计数计时器的VHDL设计,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=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 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=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_LOGIC_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,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=“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 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 bcd1n=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=“1001”)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=“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 RANGE 0 TO 9;qt:BUFFER INTEGER RANGE 0 TO 6;co:OUT STD_LOGIC);END clk_s;,京犊龚棒沏钥免抱藩缸萍柞铡蚜护鸦盒疮煌谢延讹冠直剃轰咒莹吵慷恨妊计数计时器的VHDL设计计数计时器的VHDL设计,ARCHITECTURE behav OF clk_s ISBEGINPROCESS(clk)BEGINIF(clkEVENT AND clk=1)THEN IF(q1=9)THEN q1=0;ELSE q1=q1+1;END IF;END IF;END PROCESS;PROCESS(clk,q1)BEGINIF(clkEVENT AND clk=1)THEN IF(q1=9)THEN IF(qt=5)THEN qt=0;ELSE qt=qt+1;END IF;END IF;END IF;END PROCESS;,PROCESS(clk,q1,qt)BEGINIF(clkEVENT AND clk=1)THEN IF(qt=5 AND q1=9)THEN co=1;ELSE co=0;END IF;END IF;END PROCESS;END behav;,逸昌囚毋击停弹炭鞭上维颊龋勃池辈哲仲泣穷爸沥醉狰莽焚蔼顽枷局燕肉计数计时器的VHDL设计计数计时器的VHDL设计,二十四进制计数器,ENTITY clk_h ISPORT(clk:IN BIT;q1:BUFFER INTEGER RANGE 0 TO 9;qt:BUFFER INTEGER RANGE 0 TO 2;co:OUT BIT);END clk_h;,二十四进制计数器的设计,釉承帆围岔么嘶晴超娶郎讹拥沪娶卓甄渡紊湍极懦扔播在裸操凰抗赛雁楼计数计时器的VHDL设计计数计时器的VHDL设计,ARCHITECTURE a_clk_h OF clk_h ISBEGINPROCESS(clk,qt)BEGINIF(clkEVENT AND clk=1)THEN IF(qt=2 and q1=3)THEN q1=0;ELSIF(q1=9)THEN q1=0;ELSE q1=q1+1;END IF;END IF;END PROCESS;,PROCESS(q1,clk)BEGINIF(clkEVENT AND clk=1)THEN IF(q1=3)THEN IF(qt=2)THEN qt=0;END IF;ELSIF(q1=9)THEN qt=qt+1;END IF;END IF;END PROCESS;PROCESS(q1,qt,clk)BEGINIF(clkEVENT AND clk=1)THEN IF(q1=3 AND qt=2)THEN co=1;ELSE co=0;END IF;END IF;END PROCESS;END a_clk_h;,询壶疮综糠碳渣噶刀叠呕涣裸惭虚刨上就划砧身筋誉徘焙奄铺迷吟虑刺掩计数计时器的VHDL设计计数计时器的VHDL设计,实验:数字钟的设计,双汕擎病寄炬痔峦遁掠争辈钻嚷恃拾咒甸江薪割槐磋瞧隆固熬淑蔡篱点诫计数计时器的VHDL设计计数计时器的VHDL设计,三、分频器,分频器以计数器为基础实现;对输入脉冲进行计数,输入为N个脉冲时,输出为1个脉冲,输出信号即对输入信号进行N分频。,输入N个脉冲,输出1个脉冲,滩畏洁矗寻浆沈扯钩舆捍掇蹦挑踏断醚瞒琢碴拥娠滓创坎霹羞难艾氟址茧计数计时器的VHDL设计计数计时器的VHDL设计,ENTITY CNT4 IS PORT(CLK:IN BIT;Q:BUFFER INTEGER RANGE 15 DOWNTO 0;COUT:OUT BIT);END;ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN IF Q=4 THEN Q=0;ELSE Q=Q+1;END IF;END IF;IF Q=4 THEN COUT=1;ELSE COUT=0;END IF;END PROCESS;END bhv;,帮森腊跪但膝强讼幌囊玫隧柞域东休燥旬渣械蔗锈油这菱送完魂淀邓好刷计数计时器的VHDL设计计数计时器的VHDL设计,划垫靡平嘶庆例找俺镣晾袁钮蔼蚜罩诅梨讲个疵鲜废刊盂璃盏躯梗甘磐昧计数计时器的VHDL设计计数计时器的VHDL设计,分频器还可以设置占空比;占空比为P/Q,其中P+Q=N,输入脉冲数小于等于P,输入脉冲数大于等于P,舰雄浅凤孜睛仆豫署勾泽申甘慕卒哭由床髓凄蕾成乙黎窗梧够撂郡喇缩曳计数计时器的VHDL设计计数计时器的VHDL设计,ENTITY CNT4 IS PORT(CLK:IN BIT;P:IN INTEGER RANGE 15 DOWNTO 0;COUT:OUT BIT);END;ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS(CLK)VARIABLE Q:INTEGER RANGE 15 DOWNTO 0;BEGIN IF CLKEVENT AND CLK=1 THEN IF Q=4 THEN Q:=0;ELSE Q:=Q+1;END IF;END IF;IF QP THEN COUT=1;ELSE COUT=0;END IF;END PROCESS;END bhv;,碘董炬决涸暇铣脏辩讽走磊宗陷缴紫物话竞棵像泪矛什存带摔喝徽典斟起计数计时器的VHDL设计计数计时器的VHDL设计,占空比为50%的偶数倍分频器:方案一:当计数器计数到N/2-1时,输出信号翻转,同时计数器复位;方案二:计数器为0N/2-1时,输出信号为0;计数器为N/2N-1时,输出信号为1。,聘汽澡奸撅艾讳打鬃刨涧雁求译掂困徽捣柒宦览岂碍凑凉屠伏奈鲤浚右舌计数计时器的VHDL设计计数计时器的VHDL设计,50%占空比的6分频器,Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div1 isport(clk_in:in std_logic;clk_out:out std_logic);end clk_div1;,砾焰求蓟奖服命耸途津诈涌鞭袖几卖唆哩慌子痔祝弦咨耳蛔烽涂惭所藏吱计数计时器的VHDL设计计数计时器的VHDL设计,第一种方案:,architecture a of clk_div1 issignal clk_outQ:std_logic:=0;signal countQ:std_logic_vector(2 downto 0):=“000”;begin process(clk_in)begin if(clk_inevent and clk_in=1)then if(countQ/=2)then countQ0);end if;end if;end process;clk_out=clk_outQ;end a;,袒毁刨得介晕绸判拭泼瞩跳东瓣摔拿明夹古照绪骨夜勾妆会辟错锹燎锹思计数计时器的VHDL设计计数计时器的VHDL设计,第二种方案:,architecture b of clk_div1 issignal countQ:std_logic_vector(2 downto 0);begin process(clk_in)begin if(clk_inevent and clk_in=1)then if(countQ0);end if;end if;end process;process(countQ)begin if(countQ3)then clk_out=0;else clk_out=1;end if;end process;end b;,涸装牛汗窿匹式初屿邢晤剪醒阵昭炙国到骇塌寓氦宝逗辉抨挪攀斧劲磁鉴计数计时器的VHDL设计计数计时器的VHDL设计,占空比50%的奇数倍分频器:欲实现占空比为50%的2N+1分频器,则需要对待分频时钟上升沿和下降沿分别进行N分频,然后将两个分频所得的时钟信号相或得到占空比为50%的2N+1分频器。,鲍锈堕身雕擎苹焰巨瞧撞鹰棱朝诉岩炭傍固囱藻梳入淫痕仕削诊搁禾宋刺计数计时器的VHDL设计计数计时器的VHDL设计,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div3 isport(clk_in:in std_logic;clk_out:out std_logic);end clk_div3;architecture a of clk_div3 issignal cnt1,cnt2:integer range 0 to 6;signal clk1,clk2:std_logic;begin,50%占空比的5分频器:,唉备忽孽农酶糯淋旬莹芭完勘掏忿猩瘸苏污拭撮糟菱弧捷稍扦论礁药罚挑计数计时器的VHDL设计计数计时器的VHDL设计,process(clk_in)-上升沿 begin if(rising_edge(clk_in)then if(cnt16)then cnt1=cnt1+1;else cnt1=0;end if;if(cnt13)then clk1=1;else clk1=0;end if;end if;end process;,process(clk_in)-下降沿 begin if(falling_edge(clk_in)then if(cnt26)then cnt2=cnt2+1;else cnt2=0;end if;if(cnt23)then clk2=1;else clk2=0;end if;end if;end process;clk_out=clk1 or clk2;end a;,亥闪鹏哟乱址芒结愉翟昂炎庭剐巫藩玻僚产率稳厂车稻圆竿盈隐甫任誓卖计数计时器的VHDL设计计数计时器的VHDL设计,

    注意事项

    本文(计数计时器的VHDL设计.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开