FPGA基于原理图的十进制计数器设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

****大学实验报告课程名称:基于FPGA的现代数字系统设计实验名称:基于原理图的十进制计数器设计姓名:****学号:******班级:电子****指导教师:**********大学信息工程学院2一、实验原理完成一个具有数显输出的十进制计数器设计,原理图如图2.1所示。图2.1十进制计数器原理图本实验为完成设计,采用了自底向上的设计流程。自底向上设计是一种设计程序的过程和方法,是在设计具有层次结构的大型程序时,先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。自底向上设计是从底层(具体部件)开始的,实际中无论是取用已有模块还是自行设计电路,其设计成本和开发周期都优于自顶向下法;但由于设计是从最底层开始的,所以难以保证总体设计的最佳性,例如电路结构不优化、能够共用的器件没有共用。在现代许多设计中,是混合使用自顶向下法和自顶向上法的,因为混合应用可能会取得更好的设计效果。一般来说,自顶向下设计方法适用于设计各种规模的数字系统,而自底向上的设计方法则更适用于设计小型数字系统。1、七段数码管译码器的设计七段数码管属于数码管的一种,是由7段二极管组成,数码管分为7段和8段,其中八段数码管比七十进制计数器七段数码管显示译码器使能控制端时钟端异步清零端FPGA3段数码管多一个发光二极管单元(多一个小数点显现)。按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阳数码管。它是指将一切发光二极管的阳极接到一同构成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到电源VCC上,当某一字段发光二极管的阴极为低电平相应字段就点亮。当某一字段的阴极为高电平相应字段就不亮。显示译码器,一般是将一种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。根据显示的要求,可以得到对于七段显示译码器产生的各段LED输出与输入的二进制码之间的真值表关系如表2-1所示。表2-1七段字符显示真值表数码输入输出对应码(h)A3A2A1A0ABCDEFG00000000000181100011001111CF2001000100109230011000011086401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B8设计此七段显示译码器可以通过逻辑化简后采用门电路的方式实现,也可以利用“最小项译码器+逻辑门”和“多路选择器”的方式实现。根据ISE提供的原理图符号库元件资源来看,建议采用“最小项译码器+逻辑门”的方案。最小项译码器输出能产生输入变量的所有最小项,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式,故采用译码器和门电路可实现任何单输出或多输出的组合逻辑函数。当译码器输出低电平有效时,一般选用与非门;当译码器输出高电平有效时,一般选用或门。本实验可以采用ISE软件自带的“Decoder”库中的4线-16线译码器D4_16E(带使能端,输出高电平有效)和“Logic”库中的16输入或门OR16。根据表2-1,可以绘制出关于数码管A段输出的逻辑电路图如图2.2所示。同理可绘制出剩余各段输出的逻辑图。将以上绘制好的电路图生成对应的原理图模块,再绘制一个新的原理图,调用刚生成的各段输出逻辑图的原理图模块,得到完整的七段显示译码器设计如图2.3所示。4图2.2regA原理图5图2.32、十进制计数器的设计十进制计数器可以直接调用ISE软件自带的“Counter”库中的十进制计数器CD4CE。CD4CE是一个同步十进制器,输入有异步清零控制端CLR、工作使能控制端CE和时钟输入端C,输出有BCD码计数值输出端Q3~Q0,进位输出端TC和输出状态标志位CEO。CD4CE的功能表如表2-2所示。最后完成的计数器总逻辑电路设计如图2.4所示,其中TC端直接输出驱动数码管的小数点段dp,作为进位标志位。表2-2CD4CE计数器功能表6图2.4十进制计数器总逻辑电路二、实验步骤1、设计七段译码显示电路新建一个工程,用led7命名。为工程新建一个原理图文件,命名为segA。采用“最小项译码器+逻辑门”的方案,调用ISE自带的元件符号,按图2.1所示绘制好数码管A段LED的驱动逻辑电路。并生成原理图模块符号,以便后面调用。使用相同的方法,按照下面各图搭建数码管B段LED、C段LED、D段LED、E段LED、F段LED、G段LED的驱动逻辑电路,并分别命名为regB、regC、regD、regE、regF、regG,生成各自的原理图模块符号。regA集成模块图7regB原理图regB集成模块图8regC原理图regC集成模块图9regD原理图regD集成模块图10regE原理图regE集成模块图11regF原理图regF集成模块图12regG原理图regG集成模块图再为工程新建一个原理图文件,命名为seg7,调用前面生成的A~G段输出函数模块符号,如图2.3所示绘制七段显示译码器原理图。生成模块符号,以便后面调用。.2、设计十进制计数器调用CD4CE计数器符号和seg7模块符号,绘制计数器顶层原理图(如图2.4)。13三、实验结果及分析在资源管理区将“View”设置为“BehavioralSimulation”,然后在任意位置单击鼠标右键,在弹出的菜单中选择“NewSource”命令,然后选中“VerilogTestFixture”类型,输入文件名为“test_segA”,点击Next进入下一页,编写仿真文件。编写好后在资源管理区中选中test_segA,在资源操作区中双击“XilinxISESimulator”下的“SimulateBehavioralModel”,启动ISESimulator执行仿真验证。1、regA的仿真文件initialbeginA=4'b0000;#10A=4'b0001;#10A=4'b0010;#10A=4'b0011;#10A=4'b0100;#10A=4'b0101;#10A=4'b0110;#10A=4'b0111;#10A=4'b1000;#10A=4'b1001;#10A=4'b1010;#10A=4'b1011;#10A=4'b1100;#10A=4'b1101;#10A=4'b1110;#10A=4'b1111;end2、十进制计数器仿真文件initialbegince=0;clr=0;clk=0;forever#10clk=~clk;endinitialbegin#50ce=1;#600clr=1;end14regA的仿真波形regB的仿真波形regC的仿真波形regD的仿真波形regE的仿真波形regF的仿真波形regG的仿真波形15Led7的仿真波形十进制计数器的仿真波形四、实验思考题解答1、叙述实验的具体步骤。答:新建一个工程、为工程新建一个原理图文件、建立TestBenchWaveForm、编辑修改激励波形、启动ISESimulator执行仿真、生成模块符号、调用CD4CE计数器符号和、模块符号,绘制计数器顶层原理图、为计数器顶层原理图编辑测试激励文件,执行功能仿真验证、执行综合、编辑引脚约束文件、执行实现、执行时序仿真验证、生成下载配置文件、准备硬件开发板,连接外围显示模块,连接好下载线、启动iMPACK完成下载配置,进行硬件验证。2、分析并说明本次实验所完成的工程文件结构关系。答:原理图文件led7是顶层文件,seg7是第二层文件,7个reg原理图文件是底层文件。3、记录本实验中所完成的FPGA资源耗用情况和运行时钟频率。164、如何分析仿真软件运行出的结果?答:根据输入,看输出是否和预期的理论值一样,输入的每种情况都要看,不遗漏。若结果与理论不和,返回修改原理图,直到与理论一致。4、在仿真激励信号的设计上组合电路和时序电路分别关注的重点是什么?为什么?答:组合电路关注的是当前的输入信号,时序电路关注的是当前输入信号和电路原来的状态。因为组合电路的输出只与当时的输入信号有关,而与其过去的状态无关。时序电路某一时刻的输出信号不仅与当时的输入信号有关,而且与电路过去的状态有关。五、体会

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功