数字钟实验报告
学生专业:电子信息工程
学生班级:151143C 学生学号:********* 学生姓名:***
7段显示译码器设计
151143324 ***
一、 实验目的:
学习七段数码显示译码器设计,多层次设计方法和总线数据输入方式的仿真。 二、 实验原理:
7段BCD码译码器的设计,输出信号Segmentout的7位分别接数码管的7个段,高位在左,低位在右。例如当Segmentout输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示数字“5”。
如果是共阳极的数码显示器,则8段输出应取反,段显码为“10010010”,使用时要注意数码管的接法。
实际产品设计中,一般会用到多个数码管,显示几位数字。
4位数的7段数码管,4位数字共用同样的段输出。若只想让第一个位显示,其他的位不显示,那么可以只给第一位数字供电,其他的断电,用4LED来控制的,4LED输出0001即可,若只让第二位显示则4LED输出0010即可。这里的4LED选择控制要显示的位,称为位选。
三、 实验内容:
module BCD_Segment7(BCDin,Segmentout,Select); input [3:0]BCDin; output Select;
output [6:0]Segmentout; reg [6:0]Segmentout; always@(BCDin) begin case(BCDin)
4'h0:Segmentout=7'b1000000; 4'h1:Segmentout=7'b1111001; 4'h2:Segmentout=7'b0100100; 4'h3:Segmentout=7'b0110000; 4'h4:Segmentout=7'b0011001; 4'h5:Segmentout=7'b0010010; 4'h6:Segmentout=7'b0000010; 4'h7:Segmentout=7'b1111000; 4'h8:Segmentout=7'b0000000; 4'h9:Segmentout=7'b0010000; 4'hA:Segmentout=7'b0001000;
4'hB:Segmentout=7'b0000011; 4'hC:Segmentout=7'b1000110; 4'hD:Segmentout=7'b0100001; 4'hE:Segmentout=7'b0000110; 4'hF:Segmentout=7'b0001110; default:Segmentout=7'bxxxxxxx; endcase end
assign Select=1'b0; endmodule 四、 时序仿真波形:
引脚设定
时序仿真波形参考设置:
1、设置仿真时间。选择End time,获得适当的仿真时间
域,例如100us;2、BCDin可采用步进加1,加1周期可设置为20ns。设置方法:在波形文件中选中输入端口BCDin,在波形左侧“Customize Waveform Editor(自定义波形编辑器)”中单击“Overwrite Count Value(重写计数值)”,在弹出“Count Value”对话框中,设置如下图一和图二所示。
设置一
设置二
仿真结果如下图所示:
每当计数计到第十六个脉冲时,BCDin从F复位到0,对应的七段译码Segmentout从1110001(显示F)变为0111111(显示为0)。
仿真结果图
五、 实验过程中遇到的问题及解决方法
问题:在进行仿真时,由于对仿真操作和过程不熟悉,将仿真时间设置的过长,导致仿真结果迟迟无法显示,导致实验时间过长。
解决办法:通过查看书本,阅读书籍或者向老师和同学请教相关问题发现仿真时间设置不当,在修改仿真时间后,实验顺利进行。
六、 实验总结:
通过本次实验课的时间,我对Quartus Ⅱ软件的应用更为熟练,对Verilog语言的掌握更加熟悉,了解了EDA应用的开发过程,对FPGA开发板的结构更加熟悉。
在实验中,我遇到了很多问题和困难,虽然很劳累,但是感觉很充实。我做的实验还有很多问题和不足,这也让我明白只有扎实的理论知识才会在实践中取得理想的效果;同时,也只有在实践中才能真正感受到课堂上学的知识的作用,当七段显示译码器成功显示时,个人的成就感无疑是巨大的,增加了我对EDA课程的兴趣和信心。