首页 > 其他分享 >DC逻辑综合工具简介-Design Compiler

DC逻辑综合工具简介-Design Compiler

时间:2023-09-10 19:23:10浏览次数:40  
标签:-- RTL DC dc Design RC 综合 Compiler

  • 逻辑综合:代码转变为网表
  • FPGA:代码转变为FPGA内部的数字单元
  • 在进行综合的时候往往会使用一些脚本工具

1.目标

  • RTL -- 书写完成后,输入到DC,复杂的RTL设计,通常是层次化设计
  • 综合库 -- 使用的工艺库,比如台积电5nm工艺,设计约束和技术文件
  • 了解命令,掌握分析报告的方法

2.必备知识

  • 门级 -- 将RTL转变为门级电路(或门\寄存器\与门\与非门)实现的网表
  • idea -- 需求 -- 架构 -- 微架构设计 -- RTL -- Netlist -- 版图 -- Fab -- 芯片 -- 封装测试 -- 集成到PCB上

2.1 综合逻辑

  • 第一遍综合的时候,输入的是代码,没有物理信息,综合结果可能不是很理想
  • 往往在第一遍综合之后还可能进行第二遍综合

2.2 综合流程


  • 转化:先将RTL代码转变为一种GTECH格式的通用网表(和使用的具体工艺库是不对应的)

3.综合示例

3.1 RTL

module (
  input wire [31:0] a_in,
  input wire [31:0] b_in,
  input wire [0:0]  c_in,
  output wire [31:0] sum_out,
  output wire [0:0] c_out
);

  assign {c_out,sum_out} = a_in + b_in + c_in;

endmodule

3.2 综合过程

  1. 在命令行中输入dc_shell
dc_shell

  • 一般使用脚本的形式
    2.source 综合文件
source syn.tcl


3.产生结果

3.3 syn.tcl脚本内容




4.两种计算互连产生的RC系数的方式


  • WLM根据扇出的数量估算门电路和门电路之间的线路长度,以此来推断RC的大小,是一种概率学上的统计结果
  • 优点:方便计算
  • 缺点:计算RC > 实际RC,会有一些冗余设计,浪费一些面积;计算RC < 实际RC,网表包含欠量的缓冲门
  • 会对RC的结果进行迭代,就是多计算几次
  • 寄存器之间的延迟:standcell的延时和一些连线,对于standcell的延时,是准确的,唯一不准确的连线的延时往往是不准的,在综合的时候往往需要迭代
  • 采用拓扑的方式计算RC,拓扑模式需要读取RTL之外还需要读入物理信息 ,有物理信息支持之后,计算的RC结果往往是准确的,可以针对性的对一些路径进行优化
  • QOR -- quality of result
  • TTR -- Time to Result
  • 拓扑模式:需要布局布线之后的物理信息
  • 在企业中往往使用双程的综合方法,首先使用WLM方式进行一遍逻辑综合,后端使用WLM工具进行一遍布局布线,将布局布线后的物理信息传递给DC,再次进行拓扑模式下的综合

4.1 双程综合方法

  • 首次综合,可以添加一些约束
  • ICC -- 进行布局布线,产生DEF文件,其中包含了一些物理信息
  • 拓扑模式下的综合:DCT,产生一个网表
  • ICC -- 再次进行布局布线

5.约束驱动综合

  • 频率约束,面积约束
  • DC优先满足时钟频率,在保证时钟的情况下,优化面积
  • delay小,performace好,面积大;delay大,performance差,面积小;
  • power/performance/area -- 三者是相互约束的

6.综合工具的启动方式


1.在命令行输入design_vision,可以打开图形化界面,查看物理信息的时候使用图形化界面

design_vision 


2.dc_shell,使用的是WLM license,交互模式

# 使用WLM模式
dc_shell

# 使用拓扑模式
dc_shell -topo

  1. 使用bash模式,长用于使用稳定脚本,查看报告,在公司中经常使用bash模式
dc_shell -f syn.tcl | tee -i run.log

7.Unix\Linux系统DC-Shell命令

dc_shell 


  • dc_shell 中执行linux命令,前面加sh
  • 执行上一步操作
1.上下箭头可以选择命令
2.!!--执行上一步操作
3.!+上一步开头的命令
  sh gvim test.v  

  !sh -- 可以执行上述命令
  !s -- 也可以执行上一步命令
4.history -- 查看历史命令,通过!+数字选择执行第几条命令


  • .ddc文件包含网表和约束sdc文件,拿到.ddc文件可以认为是进行了综合

8.DC工具掌握

8.1 综合主要步骤

  • .db文件 -- 逻辑综合库

8.2 DC主要流程

8.3 DC命令总览

  • current_design top 设置顶层为综合对象
  • link -- 将RTL层级理顺
  • check_design -- 检查RTL代码

标签:--,RTL,DC,dc,Design,RC,综合,Compiler
From: https://www.cnblogs.com/Icer-newer/p/17691373.html

