使用Verilog描述时序电路

原创 摩尔学堂 2022-03-15 16:40

在之前的文章中,我们讨论了使用 Verilog语言元素对组合电路的描述。本文重点介绍同步时序电路。我们将首先查看同步电路的通用模型,然后以双向计数器的 Verilog 描述为例进行讨论。

顺序电路

在组合电路中,输出仅取决于输入的当前值。然而,时序电路的输出不仅取决于输入的电流值,还取决于电路的状态。电路的状态由输入的先前值决定。

因此,时序电路具有存储器,其输出取决于过去输入的顺序。这些电路使用诸如触发器 (FF) 之类的存储器元件来存储系统的当前状态。

同步时序电路

在处理大型时序电路时,如果我们使用同步方法而不是异步方法,设计问题会变得更容易解决。在同步电路中,所有存储元件都由相同的时钟信号触发。这使我们能够更好地控制系统,因为在这种情况下,我们知道数据何时将被存储元件采样。

由于同步系统的所有存储元件都连接到同一个时钟,我们可以对系统进行建模,如图 1 所示。


图1

 

在此模型中,虚线框代表系统的所有存储元件(本例中为 D 型 FF)。虚线框外的块是组合电路。

“下一个状态逻辑”处理“输入”和系统的当前状态,由“state_reg”表示,以确定系统的下一个状态(“state_next”)。随着即将到来的时钟上升沿,“state_next”将存储在 FF 上。“输出逻辑”块也是一个组合电路,它处理“输入”和“状态寄存器”以确定系统输出。

如图 1 所示,将同步系统与存储元件和一些组合电路分开有助于我们更容易地找到系统的 HDL 描述。我们只需要描述一些组合电路并将它们连接到存储元件。而组合电路的 HDL描述在前一篇文章中已经讨论过,对于存储元件,我们通常使用一些众所周知的 HDL 模板。

我们将查看通用计数器的 Verilog 代码以阐明这些概念,但在此之前,我们需要查看D 型触发器(也称为 DFF)的 HDL 描述。

(有关触发器双稳态单比特存储器设备的更多信息,请查看我们关于将 D 触发器转换为 SR、JK 和 T 触发器的文章。)

触发器的 HDL 描述

通常,可以使用基本逻辑门来实现 DFF。但是,在使用 HDL 在 FPGA 中实现 DFF 时,完全不建议这样做。安全有效的方法是使用一些众所周知的 HDL 模板来描述 FF,如下节所述。事实上,综合工具将此类模板识别为 FF,并使用一些优化的结构来实现它们。

DFF 的 Verilog 代码

下面的图 2 显示了上升沿(图 2-a)和下降沿(图 2-b)DFF 的符号。在时钟边沿,对 DFF 的输入 (D) 进行采样并传递到输出 (Q)。对于上升沿 DFF,采样沿是时钟上升沿(图 2-a),而下降沿 DFF 对时钟的下降沿敏感。FF 通常具有可用于将系统初始化为已知状态的重置 (rst)。

 

图 2

下面给出了上升沿 DFF 的 Verilog 代码:

1	module D_FF
2 (
3 input wire clk, reset,
4 input wire d,
5 output reg q
6 );


7 always @(posedge clk, posedge reset)
8 if (reset)
9 q <= 1'b0;
10 else
11 q <= d;

12 endmodule

此代码的第 7 行在“always”块的敏感度列表中的“clk”和“reset”输入之前使用了“posedge”关键字。“Posedge”代表上升沿,告诉综合工具“always”模块应该在“clk”和“reset”信号的上升沿被激活。

请注意,“clk”和“reset”的上升沿都在灵敏度列表中。因此,无论“clk”信号条件如何,“reset”的上升沿都会激活“always”块。换句话说,这个 DFF 的“重置”是异步的。

