文档介绍:成绩
指导教师
日期
张歆奕
五邑大学实验报告
实验课程名称:
电子系统EDA
院系名称: 信息学院
专业名称: 电子信息工程
实验项目名称: 学号显示电路的设计
班级: 学号:
报告人:
实验二学号显示器
一、实验目的
1、练****使用Verilog HDL语言设计实现数字电路。
2、练****利用Verilog HDL语言和状态机设计电路。
3、熟悉EDA开发基本流程。
4、掌握多个数码管动态扫描显示的原理及设计方法。
二、实验原理
用数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。数码管由7段显示输出,利用7个位的组合输出,就可以形成部分英语字母和0~9十个数字的显示。共阴数码管0~9和常见字母的7段显示关系如图1所示:
(共阳数码管对共阴取反)。
图1
三、设计任务
设计任务(一)
1、用Verilog HDL设计单个数码管顺序显示学号(按一次按键,显示下一位学号字符);
2、对设计进行仿真;
3、锁定管脚并下载到开发板进行验证。
设计任务(二)
1、用Verilog HDL设计八个数码管显示学号,并向左或者向右滚屏;
2、对设计进行仿真;
3、锁定管脚并下载到开发板进行验证。
四、设计源程序和说明
设计任务(一)学号显示源程序
module xuehao_display(clk,rst,out);
input clk,rst;
output reg[6:0] out;
reg[3:0] state;
parameter s0=4'd0,s1=4'd1,s2=4'd2,s3=4'd3,s4=4'd4,s5=4'd5,s6=4'd6,s7=4'd7;
always@(posedge clk or negedge rst)
begin
if(!rst) begin out =7'b1111111;state=s0;end
else
case(state)
s0:begin out=7'b0110000;state<=s1;end//显示1
s1:begin out=7'b1101101;state<=s2;end//显示2
s2:begin out=7'b1111110;state<=s3;end//显示0
s3:begin out=7'b1110000;state<=s4;end//显示7
s4:begin out=7'b1111110;state<=s5;end//显示0
s5:begin out=7'b1101101;state<=s6;end//显示2
s6:begin out=7'b1111110;state<=s7;end//显示0
s7:begin out=7'b1011011;state<=s1;end//显示5
default:state<=0;
endcase
end
endmodule
程序详解:这是一个非常简单的程序,定义8个输出变量,然后给他们赋值,使他们分别为12070205,然后通过数码管显示出来。
设计任务(二)滚屏显示源程序
用8个数码管显示学号,并滚屏
设计源程序:
module GunPingXianShi (H0,H1,H2,H3,H