1成绩指导教师日期张歆奕五邑大学实验报告实验课程名称:电子系统EDA院系名称:信息学院专业名称:电子信息工程实验项目名称:学号显示电路设计班级:学号:报告人:2实验四:学号显示电路设计一、实验目的:1、学习基于VerilogHDL的设计,包括设计输入、设计处理、仿真和下载验证;2、学习基于状态机的设计法。二、七段码与数码管显示:开发板上用的是8位共阳数码管,低电平时亮,高电平时不亮。三、设计的源程序与说明:一个数码管的学号显示(HDL):modulexuehao_display(clk,rst,out);inputclk,rst;outputreg[6:0]out;reg[3:0]state;parameters0=4'd0,s1=4'd1,s2=4'd2,s3=4'd3,s4=4'd4,s5=4'd5,s6=4'd6,s7=4'd7;always@(negedgeclkornegedgerst)beginif(!rst)beginout=7'b1111111;state=s0;endelsecase(state)s0:beginout=7'b1111001;state=s1;end//1s1:beginout=7'b1111001;state=s2;end//1s2:beginout=7'b1000000;state=s3;end//0s3:beginout=7'b1111000;state=s4;end//7s4:beginout=7'b1000000;state=s5;end//0s5:beginout=7'b0110000;state=s6;end//3s6:beginout=7'b1000000;state=s7;end//0s7:beginout=7'b0010000;state=s0;end//9default:state=0;endcaseendendmodule说明:输出的那行数从右到左是a到g,数码管显示什么数值在后面备注里可以看到。一开始以为左边是a,使得数码管显示的数都反了方向。3八个数码管的学号显示(滚屏的HDL):modulexuehao_display(clk,rst,out0,out1,out2,out3,out4,out5,out6,out7);inputclk,rst;outputreg[6:0]out0,out1,out2,out3,out4,out5,out6,out7;reg[3:0]state;parameters0=4'd0,s1=4'd1,s2=4'd2,s3=4'd3,s4=4'd4,s5=4'd5,s6=4'd6,s7=4'd7;always@(negedgeclkornegedgerst)beginif(!rst)beginout0=7'b1111111;out1=7'b1111111;out2=7'b1111111;out3=7'b1111111;out4=7'b1111111;out5=7'b1111111;out6=7'b1111111;out7=7'b1111111;state=s0;endelsecase(state)s0:beginout0=7'b1111001;state=s1;end//1s1:beginout0=7'b1111001;out1=7'b1111001;state=s2;end//11s2:beginout0=7'b1000000;out1=7'b1111001;out2=7'b1111001;state=s3;end//110s3:beginout0=7'b1111000;out1=7'b1000000;out2=7'b1111001;out3=7'b1111001;state=s4;end//1107s4:beginout0=7'b1000000;out1=7'b1111000;out2=7'b1000000;out3=7'b1111001;out4=7'b1111001;state=s5;end//11070s5:beginout0=7'b0110000;out1=7'b1000000;out2=7'b1111000;out3=7'b1000000;out4=7'b1111001;out5=7'b1111001;state=s6;end//110703s6:beginout0=7'b1000000;out1=7'b0110000;out2=7'b1000000;out3=7'b1111000;out4=7'b1000000;out5=7'b1111001;out6=7'b1111001;state=s7;end//0s7:beginout0=7'b0010000;out1=7'b1000000;out2=7'b0110000;out3=7'b1000000;out4=7'b1111000;out5=7'b1000000;out6=7'b1111001;out7=7'b1111001;state=s0;end//9default:state=0;endcaseendendmodule说明:数码管滚屏效果用8种状态来实现,它体现的是状态机的思想方法。六、心得体会:一个数码管的学号显示比较易弄,只要不模板上的数改成自己的就行了。多个数码管实现滚屏效果的实现方法则用到了老师上课讲的4状态机的概念。只要知道实现原理,还是不难弄出来的。最后那个程序上课时复位的那行还没写好,回到宿舍后才把它补上。