相关文章

  • 16bit 4 通道250MS/s ADC 与 16bit 4 通道500MS/s DAC FMC AD/DA 子卡
    概要QT7351是一款高分辨率、高采样率的ADC+DACFMC子板。它同时支持4路16位250MS/s的A/D通道输入和4路16位500MS/s的D/A通道输出。板卡支持触发输入和触发输出;内参考、外参考、外时钟三种时钟方式,可通过SPI总线实现时钟源选择。通过参考时钟可实现多个板卡的同步。 QT7351板卡......
  • ADQ7DC-10GSPS, 14bit数字化仪
    概要1.高分辨率和高采样率的独特结合ADQ7DC具有14bit和10GSPS采样率,提高了高采样率应用中的分辨率,超出了以前的范围。这种性能提升有效地帮助我们的客户克服了性能折衷,并在许多应用中取得了重大进步。ADQ7DC可以单通道或双通道模式工作,分别具有10或5GSPS采样率。2.多功能模拟前......
  • QT7331 14bit 2 通道3/2.6/2GS/s ADC + 16bit 2 通道12.6GS/s DAC FMC AD/DA 子卡
    概要QT7331是一款高分辨率、高采样率的ADC+DACFMC子板。它同时支持2路14位3.0/2.6/2.0GS/s的A/D通道输入和2路16位12.6GS/s的D/A通道输出,全功率模拟-3dB输入带宽可达9GHz。QT7331A为3GSPS采样率,QT7331B为2.6GSPS采样率,QT7331C为2GSPS采样率。本板卡支持触发输入或者输出;内参考、......
  • FMC AD/DA 子卡 1 通道4GSPS 12bit ADC 采集 1 通道12.8GSPS 16bit DAC 回放
    概要QT7332是一款集成单通道ADC采集和单通道DAC回放的FMC板卡,ADC(ADC12J4000)转换速率最高为4GSPS,ADC位数12bit,DAC(AD9162)转换速率最高为12.8GSPS,DAC位数16bit;板卡支持触发输出/触发输入可调;触发/同步可选;采样时钟源支持内部参考时钟、外部参考时钟、外部采样时钟三种方式,可通过2个......
  • 2通道16bit 1G ADC采集和4通道2.8G DAC回放的FMC板卡
    概要QT7335是一款集成2通道ADC采集和4通道DAC回放的FMC板卡,ADC(ADS54J60)转换速率最高为1.0GSPS,ADC位数16bit;DAC(DAC39J84IAAV)转换速率最高为2.8GSPS,DAC位数16bit;板卡支持触发输出/触发输入可选;触发/同步可选;采样时钟支持内部参考时钟、外部参考时钟、外部采样时钟三种方式可选,可通......
  • FMC ADC12DJ3200子卡12bit 两通道3.2G或单通道6.4G
    概要QT7126是一款高分辨率、高采样率ADCFMC子板。它提供2路12位3.2GS/s或1路6.4GS/s的A/D通道,全功率模拟-3dB输入带宽可达8GHz。本产品是基于TI公司ADC12DJ3200模数转换芯片而设计。板卡支持同步触发输出或者输入;内部参考时钟、外部参考两种时钟方式,可通过SPI总线实现时钟源选择......
  • mysql 开启cdc归档日志
    1、介绍mysql开启归档只需要在mysql的 my.ini 中添加几个配置即可(适用版本如下:)2、说明如下:#配置二进制日志,下面的路径logs文件夹需要提前建好log-bin=E:/mariadb-10.4.20-winx64/logs/mysql-bin.log#设置最大存储空间max-binlog-size=50000M#指定服务idser......
  • Proj CDeepFuzz Paper Reading: Metamorphic Testing of Deep Learning Compilers
    Abstract背景:CompilingDNNmodelsintohigh-efficiencyexecutablesisnoteasy:thecompilationprocedureofteninvolvesconvertinghigh-levelmodelspecificationsintoseveraldifferentintermediaterepresentations(IR),e.g.,graphIRandoperatorIR,an......
  • 完美解决Python词云库wordcloud不显示中文问题
    你的Python词云库wordcloud显示的都是方框吗?别担心,我有一个妙招让你的中文词云变得美观又清晰!背景:wordcloud是一个基于python的词云生成库,它可以让你用简单的代码创建出各种形状和颜色的词云图像wordcloudgithub地址:https://github.com/amueller/word_cloudwordcloud\(\color......
  • 2023-09-08 小程序之启用组件按需注入 ==》 添加一行代码:"lazyCodeLoading": "require
    在manifest.json文件里面的mp-weix对象添加代码:"lazyCodeLoading":"requiredComponents"可实现组件按需注入,引用官方说法就是:启用按需注入后,小程序仅注入当前访问页面所需的自定义组件和页面代码。未访问的页面、当前页面未声明的自定义组件不会被加载和初始化,对应代码文件将不被......