暑期FPGA培训实验报告————BCD码—七段数码管显示译码器一、实验设计利用软件QuartusII,Modelsim及DE0开发板完成译码器的仿真及下载,其中使用VerilogHDL硬件描述语言完成其源代码。译码器将一位BCD码0—9用DE0开发板的数码管显示。二、实验原理发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。图4-17(a)是共阴式LED数码管的原理图,图4-17(b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控制),如图4-17(c)所示。(摘自百度文库)(图片来自百度)BCD码—七段数码管显示译码器是将一位BCD码(输入用图中A,B,C,D)翻译为数码管上对应显示的十进制数字。例如:输入为4’b0000时,则显示为g号二极管灭,其他为亮,则可显示为数字0。其实BCD码—七段数码管显示译码器即为4-7线译码器,只是将它显示在数码管上而已。其(数码管为共阴极)真值表如下图:(图片来自百度)*由于DE0开发板的数码管为共阳极则需要将上表的真值取反。三、源代码及testbenchdecode4_7.vmoduledecode4_7(decodeout,indec);output[6:0]decodeout;input[3:0]indec;reg[6:0]decodeout;always@(indec)begincase(indec)//用case语句进行译码4'd0:decodeout=7'b0000001;//由于为共阳极数码管则真值如此4'd1:decodeout=7'b1001111;4'd2:decodeout=7'b0010010;4'd3:decodeout=7'b0000110;4'd4:decodeout=7'b1001100;4'd5:decodeout=7'b0100100;4'd6:decodeout=7'b0100000;4'd7:decodeout=7'b0001111;4'd8:decodeout=7'b0000000;4'd9:decodeout=7'b0000100;default:decodeout=7'bx;endcaseendEndmoduledecode4_7_testbench.vmoduledecode4_7_testbench;reg[3:0]indec;wire[6:0]decodeout;laU0(decodeout,indec);initialbeginindec=4'b0;#10$stop;endalwaysbegin#1indec=indec+1'b1;endendmodule四、实验操作1、打开QuartusII建立工程,配置实验板为CycloneIII.EP3C16F484C6,设置第三方仿真软件为Modelsim-Altera。2、建立新文件File-New-VerilogHDLFile,输入源代码保存文件为decode4_7.v*红方框中须一样3、重复2建立新文件,输入testbench代码,并保存为decode4_7_testbench.v*红方框中须一样4、打开Assignment-Setting接着如图流程:点击Add-OK.4、编译5、仿真5、下载,将引脚分配好,将DE0板利用USB线接在PC上,操作如图:输出引脚分配情况分配好之后在再进行一次编译,接着点击programmer操作结束五、实验小结在本次实验中,我个人感觉操作的规范化比较重要,如果操作不规范不仅使操作步骤繁琐,也有可能带来错误。其次是理解代码含义,了解BCD-七段数码管显示译码器的作用,清楚共阴极,共阳极的差别。我想本次实验掌握这些后应该可以比较顺利完成任务。