模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)
目录
前言
模6计数器
Verilog HDL语言描述
测试文件
仿真电路图
RTL Schematic
Technology Schematic
模10计数器
Verilog HDL语言描述
测试文件
仿真波形
RTL Schematic
Technology Schematic
前言
详细地了解这些简单的计数器并非毫无意义的,因为它是组成大型计数器的小模块,如果大型的计数器不太好理解,那么分解出来分别研究,不也是一种好的办法吗?
这篇博文的意义就在如此。我将仿真加综合去详细的认清楚这些小零件。
模6计数器
模6计数器比较关键的一点是从0开始计数,计数到5(0101)时,产生一个进位信号1(注意这个进位信号1可以由第0位与第2位的与来得到,这在设计电路中比较重要,下面会有体现),并且此时,计数状态清零。
Verilog HDL语言描述
//模6计数器的Verilog HDL设计
module counter6(clk, rst_n, en, dout, co);input clk, rst_n, en;
output[3:0] dout;
reg [3:0] dout;
output co;always@(posedge clk or negedge rst_n)
beginif(!rst_n)dout <= 4'b0000; //系统复位,计数器清零else if(en)if(dout == 4'b0101) //计数值达到5时,计数器清零dout <= 4'b0000;elsedout <= dout + 1'b1; //否则,计数器加1elsedout <= dout;endassign co = dout[0]&dout[2]; //当计数达到5(4'b0101)时,进位为1,计数值为其他,都没有进位endmodule
测试文件
//模6计数器的测试文件
`timescale 1ns/1ps
module counter6_tb;reg clk, rst_n, en;
wire[3:0] dout;
wire co;//时钟设计周期为2ns
always
begin#1 clk = ~clk;
end//初始化
initial
beginclk = 1'b0;rst_n = 1'b1;en = 1'b0;#2 rst_n = 1'b0;#2 rst_n = 1'b1; en = 1'b1; //计数使能信号有效,且不复位endcounter6 u1(.clk(clk), .rst_n(rst_n), .en(en), .dout(dout), .co(co));endmodule
仿真电路图
从仿真电路图可以看出,模6计数器从0开始计数,计数到5,计数器清零,然后重新计数。
RTL Schematic
从这里可以看到模6计数器整理的外部输入输出情况,展开后如下:
这个门级的原理图不复杂但是挺不好理解的,哪位壮士看的明白,麻烦给我说一声。
反正这个模6计数器综合出来的寄存器传输级原理图就是这样的。
Technology Schematic
也就是在FPGA中是怎么样的一个电路图:
用到了LUT(查找表)、各种BUF以及D触发器资源。
模6计数器就认识到这里吧。
模10计数器
模10计数器的设计和模6计数器的设计如出一辙,甚至说仅仅一点儿变化,也就是把计数值改变一下,计数到9然后清零而已。但我还是把它仿真了个遍。
Verilog HDL语言描述
//模10计数器的Verilog HDL设计
module counter10(clk, rst_n, en, dout, co);input clk, rst_n, en;
output[3:0] dout;
reg [3:0] dout;
output co;always@(posedge clk or negedge rst_n)
beginif(!rst_n)dout <= 4'b0000; //系统复位,计数器清零else if(en)if(dout == 4'b1001) //计数值达到5时,计数器清零dout <= 4'b0000;elsedout <= dout + 1'b1; //否则,计数器加1elsedout <= dout;endassign co = dout[0]&dout[3]; //当计数达到5(4'b1001)时,进位为1,计数值为其他,都没有进位endmodule
测试文件
//模10计数器的测试文件
`timescale 1ns/1ps
module counter10_tb;reg clk, rst_n, en;
wire[3:0] dout;
wire co;//时钟设计周期为2ns
always
begin#1 clk = ~clk;
end//初始化
initial
beginclk = 1'b0;rst_n = 1'b1;en = 1'b0;#2 rst_n = 1'b0;#2 rst_n = 1'b1; en = 1'b1; //计数使能信号有效,且不复位endcounter10 u1(.clk(clk), .rst_n(rst_n), .en(en), .dout(dout), .co(co));endmodule
仿真波形
RTL Schematic
Technology Schematic
用的资源好像比模6计数器要多。
模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)相关推荐
- Verilog HDL语言设计计数器+加法器
完成课本例题4.12,进行综合和仿真(包括功能仿真和时序仿真),查看仿真结果,将Verilog代码和仿真波形图整理入实验报告. 功能文件: module shiyan1(out,reset,clk); ...
- Verilog HDL语言设计实现过程赋值+译码器
完成课本例题6.11.6.12,进行综合和仿真(功能仿真),查看综合和仿真结果,整理入实验报告. 6.11 module shiyan21(in,clk,out1,out2); input clk,i ...
- Verilog HDL语言设计一个比较电路
设计一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0,进行功能仿真,查看仿真结果,将Verilog代码和仿真波形图整理入实验报告. 代码: module yanxu12(in,o ...
- Verilog HDL语言设计4个独立的非门
代码: module yanxu11(in,out); input wire[3:0] in; output reg[3:0] out; always @(in) begin out[0]=~in[0 ...
- (数电实验报告)用Verilog–HDL语言设计一个8线3线优先编码器
`module encoder8_3(S,I7,I6,I5,I4,I3,I2,I1,I0,Y2,Y1,Y0,YS,YEX); input S,I7,I6,I5,I4,I3,I2,I1,I0; outp ...
- 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)
目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...
- 级联模60计数器(Verilog HDL语言描述)(仿真与综合)
目录 前言 模60计数器 Verilog HDL语言描述 测试文件 仿真波形 RTL Schematic Technology Schematic 前言 看这篇文章前,推荐先看看模10计数器和模6计数 ...
- 计数器——Verilog HDL语言
计数器 任务要求 相关知识 逻辑原理 同步16进制计数器真值表 编程要求 源代码 任务要求 根据所学的时序逻辑及数字电路的知识完成计数器的设计,验证同步16进制计数器的功能,进一步熟悉 Verilog ...
- (10)Verilog HDL异步复位同步释放
(10)Verilog HDL异步复位同步释放 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL异步复位同步释放 5)结语 1.2 FPGA简介 F ...
最新文章
- Oracle Instanc Client安装命令工具
- Understanding Global Unicast IPv6 Addressing
- python实现双向最大匹配法
- php程序网站整站301,织梦dede怎么实现整站301
- BZOJ 1051: [HAOI2006]受欢迎的牛
- Linux系统编程---18(线程池相关概念及其实现)
- git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用
- python Django创建数据库时can't open file 'manage.py': [Errno 2] No such file or directory
- STM32F103_SPI读写外部FLASH
- 《iOS应用软件设计之道》—— 2.5 何时画草图
- 面向对象——意图与逻辑(五)
- 题目264-国王的魔镜
- vue实现一个移动端屏蔽滑动的遮罩层
- java物流专线快运系统源码TMS
- 蓝桥杯省赛真题2016题解
- python做flash帧动画_[练习]利用CSS steps 实现逐帧动画
- 海量数据搜索、存储、查询、排序算法
- 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。
- Android电话拨号器实例详解
- 挑战“不可能三角”,公链设计、选型与开发实战
热门文章
- 不用软件,对回收站删除文件后的恢复(windows 高级技巧)
- ITAA在线试学用户使用说明
- python随机生成车牌_Python实现随机生成任意数量车牌号
- 同步和串行的区别_[深度思考]·为什么CNN是同步(并行)而RNN是异步(串行)的呢?...
- 墨迹天气接口html,moji_weather_spider.py
- python导入数据画多列直方图_在python datafram中使用两列(值、计数)绘制直方图...
- uni 根目录路径_如何解决uniapp图片路径错误问题
- form表单会跨域_前端跨域So Easy
- 基于matlab_simulink的捷联惯性导航系统仿真,基于MATLAB/Simulink的捷联惯性导航系统仿真...
- mysql实现树状查询_MySQL实现树状所有子节点查询的方法