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

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

3天内不再提示

RTL设计编码原则

sakobpqhz6 来源:IC学习 2023-01-12 09:44 次阅读

同步设计和异步设计的特点

同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。

同步电路特点:时钟个数只有一个,电路中触发器的时钟输入端连接同一个时钟脉冲源,所有触发器的状态变化都与所加的时钟脉冲信号同步;由于只有一个时钟,所以整个电路所有时钟应该是同源同相的;一般会滤掉毛刺,不需要特别考虑竞争与冒险;有利于静态时序分析;设计的电路具有强耦合关系,不利于面积优化与低功耗优化,不灵活;存在时钟偏斜问题。

b3907712-91a2-11ed-bfe3-dac502259ad0.png

异步电路特点:电路中没有统一的时钟(可以有多个时钟),有些触发器的时钟输入端与时钟脉冲源相连(与时钟脉冲源同步),其余触发器状态变化不与时钟脉冲源同步;由于有多个时钟,因此有些时钟是同源不同相的,有些是不同源的;很大概率存在竞争与冒险;一般无法对异步电路进行静态时序分析;电路耦合关系很弱,设计比较灵活,相同条件下比同步电路功耗低;不存在时钟偏斜问题。

b3c75d68-91a2-11ed-bfe3-dac502259ad0.png

做模块划分时应该考虑哪些问题

结构层次化是设计的一种基本思想,需要注意:结构不宜太深,否则综合时面积过大,综合工具会默认做扁平化处理;顶层设置不宜过于复杂,主要完成诸如输入输出,模块调用与实例化,全局时钟,三态总线,全局复位等等简单的功能;双向的信号最好只在顶层出现;子模块之间最好不要有跨层次的接口;合理考虑子模块的功能、结构、时序等。

模块划分的技巧:对每个同步时序设计的子模块的输出使用寄存器处理;将相关的逻辑或者可以复用的逻辑写在一起;将不同优化目标的部分分开,时序的和面积的分开处理;将时序宽松的分到同一个模块;将存储器件独立划分;合理规划模块的规模。

b3fdfe72-91a2-11ed-bfe3-dac502259ad0.png

图1模块划分示意图

组合逻辑设计有哪些考虑点

根据逻辑功能的不同特点,可以将数字电路分成两大类,一类称为组合逻辑电路(简称组合电路),另一类称为时序逻辑电路(简称时序电路)。

常见组合逻辑电路包括编码器、译码器、数据选择器、数值比较器、加法器、函数发生器、奇偶校验器/发生器等。

b411a60c-91a2-11ed-bfe3-dac502259ad0.png

图2组合逻辑之半加器

组合逻辑设计注意事项包括:避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等);替换延迟链,用倍频、分频或者同步计数器完成;替换异步脉冲产生单元(毛刺生成器),用同步时序设计脉冲电路;慎用锁存器,锁存器容易产生毛刺。

RTL代码优化有哪些技巧

Pipelining,即流水线时序优化方法,其本质是调整一个较长的组合逻辑路径中的寄存器位置,用寄存器合理分割该组合逻辑路径,从而降低了对路径的Clock-To-Output和Setup等时间参数的要求,达到提高设计频率的目的。但是必须要注意的是,使用Pipelining优化技术只能合理地调整寄存器位置。

模块复用与Resource Sharing,Sharing模块复用和Resource Sharing是一种节约面积的思想,在设计电路中,在不影响性能的情况下,实现最少的逻辑资源开销。

逻辑复制是一种通过增加面积而改善时序条件的优化手段。逻辑复制最常使用的场合是调整信号的扇出。如果某个信号需要驱动后级的很多单元,换句话说,也就是其扇出非常大,那么为了增加这个信号的驱动能力,必须插入很多级Buffer,这样就在一定程度上增加了这个信号路径的延时。这时可以复制生成这个信号的逻辑,使多路同频同相的信号驱动后续电路,平均到每路的扇出变低,不需要加Buffer也能满足驱动能力的要求,这样就节约了该信号的路径时延。

香农扩展(Shannon Expansion)也是一种逻辑复制、增加面积、提高频率的时序优化手段。香农扩展通过逻辑复制、增加MUX(多路选择器)来缩短某个优先级高但组合路径长的信号的路径延时(信号a),从而提高该关键路径的工作频率,以增加面积换取电路时序性能的优化。其扩展运算公式为:Fa,b,c=aF1,b,c+aF(0,b,c)。

b42cf0d8-91a2-11ed-bfe3-dac502259ad0.png

END

审核编辑 :李倩

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

    关注

    6

    文章

    835

    浏览量

    54458
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59077
  • 同步电路
    +关注

    关注

    1

    文章

    56

    浏览量

    13138

原文标题:RTL设计编码原则

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

