数字IC设计 - 逻辑综合简介与Design Compiler使用(GUI方式)

news2024/11/17 17:55:18

逻辑综合

定义

逻辑综合就是将前端设计工程师编写的RTL代码,映射到特定的工艺库上,通过添加约束信息,对RTL代码进行逻辑优化,形成门级网表。约束信息包括时序约束,线载模型约束,面积约束,功耗约束等。

逻辑综合的转换过程

逻辑综合主要包含以下三个方面:翻译,门级映射,逻辑优化。

Synthesis = Translation + Gate Mapping+ Logic Optimization

Translation:将Verilog或者VHDL代码转换成GTECH网表(通用的网表格式,与工艺库没关系),然后会转换成和工艺库相关的网表设计文件。

Gate Mapping:将GTECH网表文件进行实际门级电路的映射,映射到标准单元的目标库中,此时映射的网表是没有优化的。

Logic Optimization:根据添加的约束信息,对设计进行力所能及的优化。

逻辑综合流程

首先要加载逻辑工艺库和RTL设计文件,然后要定义相关时序约束和设计规则的约束,然后进行综合设计,并分析综合后的结果,(时序报告,面积报告,功耗报告),通过分析报告检查当前设计是否符合设计要求,如果不符合需求,则修改RTL代码或者约束使得设计满足设计需求,然后写出设计数据,导出ddc文件交给后端进行设计。

Step 1:启动DC工具

GUI界面方式

在终端中输入以下指令可以启动界面化的DC工具:

design_vision

终端方式

在终端中使用下面的命令可以在终端中使用DC工具:

dc_shell

在终端模式下可以使用tcl脚本优化工具使用的效率,例如:

dc_shell -f syn.tcl | tee -i syn.log

使用-f打开脚本文件,然后将中间过程中的相关信息保存到syn.log文件中。

Step 2:设置工作环境

设置search_path

为了缩短综合过程中使用的文件的路径,DC在search_path目录下查找指定的设计和库文件,通常包括Verilog、库和脚本的目录,用户可以将目录添加到默认列表中。

例如:

set_app_var search_path "$search_path ./rtl ./scripts ./libs"

设置library

library主要包含两个库target library和link library。

target library:一般就是std cell db;放的是标准单元工艺库; 是综合目的库,存放的是需要映射的逻辑单元。一般为standard cell library & io cell library 的type;是DC在mapping时将设计映射到特定工艺所使用的库,就是使用目标库中的元件综合成设计的门级网表。用于综合过程中生成门级网表使用的,DC优化时可选择的最小门级电路(满足当前DRC,时序和逻辑功能需求),使用的是由硅供应商提供的*.db文件。

例如:

set_app_var target_library 90nm_typical.db

link library:link_library是链接库,用于“解析”网表或 RTL 中的实例化参考,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。

set_app_var target_library 90nm_typical.db
set_app_var link_library "$target_library"

Step 3:加载设计文件、设计约束

read verilog

加载默认GTECH库和用户指定的链接库,DC工具将Verilog RTL转换为Getch Netlist,当DC工具把Verilog设计文件加载进来时,已经实现了Getch 网表转换的转换。

例如:

read_verilog "TOP.v A.v B.v"

current design

使用current design可以指定当前设计的顶层,让DC工具知道哪个模块是分层设计的顶级设计,设计中除去顶层可能有多个模块。

current_design TOP

timing constrain

完成上述步骤的指定后,可以向当前设计中加入时序约束,时钟约束的目的是为了调整时钟树。

clock period

可以通过约束调整设计的期望时钟频率,例如,如果想指定时钟信号的工作频率为500MHz,使用如下约束(以下约束的时间单位均为ns):

create_clock -period 2 [get_ports CLK]

clock skew

可以通过约束进行调整时钟偏移的时间,例如,设置时钟的上升沿的偏移时间为0.3ns可以使用以下约束:

set_clock_uncertainty -setup 0.3 [get_clocks CLK]#时钟偏移时间

clock transition

在实际电路中,信号反转时都不是直上直下的,都需要反转时间,这里可以通过约束设置时钟反转的时间,例如,设置时钟信号反转时的最大时间为0.15ns可以使用以下约束:

set_ clock_transition -max 0.15 [get_clocks CLK]#信号反转时间

clock latency

添加关于latency的约束,约束latency的命令是set_clock_latency。该约束设置的延迟时间是芯片引脚到芯片驱动的器件(例如flip-flop)的clock输入的delay:

set_clock_latency -max 0.7 [get_clocks CLK]

input delay

前级其他

image-20221017215101573

set_input_delay -max 0.6 -clock Clk [get _ports A]

output delay

image-20221017215933024

set_output_delay -max 0.8-clock Clk [get_ports B]

environmental constrain

环境约束主要包括线载和容载的相关约束。

image-20221017220258617

输入端口上的上升和下降转换时间会影响输入门的单元延迟。

set_input_transition 0.12 [get_ports A]

输出端口上的电容加载会影响输出驱动器的转换时间,从而影响单元延迟。

set_load [expr {30.0/1000}] [get_ports B]

Step 4:启动编译

完成约束设计后,可以使用compile/compile_ultra对当前设计进行编译,compile_ultra指令会进最大程度去编译。

在DC工具进行编译时,会从以下三个方面对当前设计进行相关优化。

  1. 结构层综合优化,也可以叫架构层面的优化
  2. 逻辑层级优化,也可以叫做网表层级的优化
  3. 门级优化,或者叫做mapping优化

在综合优化的时,会在满足时序的前提下尽可能做到面积最小。

Step 5:分析报告

report_qor

完成综合后,会生成一个报告quality of result(qor),可以通过报告查看综合的结果,报告中会报告时序,标准单元的使用数量,以及单元占用面积大小,这里有点类似FPGA开发时的综合与布局布线后生成的资源消耗和功耗的图表。

report_timing

时序分析报告将报告DC静态时序分析工具的结果,将设计分解为单独的时钟路径,并分析每条时钟路径的最大延时。

Step 6:输出设计

完成对当前设计的结果,即可导出相关设计文件。*.sdc文件是在设计时候编写的相关约束文件,*.ddc文件是约束文件加上设计文件得到门级网表,*.gv文件是.v文件的网表,通常在综合后还会生成*.sdf文件,时延文件,*.gv文件和*.sdf文件一起使用可以做后仿真设计。

write_sdc my_design.sdc
write -f ddc -hier -output my ddc.ddc
write f verilog -hier -outout my_design.gv

图形化方式使用DC工具

设置工作环境

输入design_vision打开DC界面后,可以对软件的相关环境进行配置,这里点击file下拉菜单中的setup,即在界面中可以对search_path和library setup进行相关设置,这里可以找到自己已有的工艺库的路径和文件进行添加链接。

image-20221018134240642

相比之前介绍的library,这里多了Symbol library和Synthetic library,下面对这两个library进行简要介绍。

Symbol library 提供 Design Vision GUI 中设计实现的图形符号,如果使用脚本模式而不使用 GUI,此库可不指定 Symbol library。

Synthetic library:即为 Designware library ,名字上翻译是综合库,但却常称之为IP库,而不是直译。特殊的 Designware library 是需要授权的(比如使用多级流水线的乘法器),默认的标准 Designware 由 DC 软件商提供,无需指定。

加载设计文件

这里点击file下拉菜单中的setup,点击read,选中添加之前的全加器代码进行打开。

image-20221018141456636

添加后可看到这里的结构层级中已经存在了全加器的文件,因为这里只添加了一个文件,所以当前设计的顶层也即为该文件。

image-20221019132629449

选中全加器文件右键点击schematic view可查看代码对应的原理图,这里对应FPGA开发设计中的RTL view,

image-20221019132839953

双击后可查看内部的具体的结构,

image-20221019133005521

设置约束

在attribute下拉菜单中有设置约束的相关选项,可以在此设置环境约束以及设计相关的时钟约束等。

image-20221019133229071

image-20221019133333669

编译以及查看报告

正常工作流程中,设置完相关约束信息后即可启动编译,在design下拉菜单中可以点击compile Design,弹出编译窗口后这里保持默认设置运行编译。同时,design菜单中可以打开相关设计的分析报告进行分析设计的性能。

image-20221019133906263

在log界面中将会打印相关编译信息,这里仅仅是组合逻辑的加法器所以对于编译过程来说并不需要太多既可完成运行。、

image-20221019134310941

导出设计文件

在界面化的方式下使用DC可以在File下拉菜单中,选择save as 保存设计的相关文件。

image-20221019134754692

至此,界面操作的方式使用DC的大致流程讲解完毕。

reference

  1. link library 、target library、symbol library、synthetic library对照分析

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的Mysql突然挂了(Communications link failure)

在一个风和日丽的下午,我照常继续做着我的项目,今天的主题是一个涉及多表的分页查询 老复杂了!写了半天才搞好。当我满怀期待运行项目,进入页面后发现登陆后台却怎么也登陆不上,吓得我连忙回去查看后台日志&#xff0…

互联网快讯:天猫好房正式入驻六安;搜狗又一业务关停

国内要闻 搜狗又一业务关停:搜狗科学百科将于11月11日正式停止服务与运营; 提振生产效能、促进研发创新,smart品牌获逾80亿元银团综合授信; 微博联合淘宝联盟推出“天猫双11”特惠政策:将免除原15%佣金;…

Linux设置终端的个数(tty的个数)。

1.什么是tty? 就是终端设备,比如终端1叫做tty1,终端2,就叫做tty2,以此类推。 官方解释: 在Linux中,TTY也许是跟终端有关系的最为混乱的术语。TTY是TeleTYpe的一个老缩写。Teletypes&#xff…

机器人轨迹规划:On-Line Trajectory Generation in Robotic System关于机器人运动控制的介绍翻译

文章目录写在前面机器人运动控制路径规划与轨迹跟踪基于传感器制导的机器人运动控制这本书的语言问题的制定和动机定义:“sensor-guarded”机器人运动控制游走:人类的神经生理系统On-Line这本书的概要参考文献写在前面 致敬大佬! 毫无疑问&a…

SuperMap GIS基础软件天地图服务QA

目录 一、天地图有哪些类型? 二、国家天地图提供哪些服务? 三、使用前你应该知道的天地图知识 1.天地图服务协议 2.天地图相关参数 3.如何申请天地图key 4.天地图瓦片预览 四、天地图在SuperMap产品中的使用方式 1.iDesktop&iDesktopX 2.iServer 3.i…

【CMU15-445数据库】bustub 项目介绍及环境配置

开新坑啦 突然想起来之前一直想做的 CMU 15-445 课程的 2022 Fall 学期开课了,所以决定把 Pintos 项目先放一放,开个新坑跟着 CMU 同步把这个项目做了。 课程网站:CMU 15-445/645 (FALL 2022) 老规矩课程内容就不说了,课程网站…

第十三届蓝桥杯C++B组国赛H题——机房 (AC)

目录1.机房1.问题描述2.输入格式3.输出格式4.样例输入5.样例说明6.数据范围7.原题链接2.解题思路3.Ac_codetarjan倍增LCA1.机房 1.问题描述 这天, 小明在机房学习。 他发现机房里一共有 nnn 台电脑, 编号为 1 到 nnn, 电脑和电脑之间有网线连 接, 一共有 n−1n-1n−1 根网线…

【Linux】基本的指令(三)

大家好我是沐曦希💕 Linux专栏:Linux零基础学习 文章目录1.时间相关的指令2.Cal指令3.find指令:(非常重要)-name4.grep指令5.zip/unzip指令6.写在最后1.时间相关的指令 date显示 date 指定格式显示时间: date %Y:%m:%d date 用法: date [OPT…

基于javaweb的oa办公管理系统(java+layui+ssm+mysql+jsp+html)

基于javaweb的oa办公管理系统(javalayuissmmysqljsphtml) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基…

迅为iMX6ULL开发板NXP嵌入式ARM核心板Linux系统i.MX6ULL超STM32

核心板参数 尺寸: 38mm*42mm PCB: 6层 CPU: iMX6ULL ARM Cortex-A7架构 单核 iMX6ULL 商业级: 内存:512M 存储:8G EMMC iMX6ULL 工业级: 内存:256M 存储:512M FL…

python正态分布中的normal函数

python正态分布中的normal函数 概念 1、正态分布又名高斯分布,是人们最常用的描述连续型随机变量的概率分布。 在金融学研究中,收益率等变量的分布假定为正态分布或者对数正态分布(取对数后服从正态分布)。因为形状的原因,正态分布曲线也被…

Mysql实战调优拾遗三

Mysql实战调优拾遗三优化小细节(续)索引监控查询优化查询慢的原因优化数据访问执行过程的优化查询缓存语法解析和预处理查询优化器优化器的优化策略优化器的优化类型关联与排序优化优化特定类型的查询优化count查询优化关联查询优化子查询优化group by 和…

DOS 命令

前提:打开命令行,winr打开窗口输入cmd回车 1、如何操作DOS命令 建议:初学者在虚拟机中完成实验!!! 开始 --- 运行 --- 输入cmd --- 回车,将调出C:\windows\system32\cmd.exe 或者 win R --- 运…

BH1750( GY-302 )光照传感器

文章目录一、产品简介二、IIC通信三、BH1750的使用四、程序源码这里我先简单的介绍一下BH1750光照传感器模块的基本信息(不多废话),我将着重讲解它的使用部分,相信对于屏幕前的你也是更关心它是怎么使用的,OK,gogogo!&…

2019第一届长安杯

检材一 案情简介 在一起电诈案件中,受害者称自己的银行卡被他人冒用,曾收到假冒公安的短信,因为 自己在一个 P2P 网站中理财,假冒公安称该网站已被列外非法网站,要自己到公安备案网站 填写自己的信息,并…

基于javaweb的crm客户关系管理系统(java+springboot+mysql)

基于javaweb的crm客户关系管理系统(javaspringbootmysql) 运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javawebsp…

云扩研习社 | RPA高级开发技巧(上)

高级元素选择技巧 XPath介绍 XPath是标准的结构化查询语言,内置丰富的语法、高阶函数可以提供非常强大的目标元素特征描述能力。 XPath是一种强大、复杂的查询语言;XPath与编辑器中内置的选择器没有本质区别,均可作为元素特征描述&#xff…

毕业设计 基于51单片机老人防跌倒GSM短信报警系统

基于51单片机无线蓝牙APP控LED灯亮灭亮度设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 GSM SIM800A模块电路设计2.2 蜂鸣器报警电路(低电平有效)设计2.3 ADXL345倾角传感器模块电路设计2.4 DS18B20温度传感器模块电路设计3、部分代码展示…

面试官问我 “A + B” 算法,我懵了

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

逆向学习-UltraEdit安装

一、相关软件安装 1、UltraEdit 1.1、简介 UltraEdit 是当今销量第一且最为强大的一款高性价比的文本编辑器。尽管不是一款开源软件,但多数程序员都使用这款编辑器,支持多种编程语言的语法着色和外挂编译功能。UltraEdit 是理想的文本、HTML 和十六进…