一、 实验要求
1. 编码/译码器的设计与实现;比较器的设计与实现;全加器的设计与实现;
2. 在Quartus II 环境下,运用Verilog HDL 语言进行编程开发,并完成对电路工作情况的仿真模拟;
3. 完成配置程序的下载,并在开发板上对程序进行功能验证。
二、 实验过程步骤
1、设计模块1:四线—二线优先编码器pre_encode4_2
a.模块功能要求
编码器通常分为两大类:普通编码器和优先编码器。其中普通编码器就是对某一个给定时刻只能对一个输入信号进行编码的编码器,它的输入端口不允许同一时刻出现两个以上的有效输入信号;优先编码器就是对某一个给定时刻只对优先级最高的输入信号进行编码的编码器,它的输入端口允许多个输入信号同时有效。
通常,四至二线编码器的真值表如下表所示。该编码器的工作原理为:编码器将对四个输入信号进行编码操作,然后以两位二进制码的形式输出,这里输入信号为低电平有效。
D3 | D2 | D1 | D0 | Q1 | Q0 |
0 | × | × | × | 1 | 1 |
1 | 0 | × | × | 1 | 0 |
1 | 1 | 0 | × | 0 | 1 |
1 | 1 | 1 | 0 | 0 | 0 |
b.实验步骤
(1)利用wizard新建项目,所选器件为MAX II 系列型号为EPM1270T144C5N的器件。
(2)新建Verilog文件,名称与模块名一致,保存为pre_encode4_2.v。程序内容如下:
module pre_encode4_2(d,q);
input [3:0]d;
output [1:0]q;
reg [1:0]q;
always@(*)
if(~d[3])
q=2'b11;
else if(~d[2])
q=2'b10;
else if(~d[1])
q=2'b01;
else
q=2'b00;
endmodule
(3)将pre_encode4_2.v设为顶层实体后编译,纠错直至编译成功。
(4)新建仿真文件Vector Waveform File,保存为pre_encode4_2.vmf。在左侧节点区右击,Insert→Insert Node or Bus→Node Finder,Filter一栏选中“所有管脚”后,点击List,再点击全选,将左侧所有节点全部添加至右侧Selected Nodes窗口中。
(5)首先根据仿真需求,在Edit→End Time中设置所需仿真时间。本实验中设为5us。然后将D3、D2、D1、D0分别设为周期为3.2us、1.6us、800ns、400ns的clock信号,输入波形如下图所示