收藏 人收藏

    评论

    相关推荐

    如何通过优化RTL减少功耗

    对于功耗估算来说,架构阶段为时过早,物理设计阶段为时已晚。有一种趋势是在项目的RTL阶段分析power hot spots。与后期分析相比,基于 RTL 的功耗分析更快、更容易执行,迭代时间更短。
    的头像 发表于 04-05 09:15 1417次阅读
    如何通过优化<b class='flag-5'>RTL</b>减少功耗

    编码器如何选择合适的脉冲数

    编码器脉冲数的选择原则 1. 分辨率需求:编码器的分辨率决定了脉冲数的选择。在符合应用需求的前提下,应选择尽可能高的分辨率,以提高测量精度。 2、依据转速要求选取:依据设备的工作速度要求来选择
    的头像 发表于 03-01 13:36 494次阅读
    <b class='flag-5'>编码</b>器如何选择合适的脉冲数

    哈夫曼编码怎么算 哈夫曼编码左边是0还是1

    哈夫曼编码是一种基于频率的变长编码方式,常用于数据压缩和信息传输领域。它是由美国数学家大卫·哈夫曼在1952年发明的,被广泛应用于无损压缩领域。 哈夫曼编码算法的基本思想是根据字符出现的频率构建一棵
    的头像 发表于 01-30 11:27 570次阅读

    嵌入式C编码原则

    1 编码原则 1.1 可读性原则 (1)清晰第一 清晰性是易于维护程序必须具备的特征。维护期变更代码的成本远远大于开发期,编写程序应该以人为本,计算机第二。一般情况下,代码的可阅读性高于性能,只有
    的头像 发表于 12-07 14:21 188次阅读

    数字前端生存指南—RTL

    在数字前端领域,RTL几乎与“设计代码”概念相同。
    的头像 发表于 12-04 10:14 3712次阅读
    数字前端生存指南—<b class='flag-5'>RTL</b>

    从可综合的RTL代码的角度聊聊interface

    SystemVerilog引入了interface,这里我们从可综合的RTL代码的角度聊聊interface。
    的头像 发表于 10-12 09:06 895次阅读
    从可综合的<b class='flag-5'>RTL</b>代码的角度聊聊interface

    RTL8211F参考原理图

    RTL8211F参考原理图
    发表于 10-11 15:26 40次下载

    RTL8305光纤收发器原理图

    RTL8305光纤收发器原理图
    发表于 10-11 15:25 8次下载

    Cadence 推出 Joules RTL Design Studio,将 RTL 生产力和结果质量提升到新的高度

    内容提要 将 RTL 收敛速度加快 5 倍,结果质量改善 25% RTL 设计师可快速准确地了解物理实现指标,根据提供的指引有效提升 RTL 性能 与 Cadence Cerebrus
    的头像 发表于 07-17 10:10 541次阅读
    Cadence 推出 Joules <b class='flag-5'>RTL</b> Design Studio,将 <b class='flag-5'>RTL</b> 生产力和结果质量提升到新的高度

    RTL电路的设计原则和方法

    既然RTL是寄存器传输级电路,那么电路设计就一定是以寄存器的特性为基础进行设计。
    的头像 发表于 07-13 16:17 3898次阅读
    <b class='flag-5'>RTL</b>电路的设计<b class='flag-5'>原则</b>和方法

    MQTT瑞昱Ameba RTL8195开源分享

    电子发烧友网站提供《MQTT瑞昱Ameba RTL8195开源分享.zip》资料免费下载
    发表于 07-06 11:28 1次下载
    MQTT瑞昱Ameba <b class='flag-5'>RTL</b>8195开源分享

    直接在网表中插入RTL来快速做芯片功能ECO

    我们在网表里直接插入了RTL的always语句,对wr_data_7_进行了打拍和简单逻辑处理(新加的逻辑所需要的输入信号都可以在原网表中找到),把处理后的信号wr_data_7_new_d接到原DFF的D端,如下图中的箭头。这种在网表里直接插入和修改的RTL也叫做
    的头像 发表于 06-06 16:20 1274次阅读
    直接在网表中插入<b class='flag-5'>RTL</b>来快速做芯片功能ECO

    编码器是什么?编码器有哪些分类及应用

    编码器是什么?编码器有哪些分类及应用;编码器是什么?在数字信号处理和通信系统中,编码器是一种重要的设备,用于将原始数据转换为字符序列或二进制码序列。
    的头像 发表于 05-18 11:08 3570次阅读
    <b class='flag-5'>编码</b>器是什么?<b class='flag-5'>编码</b>器有哪些分类及应用

    RTL8211F(I)-CG_RTL8211FD(I)-CG.P以太网收发器

    Realtek RTL8211F-CG/RTL8211D-CG/RTL 8211FI-CG/RTL8211FDI-CG是一款高度集成的符合10Base-T、100Base-TX和100
    发表于 05-15 10:16 54次下载

    增量型编码器与绝对值编码

    增量型编码器与绝对值型编码器怎么选择?在进行编码器选择时,增量型编码器和绝对值型编码器是两种常见的选择。增量型
    的头像 发表于 05-08 11:28 1508次阅读
    增量型<b class='flag-5'>编码</b>器与绝对值<b class='flag-5'>编码</b>器