译码器实验
参考设计
实验材料中给出了一个2-4译码器的设计。虚拟面板如图 1。
图 1. 2-4译码器的虚拟面板
实验内容和要求
-
用HDL设计七段译码器模块,按照如下端口声明编写。
module SevenSegDecode ( input wire [3:0] iData, output logic [7:0] oSeg );
输入是4位二进制数,输出是与输入数值相对应的数码管段码,要求包含小数点但小数点不亮,0~F共16个数据的显示效果如图 2。编写完成后保存文件,文件名与模块名相同,即SevenSegDecode.sv。
图 2. 七段数码管字形
-
实例化七段译码器模块。
打开第一个实验的VirtualBoard.sv模板文件,将实例化七段译码器的代码添加到该模块内,如下。
//七段译码器模块实例化 SevenSegDecode ssd_inst(.iData(S[11:8]), .oSeg(SD1)); //用LED显示8个段的电平值 assign L[7:0] = SD1;
可以看到,这条语句实例化七段译码器模块,也就是将SevenSegDecode模块的端口与VirtualBoard模块中的信号连接起来;具体说来就是将4个拨动开关S11~ S8连接到七段译码器模块的输入端口iData;译码输出oSeg连接到七段数码管SD1。同时用LED指示灯显示每个段的电平值。
-
编译成功后在实验平台验证。
-
【选做】修改七段译码器模块,使其能显示“P”、“L”等尽可能多的字符。提示:输入改为5位二进制,虚拟面板增加一个开关。所扩充字符的5位编码自己规定,但0~F十六个编码要与基本任务要求一致。