第 8 到 11 行使用了我们在上一篇文章中讨论过的 Verilog“if”语句当“always”块被激活时,“reset”被选中。如果它为逻辑高电平,则 DFF 输出被复位 (q <= 1'b0)。如果“reset”不是逻辑高电平,那么是“clk”信号经历了上升沿,DFF 输出应该得到输入值(q <= d)。

请注意,我们在推断触发器时使用非阻塞赋值 (<=)。正如另一篇文章中所讨论的,不正确地使用阻塞 (=) 和非阻塞 (<=) 赋值可能会导致不想要的功能。然而,为了这篇介绍性文章的目的,我们可以简单地将系统的组合部分与其内存元素分开,并遵循以下两条准则:

  1. 使用阻塞分配来描述组合电路。

  2. 使用非阻塞赋值来推断 FF。

现在,让我们看一下双向计数器的 Verilog 代码,以进一步阐明我们的讨论。

双向计数器的 Verilog 描述

我们将为一个双向计数器编写代码,该计数器可以执行下表中列出的四个函数:

 

 

当“加载”输入被断言时,输入数据 (d) 被加载到计数器 (q=d)。当“load”和“en”都为逻辑低时,计数器保持其当前值。对于“load”=0 和“en”=1,计数器可以根据“up_downb”输入的值向上或向下计数。

八位双向计数器的 Verilog 代码如下所示:

1	module bidirect_cnt8
2 (
3 input wire clk, reset,
4 input wire en, load, up_downb,
5 input wire [7:0] d,
6 output reg [7:0] q
7 );

8 reg [7:0] q_next;

9 // The storage elements
10 always @(posedge clk, posedge reset)
11 if (reset)
12 q <= 8'h00;
13 else
14 q <= q_next;

15 //The next state logic
16 always @*
17 if(load)
18 q_next = d;
19 else if (~en)
20 q_next = q;
21 else if (up_downb)
22 q_next = q + 8'h01;
23 else
24 q_next = q - 8'h01;


25 endmodule

第 10 到 14 行使用上一节中讨论的模板代码将 8 个 DFF 添加到设计中。这些是上升沿 DFF,具有异步复位。

当“reset”为逻辑高时,值 8'h00 被分配给“q”。术语 8'h00 表示十六进制基数 (8'h) 中的八位数字。这个数字的值由字母“h”后面的两个十六进制数字给出。因此,当“reset”为逻辑高时,“q”的八位都设置为逻辑低。

当“reset”为逻辑低时,“q_next”被分配给“q”。“q_next”表示图 1 通用模型中“下一个状态逻辑”的输出,并确定在即将到来的时钟上升沿应分配给“q”的值。

除了描述计数器存储元件的第 10 到 14 行之外,代码的其他行描述了组合电路。将存储元件与组合电路分开不是强制性的,但它可以帮助我们更轻松地描述系统。我们只需要为即将到来的时钟边沿确定合适的“q_next”值。第 16 到 24 行实现了这部分设计的组合逻辑,即图 1 中模型的“Next State Logic”块。它使用嵌套的“if”语句来描述表 1 的不同功能:

当“load”输入为逻辑高时,输入数据(d)被分配给“q_next”。当“load”为逻辑低且计数器未启用(“en”=0)时,计数器应保持其当前值(“q_next”应等于“q”)。对于“load”=0 和“en”=1,计数器可以根据“up_downb”输入的值向上或向下计数。

图 3 显示了代码的 ISE 仿真。

 

图 3

 

如上所述,我们不必总是将同步系统分成存储元件和组合电路,如图 1 所示。但是,我相信这种设计实践有助于我们在设计数字系统时采用更系统的方法。通过这种方式,我们可以更轻松地将设计的框图可视化并找到其 HDL 描述。

在本文中,我们首先讨论了同步电路的通用模型,其中系统分为两部分:存储元件和组合电路。然后,我们用这个模型找到了双向计数器的 Verilog 描述。这不是描述同步系统的唯一方法;然而,所讨论的方法可以简化设计过程。

 

--------------------


今天小编带来了:ISSCC2022套餐,里面有文章、PPT、Tutorial等,同学可以拿回去自己学习研究。


ISSCC2022完整资料领取方式如下   
识别关注下方公众号
公众号对话框输入 1325 

由于公众号后台资料容量有限
每份资料有效期为30天,过期会被更新删除
资料仅供个人学习使用,禁止分享与转发!
大家如果需要,请及时下载!




1、深入理解SerDes(Serializer-Deserializer)之一

2、深入理解SerDes(Serializer-Deserializer)之二

3、科普:深入理解SerDes(Serializer-Deserializer)之三

4、资深工程师的ESD设计经验分享

5、干货分享,ESD防护方法及设计要点!

6、科普来了,一篇看懂ESD(静电保护)原理和设计!

7、锁相环(PLL)基本原理 及常见构建模块

8、当锁相环无法锁定时,该怎么处理的呢?

9、高性能FPGA中的高速SERDES接口

10、什么是毫米波技术?它与其他低频技术相比有何特点?

11、如何根据数据表规格算出锁相环(PLL)中的相位噪声

12、了解模数转换器(ADC):解密分辨率和采样率

13、究竟什么是锁相环(PLL)

14、如何模拟一个锁相环

15、了解锁相环(PLL)瞬态响应

16、如何优化锁相环(PLL)的瞬态响应

17、如何设计和仿真一个优化的锁相环

18、锁相环(PLL) 倍频:瞬态响应和频率合成

19、了解SAR ADC

20、了解 Delta-Sigma ADC

21、什么是数字 IC 设计?

22、什么是模拟 IC 设计?

23、什么是射频集成电路设计?

24、学习射频设计:选择合适的射频收发器 IC

25、连续时间 Sigma-Delta ADC:“无混叠”ADC

26、了解电压基准 IC 的噪声性能

27、数字还是模拟?I和Q的合并和分离应该怎么做?

28、良好通信链路性能的要求:IQ 调制和解调

29、如何为系统仿真建模数据转换器?

30、干货!CMOS射频集成电路设计经典讲义(Prof. Thomas Lee)

31、使用有效位数 (ENOB) 对 ADC 进行建模

32、以太网供电 (PoE) 的保护建议

33、保护高速接口的设计技巧

34、保护低速接口和电源电路设计技巧

35、使用互调多项式和有效位数对 ADC 进行建模

36、向 ADC 模型和 DAC 建模添加低通滤波器

37、揭秘芯片的内部设计原理和结构

38、Delta-Sigma ADCs中的噪声简介(一)

39、Delta-Sigma ADCs中的噪声简介(二)

40、Delta-Sigma ADCs 中的噪声简介(三)

41、了解Delta-Sigma ADCs 中的有效噪声带宽(一)

42、了解Delta-Sigma ADCs 中的有效噪声带宽(二)

43、放大器噪声对 Delta-Sigma ADCs 的影响(一)

44、放大器噪声对 Delta-Sigma ADCs 的影响(二)

45、参考电压噪声如何影响 Delta Sigma ADCs

46、如何在高分辨率Delta-Sigma ADCs电路中降低参考噪声

47、时钟信号如何影响精密ADC

48、了解电源噪声如何影响 Delta-Sigma ADCs

49、运算放大器简介和特性

50、使用 Delta-Sigma ADCs 降低电源噪声的影响

51、如何设计带有运算放大器的精密电流泵

52锁定放大器的基本原理

53了解锁定放大器的类型和相关的噪声源

54、用于降低差分 ADC 驱动器谐波失真的 PCB 布局技术

55、干货!《实用的RFIC技术》课程讲义

56、如何在您的下一个 PCB 设计中消除反射噪声

57、硅谷“八叛徒”与仙童半导体(Fairchild)的故事!

                                                                                                    

往期精彩课程分享


1、免费公开课ISCAS 2015 :The Future of Radios_ Behzad Razavi

2、免费公开课:从 5 微米到 5 纳米的模拟 CMOS(Willy Sansen)

3、免费公开课:变革性射频毫米波电路(Harish Krishnaswamy)

4、免费公开课:ESSCIRC2019-讲座-Low-Power SAR ADCs

5、免费公开课:ESSCIRC2019-讲座-超低功耗接收器(Ultra-Low-Power Receivers)

6、免费公开课:CICC2019-基于 ADC 的有线收发器(Yohan Frans Xilinx)

7、免费公开课:ESSCIRC 2019-有线与数据转换器应用中的抖动

8、免费公开课:ISSCC2021 -锁相环简介-Behzad Razavi

9、免费公开课:ISSCC2020-DC-DC 转换器的模拟构建块

10、免费公开课:ISSCC2020-小数N分频数字锁相环设计

11、免费公开:ISSCC2020-无线收发器电路和架构的基础知识(从 2G 到 5G)

12、免费公开课:ISSCC2020-从原理到应用的集成变压器基础

13、免费公开课:ISSCC2021-射频和毫米波功率放大器设计的基础




www.moorext.com--线!




摩尔学堂 摩尔学堂专注于半导体人才培训,在线培训与学习服务平台,泛IC领域MOOC分享互动平台。 www.moorext.com
评论
  • 在智能网联汽车中,各种通信技术如2G/3G/4G/5G、GNSS(全球导航卫星系统)、V2X(车联网通信)等在行业内被广泛使用。这些技术让汽车能够实现紧急呼叫、在线娱乐、导航等多种功能。EMC测试就是为了确保在复杂电磁环境下,汽车的通信系统仍然可以正常工作,保护驾乘者的安全。参考《QCT-基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法-1》标准10.5电磁兼容试验方法,下面将会从整车功能层面为大家解读V2X整车电磁兼容试验的过程。测试过程揭秘1. 设备准备为了进行电磁兼容试验,技
    北汇信息 2025-01-09 11:24 80浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 111浏览
  • 在当前人工智能(AI)与物联网(IoT)的快速发展趋势下,各行各业的数字转型与自动化进程正以惊人的速度持续进行。如今企业在设计与营运技术系统时所面临的挑战不仅是技术本身,更包含硬件设施、第三方软件及配件等复杂的外部因素。然而这些系统往往讲究更精密的设计与高稳定性,哪怕是任何一个小小的问题,都可能对整体业务运作造成严重影响。 POS应用环境与客户需求以本次分享的客户个案为例,该客户是一家全球领先的信息技术服务与数字解决方案提供商,遭遇到一个由他们所开发的POS机(Point of Sal
    百佳泰测试实验室 2025-01-09 17:35 78浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 111浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 87浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 93浏览
  • 职场是人生的重要战场,既是谋生之地,也是实现个人价值的平台。然而,有些思维方式却会悄无声息地拖住你的后腿,让你原地踏步甚至退步。今天,我们就来聊聊职场中最忌讳的五种思维方式,看看自己有没有中招。1. 固步自封的思维在职场中,最可怕的事情莫过于自满于现状,拒绝学习和改变。世界在不断变化,行业的趋势、技术的革新都在要求我们与时俱进。如果你总觉得自己的方法最优,或者害怕尝试新事物,那就很容易被淘汰。与其等待机会找上门,不如主动出击,保持学习和探索的心态。加入优思学院,可以帮助你快速提升自己,与行业前沿
    优思学院 2025-01-09 15:48 69浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2025-01-09 09:58 62浏览
  • HDMI 2.2 规格将至,开启视听新境界2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新HDMI规范为规模庞大的 HDMI 生态系统带来更多选择,为创建、分发和体验理想的终端用户效果提供更先进的解决方案。新技术为电视、电影和游戏工作室等内容制作商在当前和未来提供更高质量的选择,同时实现多种分发平台。96Gbps的更高带宽和新一代 HDMI 固定比率速率传输(Fixed Rate Link)技术为各种设备应用提供更优质的音频和视频。终端用户显示器能以最
    百佳泰测试实验室 2025-01-09 17:33 84浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球中空长航时无人机产值达到9009百万美元,2024-2030年期间年复合增长率CAGR为8.0%。 环洋市场咨询机构出版了的【全球中空长航时无人机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球中空长航时无人机总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析中空长航时无人机市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从中空长航时
    GIRtina 2025-01-09 10:35 74浏览
  • 1月7日-10日,2025年国际消费电子产品展览会(CES 2025)盛大举行,广和通发布Fibocom AI Stack,赋智千行百业端侧应用。Fibocom AI Stack提供集高性能模组、AI工具链、高性能推理引擎、海量模型、支持与服务一体化的端侧AI解决方案,帮助智能设备快速实现AI能力商用。为适应不同端侧场景的应用,AI Stack具备海量端侧AI模型及行业端侧模型,基于不同等级算力的芯片平台或模组,Fibocom AI Stack可将TensorFlow、PyTorch、ONNX、
    物吾悟小通 2025-01-08 18:17 72浏览
  • 一个真正的质量工程师(QE)必须将一件产品设计的“意图”与系统的可制造性、可服务性以及资源在现实中实现设计和产品的能力结合起来。所以,可以说,这确实是一种工程学科。我们常开玩笑说,质量工程师是工程领域里的「侦探」、「警察」或「律师」,守护神是"墨菲”,信奉的哲学就是「墨菲定律」。(注:墨菲定律是一种启发性原则,常被表述为:任何可能出错的事情最终都会出错。)做质量工程师的,有时会不受欢迎,也会被忽视,甚至可能遭遇主动或被动的阻碍,而一旦出了问题,责任往往就落在质量工程师的头上。虽然质量工程师并不负
    优思学院 2025-01-09 11:48 97浏览
  • 在过去十年中,自动驾驶和高级驾驶辅助系统(AD/ADAS)软件与硬件的快速发展对多传感器数据采集的设计需求提出了更高的要求。然而,目前仍缺乏能够高质量集成多传感器数据采集的解决方案。康谋ADTF正是应运而生,它提供了一个广受认可和广泛引用的软件框架,包含模块化的标准化应用程序和工具,旨在为ADAS功能的开发提供一站式体验。一、ADTF的关键之处!无论是奥迪、大众、宝马还是梅赛德斯-奔驰:他们都依赖我们不断发展的ADTF来开发智能驾驶辅助解决方案,直至实现自动驾驶的目标。从新功能的最初构思到批量生
    康谋 2025-01-09 10:04 75浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