电子 科 技 大 学
学生姓名: | 实验报 | 告 | 指导教师:王振松 |
学 号: | |||
一、实验室名称: | 现代测试技术实验室 |
二、实验项目名称: 3位十六进制七段数码显示管设计
三、实验原理:
对4个7段LED数码管的每个LED显示屏都是按照一个“数字8”的模式安排了7个发光二极管组成部分。每段LED可以单独照明,这7个
段的每个 LED 的阳极是连接在一起 ,成为一个共同的阳极电路节 |
|
点,但LED的阴极保持独立。如需要每一位显示不同的数字,则需利用人眼的视觉残留效应进行动态刷新显示,以30次/秒的速度以此显示4
个十六进制数。所以是s[1:0]的数值必须以此速度从0~3计数。同时输出an[3:0]的数值必须和s[1:0]同步,这样就保证在正确的时间显示正确的数字。当然同时要使用使能端控制第三位数码管使其熄灭。
四、实验目的:
1.进一步熟悉 Xilinx 公司EDA开发系统软件平台的操作。
2.学会将50M的晶振经多次分频后得到低频脉冲信号。3. 学会用 VerilogHDL 中的case语句来创建七段译码器。
4. 学会使用原理图作为顶层图实现数字电路。
5. 掌握数码管动态扫描显示技术。6. 学会用 BASYS2 FPGA开发板下载执行并验证代码。
五、实验内容:
1)利用HDL代码输入方式在XilinxISE 13.4 平台上实现一个 十六进制七段数码显示管设计;
2)使用原理图作为顶层图实现数字电路,使用模块实例语句 连接前面所设计的七段译码器模块;
3)生成比特流文件下载到开发板上进行验证。
六、实验器材(设备、元器件):
1)计算机(安装 XilinxISE 13.4 软件平台);
2)BASYS2 FPGA 开发板一套(带 USB-MiniUSB 下载线)。
七、实验步骤:
1、在 Xilinx ISE 13.4 | 平台中,新建一个工程 | LED 。我们选用的 |
BASYS2 FPGA 开发板采用的是CP132 封装,设置好器件属性。
Spartan3EXC3S100E芯片和
2、在工程管理区任意位置单击鼠标右键,在弹出的快捷菜单中选择
“New Source”命令,弹出新建源代码对话框,这里我们选择“Verilog
Module”类型,输入 Verilog文件名。ISE会自动创建一个 Verilog的
模板,并在源代码编辑区打开,接下来的工作就是将代码编写完整。
完整代码如下:
moduleLED(
input i0, | input i1, | input i2, | input i3, |
output reg [7:0] o
);
wire[3:0] i;
assigni[0]=i0; assign i[1]=i1;
assign i[2]=i2; assign i[3]=i3;
//七段数码管
always@(*)
case(i) //控制表达式
0:o=8'b00000011; //分支表达式
1:o=8'b10011111;
2:o=8'b00100101;
3:o=8'b00001101;
4:o=8'b10011001;
5:o=8'b01001001;
6:o=8'b01000001;
7:o=8'b00011111;
8:o=8'b00000001;
9:o=8'b00001001;
'hB:o=8'b11000001; 'hA:o=8'b00010001;
'hC:o=8'b01100011;
'hD:o=8'b10000101;
'hE:o=8'b01100001;
'hF:o=8'b01110001;
default:o=8'b00000011;
endcase
endmodule
保存后 ,在ISE 左侧菜单的DesignUtilities 里点击 CreatSchematic Symbol 生成电路模块 ,这样,我们自己设计的一块译码器电路就完成
了,如果编译有错误,反复修改直至成功。
3、接下来设计一个顶层电路,实现我们需要的功能。
在项目中添加“NewSource”,选择“Schematic”类型,则进入原理
图设计阶段。软件在左侧的Symbols栏中提供大量的芯片库供使用。
接下来再连上 7段码译码器就可以驱动数码管显示了 ,在symbols
里面选择当前的工作目录就可以看到我们设计的译码器 led7segment,
加入电路,再增加若干个输入、输出端口
,这个电路就设计好了。
接下来要将电路图与实际开发板引脚绑定 | ,需要加入引脚定义文件 | , |
New source->Implementation Constraints File, 加入后缀为 ucf 的引脚
定义文件 ,或在项目中双击进入向导。
I/Opin planning)PlanAhead)-Pre-Synthesis
最终生成的 ucf 引脚定义文件如下:其中 ,NET "CLK"LOC = "B8"; 的含
义为将项目中的CLK 线绑定在开发板的“B8”脚 ,具体引脚可见开发板
上的字。
接下来生成电路文件 ,点击 GenerateProgramming File, 经过漫长的等
待,将会出现绿色钩,表示成功了。
4、选择sch项目下的design一栏,点击ConfigureTarget Device,展
开二级菜单,双击ManageConfigure Processes,打开ISEImpact,双
击BoundaryScan。
在右侧空白处右击,选择
Initialize Chains,选择“是”,打开对应的
bit 文件 | |
最后右击器件,选择 Program将程序下载到开发板上并检查结果。
八、实验数据及结果分析:
实验仿真结果证明了设计的正确性,该设计是合理的, 能够满足
实验所需的。设计的数码显示管可以完美显示十六进制数,并且通过
一些简单的改动还可以改变亮、灭灯的个数, 同时也可以改变逻辑开
关输入的高低位,出色地完成了实验要求的同时还具有一定的扩展性。
九、实验结论:
3位十六进制七段数码显示管由数选、位选、分频器和七段译码
器组成,通过四位二进制输入来显示十六进制的数。
十、总结及心得体会:
报告评分:
指导教师签字: