EDA设计技术课程设计报告_第1页
EDA设计技术课程设计报告_第2页
EDA设计技术课程设计报告_第3页
EDA设计技术课程设计报告_第4页
EDA设计技术课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA设计技术课程设计报告电子科学与技术12级 潘蕾娜 学号501 设计思路1.1设计原理框图由实验目的,思考出以下原理框图: 计数器1功能键点阵LED显示屏定时器计数值行选择计数器 行选及列选1.1设计框图(1)功能键模块用于根据要求来显示学号或首字母;(2)计数器1模块用来控制每个数字显示的时间长短;(3)定时器用于产生足够高的刷新率,以至于可以动态显示及选择要显示的数字,当(2)中设定的计数值达到后,就可以换一数字;(4)通过LED的行选择计数器及列选,在显示屏上显示出要显示的数字,以实现学号的循环显示;1.2硬件的选择选择实验板为EPM240T100C5,开发环境采用Quartus I

2、I 9.0,仿真软件采用Quartus II 9.0的静态波形仿真和QuestaSim10.0。时钟输入选12MHZ,I/O14;其拨键开关,按键开关均为按下为低电平;蜂鸣器低电平发出叫声,若不使用就设置为高电平;1.3设计步骤及过程1.功能键模块(1)设计两个按键key_1,key_2,用来根据选择实现循环。(2)对两个按键输入异步信号用本地clk时钟寄存2拍后再用于判断电平状态,以避免亚稳态;(3)key_1,显示学号:2,0,1,2,5,0,4,4,0,5,0;key_2,显示姓名首字母缩写:P,L,N。2.定时器模块(1)首先选择刷新率:应满足人眼无闪烁的效果,以实现动态显示;(2)构

3、建一个定时14位模16384计数器cnt_14bit实现数码管动态刷新,刷新率f=12000000/ 214 /8=91Hz,可满足无闪烁需要。3.计数器模块(1)构建模8计数器led_No用于表明当前哪一行亮,cnt_14bit计满时led_No+1;(2)构建模24计数器cnt_24bit用于控制每个数字显示的时间,显示时间为0.7s,N=12000000*0.7=8400000.长度为0:8399999;当cnt_24bit计满时,显示下一个数字;(3)最后根据模8计数器 的值送到显示屏上合适的显示值;2 源代码设计及分析由以上的分析,编写出下列源代码:module num(clk,rs

4、t,key_1,key_2,dataout,led_bit,bell_out); /定义输入输出的端口名input clk,rst; /系统时钟clk12MHz,input key_1,key_2; /循环控制按键key_1,key_2 output 7:0 dataout; /LED的列选dataout,定义为输出变量reg 7:0 dataout;/出现在always()中,列选dataout定义成寄存器类型output 7:0 led_bit; /行选输出led_bitreg 7:0 led_bit; /出现在always()中,行选输出led_bit定义成寄存器类型output bel

5、l_out;/蜂鸣器输出bell_outreg 13:0 cnt_14bit;/定义14位的寄存器变量cnt_14bitreg 23:0 cnt_24bit;/定义24位的寄存器变量cnt_24bitreg 10:0 M8_cnt;/定义11位的寄存器变量M8_cntreg 2:0 led_No;/定义3位中间寄存量用以控制8位列值reg key_1_d1, key_2_d1;/定义中间寄存变量一位reg key_1_d2, key_2_d2;assign bell_out = 1'b1;/关闭蜂鸣器always (posedge clk)/按下按键key_1,key_2,先打两拍,以

6、避免亚稳态beginkey_1_d1 <= key_1;key_2_d1 <= key_2;key_1_d2 <= key_1_d1;key_2_d2 <= key_2_d1;endalways (posedge clk or negedge rst)/构建模14的计数器beginif (!rst)cnt_14bit <=14'd0;elsebeginif(cnt_14bit<14'd16383)cnt_14bit<=cnt_14bit+1'b1;elsecnt_14bit<=14'd0;endendalways

7、( posedge clk or negedge rst)/计满,led_No加1beginif (!rst)led_No <= 3'd0;else if (cnt_14bit = 14'h16383)led_No <= led_No + 1'b1;endalways ( posedge clk or negedge rst)/根据led_No,给led_bit赋不同的值,以实现动态显示beginif (!rst)led_bit <= 8'b11111111;else begincase (led_No)3'd0:led_bit <

