当前位置:文档之家› 十六进制七段数码显示译码器

十六进制七段数码显示译码器

十六进制七段数码显示译码器
一、实验目的:学习7段数码显示器的Verilog硬件设计。

二、实验原理:7段数码显示器是纯组合电路。

通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD码译码器(其真值表如图(1)所示),然而数字系统中的数据处理和运算都是二进制的,所以输出表达式都是十六进制的,为了满足十六进制的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中来实现。

所以首先要设计一段程序。

设输入的4位码为A[3:0],输出控制7段共阴数码管(如图(2)所示)的7位数据为LED7S[6:0]。

输出信号LED7S 的7位接共阴数码管的7个段,高位在左,低位在右。

例如当LED7S 输出为“1101101”时,数码管7个段g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。

这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。

图(1)7段译码器真值表
0100 1100110 4 1100 0111001 C 0101 1101101 5 1101 1011110 D 0110 1111101 6 1110 1111001 E 0111 0000111 7 1111 1110001 F
图(2)7段共阴数码管
三、实验任务:将设计好的Verilog译码器程序在Quartus II上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形图(注意仿真波形输入激励信号的设置)。

提示:设定仿真激励信号是用输入总线的方式给出输入信号的仿真数据。

四、实验步骤:
(一)、建立工作库文件和编辑设计文文件
任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。

(1)新建文件夹:我的习惯在D盘建立并保存工程,我将文件夹取名Test,
(2)输入源程序:打开Quartus II,选择菜单File-->New-->Design Files-->VerilogHDL File-->OK(如图1所示)
代码如下:
module DECL7S(A,LED7S);
input[3:0] A;
output[6:0] LED7S;
reg[6:0] LED7S;
always@(A )
case(A)
4'b0000 :LED7S<=7'b0111111;
4'b0001 :LED7S<=7'b0000110;
4'b0010 :LED7S<=7'b1011011;
4'b0011 :LED7S<=7'b1001111;
4'b0100 :LED7S<=7'b1100110;
4'b0101 :LED7S<=7'b1101101;
4'b0110 :LED7S<=7'b1111101;
4'b0111 :LED7S<=7'b0000111;
4'b1000 :LED7S<=7'b1111111;
4'b1001 :LED7S<=7'b1101111;
4'b1010 :LED7S<=7'b1110111;
4'b1011 :LED7S<=7'b1111100;
4'b1100 :LED7S<=7'b0111001;
4'b1101 :LED7S<=7'b1011110;
4'b1110 :LED7S<=7'b1111001;
4'b1111 :LED7S<=7'b1110001;
default :LED7S<=7'b0111111;
endcase
endmodule
(3)保存文件:完成一步就保存一步是一个好习惯,这样即使出现意外情况,也不至于以前的努力付诸东流。

选择File-->Save as,选择保存路径,即刚才新建的文件夹Test,文件名应与实体名保持一致,即DECL7S,点击保存后会跳出“Do you want to create a new project with this file”选择“是”,则进入如下界面
点击Next,进入“工程设置”对话框,如图所示
第一行表示工程所在的文件夹,第二行为工程名,可以与顶层文件的实体名保持一致,也可以另取别的名字,第三行为当前工程顶层文件的实体名。

点击next,进入ADD FILE对话框,如图所示,单击Add All 按钮,将工程相关的所有VHDL文件加进工程,也可以单击“Add...”选择
性加入,按此步骤建立工程,工程已经自动将所有文件加进去了,可以直接点击next,当先直接建立工程时,需要自己添加
(4)选择目标芯片:我们选用的是CycloneIII系列的EP3C55F484C8,在Family栏选择芯片系列——CycloneIII,在窗口右边的三个下拉列表框选择过滤条件,分别选择Package为FBGA、Pin count为484和Speed grade为8,点击Next,如图所示
(5)工具设置:进入EDA工具设置窗口,有三个选项,分别是选择输入的HDL类型和综合工具、选择仿真工具、选择时序分析工具,这是除Quartus II自含的所有设计工具以外的外加的工具,如果不作选择的,表示仅选择Quartus II自含的所有设计工具,本次不需要其他的设计工具,可以直接点击Next
(6)结束设置:进入“工程设置统计”窗口,列出了与此工程相关的设置情况,设置完成,点击Finish
(二)、编译
配置好后就可以进行编译了,点击Processing Start Compilation命令启动全程编译
编译成功后的界面如图所示
(三)时序仿真
(1)打开波形编辑器:File-->New-->Verification/Debugging Files-->Vector Waveform-->OK,即出现空白的波形编辑器,如图所示
(2)设置仿真时间区域:Edit-->End Time在Time栏中输入50,单位选择“us”,点击确定并保存波形文件
(3)将工程DECL7S的端口信号名选入波形编辑器中:View-->Utility windows-->Node Finder,在Filter框中选Pins:all(通常是默认选项),然后点击List,则显示出了所有引脚,如图所示
将重要的端口名拖进波形编辑器后关闭窗口
(4)编辑输入波形:
首先进行总线数据格式设置和参数设置:点击输入数据信号A的左边的+号,能展开此总线中的所有信号;如果双击此+号左边的信号标记,将弹出对该信号数据格式设置的Node Properties对话框,在该对话框的Radix下拉列表中有四种选择,这里可选择十六进制Hxadecimal表达方式。

其次输入波形数据:由于A是4位待加载的输入数据,需要设置输入数据。

用鼠标在图所示信号名A的某一数据区拖拉出来一块蓝色区域,然后单击左侧工具栏的问号()按钮,在弹出窗口输入数据,如
0.继而在不同区域设置不同数据。

这里为方便观察,输入的数据依次是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E。

如图所示
(5)仿真
仿真器参数仿真:选择Assignment Settings命令,在Settings窗口下选择Category Simulator Settings。

在右侧的Simulation mode下拉列表中选择Timing,即选择时序仿真,并选择仿真激励文件名。

选择Simulation Period栏,确认选中了“Run simulation until all vector stimuli are used”。

启动仿真器:Processing-->Start Simulation ,直至出现Simulation was successful,仿真结束,然后会自动弹出“Simulation Report”,点击输出信号“LED7S”旁边的“+”,展开总线中的所有信号,可以更利
于我们观察和分析波形,如图所示
(四)应用RTL电路图观察器
Tools-->Netlist Viewers-->RTL Viewer,结果如图所示
五、实验总结
经过几周的学习,我觉得FPGA的学习应该做好预习工作,最好提前安装一下Quartus II,提前练习程序编写应该有很大帮助。

相关主题