后端基本概念.docx

上传人:b****2 文档编号:1619087 上传时间:2023-05-01 格式:DOCX 页数:6 大小:19.04KB
下载 相关 举报
后端基本概念.docx_第1页
第1页 / 共6页
后端基本概念.docx_第2页
第2页 / 共6页
后端基本概念.docx_第3页
第3页 / 共6页
后端基本概念.docx_第4页
第4页 / 共6页
后端基本概念.docx_第5页
第5页 / 共6页
后端基本概念.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

后端基本概念.docx

《后端基本概念.docx》由会员分享,可在线阅读,更多相关《后端基本概念.docx(6页珍藏版)》请在冰点文库上搜索。

后端基本概念.docx

后端基本概念

后端基本概念

  

以下是为大家整理的后端基本概念的相关范文,本文关键词为后端,基本概念,为了,方便,大家,尽快,找到,要的,话题,i,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

  

  

  为了方便大家尽快找到需要的话题,经icfb版主建议,编辑这个数字后端的FAQ。

  如果您是初学者,建议先搜索相关的资料,读读其他人的帖子,一些基本概念在那里都已经讨论过了。

  如果您已经有2年以上的实战经验,下面这些雕虫小技就不太值得您去浪费时间了。

  先说说作为一个有经验的后端(暫不包括DFT工程师和layout工程师)工程师,需要掌握哪些知识4个级别:

  1)知道一些基本概念,2)简单地掌握这门技术,3)熟练4)精通

  半导体工艺--2RTLcoding--2综合--2时序约束--3ApR--3DFT--2DRc/LVs--3仿真--2形式验证--2

  以下是FAQ分类:

2楼:

时序约束,sTA3楼:

综合Dc/Rc

  4楼:

ApR(floorplan,place,cTs,route)5楼:

验证(Lec,DRc,LVs等)6楼:

DFT7楼:

低功耗8楼:

面试9楼:

名词解释

  

  

  时序约束,sTA

  

(1)clock

  Q1.1什么是同步时钟?

时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。

其他的都算异步时钟。

比如,

  5m,10m是同步2m,3m一般算异步

  一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步

  一个时钟进到2个pLL,就算那2个pLL的输出频率相同,一般也算是异步时钟,除非你de-skew

  Q1.2如何处理同步时钟?

  设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stabilityFF,可以set_false_path

  如果放松要求,不用meta-stabilityFF,则同步时钟之间是realpath,做cTs时,同步时钟要clocktreebalance。

  注意不同频率的同步时钟的最小时间间隔被用来检查setup

  如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了

  Q1.3如何处理异步时钟?

很简单,set_false_path

  注意要fromAtob,同时要frombtoA

  Q1.4如何定义时钟?

  create_clock如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟

  巧妙利用waveform选项可以做出不同波形的时钟

  被定义成时钟的net,在综合时,自动带有idealnetwork和dont_touch的属性。

但是当它被用作data计算延迟时,idealnet的属性会自动消失

  时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产生的分频时钟要再用create_generated_clock定义一次

  Q1.5如何处理多选一时钟?

  在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了

  如果是多个时钟同时出现,可以用set_case_analysis选一个,

  也可以放它们全都过去,但是在mux后面把它们之间set_false_path

  Q1.6巧妙定义时钟

  

  

  直接在分频FF的Q端定义generatedclock时,有时会把分频FF的时序打掉,解决办法是在分频FF的Q端加一个时钟buf,从那个buf的输出端定义generatedclock,从而保证分频FF自身的时序完整

  如果从sourceclock到generatedclock之间有多条路径,你希望pT用指定的一条路径来计算时序的话,可以用set_case_analysis,set_disbale_timing或者一级一级地定义generatedclock来引导pT达到你的要求

  分频器时序约束问题

  时序分析中同一时钟的不同路径问题

  请教如下要求的clock在pt中应该怎么create

  怎样设set_case或者别的,才能让pt选择同一条clockpath

  Q1.7什么时候需要设置latency?

  latency分为sourcelatency和networklatency两种。

sourcelatency是源时钟自带的,networklatency就是cTs后的clocktreeinsertiondelay。

在综合时,一般不需要latency,除非,

  已知不同clock带有不同的sourcelatency,并且它们之间有时序要求预知不同clock会有不同的clocktreeinsertiondelay,不想平衡它们,但是要满足他们之间的时序要求

  做完cTs后,要把networklatency去掉

  请问set_clock_latency设太大会有什么不好

  Q1.8如何设置uncertainty

  clockuncertainty分为setup和hold,precTs和postcTs几种不同的情况一般的处理原则是:

  precTs,setup:

uncertainty=pLLjitter+预估的clockskewprecTs,hold:

uncertainty=预估的clockskew

  postcTs,set_propagate_clock[all_clocks]postcTs,setup:

uncertainty=pLLjitterpostcTs,hold:

uncertainty=0

  有时fundry要求holduncertainty保留一定的量,这时就把那个保留量加到上面的公式中

  sdc文件中对clk的uncertainty、transition、latency的设置

  

(2)Io端口的约束

  Q2.1如何加Io端口的约束?

最普通的方法是

  对输入端,set_input_delay,set_driving_cell(也有用set_input_transition的,但是不多见)

  

  

  对输出端,set_output_delay,set_load对时钟端,set_clock_transition

  dc综合时的clocktransition应该参考什么设定?

set_drive,set_load

  Q2.2哪些端口不需要约束?

  静态信号可以set_false_path,比如reset,test_mode,function_mode_select不能真的什么约束都不加

  Q2.3什么样的reset信号可以set_false_path?

  如果在工作时,reset信号有效时,时钟信号不翻转,就可以set_false_path如果reset信号动作时,时钟也有动作的话,就不能set_false_path

  Q2.4像reset那样的highfanout信号需要设定为idealnet吗?

如果是falsepath的话,可以设为idealnet

  一般不需要设为idealnet,让Dc加入buffertree后,有利于估算功耗和面积

  Q2.5如果有一组输出信号,需要他们之间对齐,但是不太在乎有多大的延迟,这时应该如何约束?

  如果有输出时钟的话,在那个输出时钟端口定义一个generated_clock,其它信号的output_delay都相对于这个generated_clock而定。

只要有max和min,就可以把所有信号卡在一个范围之内

  如果没有输出时钟的话,用set_output_delay-reference_pin

  Q2.6如何计算input和outputdelay?

  如果是block的input和outputdelay,可以预先分配,比如输出端,输入端各1/3,中间的连接1/3

  block的端口最好都flop-in,flop-out

  如果是chipIo,要度其他芯片的Io时序和电路板上面的延迟,比较麻烦

  set_input_delay的时间设置

  (3)DRV

  DRV有时也加DRc,与物理检测的DRc不是一个概念DRV包括,

  set_max_transition与工艺相关,65nm的话,在0.6ns左右set_max_fanout与工艺相关,一般在12~20之间set_max_capacitanceset_max_powerset_max_area

  (4)falsepath,multicyclepath

  Q4.1什么情况下需要set_false_path?

  

  

  异步时钟之间,

  到meta-stability的第一个FF路径,静态信号

  Q4.2何时会用到multicycle_path?

太长的path,

  不会每个周期都变的信号

  注意:

在RTL中,前端一定要多周期工作一次的功能

  一般set_multicycle_path-setup

  要同时写set_multicycle_path-hold

  (5)wireloadmodel

  wireloadmodel是一种简单地根据fanout来估算wiredelay的方法,在综合时,一般根据设计的大小选择对应的wLm

  有时也会用zerowireloadmodel,这时的clockperiod要相应减小15~25%,或者clockuncertainty增加15~25%

  set_wire_load_model两种模式top和enclosed到底有什么区别?

  更加准确的计算wiredelay的方法是Dctopo和Rcphysical,他们在综合时会粗略地做个place,然后根据距离来计算延迟

  (6)clockgating

  Q6.1如何加clockgating?

  局部的clockgating在综合时,会自动加进去。

加clockgating后,不但会减小功耗,还会改善时序,因为本来到D端的逻辑,一部分被移到cK端了,简化了D端的逻辑整个block的clockgating,一般直接在RTL里面加,因为Dc没有那么聪明

  Q6.2需要对clockgating加什么特别的约束吗?

  如果使用标准库里面的Icg单元,不需要附加任何特别的约束,前后端的工具都认得它

  如果用latch+and自己搭的clockgating,你要对那个and单元set_disable_clock_gating_check,还要告诉后端,一定把latch和and摆在一起

  一般只在没有动态切换时钟时,才可以用一个and/or做clockgating,这时也要set_disable_clock_gating_check

  clockgatingcell约束

  某个domain的clk通过gating关断重启后,对这个domain做复位有没有必要?

  (7)case_analysis

  set_case_analysis可以强制某个node为0/1

  这个0/1会沿着纯逻辑组合单元向前传送,如果没有特别设定的话,会停在时序单元上注意,只是是向前传,不会向左右2边和向后传

  

  

  

  

以下是为大家整理的后端基本概念

(2)的相关范文,本文关键词为后端,基本概念,为了,方便,大家,尽快,找到,要的,话题,i,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

  

  

  

以下是为大家整理的后端基本概念(3)的相关范文,本文关键词为后端,基本概念,为了,方便,大家,尽快,找到,要的,话题,i,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

  

  

最后,小编希望文章对您有所帮助,如果有不周到的地方请多谅解,更多相关的文章正在创作中,希望您定期关注。

谢谢支持!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2