8、;= 8'b11111110;3'd1:led_bit <= 8'b11111101;3'd2:led_bit <= 8'b11111011;3'd3:led_bit <= 8'b11110111;3'd4:led_bit <= 8'b11101111;3'd5:led_bit <= 8'b11011111;3'd6:led_bit <= 8'b10111111;3'd7:led_bit <= 8'b01111111;endcasee

9、ndendalways (posedge clk or negedge rst)/构建0.7s的计数器beginif (!rst)cnt_24bit <=24'd0;elsebeginif (cnt_24bit <24'd8399999)cnt_24bit <= cnt_24bit + 24'b1;elsecnt_24bit <=24'd0;endendalways (posedge clk or negedge rst)/计满,M8_cnt+1以实现数字的变换beginif (!rst)M8_cnt <= 0;else if(cn

10、t_24bit = 24'd8399999)M8_cnt <= M8_cnt + 1'b1;endalways ( posedge clk or negedge rst)/循环显示数字beginif (!rst)dataout <= 8'b11111111;else if(!key_1_d2)/按下key_1(pin27),循环显示11位的学号20125044050begincase (M8_cnt)4'd0:begincase(led_No) /显示23'd0:dataout <= 8'b11000011;3'd1:d

11、ataout <= 8'b10111101;3'd2:dataout <= 8'b11111011;3'd3:dataout <= 8'b11110111;3'd4:dataout <= 8'b11101111;3'd5:dataout <= 8'b11011111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd1:begincase(led_No)

12、/显示03'd0:dataout <= 8'b11000011;3'd1:dataout <= 8'b10111101;3'd2:dataout <= 8'b10111101;3'd3:dataout <= 8'b10111101;3'd4:dataout <= 8'b10111101;3'd5:dataout <= 8'b10111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <=

13、8'b11000011;endcaseend4'd2:begincase(led_No) /显示13'd0:dataout <= 8'b11110111;3'd1:dataout <= 8'b11100111;3'd2:dataout <= 8'b11110111;3'd3:dataout <= 8'b11110111;3'd4:dataout <= 8'b11110111;3'd5:dataout <= 8'b11110111;3'd6:

14、dataout <= 8'b11110111;3'd7:dataout <= 8'b11100011;endcaseend4'd3:begincase(led_No) /显示23'd0:dataout <= 8'b11000011;3'd1:dataout <= 8'b10111101;3'd2:dataout <= 8'b11111011;3'd3:dataout <= 8'b11110111;3'd4:dataout <= 8'b1110

15、1111;3'd5:dataout <= 8'b11011111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd4:begincase(led_No) /显示53'd0:dataout <= 8'b00000001;3'd1:dataout <= 8'b01111111;3'd2:dataout <= 8'b01111111;3'd3:dataout <

16、;= 8'b00000111;3'd4:dataout <= 8'b11111011;3'd5:dataout <= 8'b11111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <= 8'b10000011;endcaseend4'd5:begincase(led_No) /显示03'd0:dataout <= 8'b11000011;3'd1:dataout <= 8'b10111101;3'

17、d2:dataout <= 8'b10111101;3'd3:dataout <= 8'b10111101;3'd4:dataout <= 8'b10111101;3'd5:dataout <= 8'b10111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <= 8'b11000011;endcaseend4'd6:begincase(led_No) /显示43'd0:dataout <= 8'b1

18、1100111;3'd1:dataout <= 8'b11010111;3'd2:dataout <= 8'b10110111;3'd3:dataout <= 8'b01110111;3'd4:dataout <= 8'b00000001;3'd5:dataout <= 8'b11110111;3'd6:dataout <= 8'b11110111;3'd7:dataout <= 8'b11100011;endcaseend4'd7:

19、begincase(led_No) /显示43'd0:dataout <= 8'b11100111;3'd1:dataout <= 8'b11010111;3'd2:dataout <= 8'b10110111;3'd3:dataout <= 8'b01110111;3'd4:dataout <= 8'b00000001;3'd5:dataout <= 8'b11110111;3'd6:dataout <= 8'b11110111;3'

20、;d7:dataout <= 8'b11100011;endcaseend4'd8:begincase(led_No) /显示03'd0:dataout <= 8'b11000011;3'd1:dataout <= 8'b10111101;3'd2:dataout <= 8'b10111101;3'd3:dataout <= 8'b10111101;3'd4:dataout <= 8'b10111101;3'd5:dataout <= 8'b

21、10111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <= 8'b11000011;endcaseend4'd9:begincase(led_No) /显示53'd0:dataout <= 8'b00000001;3'd1:dataout <= 8'b01111111;3'd2:dataout <= 8'b01111111;3'd3:dataout <= 8'b00000111;3'd4:dataout

22、 <= 8'b11111011;3'd5:dataout <= 8'b11111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <= 8'b10000011;endcaseend4'd10:begincase(led_No) /显示03'd0:dataout <= 8'b11000011;3'd1:dataout <= 8'b10111101;3'd2:dataout <= 8'b10111101;3

23、'd3:dataout <= 8'b10111101;3'd4:dataout <= 8'b10111101;3'd5:dataout <= 8'b10111101;3'd6:dataout <= 8'b10111101;3'd7:dataout <= 8'b11000011;endcaseendendcaseendelse if(!key_2_d2)/按下key_2(pin29),循环显示PLN,PLNbegincase (M8_cnt)4'd0:begincase(led_

24、No) /显示P3'd0:dataout <= 8'b10000111;3'd1:dataout <= 8'b10111011;3'd2:dataout <= 8'b10111101;3'd3:dataout <= 8'b100000111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout &

