
芯片后端
文章平均质量分 82
cy413026
这个作者很懒,什么都没留下…
展开
-
dc/dc_shell的keep和donot touch区别
在半导体设计和综合工具中,donottouch和keep属性通常用于指定综合和布局阶段的特定要求。sizeonly是keep属性的一个可能值。以下是donottouch和keep属性以及sizeonlydonottouchkeepsizeonlyhierarchykeepkeepsizeonlydonottouchkeepdonottouchkeepsizeonlydonottouchkeepsizeonlydonottouchkeep在实际使用中,选择donottouch还是keep属性(以及keep。原创 2024-07-06 19:04:12 · 1156 阅读 · 0 评论 -
数字IC后端实现的一些基本概念
2)place之后,假设setup和hold都正好为0ns,然后插入时钟树,树的完全平衡的,WC的时钟树insertiondelay是0.2ns,BC的insertion delay是0.1ns,这时做STA,会看到timingviolation吗?cloning是在有多个sink的情况下,不改变逻辑功能把当前cell复制一份,分别驱动下一级的cell,这样可以减少当前单元的负载,从而获得更好的时序,有时是为了placement的考虑,譬如几个sink的方向不同,缺点是会增加上一级的负载。转载 2024-06-01 16:40:09 · 1659 阅读 · 0 评论 -
芯片设计流程及各步骤使用工具简介
(也称逻辑设计)和(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。转载 2023-09-08 21:50:22 · 1122 阅读 · 0 评论 -
hardMacro的后防和后端处理
因为IOPTAH在PHY分析的时候是一条完整的path,但在subsys来看并不是完整的path,用了path margin就会在包含PHY IOPATH这一段的完整path上体现delay。说明后端根据PHY的lib吐出了这类IOPATH的delay,但是phy的gate_level仿真模型没有对应的specify语句。但基本情况下path margin是比vonder提供的IOPATH delay要大的,所以即使没有反标上,后防也没有问题。就是vonder最终提供的是GDS(设计版图)文件给后端。原创 2023-07-13 12:01:45 · 1275 阅读 · 0 评论 -
sdc中set_multicycle_path的解释
seup or hold和start or end时钟的对应关系如下版权声明:本文为优快云博主「进击的芯片」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/zyn1347806/article/details/97659093。转载 2023-07-07 20:49:22 · 1523 阅读 · 0 评论 -
timingPath/set_data_check和set_max_delay/set_multicycle_path
那么约束起效果后,结果就是dst_gray_code[3:1] 3bit信号到达寄存器D端的时间在dst_gray_code[0]到达D端时刻t的 [t-0.3 : t+0.4]范围内,这样对于grayCode来说是否可以呢?可以正向用set_max_delay+set_date_check来约束,分别设定某类接口的maxDelay和信号之间【clk,多bit数据,控制信号等】的skew。set_data_check 和set_max_delay是有很大区别的,约束,比如一些高速接口相关信号间的约束。原创 2023-07-07 20:34:52 · 3874 阅读 · 0 评论 -
异步电路后端实现流程(cdc signOff 后端做什么)
假设grayCode从fastclk clk_a同步到slow clk_b,考虑最恶劣情况,在clk_a中连续两个时钟clk_a(n-1)和clk_a(n)时刻分别有2bit发生了变化,由于设置了maxDelay为fastCLk的0.7倍,那么在采样clk_a(n)的bit变化时,这样公式(1,2,3)就是不可能满足的,所以在maxDelay的约束下 不可能在dst_clk采样的时候同时有两bit以上的变化不满足setup,也就是说最多只有1bit不满足setup,而单bit错采并不会引起功能错误。原创 2023-07-07 19:33:11 · 1911 阅读 · 0 评论 -
后端设计各种文件说明
后端设计各种文件说明转载 2022-12-27 17:59:17 · 234 阅读 · 0 评论 -
set_clock_groups/Logically Exclusive/Physically Exclusive Clocks/create_clock
虽然set_clock_groups的三种形式和set_false_path的作用效果是一样的 但是这些命令是各自用在不同的场景下,比如全部用set_false_path就体现不出clk group及同异步的概念。假设一个设计中有clk_a, clk_b, clk_c, clk_d, clk_e, clk_f共六个时钟。需要显式指定generated时钟的同异步关系。套用同异步的概念,六个时钟,只有 clk_a and clk_b和clk_c and clk_d是异步的其他两两之间都是同步时钟。原创 2022-10-24 22:02:09 · 10034 阅读 · 1 评论 -
dc_shell中有多少attributes/report_attribute
get_attributes 可以get到object的指定attribute,比如 ref_name/full_name/user_case_value等属性。在dc_shell中可以 man attributes来查看Synopsys预定义的有哪些属性。如果不知属性的名字 可以用report_attr来看。原创 2022-09-23 17:08:48 · 1322 阅读 · 0 评论 -
dc综合过程中non-unate clock即非单调时钟及set_clock_sense
理论上来说,时钟电路只能经过寄存器时钟端、buffer(正相关、inverter(负相关),clock 经过or ,xor等除了与门和非门外的其他逻辑,就会被叫做non_unate。(1)一种可能是,作为时钟使用时,并不会走导致non-unate的路径。这时候,可以设置clock source 到 non-unate,数据路径的false path;了解了 unate clock 这种warning如果不处理,那么timing检查时,时钟之间的相位可能是不正确的,比较悲观的是工具可能要进行半周期检查。...原创 2022-08-30 22:11:37 · 2608 阅读 · 0 评论 -
dc_shell的report_xx和trace网表get_nets -of 及all_fanin/out
可以到网上一一查询,也可以到pc_shell里man 各种命令常用的report_timing,report_disable_timing,report_clock。原创 2022-08-30 22:04:11 · 2853 阅读 · 0 评论 -
dc_shell的change_names命令,信号[]/_
在rtl代码中多bit寄存器A的每一bit A[0],A[1],A[2]这样表示,但是在综合过程中是什么时候换成A_reg_0_,A_reg_1_,A_reg_2_的呢?另外一种情况使用generater 生成的代码 A.gen_mux[0], A.gen_mux[1], A.gen_mux[2],又是什么时候变为A.gen_mux_0_, A.gen_mux_1_, A.gen_mux_2_的呢?首先说明的是:综合步骤是先加载约束再compile,compile是一个不停迭代的过程。...原创 2022-08-17 22:04:35 · 3318 阅读 · 0 评论 -
使用dc_shell读.v(rtl/netlist)看电路图,打开gui
read_verilog :可以读取网表文件或者.v文件原创 2020-10-29 22:22:22 · 11432 阅读 · 0 评论 -
create_generated_clock 之后需要report_clock/update_timing/report_timimg才能将clk attr传给generated的clk
在 dc_shell运行之后get_clocks或者all_clocks结果如下,新加的tmp_clk0已经有了get_attr tmp_clk0 period:period 属性不存在 需要report_clock一下。或者update_timing、report_timing来更新这个新generated 的clk...原创 2020-04-30 18:13:26 · 1179 阅读 · 0 评论 -
create_generated_clock的使用问题
对于-master_clock,解释如下:-master_clock <arg> - (Optional) If there are multiple clocks found on the source pin or port, the specified clock object is the one to use as the master for the generated...转载 2020-04-30 17:19:37 · 7140 阅读 · 0 评论 -
harden block为什么要做flatten
1.harden block为什么要做flatten比如在A_sys中instance 一个b_subsys为单独harden的子模块 后端在做的时候会做1. A_sys(exclude b_subsys) RTL + (b_subsys DB)的syn2. b_subsys的单独syn3.A_sys (include b_subsys) RTL综合,或者叫做A_sys的flat...原创 2020-03-30 19:23:57 · 3477 阅读 · 0 评论 -
dc_shell/pt_shell 下不同的保存session (write/read_ddc save_session/resotre_session)
1.pt_shell 在综合的情况下读写出工程图中命令即将当前综合工程写出为${design_name}.link.ddc在打开pt_shell之后 可以用 read_ddc${design_name}.link.ddc读入2.pt_shell在PrimeTime下读写工程save_session 写出sessionrestore_session 读session...原创 2020-02-27 16:20:29 · 4538 阅读 · 0 评论 -
dc_shell/pt_shell的一些常用命令(current_design/current_instance/get_cells/get_pins/get_ports) 之一
1.current_design保存的就是当前设计的top name2.current_instancehttps://www.micro-ip.com/STA/dictionary_139_17/current_instance.html在pt_shell中设置当前的working instance,和linux下的cd 命令相似, 进入某一hier之后 get_cells ...原创 2020-02-27 16:03:01 · 20391 阅读 · 0 评论 -
DC综合 *乘法 替换为designWare的设置
在rtl design过程中直接使用 a*b在综合时候是要使用 designWare的lib替换,所以在DC综合的时候要做如下设置:r原创 2020-01-21 19:00:55 · 3592 阅读 · 0 评论 -
后端设计harden的理解随笔
随着消费类电子的迅猛发展,芯片的功能越来越复杂,规模也越来越大。芯片中集成的模块也越来越大、越来越复杂,如处理器、存储模块等。为了方便全芯片的综合实现,这些大的模块通常采用单独固化(harden)的方式合入全芯片网表(netlist)中。 应该可以理解为每一个harden单独一块区域布局布线,相当于将一个大system分成很多块,如果不划分harden随着面积越大连线...原创 2018-11-20 15:35:52 · 7456 阅读 · 2 评论 -
数字后端基本概念介绍——Track
转自http://www.sohu.com/a/207468703_99933533今天要给大家介绍的数字后端基本概念是Track。Track是指走线轨道,和row一样,可以约束走线器的走线方向。信号线通常必须走在track上。Std Cell的高度通常用metal2 track pitch来表示,常用的 std cell 库有 7T /9T /12T,就是以 track 来区分的, 9T 就...转载 2018-08-22 23:43:39 · 13422 阅读 · 0 评论 -
pt的lib_pin_attributes
转自https://solvnet.synopsys.com/dow_retrieve/P-2019.03/dg/ppolh/Content/manpages/pp3/lib_pin_attributes.htm?otSearchResultSrc=advSearch&otSearchResultNumber=4&otPageNum=1lib_pin_attributes...转载 2019-04-22 11:11:35 · 1853 阅读 · 0 评论