学号姓名译码器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学
实
验
报
告
学生姓名:
学号:
指导教师:黄敏
实验地点:主楼C2-514
实验时间:(1班)
一、实验室名称:虚拟仪器实验室
二、实验项目名称:3-8 译码器实验
三、实验学时:4学时
四、实验原理
开发板上共四个按键:SW3~SW6,其中SW3 为总开关;SW4、SW5、SW6 作为三个译码输入。本实验 3-8 译码器所有的接口如下。
计算机(安装Quartus II & 软件平台);
2. Cyclone IV FPGA开发板一套(带Altera USB-Blaster下载器)。
八、实验步骤
(1)新建工程,设置器件属性:在Quartus II 平台中,新建一个工程(注意命名规范),在“Family”中选择“Cyclone IV E”系
列,“Available device”中选择具体型号“EP4CE6E22C8”,设置
好器件属性。在 EDA Tool Settings 页面中,可以设置工程各个
开发环节中需要用到的第三方(Altera 公司以外)EDA 工具,我
们只需要设置“Simulation”工具为“ModelSim-Altera”,Format
为“Verilog HDL”即可,其他工具不涉及,因此都默认为
(详见实验指导书)
(2)Verilog源码文件创建与编辑:点击菜单栏的“File→New…”,然后弹出如图所示的新建文件窗口,在这里我们可以选择各种需
要的设计文件格式。可以作为工程顶层设计文件的格式主要在
Design Files 类别下,我们选择 Verilog HDL File(或者 VHDL
File)并单击 OK完成文件创建。将新建的文件保存后通过菜单栏
“Project→Add/Remove Files in Project”将刚刚创建的文件
加入新建的工程中,点击“Add”加入后选择OK按钮。(详见实验
指导书)
(3)Modelsim仿真验证:将工程编译,无误后,采用第三方EDA仿真工具Modelsim进行仿真。1)设置路径:点击Tools →
Options…”,进入选项卡“General EDA Tool Options”,设置
“Modelsim-Altera”后面的路径,即我们安装 Modelsim 时的路
径;2)完成测试脚本创建与编辑;3)测试脚本关联设置;4)调
用Modelsim进行功能仿真和时序仿真。(详见实验指导书)(4)管脚分配:根据文档“SF-CY4 FPGA学习板原理图”对3-8译码器的进行引脚分配。(详见实验指导书)
(5)综合、实现与配置文件产生综合。(详见实验指导书)
(6)FPGA在线下载配置:1)连接开发板并给开发板供电;2)开启Programmer 界面;3)识别 USB-Blaster;4)执行在线下载操作。
(详见实验指导书)
(7)拨动开发板对应按钮,观察输出是否符合预期。
(8)给开发板断电,清理器件,实验结束。
九、实验数据及结果分析
用Verilog HDL语言编写3-8译码器源码如下:
module txt1(
input ext_clk_25m,
input ext_rst_n,
input [3:0] switch,
output reg[7:0] led
);
always@(posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n)
led<=8'hff;
else if(switch[0])
led<=8'hff;
else begin
case(switch[3:1])
3'b111:led<=8'b1111_1110;
3'b110:led<=8'b1111_1101;
3'b101:led<=8'b1111_1011;
3'b100:led<=8'b1111_0111;
3'b011:led<=8'b1110_1111;
3'b010:led<=8'b1101_1111;
3'b001:led<=8'b1011_1111;
3'b000:led<=8'b0111_1111;
default:;
endcase
end
endmodule
TestBench源码如下:
parameter PERIOD=40;
always begin
#(PERIOD/2) ext_clk_25m=0;
#(PERIOD/2) ext_clk_25m=1;
end
initial begin
ext_rst_n=0;
switch=4'b0000;
#10000;
ext_rst_n=1;
end
always #100 switch[0]=~switch[1];
always #40 switch[3:1]=switch[3:1]+1;
提供仿真波形并对波形进行文字说明:
功能仿真总体波形图1(波形上同时体现switch[0] = 1和switch[0] = 0两种情况):
功能仿真波形图2(switch[0] = 1)
当switch[0] = 1时,无论输入switch[3:1]如何变化,输出
led始终保持不变,即所有的灯不亮。