基于VHDL的可逆计数器的设计与实现

基于VHDL的可逆计数器的设计与实现摘要:计数器作为一种数据采集设备,是各领域测量系统的重要组成部分,它在时钟、定时器、分频电路、状态机等应用中都有应用。针对传统计数器功能单一,电路复杂、调试困难,设备升级、维护成本高的缺点,研究开发了一种基于VHDL的同步二进制可逆计数器,可实现可逆计数,并且可以灵活的调整计数器的位数;并通过实验测试验证了该设计的可行性及准确性,也为使用VHDL设计其他的器件提供了参考和依据。Abstract:Asakindofdataacquisitionequipment,counterisanimportantpartofthemeasurementsystemineveryfield.Itisusedintheclock,timer,frequencydivisioncircuit,statemachineandotherapplications.Aimedattheshortcomingsoftraditionalcounter,suchasthesinglefunction,complexcircuit,difficultdebugging,highcostoftheequipmentupgradesandmaintenance,akindofbinaryreversiblesynchronouscounterbasedonVHDLisdevelopeded.Itcanrealizereversiblecountingandcanflexiblyadjustthecounterdigits.Thefeasibilityandaccuracyofthedesignisverifiedbytheexperimentaltests.ItalsoprovidesthereferenceandbasisforthedesignofotherdevicebyusingVHDL.关键词:VHDL;可逆;FPGA;计数器Keywords:VHDL;reversible;FPGA;counter中图分类号:TN47文献标识码:A文章编号:1006-4311(2016)04-0093-020引言计数器电路是常见的一种数字电路,有着极为广泛的应用,可以作为电路最基本时钟的信号输入,可以以此为基础配合拓展其它的信号,也可以配合其它电路一起使用,计数器电路还可用于电路的测试等[1]。可逆计数器可以执行加法计数,也可以进行减法计数,它拓展了计数器的使用范可作为整机配套器件使用,用来产生更多用途的信号。传统计数器功能单一,电路复杂、调试比较困难,一旦结构确定,就很难更改,设备升级难度大、维护成本比较高,针对这些问题本文研究开发了一种基于VHDL的同步二进制可逆计数器,可实现可逆计数,并且可以通过修改程序的方法,灵活的调整计数器的位数;并通过实验测试验证了该设计的可行性及准确性,也为使用VHDL设计其他的器件提供了参考和依据。1设计思路计数器是时序应用电路中十分普遍的应用部件[3],例如,时钟、定时器、分频电路、状态机等应用设计都能看到计数器的踪迹。计数器的原理是:每次时钟脉冲信号为上升沿或下降沿时,计数器就会将计数值加1或减1。针对计数器的原理,可以设计出可逆计数器的真值表。要实现二进制计数的可逆计数,必须设置可逆计数的信号端子,在文中设置的可逆计数端子名称为updn,当清零信号无效且置数信号无效时,时钟信号上升沿到来时,当updn=l为加法计数,当updn=O为减法计数。当时钟下降沿到来时,保持原来的状态不变。2基于VHDL的电路设计与实现2.1芯片的选择设计选用了Altera公司的CycloneII系列FPGA(现场可编程门阵列)芯片EP2C20F484C7,FPGA器件具有下列优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本、设计灵活方便,可无限次反复编程,并且可现场模拟调试验证。使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作[4],可以缩短研制周期,迗到快速上市和进一步降低成本的要求。2.2硬件描述语言的实现芯片一旦选定,就可以使用硬件语言设计计数器了。同步可逆二进制计数器的设计思路是:每次时钟脉冲信号为上升沿时,计数器就会将计数值加1或减1。一个N位的计数器其计数范围是2N,即0〜2N-1。下面是使用VIIDL语言设计一个四位的二进制可逆计数器。在QuantusII平台中可以采用文本输入、原理图输入、波形输入等多种输入方式进行文件的输入。本文首先在软件中建立一个名为test31的工程,然后采用文本输入的方式,在QuantusH9.0软件中输入以下VHDL代码,进行可逆计数器的设计描述,保存为test31.vhd的形式。通过对其进行编译及仿真验证可以验证其正确性。二进制可逆计数器的VHDL代码如下:LIBRARYIEEE;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYtest31IS——建立一个实体描述可逆计数器的输入输出端子PORT(elk,clr,s,en,updn:INstd_logic;d:instd」ogic_VECTOR(3DOWNTO0);co:OUTstd_logic;q:bufferstd_logic_VECTOR(3DOWNTO0));ENDtest31;ARCHITECTUREoneOFtest31ISBEGINPROCESS(elk,clr)BEGINifclr=thenq

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?