目录

前言

模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综合)相关推荐

  1. Verilog HDL语言设计计数器+加法器

    完成课本例题4.12,进行综合和仿真(包括功能仿真和时序仿真),查看仿真结果,将Verilog代码和仿真波形图整理入实验报告. 功能文件: module shiyan1(out,reset,clk); ...

  2. Verilog HDL语言设计实现过程赋值+译码器

    完成课本例题6.11.6.12,进行综合和仿真(功能仿真),查看综合和仿真结果,整理入实验报告. 6.11 module shiyan21(in,clk,out1,out2); input clk,i ...

  3. Verilog HDL语言设计一个比较电路

    设计一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0,进行功能仿真,查看仿真结果,将Verilog代码和仿真波形图整理入实验报告. 代码: module yanxu12(in,o ...

  4. Verilog HDL语言设计4个独立的非门

    代码: module yanxu11(in,out); input wire[3:0] in; output reg[3:0] out; always @(in) begin out[0]=~in[0 ...

  5. (数电实验报告)用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 ...

  6. 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...

  7. 级联模60计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 模60计数器 Verilog HDL语言描述 测试文件 仿真波形 RTL Schematic Technology Schematic 前言 看这篇文章前,推荐先看看模10计数器和模6计数 ...

  8. 计数器——Verilog HDL语言

    计数器 任务要求 相关知识 逻辑原理 同步16进制计数器真值表 编程要求 源代码 任务要求 根据所学的时序逻辑及数字电路的知识完成计数器的设计,验证同步16进制计数器的功能,进一步熟悉 Verilog ...

  9. (10)Verilog HDL异步复位同步释放

    (10)Verilog HDL异步复位同步释放 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL异步复位同步释放 5)结语 1.2 FPGA简介 F ...

最新文章

  1. Oracle Instanc Client安装命令工具
  2. Understanding Global Unicast IPv6 Addressing
  3. python实现双向最大匹配法
  4. php程序网站整站301,织梦dede怎么实现整站301
  5. BZOJ 1051: [HAOI2006]受欢迎的牛
  6. Linux系统编程---18(线程池相关概念及其实现)
  7. git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用
  8. python Django创建数据库时can't open file 'manage.py': [Errno 2] No such file or directory
  9. STM32F103_SPI读写外部FLASH
  10. 《iOS应用软件设计之道》—— 2.5 何时画草图
  11. 面向对象——意图与逻辑(五)
  12. 题目264-国王的魔镜
  13. vue实现一个移动端屏蔽滑动的遮罩层
  14. java物流专线快运系统源码TMS
  15. 蓝桥杯省赛真题2016题解
  16. python做flash帧动画_[练习]利用CSS steps 实现逐帧动画
  17. 海量数据搜索、存储、查询、排序算法
  18. 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。
  19. Android电话拨号器实例详解
  20. 挑战“不可能三角”,公链设计、选型与开发实战

热门文章

  1. 不用软件,对回收站删除文件后的恢复(windows 高级技巧)
  2. ITAA在线试学用户使用说明
  3. python随机生成车牌_Python实现随机生成任意数量车牌号
  4. 同步和串行的区别_[深度思考]·为什么CNN是同步(并行)而RNN是异步(串行)的呢?...
  5. 墨迹天气接口html,moji_weather_spider.py
  6. python导入数据画多列直方图_在python datafram中使用两列(值、计数)绘制直方图...
  7. uni 根目录路径_如何解决uniapp图片路径错误问题
  8. form表单会跨域_前端跨域So Easy
  9. 基于matlab_simulink的捷联惯性导航系统仿真,基于MATLAB/Simulink的捷联惯性导航系统仿真...
  10. mysql实现树状查询_MySQL实现树状所有子节点查询的方法