分享
分销 收藏 举报 申诉 / 15
播放页_导航下方通栏广告

类型计数器的VHDL设计与实现讲解学习.doc

  • 上传人:人****来
  • 文档编号:3913743
  • 上传时间:2024-07-23
  • 格式:DOC
  • 页数:15
  • 大小:222.50KB
  • 下载积分:8 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计数器 VHDL 设计 实现 讲解 学习
    资源描述:
    计数器的VHDL设计与实现 精品资料 期刊论文 —EDA课程设计 题 目:计数器的VHDL设计与实现 学生姓名:李雷 学生学号:09 专业班级:计算机科学与技术0902班 指导老师:方恺晴 计数器的VHDL设计与实现 摘要:介绍了各种基本计数器的组成及其工作原理,重点研究了可变模计数器的设计与实现, 在对现有的可变模计数器的研究基础上,在Quartus 开发环境中,用VHDL语言设计一种功能更加强大的可变模计数器,它具有清零、置数、使能控制、可逆计数和可变模等功能,并且对传统的可变模计数器的计数失控问题进行研究,最终设计出一种没有计数失控缺陷的可变模计数器,并通过波形仿真和EPF10K20TI144-4系列实验箱,验证了其各项设计功能。结果表明该设计正确.功能完整。运行稳定。 关键词:VHDL;计数器;可变模计数;可逆计数 VHDL Design and Realization of Counter Abstract:This paper analyzes all kinds of basic counter and its working principle, focus on the counter variable mode of design and implementation. In the environment of Quartus based on research of the existing module—alterable counter,a module—alterable counter with more functions,such as clear,set,enable control,reversible count,module—alterable count and so on,which is designedwith VHDL.By researching the problem of losing control existed in traditional module—alterable counter.A module—alterablecounter with no fault designed.And through the waveform simulation and EPF10K20TI144-4 series experiment box,all of the functions are verified.The resuit indicates that the counter is designed correctly,and has integral functions and stable operation. Keywords:VHDL;counter;divided frequency impIement;reversible 引 言 随着电子技术、计算机技术和EDA技术的不断发展,数字系统规模越来越大,传统的电路设计已难以适应复杂电子系统的设计要求。从而使得电子设计自动化(EDA)技术迅速发展,成为硬件电子电路设计领域中的主要设计手段。利用FPGA/CPLD进行数字系统的开发已被广泛应用于通信、航天、医疗电子、工业控制等领域。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发周期短,投资少,便于追踪市场变化及时修改产品设计,以及开发工具智能化等特点。近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新,使FPGA/CPLD成为当今硬件设计的重要途径。在FPGA/CPLD的应用设计开发中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,并在语言易读性和层次化、结构化设计方面,表现出了强大的生命力和应用潜力。 QuartusⅡ是Ahera公司在21世纪初推出的FPGA/CPLD集成开发环境,是Ahera公司前一代FPGA/CPLD集成开发环境Max+Plus 11的更新换代产品,其界面友好,使用便捷,功能强大,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 计数器是数字系统中使用最多的时序电路之一,不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。可变模计数器由于计数容量可以根据需要进行变化,为其广泛使用创造了便利。这里在Quartus 1I开发环境下,用VHDL语言设计了一种具有清零、置数、使能控制、可逆计数和可变模功能的计数器。 1.基本模10计数器的设计 VHDL设计代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter10 is port( clk,clrn:in std_logic; cq:out std_logic_vector(3 downto 0); cout:out std_logic ); end counter10; architecture bhv of counter10 is signal cqi:std_logic_vector(3 downto 0); begin process(clk,cqi) begin if clrn='0' then cqi<="0000"; elsif clk'event and clk='1' then if cqi<9 then cqi<=cqi+1; else cqi<="0000"; end if; end if; if cqi=9 then cout<='1'; else cout<='0'; end if; cq<=cqi; end process; 2.基本可变模计数器设计 可变模计数器是指计数/模值可根据需要进行变化的计数器。电路符号如图1所示,clk为时钟脉冲输入端,clr为清零端,m为模值输入端,q为计数输出端。 基本可变模计数器的VHDL代码如下所示: LIBRARY IEEE; USE ieee.Std_logic_l 164.AIL; USE ieee.Std_logic_unsigned.ALL; USE ieee.Std_logic_arith.All; ENTITY mchcounter IS PORT(elk,elr:IN std_logic; m:in integer range 0 tO 99; q:buffer integer range 0 tO 99); END mchcounter; ARCHITECTURE one 0F mchcounter IS ------定义计数最大值m_temp signal m_temp:integer range 0 tO 99; BEGIN PROCESS(elk,clr,m) BEGIN m_temp<=m-1; if elr=‘1’then q<=0; 一一以时钟信号的上升沿为计数触发条件 elsif clk’event and clk=‘1’ then if q=m_temp then q<=0; else q<=q+1; end if; end if; ------清零功能 ------加法计数 END PROCESS; END ARCHITECTURE one; 说明:上述代码设计采用了常用的if语句结构,即“if条件句then顺序语句elsif条件句then顺序语句else顺序语句end if”结构,实现模值小于99的可变模计数。 从上述的代码可以看出,基本的可变模计数器的功能单一。仿真验证则表明在进行模值变换时,基本的可变模计数器存在一些功能上的缺陷:计数器若是由较小的模值变化为较大的模值时,能正常的进行变模计数;但当其由较大的模值变化为较小的模值,则可能出现计数失控,如图2所示,图中显示了当模值由12变换为7时,即发生了计数失控。失控的原因是大于当模值由12变换为7时,计数输出为q为11,大于当前模值7的计数最大值6。由此产生了计数失控。 3.改进的多功能可变模计数器 为了克服上述基本可变模计数器的缺陷,并增加更多的控制功能,在此设计了一种改进的多功能可变模计数器,具有清零、置数、使能控制、可逆计数和可变模功能。其电路符号如图3所示,elk为时钟脉冲输入端, ITI为模值输入端,clr为清零控制端,8为置数控制端, d为置数输入端,en为使能控制端,updn为计数方向控制端,q为计数输出端,CO为进位输出端。 这里所设计的多功能可变模计数器的VHDL代码如下所示: LIBRARY IEEE: USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; USE ieee.std_logie_arith.ALL; ENTlTY counter IS PoRT(clk,clr,S,en,updn:in std—logic; d:in integer range 0 to 99; m:in integer range 0 to 99; co:OUT std_logic; q:buffer integer range 0 to 99); END counter: ARCHITECTURE one of counter IS ------定义计数最大值m_temp signal m_temp:integer range 0 to 99; BEGIN PRoCESS(elk,clr,m) BEGIN m_temp<=m-1; ------清零功能 if clr=’1’ then q<=0;co<=0; ------以时钟信号的上升沿为计数触发条件 elsif elk’event and clk=’1’then ------置数功能 if s=’1’ then q<=d; ------防止计数失控 elsif q>m_temp then q<=m_temp; ------计数使能控制功能 elsif en=’1’then if updn=’1’then ------加法计数 if q=m_temp then q<=O;co<=’1’; else q<=q+1;co<=0 ; end if; elsif updn=’0’then------减法计数 if q=O then q<=m_temp;co<=‘1‘ ; else q<=q-1;co<=’0’; end if; end if; end if; end if; END PROCESS; END ARCH ITECTURE one; 值得注意的是,这里所设计的多功能可变模计数器具有如下特点: (1)该设计的多功能可变模计数器具有多个功能控制端。因此各个控制端的优先权顺序就成为设计的关键,经过理论分析和仿真调试,最终确认的优先权顺序为:clr(清零)一clk(时钟触发)一s(置数)一en(使能)---updn(计数方向)。这个优先权顺序可以有效地保证各个功能的完整实现,以及技术器的稳定运行。 (2)为了防止出现计数失控,大多数计数器采用给计数器增加一个复位控制端的办法,当发现计数输出q发生了计数失控时,通过复位控制端将计数器复位来排除计数失控。这种方法虽然有效,但是每次出现计数失控都要手动控制复位,给实际使用带来了不便。该设计的多功能可变模计数器中,将当前的计数输出q与当前的计数最大值rn—temp进行比较,如果q比m—temp大,则强制将m—temp赋给q,这样就可以自动避免计数失控,不必再增加手动的复位控制端。 4.仿真结果分析 该多功能可变模计数器在Quartus 11开发环境下。进行了仿真验证,功能仿真波形如图4所示,时序仿真波形如图5所示。 仿真结果分析如下: (1)clk为时钟信号,由时钟信号的上升沿触发计数; (2)m为模值输入端,当其变化时,计数容量相应发生变化; (3)clr为清零控制端,当其为高电平时清零; (4)s为置数控制端,当其为高电平时将置数输入端d的数据加载到输出端q; (5)en为使能控制端,当其为高电平时正常计数,当其为低电平时暂停计数; (6)updn为计数方向控制端。当其为高电平时计数器加法计数,当其为低电平时计数器减法计数。 5.结语 在EDA实验课程的综合设计中,我完成的是一个4路抢答计分器的设计,在抢答器的设计中,多次用到了计数器这一基本数字电路元件,于是我想到对计数器做更加深入的研究,针对基本可变模计数器可能出现计数失控这一功能缺陷,对可变模计数器进行了改进。这里所设计的多功能可变模计数器在Quartus开发环境下进行了仿真验证后,下载到EPF10K20TI144-4型实验箱中进行了硬件验证。实验证明设计正确,功能完整,运行稳定。另外,该设计的多功能可变模计数器可根据需要将模值的最大值由99进一步扩展,获得更高的计数模值。 参考文献 [1]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2004. [2]侯伯亨,顾新.VHDI,硬件描述语言与数字逻辑电路设计:西安电子科技大学出版社,2000. [3]李国丽,朱维勇,栾铭.EDA与数字系统设计[M].北京:机械工业出版社2005. [4]卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社,2001. [5]李志,田永清,朱仲英.VHDL的设计特点与应用研究[J].微型电脑应用2002(10):5—8. [6]王风英,崔国玮.邸建红.计数器的VHDI,设计与实现[J].现代电子技术,2007,30(9):114—116. 仅供学习与交流,如有侵权请联系网站删除 谢谢15
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:计数器的VHDL设计与实现讲解学习.doc
    链接地址:https://www.zixin.com.cn/doc/3913743.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork