数字集成系统设计——逻辑综合

目录

 

一、概述

1.1 综合的分类

1.2 逻辑综合的基本架构

1.3 逻辑综合的内部流程

1.3.1 RTL代码转译(Translation)

1.3.2 逻辑级优化(Optimization)

1.3.3 工艺映射(Mapping)

二、优化策略

2.1 资源共享

2.2 子表达式共享

2.3 时分复用

2.4 展平化与结构化

2.4.1 展平化(Flattening,亦称扁平化)

2.4.2 结构化(Structuring,亦称层次化)

2.5 逻辑重建

2.6 门级优化

2.7 针对建立-保持时间的策略


 

一、概述

综合是指自动将上一个设计层次的数据转换成下一个层次的设计数据,可大大减少人工消耗,提高设计效率、准确度和复用性。

1.1 综合的分类

  • 行为综合:将基于HDL描述的行为级代码自动转换为RTL级代码,只考虑逻辑不考虑延时,发展缓慢。
  • 逻辑综合:将基于HDL描述的RTL级代码自动转换为门级网表,所用连线延时是理论预估值,普遍使用(本节之后所称“综合”均指“逻辑综合”)。
  • 物理综合:将基于HDL描述的RTL级代码自动转换为门级网表,所用连线延时是布局布线后提取的真实值,运算量巨大。

1.2 逻辑综合的基本架构

3c4c5a6095174e708fae854beaa07c81.jpeg

综合优化目标
  • 速度:在不出现时序违例的前提下关键路径延时最短
  • 面积:在满足时序的条件下面积最小
  • 功耗:在满足时序的条件下功耗最低
常用逻辑综合工具
  • Synopsys的Design Compiler(DC)
  • Cadence的RTL Compiler、BuildGates

1.3 逻辑综合的内部流程

1.3.1 RTL代码转译(Translation)

基于通用元件库(如DC 的Design Ware),将RTL描述转换为门级布尔描述(DC用 Gtech通用网表表征),效果主要取决于RTL编码质量。

1.3.2 逻辑级优化(Optimization)

对布尔函数进行逻辑结构上的优化,效果主要取决于EDA工具。

1.3.3 工艺映射(Mapping)

基于工艺库和约束条件,将优化好的布尔函数转换成实际的门级逻辑电路,并完成门级优化。

二、优化策略

2.1 资源共享

不同的逻辑尽可能共享相同的代码、表达式或元件,以减少芯片的面积,但可能会降低速度。比如下面的这个例子:
1b67c12667fa41c1b74ebc49f012d6b3.jpeg
同样的逻辑功能,资源共享后元件数从5个减少到3个,而且选择器的复杂度低于加法器,从而显著减小了芯片面积,而延时没有变化。事实上,在RTL代码设计时也可以使用这样的技巧。

2.2 子表达式共享

5c9fedd52de349df91cbbf63d2c9ed4b.jpeg

2.3 时分复用

        原方案:需要4个乘法器、1个加法器、2组寄存器

42805dfacf9440df8ea6fd7a577323d2.jpeg

        时分复用方案:只需要1个乘法器、1个加法器、2个多路选择器和3组寄存器。如维持原有延时不变,需将时钟频率增加到原来的四倍

766351b8913e460d89a0e03819e56def.jpeg

2.4 展平化与结构化

2.4.1 展平化(Flattening,亦称扁平化)

将设计中所有的中间变量和结构转换为只有两级逻辑的乘积和形式,适用于随机逻辑(如指令译码)的优化。
4a7c5b391d2a42539f558f7a219df301.jpeg

2.4.2 结构化(Structuring,亦称层次化)

        人为地给设计增加中间变量和逻辑结构,适应于本身就有很强结构性的单元(如加法器、乘法器和算术单元等)

 6d48f023cfab461489f0c17698a37775.jpeg

2.5 逻辑重建

在保证逻辑功能不变的前提下,重新构造布尔关系,来改善性能。例如,重排延时不同的逻辑单元的前后位置,以减少关键路径的延时;减少内部高翻转率(单位时间内电平变化次数)节点数量,从而降低动态功耗。
3dfc5ec772e34d988fdc61ea956a5bdc.jpeg

2.6 门级优化

  • 输入重排:对于多输入逻辑门,将翻转率高的信号接到输入电容小的引脚,可以降低动态功耗
  • 门的合并:将翻转率较高的逻辑门合并到输入门中,可缩短二者之间的互连线,从而降低功耗
  • 门尺寸优化:缩小翻转率较高的门的尺寸,可通过减少节点电容来降低功耗,但延迟会有增加

2.7 针对建立-保持时间的策略

相对于布局布线后的网表,在综合出的网表中,路径的延迟总是偏短,故综合时应选择最慢情况来进行优化。因此
  • 如可供综合选用的单元库有慢库(slow,延时最长Max,最坏情况WC(Worst Case))和快库(fast,延时最短Min,最好情况BC(Best Case)),则选用慢库
  • 相对于保持时间(hold time),建立时间(set time)违例在综合时更容易出现,因此优化主要针对建立时间而非保持时间
  • 综合时消除保持时间违例会让面积急剧增大,而这种违例往往在布局布线后自动消失,因此在综合阶段可暂不消除保持时间违例。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/312940.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模美赛M奖速成系列】Matplotlib绘图技巧(三)

Matplotlib绘图技巧(三) 写在前面7. 雷达图7.1 圆形雷达图7.2 多边形雷达图 8. 极坐标图 subplot9. 折线图 plot10. 灰度图 meshgrid11. 热力图11.1 自定义colormap 12. 箱线图 boxplot 写在前面 终于更新完Matplotlib绘图技巧的全部内容,有…

本地git服务器的使用

Windows上使用: 首先要在windows开发机上生成密钥: 1.安装git,首先去git官网下载git,https://git-scm.com/downloads,下载.exe格式并安装。 2.从程序目录启动“Git Bash” 3.键入命令:ssh-keygen -t rsa -…

目标检测-Two Stage-Mask RCNN

文章目录 前言一、Mask RCNN的网络结构和流程二、Mask RCNN的创新点总结 前言 前文目标检测-Two Stage-Faster RCNN提到了Faster RCNN主要缺点是: ROI Pooling有两次量化操作,会引入误差影响精度 Mask RCNN针对这一缺点做了改进,此外Mask …

FreeRTOS学习第5篇--任务优先级

目录 FreeRTOS学习第5篇--任务优先级任务优先级设计实验任务一StartDefaultTask任务相关代码片段任务二ColorLED_Test任务相关代码片段任务三IRReceiver_Task相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第5篇–任务优先级 本文目标:学习与使用FreeRTOS…

使用css实现 Typora markdown 标题自动编号

第一,找到主题文件夹 第二,复制下面代码放入 AutoNumber.css文件中 body {counter-reset: h1; }#write h1, .markdown-section h1 {counter-reset: h2; }#write h2, .markdown-section h2 {counter-reset: h3; }#write h3, .markdown-section h3 {counte…

红队打靶练习:SAR: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 小结 目录探测 1、gobuster 2、dirsearch WEB CMS 1、cms漏洞探索 2、RCE漏洞利用 提权 get user.txt 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface:…

tp5+workman(GatewayWorker) 安装及使用

一、安装thinkphp5 1、宝塔删除php禁用函数putenv、pcntl_signal_dispatch、pcntl_wai、pcntl_signal、pcntl_alarm、pcntl_fork,执行安装命令。 composer create-project topthink/think5.0.* tp5 --prefer-dist 2、配置好站点之后,浏览器打开访问成…

自动化网络故障修复管理

什么是故障管理 故障管理是网络管理的组成部分,涉及检测、隔离和解决问题。如果实施得当,网络故障管理可以使连接、应用程序和服务保持在最佳水平,提供容错能力并最大限度地减少停机时间。专门为此目的设计的平台或工具称为故障管理系统。 …

springboot基于Java的小区物业管理系统设计与实现

springboot基于Java的小区物业管理系统设计与实现 源码获取: https://docs.qq.com/doc/DUXdsVlhIdVlsemdX

初始SpringBoot:详解特性和结构

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、SpringBoot…

Android集成OpenSSL实现加解密-集成

导入so 将编译生成的 OpenSSL 动态库文件(.so 文件)复制到你的 Android 项目的 libs 目录中 导入头文件 将编译生成的include文件夹导入到项目中 build.gradle添加配置 defaultConfig {……testInstrumentationRunner "androidx.test.runner…

20231231_小米音箱接入GPT

参考资料: GitHub - yihong0618/xiaogpt: Play ChatGPT and other LLM with Xiaomi AI Speaker *.设置运行脚本权限 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned *.配置小米音箱 ()pip install miservice_fork -i https://pypi.tuna.tsinghua.edu.cn/sim…