1、附表 1:广州大学学生实验报告开课学院及实验室:物理与电子工程学院-电子楼 317 室 2016 年 4 月 28 日 学 院 物 电 年级、专业、班 姓名 Jason.P 学号实验课程名称 EDA 技术实验 成绩 实验项目名称 7 段数码显示译码器设计 指 导 教 师一、 实验目的:学习 7 段数码显示译码器设计;学习 VerilogHDL 的多层次设计方法。二、 实验内容:1、实验原理:7 段数码是纯组合电路,通常的小规模专用 IC,如 74 或 4000 系列的器件只能作十进制 BCD 码译码,然而数字系统中的数据处理和运算都是 2 进制的,所以输出表达都是 16 进制的,为了满足 16
2、 进制数的译码显示,最方便的方法就是利用译码程序在 FPGA/CPLD 中来实现。2、实验步骤:表 4-1 7 段译码器真值表 图 4-1 共阴数码管及其电路(1)首先按 7 段译码器真值表,完成 7 段 BCD 码译码器的设计。作为 7 段 BCD 码译码器,输出信号 LED7S 的 7 位分别接如图 4-1 数码管的 7 个段,高位在左,低位在右。例如当 LED7S 输出为“1101101”时,数码管的 7 个段:g、f、e、d、c、b、a 分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。 (2)设计该译码器,在 QuartusII 上对其进行编辑、编译、综合、
3、适配、仿真,给出其所有信号的时序仿真波形(提示:用输入总线的方式给出输入信号仿真数据)。引脚锁定及硬件测试。建议选实验电路模式 6,用数码 8 显示译码输出, 键 8/7/6/5 四位控制输入,硬件验证译码器的工作性能。图 4-2 7 段译码器仿真波形(3)将设计加入 4 位二进制计数器,经上面设计的 16 进制 7 段译码器显示。图 4-3 计数器和译码器连接电路原理图三、 实验 HDL 描述:计数器:module adder(CLK,RST,EN,LOAD,COUT,DOUT,DATA);input CLK,EN,RST,LOAD;input3:0 DATA;output3:0 DOUT;
4、output COUT;reg3:0 Q1;reg COUT;assign DOUT = Q1;always (posedge CLK or negedge RST) /CLK 上升沿、RST 下降沿触发beginif(!RST) Q1 = 0; /RST 为低电平时,Q1 为 0else if(EN) begin /EN 为高电平时,执行下步if(!LOAD) Q1 = DATA; /LOAD 为低电平时 Q1=DATAelse if(Q115) Q1 =Q1+1; /Q115,计数加 1else Q1 =4b0000; end /Q1 为其他值,计数置 0endalways (Q1)if
5、(Q1=4hf) COUT = 1b1; else COUT = 1b0; /Q1 为 15,COUT=1,否则为 0endmodule16 进制 7 段译码器:module DECL7S (A,LED7S);input3:0 A; output6:0 LED7S;reg6:0 LED7S;always(A)case(A)4b0000 : LED7S = 7B0111111;4b0001 : LED7S = 7B0000110;4b0010 : LED7S = 7B1011011;4b0011 : LED7S = 7B1001111;4b0100 : LED7S = 7B1100110;4b0
6、101 : LED7S = 7B1101101;4b0110 : LED7S = 7B1111101;4b0111 : LED7S = 7B0000111;4b1000 : LED7S = 7B1111111;4b1001 : LED7S = 7B1101111;4b1010 : LED7S = 7B1110111;4b1011 : LED7S = 7B1111100;4b1100 : LED7S = 7B0111001;4b1110 : LED7S = 7B1111001;4b1111 : LED7S = 7B1110001;default : LED7S = 7B0111111;endca
7、seendmodule四、仿真结果:7 段数码显示译码器仿真测试结果A 为输入的数,LED7S 输出对应的译码结果(与 7 段译码器真值表一致)计数器仿真测试结果含异步清零和同步时钟使能的加法计数器,CLK 为上升沿时,DOUT 计数(EN=LOAD=RST=1);EN 为低电平时 DOUT 保持当前数值(LOAD=RST=1);EN 为高电平且 CLK 为上升沿时触发 DOUT 计数(LOAD=RST=1)。LOAD 为低电平且 CLK 为上升沿时,DOUT 置为 DATA 值(EN=RST=1)。RST 为低电平时,DOUT 置为 0,与 CLK 是否为上升沿无关。DOUT 值计满 15
8、时 COUT 置 1,DOUT 为其他值时 COUT 为 0。组合电路(计数器+译码器)仿真测试结果计数器和译码器连接的电路,led 的译码输出和真值表相符合。en 为低电平且 clock 为上升沿时 led 保持,en 为高电平且 clock 为上升沿时 led 显示的数字加一。load 为低电平且 clock 为上升沿时,led 显示 data 的数值。rst 为低电平时,led 显示数字 0,与 clock 上升沿时间无关。Led 显示到数字 15 时 cout 为 1,led 显示其他数值时,cout 为 0。五、引脚锁定:六、硬件测试结果:模式 6:en(键 8 控制)为低电平,保持
9、显示数字 3 计数满 15(显示为 F)LED-D8(cout)亮 rst(键 7 控制)为低电平,清零七、实验心得:通过本次实验,对 QuartusII 有了进一步的学习和认识,对 Verilog 也有了深入了解。学会了 7 段数码显示译码器的 Verilog 硬件设计,学习了 VHDL 的 CASE 语句应用及多层次设计方法。实验中,要对每一个功能模块做时序仿真,检验是否符合设计需求,最后综合起来做仿真测试,确认无误后再下载到目标机上进行硬件测试。做实验时要耐心、认真,遇到问题争取自己解决,这样才能锻炼自己,提升自己。说明:各学院(实验中心)可根据实验课程的具体需要和要求自行设计和确定实验报告的内容要求和栏目,但表头格式按照“实验项目名称”栏以上部分统一。