0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTL时序逻辑的综合要求

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2023-01-13 13:57 次阅读

数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。

组合逻辑描述了门级电路,其中逻辑块的输出直接反映到该块的输入值的组合,例如,双输入AND门的输出是两个输入的逻辑与。如果输入值发生变化,输出值将反映这一变化,组合逻辑的RTL模型需要反映这种门级行为,这意味着逻辑块的输出必须始终反映该逻辑块当前输入值的组合。

SystemVerilog有三种在可综合RTL级别表示组合逻辑的方法:连续赋值语句、always程序块和函数。接下来几篇文章将探讨每种编码风格,并推荐最佳实践编码风格。

c6752962-9301-11ed-bfe3-dac502259ad0.png

时序逻辑概念

时序逻辑描述了一种重要的门级电路,其中输出反映了一个由门的内部状态存储的值。只有特定的输入变化,如时钟沿,才会导致存储的变化。对于D触发器,时钟输入的特定边沿将改变触发器的存储,但D输入值的变化并不直接改变存储。相反,特定的时钟沿会使触发器的内部存储更新为时钟沿的D输入值。

时序逻辑的RTL模型需要反映这种门级行为,也就是说,逻辑块的输出必须在一个或多个时钟周期内存储一个值,并且只为特定的输入变化而更新存储的值,而不是所有输入变化。在RTL层面,一个always或always_ff过程被用来模拟这种时序行为。本系列文章主要研究:

RTL时序逻辑的综合要求

always_ff 时序逻辑建模

时序逻辑时钟到Q的传播和建立/保持时间

使用非阻塞赋值来模拟时钟到Q的传播效应

同步和异步复位

多个时钟和时钟域交叉(CDC)。

在时序逻辑RTL模型中使用单元延时

建立有限状态机(FSM)模型

对Mealy和Moore FSM架构进行建模

状态解码器,并使用独热码的独特情况

对内存设备进行建模,如RAM

触发器和寄存器的RTL模型

触发器和寄存器被用来在一段时间内存储信息。术语触发器和寄存器经常被当作同义词使用,尽管它们在加载和复位的方式上可能存在差异。触发器是一种存储元件,在时钟沿上改变存储的状态。各种各样的硬件应用都可以由触发器构建,如计数器、数据寄存器、控制寄存器、移位寄存器和状态寄存器。寄存器可以由任何类型的数据存储设备构建,包括触发器、锁存器和RAM。大多数硬件寄存器是由触发器建立的。

时序逻辑触发器和寄存器的RTL模型是用一个带有灵敏度列表的always或always_ff过程建模的,该过程使用时钟边沿来触发过程的评估。一个RTL触发器的例子是:

c682ca22-9301-11ed-bfe3-dac502259ad0.png

一般来说,RTL模型被写成在时钟输入的正边沿触发触发器。所有的ASICFPGA器件都支持在时钟的上升沿(正边沿)触发的触发器。一些ASIC或FPGA器件还支持在时钟的下降沿触发的触发器。触发器和由触发器组成的寄存器可以是不可复位或可复位的。复位可以是同步的,也可以是与时钟触发不同步的。一些触发器也有一个异步复位输入。

在门级设计中,有几种类型的触发器,例如。SR, D,JK和T触发器。RTL模型可以从这个实现细节中抽象出来,并被写成通用的触发器。

在RTL建模中,重点是设计功能,而不是设计实现。综合编译器的作用是将抽象的RTL功能描述映射到具体的门级实现。大多数ASIC和FPGA器件使用D型触发器,所以本文假设综合编译器从RTL触发器中推断出的触发器类型。

RTL时序逻辑的综合要求

当always程序的敏感度列表包含关键字posedge或negedge时,综合编译器将尝试推断出一个触发器。然而,综合编译器还要求满足以下额外的代码限制,以便推断出一个触发器。

程序灵敏度列表必须指定时钟的哪个边沿触发更新触发器的状态(posedge或negedge)。

灵敏度列表必须指定任何异步设置或复位信号的前缘(posedge或negedge)(同步设置或复位不在灵敏度列表中列出)。

除了时钟、异步设置或异步复位外,灵敏度列表不能包含任何其他信号,如D输入或使能输入。

该过程应该在零仿真时间内执行。综合编译器会忽略#延迟,并且不允许@或等待时间控制。这条规则的一个例外是使用分配单元内的延迟(后续详解)。

在时序逻辑程序中赋值的变量不能被任何其他程序或连续赋值所赋值(允许在同一程序中多次赋值)。

在一个时序逻辑程序中,一个被赋值的变量不能有阻塞和非阻塞的混合赋值。例如,复位分支不能用阻塞赋值建模,而时钟分支则用非阻塞赋值建模。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1369

    浏览量

    115107
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    60013
  • 触发器
    +关注

    关注

    14

    文章

    2019

    浏览量

    61397
  • 时序逻辑
    +关注

    关注

    0

    文章

    39

    浏览量

    9196
  • 门级电路
    +关注

    关注

    0

    文章

    15

    浏览量

    2008

原文标题:数字硬件建模SystemVerilog-时序逻辑建模(1)RTL时序逻辑的综合要求

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈IC设计中逻辑综合

    。由于主频是芯片性能的重要指标之一,如果希望关键路径的延迟满足芯片设计的周期时间,不但需要RTL 代码描述满足要求,更要讲究综合中对关键路径的处理方法。关键字:逻辑
    发表于 05-16 20:02

    [启芯工作室] 逻辑综合 02 Design and Technology File

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 03-09 16:09

    [启芯工作室] 逻辑综合 03 Design Objects

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 03-09 16:11

    [启芯工作室] 逻辑综合 05 Environment Attributes

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 03-09 16:13

    [启芯工作室] 逻辑综合 05-03 Environment Attributes

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 03-23 20:54

    [启芯工作室]逻辑综合 06 Timing Analysis

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 03-23 20:55

    [启芯][公开课]数字逻辑综合 02 Design and Technology File

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 07-03 16:41

    [启芯][公开课] 数字逻辑综合 03 Design Objects

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 07-03 16:45

    [启芯][公开课] 数字逻辑综合 04 Timing constraints

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 07-03 16:52

    [启芯][公开课] 数字逻辑综合 04-1 Timing constraints

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 07-03 16:55

    [启芯][公开课] 数字逻辑综合 05 Environment Attributes

    本课程主要介绍通过逻辑综合工具,将Verilog RTL 代码转换成门级网表的方式,以满足设计的时序要求。学习本课程可以熟悉
    发表于 07-03 16:57

    求一套手工逻辑综合的方法和综合步骤?

    手工综合RTL级代码的理论依据和实用方法时序逻辑综合的实现方法
    发表于 04-08 06:06

    时序逻辑等效性的RTL设计和验证流程介绍

    关于时序逻辑等效性的RTL设计和验证流程介绍。
    发表于 04-28 06:13

    逻辑综合与物理综合

    利用工具将RTL代码转化为门级网表的过程称为逻辑综合综合一个设计的过程,从读取RTL代码开始,通过时序
    的头像 发表于 11-28 16:02 2832次阅读

    什么是逻辑综合逻辑综合的流程有哪些?

    逻辑综合是将RTL描述的电路转换成门级描述的电路,将HDL语言描述的电路转换为性能、面积和时序等因素约束下的门级电路网表。
    的头像 发表于 09-15 15:22 5609次阅读
    什么是<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>?<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>的流程有哪些?