实验二---7段数码显示译码器(共5页).doc
精选优质文档-倾情为你奉上实验二 7段数码显示译码器【实验目的】1. 设计七段显示译码器,并在实验板上验证2. 学习Verilog HDL文本文件进行逻辑设计输入;3. 学习设计仿真工具的使用方法;【实验内容】1. 实现BCD/七段显示译码器的“ Verilog ”语言设计。说明:7段显示译码器的输入为:IN0IN3共5根, 7段译码器的逻辑表同学自行设计,要求实现功能为:输入“ 015 ”(二进制),输出“ 09F ”(显示数码),输出结果应在数码管(共阴)上显示出来。2. 使用工具为译码器建立一个元件符号3. 设计仿真文件,进行验证。4.编程下载并在实验箱上进行验证。【实验原理】7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的。为了满足16进制数的译码显示,利用Verilog译码程序在FPGA/CPLD中来实现。首先要设计一段程序,该程序可用case语句表述方法,根据真值表写出程序。设输入的4位码为IN3:0,输出控制7段共阴数码管的七位数据为led76:0。首先完成7段BCD码译码器的设计。本实验中的7段译码管输出信号led7的7位分别接数码管的7个段,高位在左,低位在右。如当LED7输出为“”时,数码管的7个段:a,b,c,d,e,f,g分别接1、1、1、1、0、1、1;接有高电平的段发亮,于是数码管显示“9”。【共阴数码管】 【程序源代码】(加注释)module LED7(IN,led7);input 3:0 IN; /定义LED7的4位数据输入端口output 6:0 led7;/ 定义LED7的7位数据输出端口reg6:0 led7; /定义一个模块内部的暂存变量led76:0always (IN) begin /主块开始case(IN)4'b0000: led7<=7'b;/输入为“0”时, 数码管显示“0”4'b0001: led7<=7'b;/以下同理4'b0010: led7<=7'b;4'b0011: led7<=7'b;4'b0100: led7<=7'b;4'b0101: led7<=7'b;4'b0110: led7<=7'b;4'b0111: led7<=7'b;4'b1000: led7<=7'b;4'b1001: led7<=7'b;default: led7<=0; /输入不在“09”时,数码管显示“0”endcaseend /主块结束endmodule【RLT电路】【仿真和测试结果】 功能分析:在仿真结果中,输入IN采用十进制形式,输出led7采用二进制形式。如图当输入为“1”时,相应的输出为“”。输入与输出的关系与表4-12 BCD七段译码器真值表相对应。【管脚分配】分析:图中输入为“0011”,其中,“1”对应的灯亮,“0”对应的灯不亮。LED7相应的输出为“”时,数码管的7个段:a,b,c,d,e,f,g分别接1、1、1、1、0、0、1;接有高电平的段发亮,于是数码管显示“3”。【实验心得和体会】通过实验,我能将从书本上学到的知识应用于实践,学会了如何使用Verilog HDL文本文件进行逻辑设计输入源程序及仿真工具的使用方法,但在实验中也遇到了不少问题,多愧老师的指导。同时,我明白了:在我们遇到不明白的问题时首先应独立思索,若自己实在无法解决,要及时请教于老师和同学,并能充分利用图书馆的资料,搜索查找所需信息。俗话说:熟能生巧,我相信只要我练习,多思索,就会有进步。专心-专注-专业