25、lt;= 8'b10111111;endcaseend4'd1:begincase(led_No) /显示L3'd0:dataout <= 8'b10111111;3'd1:dataout <= 8'b10111111;3'd2:dataout <= 8'b10111111;3'd3:dataout <= 8'b10111111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3

26、9;d6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd2:begincase(led_No) /显示N3'd0:dataout <= 8'b10111110;3'd1:dataout <= 8'b10011110;3'd2:dataout <= 8'b10101110;3'd3:dataout <= 8'b10110110;3'd4:dataout <= 8'

27、b10111010;3'd5:dataout <= 8'b10111100;3'd6:dataout <= 8'b10111110;3'd7:dataout <= 8'b10111110;endcaseend4'd3:begincase(led_No) /显示P3'd0:dataout <= 8'b10000111;3'd1:dataout <= 8'b10111011;3'd2:dataout <= 8'b10111101;3'd3:dataou

28、t <= 8'b100000111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10111111;endcaseend4'd4:begincase(led_No)/显示L3'd0:dataout <= 8'b10111111;3'd1:dataout <= 8'b10111111;3

29、'd2:dataout <= 8'b10111111;3'd3:dataout <= 8'b10111111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd5:begincase(led_No)/显示N3'd0:dataout <= 8

30、9;b10111110;3'd1:dataout <= 8'b10011110;3'd2:dataout <= 8'b10101110;3'd3:dataout <= 8'b10110110;3'd4:dataout <= 8'b10111010;3'd5:dataout <= 8'b10111100;3'd6:dataout <= 8'b10111110;3'd7:dataout <= 8'b10111110;endcaseend4'

31、;d6:begincase(led_No) /显示P3'd0:dataout <= 8'b10000111;3'd1:dataout <= 8'b10111011;3'd2:dataout <= 8'b10111101;3'd3:dataout <= 8'b100000111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;

32、3'd7:dataout <= 8'b10111111;endcaseend4'd7:begincase(led_No)/显示L3'd0:dataout <= 8'b10111111;3'd1:dataout <= 8'b10111111;3'd2:dataout <= 8'b10111111;3'd3:dataout <= 8'b10111111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8&#

33、39;b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd8:begincase(led_No)/显示N3'd0:dataout <= 8'b10111110;3'd1:dataout <= 8'b10011110;3'd2:dataout <= 8'b10101110;3'd3:dataout <= 8'b10110110;3'd4:data

34、out <= 8'b10111010;3'd5:dataout <= 8'b10111100;3'd6:dataout <= 8'b10111110;3'd7:dataout <= 8'b10111110;endcaseend4'd9:begincase(led_No) /显示P3'd0:dataout <= 8'b10000111;3'd1:dataout <= 8'b10111011;3'd2:dataout <= 8'b10111101

35、;3'd3:dataout <= 8'b100000111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10111111;endcaseend4'd10:begincase(led_No)/显示L3'd0:dataout <= 8'b10111111;3'd1:dataout <=

36、8'b10111111;3'd2:dataout <= 8'b10111111;3'd3:dataout <= 8'b10111111;3'd4:dataout <= 8'b10111111;3'd5:dataout <= 8'b10111111;3'd6:dataout <= 8'b10111111;3'd7:dataout <= 8'b10000001;endcaseend4'd11:begincase(led_No)/显示N3'd0:dataout <= 8'b10111110;3'd1:dataout <= 8'b10011110;3'd2:dataout <= 8'b10101110;3'd3:dataout <= 8'b10110110;3'd4:dataout <= 8'b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论