一、 实验目的
1. 学习理解LED动态显示的工作原理
2. 进一步掌握Verilog HDL层次化的设计方法。
3. 掌握Verilog HDL行为级描述与结构化描述方法。
4. 显示数值的数据输入模块、数据动态显示模块、信息可调整的动态显示顶层模块的设计与仿真。
二、 实验过程步骤
1、设计模块1:显示数值的数据输入display_decode
a.模块功能要求
八段数码管有两种不同的形式:一种是八个发光二极管的阳极都连在一起的,称之为共阳极八段数码管;另一种是八个发光二极管的阴极都连在一起的,称之为共阴极八段数码管。
以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。电平信号按照dp,g,e…a的顺序组合形成的数据字称为该字符对应的段码,常用字符的段码表如下图。
b.实验步骤
(1)利用wizard新建项目,所选器件为MAX II 系列型号为EPM1270T144C5N的器件。
(2)新建Verilog文件,名称与模块名一致,保存为display_decode.v。程序内容如下:
module display_decode(bd,y);
input [3:0]bd;
output [7:0]y;
reg [7:0]y;
always@(bd)
case(bd)
4'b0000: y=8'b00111111;
4'b0001: y=8'b00000110;
4'b0010: y=8'b01011011;
4'b0011: y=8'b01001111;
4'b0100: y=8'b01100110;
4'b0101: y=8'b01101101;
4'b0110: y=8'b01111101;
4'b0111: y=8'b00000111;
4'b1000: y=8'b01111111;
4'b1001: y=8'b01101111;
default:y=8'b00000000;
endcase