- 博客(446)
- 资源 (6)
- 收藏
- 关注
转载 芯片后端之 概述《 DC脚本命令(一)》
Design Compiler有两种命令行接口,dcsh模式和TCL模式,其中TCL命令行模式使用的范围更广,下图描述了综合基本流程及涉及的主要命令。在终端上输入TCL命令时,有些机器上可能不支持退格键(Back Space),那么可以尝试 Ctrl+h和Delete 键。在后续命令执行过程中,命令设置成功则返回“1”,失败则返回“0”。
2024-08-31 18:03:24 265
转载 芯片后端之 概述《 DC逻辑综合》
数字系统设计,大致可以用:算法行为级、寄存器传输级、逻辑级、电路级、版图级、高层次综合(High-Level Synthesis):负责将系统算法层的行为描述转化为寄存器传输层的结构描述。逻辑综合(Logic Synthesis):负责将寄存器传输层的结构描述转化为逻辑层的结构描述,以及将逻辑层的结构描述转化为电路的结构描述。负责将系统电路层的结构描述转化为版图层的物理描述。
2024-08-31 17:21:24 368
转载 芯片后端之 《 Plance 和 Route》
Place and Route是集成电路(IC)和印刷电路板(PCB)电子设计自动化(EDA)过程的关键阶段。这一阶段的输入件是电路原理图——其中电子元件根据所需的功能相互连接。在Place and Route中,两个主要步骤是,首先将各种电子元件放在芯片或PCB上,然后路由它们之间的物理连接。place过程涉及确定硅片或PCB上每个组件的最佳位置,通常旨在最大限度地减少延迟、节省空间和降低功耗。考虑到组件的尺寸、功耗和散热要求,以及整体设计复杂性,使用各种技术来实现理想的place。
2024-08-26 13:11:44 74
转载 芯片后端之 《区分:Floorplan、 Layout、 Placement》
通常在Floorplan与Layout之间还会存在一个名为“Placement”的步骤,它是继floorplan之后,placement是将具体的电路元件(比如逻辑门、触发器)安放到floorplan确定的模块区域内的过程。在layout阶段,设计师会实际绘制电路的物理图,包括所有的晶体管、电阻、电容以及它们的互连。总的来说,floorplan是决定模块间分布的高层规划,placement是具体元件在模块内的位置决策,而layout则是实现电路物理形状与互连的最终步骤,每个步骤都建立在前一个步骤的基础上。
2024-08-25 22:45:36 103
转载 芯片后端之 《数字设计中的时钟属性、时钟约束》
最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧。·同步电路与异步电路;·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter)、延时(latency)、转换(transition)时间;·内部时钟;·多路复用时钟;·门控时钟;·行波时钟;·双沿时钟;·Design Compiler中的时钟约束。·补充:时钟分配策略1 同步电路与异步电路首先来谈谈同步电路与异步电路。
2024-08-25 22:41:16 132
转载 (九)关于 PrimeTime 时序分析流程和方法
标记模型语言是一种源代码语言,被编译成Synopsys的.db文件格式,可以被PrimeTime或Design Compiler使用。- 标记模型包含引脚到引脚的时序弧、建立和保持时间数据、模式信息、引脚的电容和驱动能力等等。先建立目录,并将PrimeTime本身所带的一个例子拷到新建的目录下,在下面的内容中将要用到这个例子。可以为设计中还没有完成的模块建立一个快速时序模型,以使得完整的时序分析能够进行。还可以将快速时序模型保存为标记模型,这是开始一个复杂标记模型的一种便利的方法。
2024-08-23 14:04:49 101
原创 芯片后端之 PT 使用 report_timing 产生报告 之 -input_pins 选项
请注意: c1 和 c2 的输入引脚 A 的延迟数据信息 , 这里的延迟数据大小,为上一级cell 的输出,至本级 cell 输入 A 之间的net delay。(2)FF1 输出Q点 -> c1/ Y 路径延迟 (其中,c2 的pin 脚 为;那就是,了解 report_timing 中的 -include_hierarchical_pins 选项。其一, 上一级cell 的输出,至本级 cell 输入 A 之间的net delay。c1 和 c2 的输入引脚 A 的延迟数据信息。
2024-08-23 10:51:18 291
原创 芯片后端之 PT 使用 report_timing 产生报告 之 -include_hierarchical_pins 选项
(2)FF1 输出Q点 -> c1/ Y 路径延迟 (其中,c2 的pin 脚 为;A输入,Y输出) 的延时信息。那就是,了解 report_timing 中的 -include_hierarchical_pins 选项。哈哈,当然了,作为延迟一部分。(4)cell 实例 c2/Y -> FF2/D 路径延迟。(3)cell 实例 c1/Y -> c2/Y 路径延迟。这里多说一句,那么中间的连线 delay 有计算吗?(1)FF1 寄存器 CK->Q 路径 延迟。那么延迟数值大小,底体现在哪里呢?
2024-08-23 10:37:21 383
原创 芯片后端之 PT 使用 report_timing 产生报告 之 -nets 选项
那就是,了解 report_timing 中的 -nets 选项。今天,我们再学习一点点 后仿真相关技能。
2024-08-22 17:19:14 331
原创 后仿真中《SDF反标必懂连载篇》之 Negative Delay 问题
今天,学习一下SDF文件中的负数延时问题。比如下面的图片中的SETUPHOLD 中的hold time 为负数。
2024-07-23 07:47:44 461
原创 后仿真中的 《specify/endspecify block》之(6)功能 之 脉冲过滤限制
两个脉宽限制值:e-limit(error limit)和r-limit(rejection limit),并且要求e-limit >= r-limit,否则报错。当e-limit > pulse width >= r-limit时,输出X值;为了更准确地描述这种能力,使用惯性延时(inertial delay),它可以抑制持续信号比传播延时短的输入信号的变化。由于每条传播路径都具有一定的电容性和电阻性,电荷无法在一瞬间积累或消散,所以信号变化的物理特性是具有惯性的。
2024-07-21 09:16:01 103
原创 (六)认识常见的时序分析路径
注意路径的概念,一条路径由起点和终点决定。时序分析是相对于路径来说的。其中最常见的就是register to register的路径,工具通过计算数据到达时间(data arrival time)和数据要求时间(data required time)来分析时序是否满足要求。常见的路径有4条,根据起点和终点的不同可以对其分类。
2024-07-20 22:22:51 323
原创 后仿真中《SDF反标必懂连载篇》之 timescale 设置导致 SDF 反标延迟事故案例
今天,通过案例,实实在在的分析 SDF 和 timescale 之间的内在联系。将工作中遇到的陷阱,分享给大家。关于SDF延迟精度和timescale 之间的关系,前面的文章,已经提到了。
2024-07-20 14:48:45 609
原创 后仿真中《SDF反标必懂连载篇》之 探究 SDF延迟精度 与 timescale 精度问题
本篇文章,同样属于后仿真中的SDF反标系列文章内容之一。今天,将前仿真中的timescale 和 后仿真中 timescale+sdf 延迟数据,进行贯通讲解。不要忽视这部分内容,因为后仿真的成功准确与否,时间精度问题,很重要。为什么?接下来一一讲解。
2024-07-20 13:56:10 803
原创 浅谈芯片验证中的仿真运行之 timescale (五)提防陷阱
在module a中定义的变量 t1=5us ,在a的timescale 1ns/1ps下,会被解析成5000,原因就是*细节点中提到的,“若指定单位,则仿真工具会转化为当前仿真单位的数值”,当前仿真单位是ns,所以"5us"会被解析成"5000"这个“数”。在timescale 1ps/1fs中,结果是clk每隔1fs 翻转一次(内部执行:首先将500改写为500ps, 然后将500ns改写为500000ps, 相除,结果为0.001ps, 等于1fs, 那么1fs 翻转一次)
2024-07-20 11:22:57 596
原创 #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
仿真调度系列文章,已经编写10篇,写到这里,相比大家都已经对VCS仿真工具的运行机制,有了大体了解。学无止境,而且真正的仿真调度行为控制,是每个EDA厂商自己产品的高度机密。言外之意,我们要抱着谦虚的态度说:我们只是懂了一点点。
2024-07-20 09:39:22 298
转载 (五)非常经典的setup和hold分析及违例修正方法
总结为一句话:当前待传输的数据,相对于Capture edge来说,必须早来(setup time)晚走(hold time)。① T_dp:增加组合路径延时,通过插buffer、插delay cell、更换驱动、更换阈值的方法(组合逻辑深度的增加会增加芯片的面积、布线资源、功耗,可能产生在慢速工艺库条件下建立时间违例)图1为例,分析建立时间及保持时间。③ T_skew:采用positive skew(T_skew >0),但是要注意可能引入的hold问题,以及前后级的margin问题。
2024-07-18 23:15:54 1112
转载 #Verilog HDL# Verilog中的延迟语句
本文转载,仅供学习,勿喷~Verilog 中的仿真延时语句为 #n,n表示延时时间,将该语句加在语句中,延迟n个时间单位。延时的添加方法有两种:正规延迟和内定延迟。
2024-07-14 17:15:43 369
原创 后仿真中如何针对特定时序问题的UDP原语施加延迟
通过前面的学习,我们知道:实际的后仿真可以分为多种。比如: zero delay, unit delay, full timing delay等等。而且,针对上述三种时序仿真,根据实际使用的VCS仿真选项,又可以划分的更细。今天,要提到的是事关三个场合:(3)前仿中的 synthesis model 仿真场合由于这些场合,仿真使用的延迟信息,或者仿真使用的底层 cell lib 仿真模型的选取等原因,会引起在仿真过程中,出现 race condition 的现象。
2024-07-14 09:27:04 122
原创 后仿真中《SDF反标必懂连载篇》之 反向提取SDF反标延迟
我们知道,我们在完成SDF时序反标之后,首先要做的事情:检查sdfannotation 文件。因为,通常以为小事一桩的某个反标路径,可能在后期时序仿真过程中,埋下陷阱。那么,回归主题:有时候,我们在debug 时序采样问题的时候,需要检查某个时序器件的时序反标信息数据。第二步: 执行 report_timing -file U130.timing.rpt tb_top.macinst.U130。今天,整理一下最近工作中遇到的一个问题,及解决问题的办法,仅分享给大家。今天,不妨尝试如下的方法。
2024-07-11 22:52:56 507
原创 #VERDI# 关于如何查看FSM状态机的方法
关于Verdi中查看状态机的问题,想必大家都duniang 一大把资料可以看,今天,主要在前人讲解的基础之上,这里添加一些自己的心得体会。为什么呢?说来惭愧,自己工作几个年头了,但是对于Verdi中查查看状态机,还是心里有一些抵触。今天,花点时间整理一下分享大家,如有不同之处,请指正!
2024-07-11 21:03:28 728
原创 后仿真中《SDF反标必懂连载篇》之 timing violation 你读对了?
大家好,今天主要记录和大家分享一下,最近一直在搞的GLS,一点点仿真心得。对于第一次实战门级网表仿真的朋友,肯定内心有一万个疑问不解。其实没有别的办法,向有经验的老师傅请教,是一个不错的渠道。另外,我们要自己上心,有疑问,解决疑问,才能真正的成长。
2024-07-02 22:29:02 948
原创 后仿真中《SDF反标必懂连载篇》之 多个SDF 文件反标疑问
门级网表又分为,pr前和pr后,后端做完布局布线之后的,修改好timing的网表称为带时序的pr网表,pr网表进行仿真时,后端布局布线之后由“QRC”出spef,通过PT生成sdf,sdf文件中会把布局布线过程中器件延时和线延时记录下来,我们需要sdf文件用来告诉仿真工具真正的timing信息,仿真工具改变元件的默认timing。设计经过综合之后会生成门级网表,在门级网表里面包含了时序信息,这时的验证称之为后仿,除了验证功能是否满足,还要验证时序是否有违例的情况。但是PT工具在这里帮了大忙。
2024-07-02 22:01:45 1085
转载 关于VCS工具的分块编译
使用分块编译能够大大提高仿真的效率,自动分块编译推荐使用默认的分块参数即可,是否需要使用手动分块编译需要根据设计、验证的复杂度来判断。在手动分块编译时,写config文件推荐在验证环境中将验证相关的代码根据逻辑功能合理的划分到SystemVerilog 的package里,对不同的package分别进行分块编译,只import需要用到的package,这样就可以避免修改该package时导致对多个partition的重新编译。
2024-07-02 21:11:28 407
转载 (四)关于STA时序违例方案解决
(2)保持时间采样沿在N-1处,要求上一个数据的结束位置要在这,太难了,很可能报告时序违例,因此要把保持时间推回原先的采样沿0时刻位置:set_multicycle_path -from $from_list -to $to_list-hold ,还不行就、(1)修改建立时间:set_multicycle_path -from $from_list -to $to_list ,建立时间采样沿在N处,建立时间OK了。(2)跨时钟域信号,可以选择clock到clock。
2024-06-30 21:40:38 243
转载 (三)关于STA分析电路工作频率和时序违例问题
另外需要注意的是,在做setup time的检查时,组合逻辑的延迟Tlogic_delay需要取延迟最长的组合逻辑路径,而在做hold time的检查时,则需要取延迟最短的组合逻辑路径。下图中,假设触发器CK端到Q端的延迟为1ns,时钟频率为100MHz,组合逻辑延迟为2ns,触发器的建立时间Tsetup = 2ns, 保持时间 Thold = 1ns.数据所需时间: Thold_time = 1 + 1.1 + 1.1 + Thold = 1 + 1.1 + 1.1 + 1 = 4.2ns。
2024-06-30 21:36:29 112
转载 后仿真中《SDF反标必懂连载篇》之 SDF 预编译选项
如果我们的设计代码进行了修改,但是sdf文件并没有修改,此时如果编译完后,在析构的时候还要再进行一次sdf文件的解析反标,将会比较耗费时间,为此,一般的EDA工具都提供了另外一种反标方式,即对sdf文件进行预编译,如果sdf文件并没有修改,仅设计文件进行修改,此时就可以采用sdf预编译方式,具体操作步骤如下示例。【反标信息一】在系统任务$sdf_annotate中添加要使用的已经预编译的反标文件。【反标信息二】在析构命令中加入已经预编译的反标文件,大家可以仔细观察下两者差异。
2024-06-30 21:21:22 355
转载 (一)关于静态时序分析的背景知识
当逻辑功能设计完成后,综合成门级网表,此时需要使用STA分析时序最差或关键路径,进行设计的逻辑优化(此时更改的都是逻辑单元)并生成时序约束文件(SDC)1.具有近似估计值的全局布线的互连线、具有近似寄生参数提取值的实际布线的互连线、具有可以签收(signoff)精度寄生参数提取值的实际布线的互连线。3.静态时序分析的特点:更快更简单,能不添加激励的情况下检查完所有的时序路径。另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。1.静态时序分析分析的是时序,检查在一定频率下,电路有无时序违例。
2024-06-27 22:24:43 60
原创 芯片后端之 PT 使用 report_timing 产生报告 之 如何阅读
今天,就PT常用的命令,做一个介绍,希望对大家以后的工作,起到帮助作用。在PrimeTime中,使用report_timing -delay max命令生成此报告。switch -delay max表示定时报告用于设置(这是默认值)。首先,我们整体看一下通过report_timing 运行之后,报告产生的整体样式。
2024-06-23 16:22:11 989
转载 芯片后端之 PT 《工具使用教程》
PT即Prime Time,一个STA静态时序分析的工具。它提取整个电路的所有时序路径,通过计算信号沿在路径上的延迟找出违背时序约束的错误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路径延迟和最小路径延迟的分析得到。STA中的“静态”是指整个电路的分析是静态进行的,不依赖于输入端口的激励,无需仿真向量,所以仿真会非常快。1、PT配库文件PR后的布局布线网表(版图网表)、时序约束文件sdc、PR后的spef2、PT过程文件。
2024-06-23 07:56:05 828
原创 后仿真中的 《specify/endspecify block》之(5)使用specify进行时序仿真
前面我们学习了specify...endspecify 具体是什么东西。今天,我们使用specify block 中定义的延时,来进行一次仿真。看看到底是背后如何运转的呢。
2024-06-22 22:07:41 980
转载 后仿真中的 《specify/endspecify block》之(4)$width, $period 时序检查
period 用于检查边沿触发事件 ref_event 到下一个同向跳变沿之间的时间,常用于时钟周期的检查。如果两次同向跳边沿之间的时间小于 time_limit,则报告中会打印 violation。$width 用于检查边沿触发事件 ref_event 到下一个反向跳变沿之间的时间,常用于脉冲宽度的检查。有些数字设计,例如 flash 存储器,还需要对脉冲宽度或周期进行检查,为此 Verilog 分别提供了系统任务 $width 和 $period。
2024-06-22 11:42:34 241
转载 后仿真中的 《specify/endspecify block》之(3)$recovery/ $removal 时序检查
当 ref_event (reset) > data_event (clock) 且 T(ref_event - data_event) > removal_limit 时,即复位信号在时钟信号到来之后如果不满足 removal time,则报告中会打印 violation。对于异步复位的触发器来说,异步复位信号也需要满足 recovery time(恢复时间)和 removal time(去除时间),才能有效的复位和释放复位,防止出现亚稳态。建立时间和保持时间的概念都是出现在同步电路的设计中。
2024-06-22 11:39:20 161
原创 后仿真中的 《specify/endspecify block》之(2)setup/hold 时序检查
我们知道,在实际后仿真过程中,通过指定路径延迟,目的是让仿真的时序更加接近实际数字电路的时序。利用时序约束对数字设计进行时序仿真,检查设计是否存在违反(violation)时序约束的地方,并加以修改,也是数字设计中不可或缺的过程。Verilog 提供了一些系统任务,用于时序检查。这些系统任务只能在 specify 块中调用。下面就介绍 6 种常用的用于时序检查的系统任务,
2024-06-22 11:25:41 971
FPGA/ASIC+SSC扩频三角波调制+90度相位差+600pp随机抖动+Verilog模型
2024-03-12
FPGA/ASIC+SSC扩频三角波调制+180度相位差+600pp随机抖动+Verilog模型
2024-03-12
FPGA/ASIC+SSC扩频三角波调制+270度相位差+600pp随机抖动+Verilog模型
2024-03-12
单例模式+UVM验证平台+force/release/probe信号
2024-03-10
FPGA/ASIC+SSC扩频正弦波调制+270度相位差+Verilog模型
2024-03-09
FPGA/ASIC+SSC扩频正弦波调制+180度相位差+Verilog模型
2024-03-09
FPGA/ASIC+SSC扩频正弦波调制+90度相位差+Verilog模型
2024-03-09
FPGA/ASIC+SSC扩频三角波调制+270度相位差+Verilog模型
2024-03-08
FPGA/ASIC+SSC扩频三角波调制+180度相位差+Verilog模型
2024-03-08
FPGA/ASIC+SSC扩频三角波调制+90度相位差+Verilog模型
2024-03-08
systemverilog_ssc_clk_generated.sv
2021-12-24
从PCIe探索弹性缓冲器真义(陈乃塘)
2020-11-28
stm32F107VC+SPI1+LWIP
2016-01-04
systemverilog中的$random%5/1000疑问
2024-03-13
#systemverilog# wait fork 等待子进程问题疑问?
2023-07-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人