文章目录

  • 课程内容笔记46:57开始至末尾

本节来源网络视频笔记
主要介绍DC的时序timing约束

课程内容笔记46:57开始至末尾

移除设计

remove_design -hierarchy

查看所有的design设计

list_designs

重新读入设计:

analyze -format verilog [list top.v counter.v fsm_moor.v]
elaborate -architecture verilog top

此时可以不用link,也不用current design

虽然都进来了,但是应该检查读进来的设计是否有问题,要在综合之前检查。前面两个命令会检查语法错误,至于check_design有无递归设计,或者引脚连错。

check_design

通常,如果进行check_design进行检查时候,会返回一个值如果是0那么就会有错,所以我们定义了如下脚本,同样如果我们进行link的时候,link也会返回一个值,如果这个值是0,就代表link有错。exit就代表退出DC

if {[link]==0} {echo "link with error";exit
}
if {[check_design]==0} {echo "Check designing with error! ";exit;}

为了确保在添加约束之前,约束是干净的,需要把之前的约束给清楚掉。所以建议,reset_design,此时你的设计是非常干净的,因为此时还没有约束。

reset_design

此时开始创建约束,下面创建了一个时钟周期的约束,如果没有-name那么默认这个时钟的名字就等价于这个端口的名字,都叫clk_i,当然还可以加-waveform [list 0 5],对于单沿触发一般影响不大

create_clock -period 10 [get_ports clk_i]

下面还要输入input delay,外面留6成,里面留4成,并且需要指定你相对于哪一个参考时钟

set_input_delay 6 -clock clk-i [all_inputs]

由于输入时钟端口不需要做一个delay,因此需要把输入时钟端口的delay给排除掉

remove_input_delay [get_ports clk_i]

此时设置输出端口的延迟,相对于时钟端口clock clk_i

 set_output_delay 6 -clock clk_i [all_outputs]

在DC进行综合之前需要对所有的路径添加约束,除了跨时钟域的可以设置为false_path。如果你不添加完成,他如何选择合适的cell,所以必须要全部添加约束。用check_timing检查有没有漏掉的时钟约束

check_timing

此时约束路径全部有了之后,可以跑一个简单的综合

compile

在综合完毕后,可以先看一下有没有违规的地方。

report_constraint -all_violators

此时线负载模型、驱动、面积等等都没有约束。此时约束条件是比较宽松的。

如何检查自己的tcl约束脚本是否正确。

dcprocheck  filename.tcl

DC课程笔记-数字逻辑综合工具-DC Environment Attributes相关推荐

  1. DC课程笔记-数字逻辑综合工具-DC Synthesis Optimization Techniques

    文章目录 课程内容笔记00:00开始至 本节视频来源于DC视频教程,本节主要约束环境 课程内容笔记00:00开始至 芯片的输出端口要驱动一个负载,如何在DC综合时候就模仿在流片回来后的输出管脚的负载, ...

  2. 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)

    数字逻辑综合工具-DC-04 --怎样增加时序约束(Timing Constraints) 逻辑综合的过程为:转化 优化 映射 另外还有环境约束和面积约束 时序有三个大的方面 input logic ...

  3. 数字逻辑综合工具实践-DC-08——静态时序分析(STA)

    数字逻辑综合工具-DC-08 时序分析 综合结束之后,如何确定这个网表能不能用. [Timing Reports] report_timing Incremental 信息包含了Net 和 Cell一 ...

  4. 数字逻辑综合工具实践-DC-07 ——综合优化(二)和RTL coding 和DFT

    数字逻辑综合工具实践-DC-07 --综合优化(二)和RTL coding 和DFT 主要内容: 1. Pipeline优化 2. RTL设计时的一些注意事项 3. DFT简介 (DFT是后端里很重要 ...

  5. 数字逻辑综合工具-DC-06——综合优化过程

    数字逻辑综合工具-DC-06 --综合优化过程 编译的策略:Top-down (做设计有两种策略:top-down 和 bottom-up) 设计一定是一种层次化的结构,一层一层地去例化 Top-do ...

  6. EDA实验课课程笔记(七)——DC(Design Compiler)的简介及其图像化使用(一)

    本博文用于记录DC的基本知识及一些相关的最基本概念.然后配合演示视频,对DC有一个最初步的认识.参考学校老师的PPT讲解,以及实验指导书中的内容. Design Compiler的简介及其图像化使用 ...

  7. 数字逻辑综合工具-DC-11——一些其它命令和综合之后的文件

    对于reset 和clock这种大扇出的信号来说,必须要人为设置为ideal network,不要让DC动它,因为线负载模型对于这些大扇出的情况估算不准. 如果不添加don't touch属性的话,D ...

  8. 数字逻辑综合工具实践-DC-10——CDC约束

    [分频时钟input delay] (找短的间隔) [多时钟output delay] 记得要用add_delay 也是找短的 [时钟之间的uncertainty] 模仿两个时钟之间的偏移量 要用-f ...

  9. Linux环境下EDA软件的使用——数字IC设计DC综合篇

    Linux环境下EDA软件的使用--数字IC设计DC综合篇   目前,绝大部分集成电路设计所用到EDA软件都是Linux版本,对于芯片工程师,熟悉一款EDA软件是入门的必修课,当然要真正的掌握会是十分 ...

最新文章

  1. SQL Server 批量主分区备份(One Job)
  2. [pytorch、学习] - 4.2 模型参数的访问、初始化和共享
  3. 【超详细教程】如何使用TypeScript和GraphQL开发应用
  4. 78oa mysql_78oa系统版本升级方法
  5. EXT.NET复杂布局(二)——报表
  6. linux 漏洞 poc,CVE-2017-11176: 一步一步linux内核漏洞利用 (二)(PoC)
  7. 宝塔无法安装php5,宝塔无法安装phpmyadmin怎么办
  8. [转]何时使用委托而不使用接口(C# 编程指南)
  9. java telnet 交换机_华为交换机 telnet 配置(极简版)
  10. 【PostgreSQL-9.6.3】物化视图
  11. Go 语言为Fibonacci函数实现Read方法
  12. 机器视觉的发展现状和前景分析
  13. rabbitmq使用_RabbitMQ 简介以及使用场景
  14. 计算机内存体系与Java 内存模型
  15. 树莓派能学linux吗,用树莓派能高效学习Linux和Python吗?
  16. 金仓数据库 KingbaseES 插件参考手册 sys_qualstats
  17. D3基础 | 条形图
  18. 比赛推送:ML/NLP/推荐/CV,一大波比赛来袭!
  19. 如何复制权限受限PDF文件的内容(亲测有效,Microsoft Edge打开pdf文件)
  20. java sencha_Sencha学习入门

热门文章

  1. appium(3)-Running Tests
  2. HTML5与HTML4的区别
  3. Git系列之(七) 常用指令 git reset
  4. 对未来无线解决方案的设想:家庭路由wifi充分利用方案
  5. C++ STL Pair
  6. VS查看C++类的内存分布、初步了解类的内存分布
  7. Notepad++ 列编辑操作实例二则
  8. Java web 三大框架异常学习总结
  9. 图解用Wireshark进行Http协议分析
  10. 在派生类中引发基类事件