模可变计数器设计说明

上传人:xmg****18 文档编号:116423322 上传时间:2019-11-16 格式:DOC 页数:8 大小:847KB
返回 下载 相关 举报
模可变计数器设计说明_第1页
第1页 / 共8页
模可变计数器设计说明_第2页
第2页 / 共8页
模可变计数器设计说明_第3页
第3页 / 共8页
模可变计数器设计说明_第4页
第4页 / 共8页
模可变计数器设计说明_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《模可变计数器设计说明》由会员分享,可在线阅读,更多相关《模可变计数器设计说明(8页珍藏版)》请在金锄头文库上搜索。

1、. . . . .模可变计数器设计 (一) 实验目的1、 进一步熟悉实验装置和Quartus软件的使用;2、 进一步熟悉和掌握EDA设计流程;3、 学习简单组合、时序电路的EDA设计;4、 学习计数器中二进制码到BCD码的转换技巧;5、 学习实验装置上数码管的输出方法。(二) 设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下:1、 设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数;2、 计数结果用三位数码管十进制显示。(三) 主要仪器设备3、 微机1台4

2、、 QuartusII集成开发软件1套5、 EDA实验装置 1套(四) 实验步骤主要有三个模块1:一个模20和模119的计数器2:数码管的显示3:BCD的调整源程序:module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output 7:0 SG; output 2:0 sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire 3:0 gw,sw,bw; /*(* synthesis, keep *) */reg 3:0a; reg 11:

3、0 q; reg 11:0 model; reg 7:0 cnt,SG; reg 2:0 sel;reg 0:0d;output 0:0d; always (posedge clk) begin cnt=cnt+1; if (cnt=200) begin clk1=1b1; cnt=0; end else clk1=1b0; /200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel2) sel=sel+1; else sel=0; end /sel为数码管选择 always (sel) begin case (sel) 0: a=bw; /0数码管为百位 1: a=sw; /1

4、数码管为十位 2: a=gw; /2数码管为个位 default: a=0; endcase case (a) 0:SG=8b00111111; 1:SG=8b00000110; 2:SG=8b01011011; 3:SG=8b01001111; 4:SG=8b01100110; 5:SG=8b01101101; 6:SG=8b01111101; 7:SG=8b00000111; 8:SG=8b01111111; 9:SG=8b01101111; /8段译码值 default: SG=8b11111111; endcase end always (m) if (m) model=12b0000

5、00100000; /模值20 else model=12b000100011001; /模值119 assign gw=q3:0; assign sw=q7:4; assign bw=q11:8; always (posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (qmodel) begin if (gw=9) begin q=q+7; if (sw=9) q=q+96; end /BCD调整 else q=q+1; end else q=0; end endalways (q) if(qmodel) d

6、=0; else d=1; endmodule波形仿真:Clk1是计数频率,每来一个clk1信号q计数一次如图所示:rst=1有效时开始计数 clk为扫描频率sel=0时数码管显示百位a=0sel=1时数码管显示十位a=1sel=2时数码管显示个位a=3m=1 模20计数器m=0 模119计数器管脚分配:SG0PIN_F13SG1PIN_F14SG2PIN_F15SG3PIN_E15SG4PIN_F16SG5PIN_F17SG6PIN_E18SG7PIN_F18clkPIN_C13enPIN_H8mPIN_J9rstPIN_C5sel0PIN_G18sel1PIN_G17sel2PIN_G16

7、d0PIN_G13(五) 实验心得本实验主要是三大模块的编写,第一次的实验在老师给的参考代码下进行的,不过错误依然很多,主要有几个重点药掌握,一是首先要编写出能够计数的模块,用m来控制模值的变化m=1时模值为20 m=0时模值为119;二是计数模块都是二进制计数的,而要在数码管上显示计数的话就必须进行BCD调整,并且q是一个是十二位的寄存器,通过把gw=q3:0; sw=q7:4; bw=q11:8赋值的方法;一个个的显示在数码管上,由于clk的频率比较快,所以可以看到三位数码管显示的值,我觉得管脚分配也是比较关键的!一开始我就把个位和百位显示的值搞反了序列信号发生和检测器设计(一) 实验目的

8、1、 进一步熟悉EDA实验装置和Quartus软件的使用方法;2、 学习有限状态机法进行数字系统设计;3、 学习使用原理图输入法进行设计。(二) 设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:1、 先用设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来;2、 再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11101”则输出为“1”,否则输出为“0”;(三) 主要仪器设备1、 微机1台2、 QuartusII集成开发软件1套3、 EDA实验装置 1套(四

9、) 实验步骤主要两部分 1:序列信号发生器 设置q=16b0111010011011010; q0=q15; Q=q15; q15:1=q14:0 ;通过循环移位串行输出2:序列信号检测器状转移态图 一共有六个状态分别为S = 5d00000, A = 5d00001, B = 5d00011, C = 5d00110, D = 5d01101, E = 5d11010;源程序:module xulie(clk,rst,z,Q,led);input clk,rst;output Q,z;output 4:0 led;reg 4:0 led;reg 4:0 state;reg Q,z;reg 4

10、:0 a;reg 15:0 q;parameter S = 5d00000, A = 5d00001, B = 5d00011, C = 5d00110, D = 5d01101, E = 5d11010;always (posedge clk) begin if(rst=0) begin q=16b0111010011011010; end else begin q0=q15; Q=q15; q15:1=q14:0 ; end endalways (posedge clk)begin if(state=D & Q=1) begin z=1; led=5b11101;endelse begin

11、 z=0;led=5b00000;endendalways (posedge clk or negedge rst) if(!rst) begin state=S;end else casex(state) S: if(Q=1) state=A; else state=S; A: if (Q=1) state=B; else state= S; B: if (Q=1) state=C; else state=S; C: if(Q=0) state=D; else state=C; D: if(Q=1) state=E; else state=S; E: if(Q=0) state=S; else state=A; default: s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号