为了账号安全,请及时绑定邮箱和手机立即绑定

11111111111111111

标签:
MongoDB


🙋‍♂️数字后端设计高频名词
📝 持续更新中......
📌 名词🗒 诠释
纳米级设计在半导体器件中,常使用金属互连线来连接电路中的不同部分,从而实现设计。随着工艺技术的发展,这些互连线逐渐开始影响设计的性能。对于深亚微米或者纳米级别的工艺技术,互连线间的耦合效应会带来噪声串扰,而这两者都会限制设计的运行速度。虽然噪声串扰带来的影响在老一代的工艺技术下是可以忽略不计的,但在如今纳米级别下已经不容忽视了,因此不论是物理设计还是设计验证都应考虑到噪声和串扰的影响。
静态时序分析(STA)是用来验证数字设计时序的技术之一。
为何使用静态时序分析?STA是一种可以验证设计中所有时序要求的详尽方法,而其他时序分析方法例如时序仿真则只能验证到被当前激励执行到的那一部分时序路径。基于时序仿真的验证完备性取决于施加激励的完备性。如果使用时序仿真来验证一个千万门级别的设计,速度将会非常慢,并且实际上也无法充分验证。因此,想要基于时序仿真的方法来进行详尽的时序验证是非常困难的。相比之下,STA则提供了一种更快更简单的方法去分析并检查设计中的全部时序路径。鉴于如今的ASIC设计规模已达千万门级别,STA已经成为了详尽地验证设计时序的必要方法。
PT:Prime Time是一个静态时序分析工具。
单元(standard cell)芯片中的大多数复杂功能通常是使用基本构建块(basic building block)来设计的,这些基本构建块实现了简单的逻辑功能,例如与、或、与非、或非、或与非,与或非以及触发器(flip-flop)。这些基本构建块是预先设计的,称为标准单元(standard cell)。
STA分析步骤:1.设计被分解成若干时序路径;
2.计算每条时序路径的延时;
3.路径上的延时是否满足时序约束。
timing path的种类In2reg、reg2reg、reg2out、in2out
path delaypath delay=cell delay + net delay
Cell delay =f(input ransition+outputload)
Net delay=f(Rnet,Cnet+Cpin)
线负载模型(wireload model)floorplan或layout之前,可以使用线负载模型(wireload model)来估计由互连线带来的电容、电阻以及面积开销。线负载模型可用于根据扇出数量来估计net的长度,线负载模型取决于(block)的面积,具有不同面积的设计可以选择不同的线负载模型。线负载模型还可以将net的估计长度映射(map)为电阻、电容以及由于布线而产生的相应面积开销。
Setup time触发器的上升沿信号到来之前,数据稳定不变的最小时间。
Hold time触发器的上升沿信号到来之后,数据稳定不变的最小时间。
PT阶段需要读入和导出的文件https://img1.sycdn.imooc.com/5acb3c8700013dc501600160.jpg
fanout输出端口所挂载input pin的数目。
transition time指从一种逻辑状态过渡到另一种逻辑状态所需的时间。
noise信号在传输过程中,会有高低电平的跳动,相邻信号之间可能会产生干扰,将这种干扰称为noise。
sdc设计中的一个重要文件,主要对电路时序进行约束,决定芯片是否满足设计要求。包括时钟sdc,边界sdc等等。
子时钟是从主时钟(master clock)派生而来的时钟,主时钟是指使用create_clock命令定义的时钟。在基于主时钟的设计中生成一个新时钟时,可以将这个新时钟定义为子时钟。
lib全称liberty library format(以.lib结尾),用于描述物理单元的时序和功耗信息的重要库文件。lib库是最基本的时序库,通常文件很大,分为两个部分,第一部分定义了物理单元库的基本属性,它包括:
1)单元库名称,文件版本,产生日期及单元的PVT环境等;
2)定义电压,电流,电容,时间等基本单位;
3) 定义电路传输时间和信号转换时间的电压百分比;
第二部分是每个单元的具体信息,包括单元的延迟时间,泄漏功耗,内部功耗等。
Timing arc主要分为定义时序延迟,和定义时序检查两种。
Timing Constraint按照它们的用途,大致分为以下几类:
(1)描述芯片的工作速度,即时钟的频率,包括create_clock,create_generated_clock等
(2)描述芯片的边界约束,包括set_input_delay,set_output_delay等;
(3)描述芯片的一些设计违反rule(DRV),包括set_max_fanout,set_max_capacitance, set_max_transition等;
(4)描述设计中一些特殊的路径,包括set_false_path,set_multicycle_path等;
(5)描述设计中一些需要禁止的timing arc,例如set_disable_timing。
边界约束STA并不能去检查一条没有被约束的路径,因此所有的端口上路径都必须被赋予边界约束。
set_input_delay:输入信号是在时钟沿后多长时间到达模块的port上的set_input_delay 和set_output_delay都是对外部的延时信息的描述。set_output_delay:输出信号在后级模块中需要在时钟沿之前提前多长时间准备好。
系统接口sdc包括set_drive, set_driving_cell, set_input_transition, set_load这四条命令,都是和端口上的驱动负载有关。
set_drive:设置输入端口或者双向端口的电阻值,主要是为了更加精确的估计输入电路的延迟,需要知道信号到达输入端口的transition time,set drive使用一个确定的值来估计输入端的输入电阻,从而得到输入端口的延迟,该值越小,驱动能力越强。
set_driving_cell:这个约束其实跟set_drive实现的是同一个功能,指使用设计库中的某一个单元来驱动输入端口,然后按照该单元的输入电阻来计算tranition time,从而得到输入端口的延迟。
通常要比set_drive使用更多,一般用在block level上, 因为会考虑OCV等因素,会更加准确一点。
set_input_transition设定输入端口的transition time,一般用于chip io pad约束,因为Pad上电压都比较高,对应的capacitance和transition也比较大,没法用driving cell.
set_load:设置输出电路的负载。由于外部电路的负载将会影响到接到端口上单元的延迟,因此需要对端口的带负载能力做限制。为了比较精确地计算出输出电路的延迟,需要知道输出电路的所有负载。电路负载电容越大,延迟时间越大。
时序特例针对一些路径需要的一些特殊设定,常用的有
set_false_path, set_multicycle_path, set_max_delay,
set_min_delay等
set_false_path: false path是指在正常工作环境下,并不真实存在或者经过的路径,比如说一些静态输入信号产生的path。像这样的path,可以指定set_false_path。这样工具在计算timing时就不会去分析它。值得注意的是,设定false path时一定要非常小心,一定要和designer仔细确认下,不要把正常的path给误伤掉。
set_multicycle_path: 指的是两个寄存器之间数据要经过多个时钟才能稳定的路径,一般出现于组合逻辑较大的那些路径,也有可能是一些慢时钟去踩快时钟的路径。对于这些路径,可以设置multicycle path。同样的,设置multicycle path时,也需要非常谨慎,需要和前端沟通好,该条path要设几个cycle, -start还是-end也要理解清楚,而且默认的hold的multicycle比setup少一个。
set_max_delay: 指定某段path的最大延迟,超过就是violation。用于某set_min_delay: 指定某段path的最小延迟,小于该值就是violation。用于某些特定的path,限定该path至少应该走这么长delay.
SDC主要包括set_max_capacitance,set_min_capacitance,set_max_fanout,set_max_transition。一般情况下lib库里面会有这些约束,但是往往为了时序更好,会在sdc里面更加严格的去约束它。
set_max_capacitance,set_min_capacitance:设定了某一端口所连互连线的最大和最小负载电容,负载电容是互连线自身电容和扇出电容之和。
set_max_fanout:约束了某条net上驱动的所有cell的个数的总和,而这条net可以由input port驱动,也可以使内部的任何一条net。需要注意的是,max fanout并不是用来约束output port的,因为一个输出端口可能会连有很多条net。
set_max_transition: 设定端口信号的最大转换时间,需要注意区分data transition time和clock transition time,一般clock的transition time要小一点。
setup检查是为了检查数据传输不能太慢,否则,在目的寄存器的capture edge不能正确的锁存数据。因此数据传输所用的时间Arrival Time就必须要求在Require Time内传输到目的寄存器,因此slack(松弛时间)=Require time- Arrival time。
hold time(保持时间)检查的是数据不能传输太快,太快会影响前一次数据的锁存。因为是检查数据传输得不能太快,所以对于hold来说,Arrival time就应该比Require time要长。
min pathearly path,就是先到的path,延迟较低。用于hold分析,通常也叫作min path。
max pathlate path,就是晚到的path,延迟较高。用于setup分析,通常也叫作max path
Timing derate为时序增减因子。不同点的温度,金属不均匀,串扰,晶体管沟道长度等影响因素,导致片上各个位置单元延迟不一样。因此,需要一个缩放因子来让设计更加严格。
CPPR全称Clock Path Pessimism Removal(Clock Reconvergence Pessimism Removal),中文名“共同路径悲观去除”。它的作用是去除clock path上的相同路径上的悲观计算量。
转换时间transition time电压从10%VDD上升到90%VDD所需要的时间,或者是从90%VDD下降到10%VDD所需要的时间,当然也可以是20%VDD上升到80%VDD的时间,具体要看timing lib库里面的Latency, 时钟传播延迟。主要指从Clock源到时序组件Clock输入端的延迟时间。它可以分为两个部分:时钟源插入延迟(source latency)和时钟网络延迟(network latency)
source latency也被称为insertion delay。主要指从clock source端到clock定义端的延迟。
network latency:主要指从clock定义端到时序器件的clock pin端的延迟。
由于时钟到每个寄存器的路径延迟不一样,造成时钟信号到达 clock pin 的时间也不一样,把时钟信号到达不同寄存器的时间偏差称为skew。
uncertainty简称时钟不确定性。主要用来定义Clock信号到时序器件的Clock端可能早到或晚到的时间,降低了时钟抖动jitter对有效时钟周期的影响。
📚 总结栏
1. 记录最重要的几点
2. 写成可以快速检索的样式
填写时间:随时更新
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消