【数字IC设计】Design Compiler入门

这篇具有很好参考价值的文章主要介绍了【数字IC设计】Design Compiler入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本博客参考自文章链接
本文以全加器为例,演示DC综合的流程。设计文件如下:

module full_adder(
input clk,
input rstn,
input [31:0] a_in,
input [31:0] b_in,
input c_in,
output reg [31:0] sum_out,
output reg c_out
);
wire c_out_w;
wire [31:0] sum_out_w;

assign {c_out_w,sum_out_w}=a_in+b_in+c_in;

always@(posedge clk)
if(~rstn)
   c_out<=0;
else
   c_out<=c_out_w;
//
always@(posedge clk)
if(~rstn)
   sum_out<=0;
else
   sum_out<=sum_out_w;

endmodule

创建library文件夹

创建library文件夹,将工艺库文件放入此文件夹,如下图所示
【数字IC设计】Design Compiler入门

设置环境变量

启动dc,输入

set_app_var search_path ./library

输入

set_app_var target_library sc_max.db

设置目标库
输入

set_app_var link_library sc_max.db

设置链接库
结果如下图所示
【数字IC设计】Design Compiler入门

读入设计文件

输入命令:

read_file -format verilog {./full_adder.v}

输入后显示如下:
【数字IC设计】Design Compiler入门
然后输入check_design检查设计,如下图所示
【数字IC设计】Design Compiler入门
显示1,说明读取无误

添加约束

创建时钟

create_clock -period 10 [get_ports clk]

设置输入延迟

set_input_delay -max 3 -clock clk [remove_from_collection [all_inputs] clk]

设置输出延迟

set_output_delay -max 2.5 -clock clk [all_outputs]

以及设置输入转换时间

set_input_transition 0.15 [all_inputs]

最后输入check_design进行检查

check_design

整个过程如图所示:
【数字IC设计】Design Compiler入门

综合

输入compile进行综合。如下图所示
【数字IC设计】Design Compiler入门

查看综合报告

输入report_clock查看时钟
【数字IC设计】Design Compiler入门
输入report_timing查看时序报告
【数字IC设计】Design Compiler入门
可以看到,slack为3.77,大于0,时序是MET的。
输入report_area查看综合后的面积:
【数字IC设计】Design Compiler入门

输出相关文件

生成一个.sdc结尾的时序约束文件:

write_sdc full_adder.sdc

文件内容就是我们添加的约束:
【数字IC设计】Design Compiler入门

输出用于做后仿的.sdf时延文件:

write_sdf full_adder.sdf

输出RTL的网表文件

write_file -format verilog -output full_adder_netlist.v

网表文件的内容如下图所示
【数字IC设计】Design Compiler入门
由图可以发现,网表文件是RTL代码的门级描述。

查看时序违例

为了让时序违例,首先修改时钟约束

 create_clock -period 1 [get_ports clk]

然后重新输入compile综合。
输入report_timing,结果如下:
【数字IC设计】Design Compiler入门
可以发现,将时钟约束为1ns后,时序发生违例。文章来源地址https://www.toymoban.com/news/detail-412299.html

到了这里,关于【数字IC设计】Design Compiler入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【IC设计】ICC1 workshop lab guide 学习笔记——Lab 2 Design Planning Task5-9

    In the task following this one you will use “Power Network Synthesis” (PNS) to automate the creation of power/ground core and individual macro rings, as well as vertical and horizontal straps. If you want to create rings around groups of macros, that is done prior to PNS, which is what this task will accomplish. 在接下来的任务中,你将使用电源

    2024年02月13日
    浏览(32)
  • 数字IC设计之——低功耗设计

    目录 概述 背景 为什么需要低功耗设计 CMOS IC功耗分析 基本概念 功耗的分类 功耗相关构成 不同层次低功耗设计方法 芯片中的功耗分布以及对应的低功耗方案 低功耗方案 系统算法级的低功耗技术 编码阶段的低功耗技术 门控时钟 Clock Gating 物理实施的低功耗技术 操作数分离

    2023年04月18日
    浏览(79)
  • 面经-2023-中兴-数字IC设计

    专栏推荐: 2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 专栏首页: 2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 专栏内容: 笔试复盘篇 2023秋招过程中整理的笔试题,来源包括我自己求职笔试以及整理其他同学的笔试。包含华为、中兴、联发科、

    2024年02月12日
    浏览(38)
  • 模拟IC与数字IC设计该怎么选?哪个岗位薪资高?

    很多同学想要入行IC,但不知道数字和模拟方向怎么选? 如果没有亲身体会过模拟设计,并有发自内心的自信或者兴趣,一般不看好纯小白去学模拟电路设计。 模拟设计想做好,没有数学功底,没有电路分析的功底,很难会有出彩的机会。就连零极点分析都搞不清、基尔霍夫

    2024年02月03日
    浏览(60)
  • 数字IC前端设计流程及详细解释

    数字前端以设计架构为起点,以生成可以布局布线的网表为终点。 使用设计的电路实现想法,主要包括:基本的RTL编程和仿真。前端设计还可以包括 IC系统设计、前仿真波形验证、综合、STA、FM验证。其中 IC系统设计最难掌握,它需要多年的IC设计经验和熟悉那个应用领域,

    2024年02月06日
    浏览(51)
  • 数字IC设计之静态时序分析(STA)

    静态时序分析原理 什么是STA 分析(计算)design是否满足timing约束的要求 DFF(sequential cell—有clk的器件)setup/hold需求 复位/设置信号 信号脉冲宽度 门控时钟信号 计算design是否满足DRC的要求 max_capacitance—节点电容 max_transition—信号爬升时间 max_fanout—负载能力有多少 如上图所

    2024年02月05日
    浏览(49)
  • 数字IC设计之时序分析基础概念汇总

     1 时钟Clock 理想的时钟模型是一个占空比为50%且周期固定的方波。时钟是FPGA中同步电路逻辑运行的一个基准。理想的时钟信号如下图: 2 时钟抖动Clock Jitter 理想的时钟信号是完美的方波,但是实际的方波是存在一些时钟抖动的。那么什么是时钟抖动呢?时钟抖动,Clock Jitter,

    2024年02月07日
    浏览(46)
  • 数字 IC 设计职位经典笔/面试题(二)

    共100道经典笔试、面试题目 (文末可全领) 三种资源:BLOCK RAM,触发器(FF),查找表(LUT);注意事项: 1:在生成 RAM 等存储单元时,应该首选 BLOCK RAM 资源; 其原因有二: 第一:使用 BLOCK RAM 等资源,可以节约更多的 FF 和 4-LUT 等底层可编程单元。使用BLOCK RAM 可以说是

    2024年02月17日
    浏览(40)
  • 数字IC设计中的握手与反压

    本文的主要目的是介绍清楚数字IC设计中握手和反压的原理和意义 如图所示,信号从输入端到A,经过模块A处理后,再送入到B模块进行处理。为了防止B错误读取A中的数据,A与B之间添加了信号Valid,只有当Valid信号为真时,A输出的数据才是有效数据,同时,为了防止B出现问题

    2024年02月16日
    浏览(60)
  • 【数字IC设计】VCS仿真DesignWare IP

    DesignWare是SoC/ASIC设计者最钟爱的设计IP库和验证IP库。它包括一个独立于工艺的、经验证的、可综合的虚拟微架构的元件集合,包括逻辑、算术、存储和专用元件系列,超过140个模块。DesignWare和 Design Compiler的结合可以极大地改进综合的结果,并缩短设计周期。Synopsys在DesignW

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包