实验四:时间基准电路 和 带使能的多周期计数器
来源:互联网 发布:域名授权系统 编辑:程序博客网 时间:2024/06/07 18:15
时间基准电路与带使能的多周期计数器仿真
module cnt_sync(CLK,CNTVAL,OV ); input CLK;output [31:0] CNTVAL;output OV;parameter MAX_VAL = 25_000_000;reg [31:0] CNTVAL;reg OV;always @ (posedge CLK) begin if(CNTVAL >= MAX_VAL) CNTVAL <= 0; else CNTVAL <= CNTVAL + 1'b1;endalways @ (CNTVAL) begin if(CNTVAL == MAX_VAL) OV = 1'b1; else OV = 1'b0;endendmodule module cnt_en_0to9(CLK, CNTVAL, EN , OV ); input CLK;input EN;output [4-1:0] CNTVAL;output OV;reg [4-1:0] CNTVAL;reg OV;always @ (posedge CLK) begin if(EN) begin if(CNTVAL >= 9) CNTVAL <= 0; else CNTVAL <= CNTVAL + 1'b1; end else CNTVAL <= CNTVAL ; endalways @ (CNTVAL) begin if(CNTVAL == 9) OV = 1'b1; else OV = 1'b0;endendmodule module dec_2to4(IN ,OUT);input [1:0] IN ;output [3:0] OUT ;reg [3:0] OUT ;always @ (IN) begin case(IN) 2'b00: OUT = 4'b 0001; 2'b01: OUT = 4'b 0010; 2'b10: OUT = 4'b 0100; 2'b11: OUT = 4'b 1000; endcaseendendmodule
RTL视图
仿真波形
使用SignalTap观测电路
缺点: (1)同一时刻,只能观测到一个计数值 (2) 不利于调试
解决方法:高级触发方式-分段触发
将计数器的计数范围改为0-15,并在DE0开发板上显示出来
module cnt_sync_1(CLK,CNTVAL,OV ); input CLK;output [31:0] CNTVAL;output OV;parameter MAX_VAL = 25_000_000;reg [31:0] CNTVAL;reg OV;always @ (posedge CLK) begin if(CNTVAL >= MAX_VAL) CNTVAL <= 0; else CNTVAL <= CNTVAL + 1'b1;endalways @ (CNTVAL) begin if(CNTVAL == MAX_VAL) OV = 1'b1; else OV = 1'b0;endendmodule module cnt_en_0to15(CLK, CNTVAL, EN , OV ); input CLK;input EN;output [4-1:0] CNTVAL;output OV;reg [4-1:0] CNTVAL;reg OV;always @ (posedge CLK) begin if(EN) begin if(CNTVAL >= 15) CNTVAL <= 0; else CNTVAL <= CNTVAL + 1'b1; end else CNTVAL <= CNTVAL ; endalways @ (CNTVAL) begin if(CNTVAL == 15) OV = 1'b1; else OV = 1'b0;endendmodule module yima(in,out);input[3:0] in;output[7:0] out;reg[7:0] out;always@(in) begin case(in) 4'b0000:out=8'b11000000; 4'b0001:out=8'b11111001; 4'b0010:out=8'b10100100; 4'b0011:out=8'b10110000; 4'b0100:out=8'b10011001; 4'b0101:out=8'b10010010; 4'b0110:out=8'b10000010; 4'b0111:out=8'b11111000; 4'b1000:out=8'b10000000; 4'b1001:out=8'b10010000; 4'b1010:out=8'b10001000; 4'b1011:out=8'b10000011; 4'b1100:out=8'b11000110; 4'b1101:out=8'b10100001; 4'b1110:out=8'b10000110; 4'b1111:out=8'b11001110; endcase endendmodule
修改时间基准发生器,设计一个使用2个HEX LED,精度为0.1秒,范围为0-9.9秒的计时秒表。
附加功能:清零,暂停
阅读全文
0 0
- FPGA入门实验四:时间基准电路 和 带使能的多周期计数器
- FPGA实验四——时间基准电路和带使能的多周期计数器
- 实验四:时间基准电路 和 带使能的多周期计数器
- FPGA实验4: 时间基准电路和带使能的多周期计数器
- FPGA基础实验:时间基准电路和带使能的多周期计数器
- FPGA设计时间基准电路和带使能的多周期计数器
- 计数器 FPGA 电路实验 作业
- 计数器 FPGA 电路实验 作业
- 计数器 FPGA 电路实验 作业
- 计数器 FPGA 电路实验 作业
- 计数器 FPGA电路实验 作业2
- 2016秋《高速电路EDA设计》计数器FPGA电路实验
- 计数器的电路的描述
- 多周期CPU实验
- 多周期CPU实验
- 2016秋《高速电路EDA设计》计数器仿真实验
- 我的电路实验
- 我的电路实验
- JAVA学习笔记-转义字符、算术运算符、类型转换
- 全国首个人工智能商业案例榜单:「AI最佳掘金案例年度评选」正式启动
- 出栈问题的讨论
- 有没有必要把机器学习算法自己实现一遍?
- React实战开发工作原理
- 实验四:时间基准电路 和 带使能的多周期计数器
- linux下的dns服务
- 架构设计主题阅读书目
- EasyDSS流媒体解决方案之多方式虚拟直播方法
- java命名规范
- Jeecg 套用框架生成的Excel导出功能
- do not support AFT because of no config
- luogu2710 数列(splay)
- MyBatis学习总结--第三天