实验五含异步清零和同步使能4位加法计数器的VHDL设计
一、123实验目的掌握计数器的VHDL设计方法;掌握异步复位和同步复位和使能的概念;掌握寄存器性能的分析方法(即分析芯片所能达到的最高时钟频率)。实验内容二、123异步复位4位加法计数器的设计;同步复位4位加法计数器的设计。异步清0和同步时钟使能的4位加法计数器实验原理三、复位:给计数器一个初值叫复位,如果所给初值为0,则称复位为清零。异步复位:复位跟时钟无关,只要复位信号的复位电平出现,计数器立即复位,如图5-1所示;同步复位:复位跟时钟有关,当复位信号的复位电平出现时,计数器并不立即复位,而是要等到时钟沿到来时才复位,如图5-2所示。异步复位4位加法计数器的VHDL设计代码见教材P122-P123,仿真波形如图5-3所示。同步复位4位加法计数器的VHDL部分代码如下,仿真波形如图5-4所示。 .图5-1异步复位图5-2同步复位图5-3异步复位计数器仿真波形图5-4同步复位计数器仿真波形四、实验步骤(一)异步复位4位加法计数器的设计12建立一个设计工程,工程名为CNT4B;打开文本编辑器,建立一个VHDL设计文件,其VHDL代码见教材P1中的例6-20,文件名存为CNT4B.VHD。注意文件的扩展名要选为.vhd,而且要求工程名、文件名和设计实体名必须相同。345选器件:ACEX1K,EP1K30TC144-3(旧)或Cyclone,EP3C40Q240C8目标芯片。编译;建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us:②设置输入信号的波形:时钟周期设置为200ns,其他输入信号的波形设置参看图6-3。】67仿真,观察输出波形是否正确;时序分析:分析芯片所能达到的最高时钟频率。【打开时序分析器,然后执行菜单命令:analysis/registerperformance/start,可以看到最高时钟频率为100.00MHZ】(二)同步复位4位加法计数器的设计建立一个设计工程,工程名为CNT4B_SYS;打开文本编辑器,建立一个VHDL设计文件,其VHDL代码参看异步计数器代码和实验原理中的参考代码,文件名存为CNT4B_SYS.VHD。注意文件的扩展名要选为.vhd,而且要求工程名、文件名和设计实体名必须相同。10选器件:ACEX1K,EP1K30TC144-3(旧)或Cyclone,EP3C40Q240C8目标芯片。11编译;12建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us:②设置输入信号的波形:时钟周期设置为200ns,其他输入信号的波形设置参看图5-4。】13仿真,观察输出波形是否正确;14时序分析:分析芯片所能达到的最高时钟频率。【打开时序分析器,然后执行菜单命令:analysis/registerperformance/start,可以看到最高时钟频率为55.55MHZ】(三)异步清0和同步时钟使能的4位加法计数器的VHDL设计参照实验(一)、(二),完成异步清0和同步时钟使能的4位10进制加法计数器的设计。五、思考题12解释同步复位和异步复位的概念,同步的含义是什么?。在异步复位4位计数器的设计中,是否可以不定义信号CQI,而直接用输出端口信号完成加法运算,即OUTY<=OUTY+1?为什么?如果可以,需要修改什么?34修改实验中的设计代码,用进程语句实现进位信号COUT的输出。设计一个1位十进制计数器(二进制是4位),要求含有异步复位和计数使能控制,有进位输出。写出VHDL设计代码并仿真。如何设计2位十进制计数器?六、拓展:8位自启动环形计数器[实验原理]数字逻辑电路中,用来存放二进制数据或代码的电路称为寄存器。寄存器是由具有存储功能的触发器组合构成的。按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,需要时也只能并行输出,移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出。在实际应用中,环形计数器实际上就是一个最简单的移位寄存器,它把最后一个触发器的输出值移位到前一个触发器中。对于n位二进制代码的移位寄存器,为构成环形计数器可将寄存器FFn-1的输出Qn-1接到寄存器FF0的输入端D0,把各个寄存器相连使信号由左向右移位,并由Qn-1返回到Q0,在多数情况下,寄存器中只有一个信号1,只要有时钟脉冲作用,1就在移位寄存器循环,环形计数器中各个触发器的Q端,将轮流地出现矩形脉冲。应用DFF设计的环形计数器电路图如图1所示。图18位自启动环形计数器电路图