Verilog时序逻辑硬件建模设计(五)异步计数器&总结

本文概述了Verilog中异步计数器(如纹波计数器)的设计原则和挑战,强调了同步计数器的推荐使用。此外,介绍了单端口存储器的时序逻辑及其在ASIC/FPGA设计中的注意事项。通过实例展示了四位纹波计数器的RTL设计和存储器的Verilog实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a124316e884efd430778f6d6e8554fed.png

Verilog时序逻辑硬件建模设计(五)异步计数器&总结

-Asynchronous Counter Design

没有任何寄存器逻辑,RTL设计是不完整的。RTL是寄存器传输级或逻辑,用于描述依赖于当前输入和过去输出的数字逻辑。
309f8b42df9ffd1134a665729f1e9d92.png

在异步计数器中,时钟信号不由公共时钟源驱动。如果LSB触发器的输出作为后续触发器的输入,则设计是异步的。异步设计的主要问题是由于级联,触发器的累积时钟到q延迟。由于存在小故障或尖峰问题,ASIC/FPGA设计中不建议使用异步计数器,甚至此类设计的时序分析也非常复杂。

所以接下来只介绍一种计数器

波纹计数器Ripple Counters

纹波计数器是一个异步计数器,如图5.33所示。如逻辑图所示,所有触发器均为正边缘触发,LSB寄存器从主时钟源接收时钟。LSB触发器的输出作为下一级的时钟输入。

38550bc1d30700aa58fa4947d61cb455.png图5.33三位纹波计数器逻辑图

四位纹波递增计数器的Verilog RTL如例5.18所示。综合逻辑如图5.34所示。

3d6f1e7318440aaa91d2f2cb4727c668.png示例5.18四位纹波递增计数器的Verilog RTL 102d75c6d379ab484a5b656d6fb3c674.png图5.34四位纹波递增计数器的综合逻辑

内存模块设计

在大多数ASIC/FPGA设计和基于SoC的设计中,存储器用于存储二进制数据。存储器可以是ROM、RAM、单端口或双端口类型。本节的目的是描述基本的单端口读写存储器。时序如图5.35所示。

如时序所示,读写操作由“rd_wr”控制,如果“cs”为高电平,则在时钟信号“clk”的正边缘对数据进行采样。地址输入由总线“address”描述。

单端口读写存储器的Verilog RTL如例5.19所示。

7c9786947244f7628e35fd71a4818c7e.png图5.35存储器的时序 50943bddec1d818d3181876bdfbbec00.png示例5.19读写存储器的Verilog RTL

时序逻辑设计简单总结

下面是总结时序逻辑设计的要点。

  1. 锁存器对电平敏感,在设计中不推荐使用。

  1. 触发器是边缘触发的,建议在设计中使用。

  1. 触发器使用程序块“‘always”进行描述,并由“posedge clk”或“negedge clk”触发。

  1. 二进制计数器可以使用同步设计概念或异步设计概念进行设计。

  1. 格雷码计数器可以通过使用二进制计数器和附加组合逻辑来设计。

  1. 设计中推荐使用同步计数器,因为STA分析很容易,而且不容易出现故障。

  1. 异步计数器容易出现小故障或尖峰,因此不建议在ASIC/FPGA设计中使用。

  1. 使用移位寄存器可以设计特殊计数器,如ring和Johnson。

  1. 可通过使用Verilog RTL执行读写操作来描述存储器。

ac997fc5ded8fccd8e55648d5fff90a4.png

数字硬件建模综述


174d1db36580a8a7104bb8ce91729be8.png

数字硬件建模-从另一方面理解Verilog(一)


c93ab6d5becee7e7e0e6d9208a56f6e1.png

数字硬件建模-重新从另一方面理解Verilog(二)


1ae2044216f7878667c1ba4c8b9800fc.png

组合逻辑硬件建模设计(一)逻辑门


3ba93181148fc8fbdb7e3a3bd613b90d.png

组合逻辑硬件建模设计(二)算术电路


2427a7b5cb0bd811d88876b2a8f98f12.png

Verilog/SV代码检查器-Lint 建模规则检查器与 Verilator


06509a8aafe71224f34d5ae82b746288.png

Verilog组合逻辑设计指南


a98bf6438d0473269c36ab892eb4152c.png

Verilog时序逻辑硬件建模设计(一)锁存器D-latch和触发器Flip-Flop


ea3034604d3d3126e398dfa4c9fe89f8.png

Verilog时序逻辑硬件建模设计(二)同步和异步复位



f28ce8f115bf03a8ef68f8a8bbf22f90.png

Verilog时序逻辑硬件建模设计(三)同步计数器



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值