cadence面试.docx

上传人:b****5 文档编号:15186099 上传时间:2023-07-02 格式:DOCX 页数:11 大小:23.05KB
下载 相关 举报
cadence面试.docx_第1页
第1页 / 共11页
cadence面试.docx_第2页
第2页 / 共11页
cadence面试.docx_第3页
第3页 / 共11页
cadence面试.docx_第4页
第4页 / 共11页
cadence面试.docx_第5页
第5页 / 共11页
cadence面试.docx_第6页
第6页 / 共11页
cadence面试.docx_第7页
第7页 / 共11页
cadence面试.docx_第8页
第8页 / 共11页
cadence面试.docx_第9页
第9页 / 共11页
cadence面试.docx_第10页
第10页 / 共11页
cadence面试.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

cadence面试.docx

《cadence面试.docx》由会员分享,可在线阅读,更多相关《cadence面试.docx(11页珍藏版)》请在冰点文库上搜索。

cadence面试.docx

cadence面试

竭诚为您提供优质文档/双击可除

cadence面试

  篇一:

微电子一些面试问题

  亚稳态

  setup/holdtime是测试芯片对输入信号和时钟信号之间的时间要求。

建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。

输入信号应提前时钟上升沿(如上升沿有效)t时间到达芯片,这个t就是建立时间-setuptime.如不满足setuptime,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。

保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。

如果holdtime不够,数据同样不能被打入触发器。

  建立时间(setuptime)和保持时间(holdtime)。

建立时间是指在时钟边沿前,数据信号需要保持不变的时间。

保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。

如果不满足建立和保持时间的话,那么dFF将不能正确地采样到数据,将会出现亚稳态(metastability)的情况。

如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

在数字集成电路中,触发器要满足setup/hold的时间要求。

当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,q端的值是不确定的,并且在未知的时刻会固定到高电平或低电平。

这个过程称为亚稳态

  (metastability)。

  一些关于微电子方面的笔试题(zz)

  1.Fpga和asic的概念,他们的区别。

(未知)

  答案:

Fpga是可编程asic。

  asic:

专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。

根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。

与门阵列等其它asic(applicationspecificic)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点.

  2.建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。

输入信号应提前时钟上升沿(如上升沿有效)t时间到达芯片,这个t就是建立时间-setuptime.如不满足setuptime,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。

保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。

如果holdtime不够,数据同样不能被打入触发器。

  建立时间是指在时钟边沿前,数据信号需要保持不变的时

  间。

保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。

如果不满足建立和保持时间的话,那么dFF将不能正确地采样到数据,将会出现metastability(亚稳态)的情况。

如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

  3.什么是竞争与冒险现象?

怎样判断?

如何消除?

(汉王笔试)

  在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。

产生毛刺叫冒险。

如果布尔式中有相反的信号则可能产生竞争和冒险现象。

解决方法:

一是添加布尔式的消去项,二是在芯片外部加电容。

  4.列举几种集成电路典型工艺。

工艺上常提到0.25,0.18指的是什么?

(仕兰微面试题目)制造工艺:

我们经常说的0.18微米、0.13微米制程,就是指制造工艺了。

制造工艺直接关系到cpu的电气性能。

而0.18微米、0.13微米这个尺度就是指的是cpu核心中线路的宽度。

线宽越小,cpu的功耗和发热量就越低,并可以工作在更高的频率上了。

所以以前0.18微米的cpu最高的频率比较低,用0.13微米制造工艺

  的cpu会比0.18微米的制造工艺的发热量低都是这个道理了。

  5.集成电路前段设计流程,写出相关的工具。

(扬智电子笔试)

  先介绍下ic开发流程:

  1.)代码输入(designinput)

  用vhdl或者是verilog语言来完成器件的功能描述,生成hdl代码

  语言输入工具:

summitVisualhdl

  mentoRRenioR

  图形输入:

composer(cadence);

  viewlogic(viewdraw)

  2.)电路仿真(circuitsimulation)

  将vhd代码进行先前逻辑仿真,验证功能描述是否正确数字电路仿真工具:

  Verolog:

cadenceVerolig-xl

  synopsysVcs

  mentoRmodle-sim

  Vhdl:

cadencenc-vhdl

  synopsysVss

  mentoRmodle-sim

  模拟电路仿真工具:

  ***antihspicepspice,spectremicromicrowave:

eesoft:

hp

  3.)逻辑综合(synthesistools)

  逻辑综合工具可以将设计思想vhd代码转化成对应一定工艺手段的门级电路;将初级仿真中所没有考虑的门沿(gatesdelay)反标到生成的门级网表中,返回电路仿真阶段进行再仿真。

最终仿真结果生成的网表称为物理网表。

  7.解释setup和holdtimeviolation,画图说明,并说明解决办法。

(威盛Via20xx.11.06上海笔试试题)

  setup/holdtime是测试芯片对输入信号和时钟信号之间的时间要求。

建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。

输入信号应提前时钟上升沿(如上升沿有效)t时间到达芯片,这个t就是建立时间-setuptime.如不满足setuptime,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。

保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。

如果holdtime不够,数据同样不能被打入触发器。

  篇二:

ic面试问题

  1.静态功耗:

指电路处于等待状态或者不激活状态时的泄漏电流产生的功耗。

泄漏电流主要有:

1)反偏二极管泄漏电流(漏极和衬底是一对反偏二极管)

  2)门栅感应漏极泄漏电流(gidl,gate-induceddrainleakage):

  3)漏致势垒降低效应,使得在栅极电压较低(nmos)时,沟道内的势垒高低

  降低,漏电流随着漏电压变化,。

在亚阈值下的漏电流,主要是沟道内的载

  流子扩散引起的。

4)栅极泄漏电流:

栅极泄漏电流一般用叠栅和和高k介质解决。

  2.whattypesofdelaymodelareusedindigitaldesign(数字ic设计中有多少

  种类型的delaymodel)?

  nldm,ccs,和ecsm”,还有一个现在基本不用了的--ldm

  模型(ldm)线负载,非线负载模型模型(nldm),复合电流源模型(ccs),有效电流模型(ecsm)。

  3.set_wire_load_mode:

setsthewire_load_model_modeattributeonthecurrentdesign,

  specifyinghowwireloadmodelsaretobeusedtocalculatewirecapacitanceinnets。

set_wire_load_mode[top|segmented|enclose]

  当需要估算连接不同模块的连线的延时时需要设主席set_wire_load_mode选项:

有三种enclosed(用包围两个子模块的模块的线负载模型估算连接它们的连线的延时),top,(用包含所有模块的顶层模块的线负载模型来估算),segment(分别根据穿过的三段模型估算之后相加得到)

  4.set_wire_load_model:

wireloadmodel,在综合时,除了用zwlm,或者不同k值的

  wireloadmodel以外,还有一个基于物理位置(距离)的wireloadmodel,在cadence的Rc中叫ple,synopsys叫dcultratopographical

  5.whatwouldyoudoinordertonotusecertaincellsfromthelibrary

  如何禁止使用库里面的某些单元?

  禁用就用set_dont_use禁止修改就用set_dont_touch

  6.哪些因素会影响标准单元的延迟?

  答案应该包括

  1)pVt

  2)inputtransition,outputload

  3)Vth

  7.whydoyouusealternateroutingapproachhVh/VhV(horizontal-Vertical-horizontal/

  Vertical-horizontal-Vertical)

  主要是为了节省布线资源,而且垂直布线的话耦合电容较小。

  8.whypowerstripesroutedinthetopmetallayers

  为什么电源走线选用最上面的金属层?

  1.高层更适合globalrouting.低层使用率比较高,用来做power的话会占用一些有用的资源,比如stdcell通常是m1pin。

  2.em能力不一样,一般顶层是低层的2~3倍。

更适合电源布线。

  3.一般ip占用的层次都靠近下几层,如果上层没有被禁止routing的话,toplayer可以穿越,低层是不可能的,并且高层对下层的noise影响也小很多

  4:

顶层金属的宽度教宽,不仅可以提高抗em的能力,也可以减小iRdrop。

  9.howtofixx-talkviolation?

如何解决线间干扰?

  1)upsizevictimnetdriver,downsizeaggressornetdriver

  2)increasewirespace,shielding,changelayer,changewirewidth

  3)insertbutterinvictimnet

  能答出以上3条的,在工作中已经基本够用,但是还有两个不常用到的,是amd的一个大牛告诉我的。

  4)把与victimnet相连的输入端改成hi-Vth(Vth提高后,小的glitch可以被过滤掉)的单元。

  5)改变信号的timingwindow。

这个不易做到,但是也是解决方法

  10.cppR:

commonpathpessimismremove

  11.pt计算时序的时候都是按照最紧约束来计算的。

  set_timing_derate-early0.8

  set_timing_derate-late1.1

  deratetheminimum/shortest/earlypathsby-20%andderatethemaximum/

  longest/latestpathsby+10%.longpathdelays(forexample,data

  pathsandlaunchclockpathforsetupchecksorcaptureclockpathsfor

  holdchecks)aremultipliedbythederatevaluespecifiedusingthe-lateoption,

  andshortpathdelays(forexample,captureclockpathsforsetup

  checksordatapathsandlaunchclockpathsforholdchecks)aremultiplied

  bythederatevaluesspecifiedusingthe-earlyoption.ifnoderatingfactors

  arespecified,avalueof1.0isassumed.

  12.输入延迟:

时钟上升沿后,外部模块数据到达受约束模块输入端口所用的时间。

  input_delay=clk_to_q+combo1.

  clk_launch_edge+max_input_dealy(clk_to_q+combo1)+max_combo2  13.输出延迟:

  output_dealy=tc2+tsetup(uff1).

  tck2q+tc1+output_dealy  14.site

  sitestandard#定义site

  symmetRyy;

  classcore;

  size1.20by10.80;

  endstandard

  site是se中最小的几何单位,一个设计中可能有几种site,sitestandard指标准单元的site,siteio指iopad的site...一般说来,cell的高度是一定的,等于site的高度,cell的宽度是site的整数倍。

  pitch

  pitch是leF中一个重要的概念,它定义了将来布线的间距,它对布线的效果有很大的影响。

  pitch就是同一层中金属的间距,se是一个有网格布线器,它布线的最小网格就是1个pitch,如下图(t7.3)所示,信号线是沿着网格走的,pitch大于等于linetoviaspacing,即保证1个格点上走线,相邻格点打孔,孔与线的间距不违反间距规则。

在多层布线中,一般定义各层pitch相同或保持一个简单关系,如1:

2,这样保证好的布线效果。

pitch的大小一定要仔细考虑。

  track

  布线轨道(routingtrack)是指芯片内部专门用于布线的路径。

布线通道是指(routingchannel)是每两条或者多条布线轨道空间,他们上面不允许摆放标准单元,晕道(halo)p65.

  deF文件:

布局布线后的电路网表文件,可用于寄生参数的提取,功耗分析,电压将分析。

  leF:

包技术lef和celllef文件,用于自动布局布线的物理文件。

15.16.17.18.

  leF是一种简化版的gds,它只包括size和metal层有关的信息,比如pin,blockage等,其他baselayer的东西只在gds里面可以看到。

  同时leF还有一些gds里面没有的信息,比如,metal的R,c,routingandplacementrule等

  怎么说呢,lef包含techlef和macrolef2种,一般lib给的有的是合在一起的,有的是分开的

  建议分开,因为有时候techheaderlef要修改些东西的,

  techheaderlef主要是place

  capacitance:

1.5e-4;

  area:

0.7;

  slope:

66.667;

  fanout_length(1,66.667);

  根据fanout值,由fanout(1,66.667)可以得出互连线长度为66.667,然后根据resistance和capacitance计算出互连线电容为1.5e-4*66.667,互连线电阻为8.5e-8*66.667

  ,当然如果扇出值表中没有,就会用到slope,例如扇出为3时,此时估算的互连线长度为1*66.667+(3-1)*slope,再计算出Rc值,然后dc由此计算net的延时。

  @@8、therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.

  inpre-ctsnetlist,thereisnetworklatencyinclka,howthislatencypropagatestoclkb

  inpost-ctsnetlist,whatyouneedtodoforthisnetworklatency

  假设有两个时钟,原始为clka,生成的时钟为clkb,

  在没有时钟树的网表中,clka的networklatency会自动传递到clkb上吗?

clkb的latency如何描述?

在生成时钟树的网表中,如何处理networklatencyclkb的latency又如何描述?

难度:

3

  答案:

  在pre-cts时,clka的networklatency会自动传到clkb上在post-cts时,可以把networklatency去掉,

  set_propagated_clock命令,让工具根据clocktree去计算实际的clocknetworklatency

  @@9、therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.howdoyou

  specifytheminctsspecfileassumethereisrealtimingpathbetweenclkaandclkb.

  clkb是clka的生成时钟,在cts的spec文件中如何定义这两个时钟?

假设clka和clkb

  间的FF有时序收敛的要求。

难度:

3

  答案:

  cts的spec文件中定义clka是root,clkb为throughpin,再加上那些应该有的skew

  transition,insertiondelay等就好了,其它的事cts会给你做

  @@10、假设在pre-cts的时序约束中,setup的clockuncertainty是由plljitter和clocktreeskew两部分组成,那么

  1)pre-cts的时序约束中,hold的clockuncertainty是什么?

  2)post-cts的时序约束中,setup和hold的clockuncertainty要做什么样的修改?

难度:

2

  答案:

1)pre-cts,

  setup的clockuncertainty=plljitter+clocktreeskew

  hold的clockuncertainty=clocktreeskew

  2)post-cts,

  setup的clockuncertainty=plljitter

  hold的clockuncertainty=0

  @@11、whatarevarioustechniquestoresolveroutingcongestion

  请详细解释解决走线阻塞的问题难度:

4

  提示:

1)routingcongestion发生在后端,前端一般不太考虑这个问题,需要后端自己去

  办法解决,但是解决的办法不只在后端,也有一些方法需要前端的配合

  2)阻塞有多种情形,要分别讨论,没有一个统一的解决办法。

能够把大部分的阻塞情况列举出来,就已

  经够4级的水平啦

  答案:

1)阻塞在Ram(macro)之间:

可能Ram之间的距离没有计算正确,可以加大Ram之间的间距;扭转Ram

  的方向,使得Ram的iopin朝向更容易走线的那边;如果是多个Ram共用地址或者数据线,尽量把Ram的地址数据pin对齐

  2)阻塞出现在Ram和帮助单元交界的地方:

在Ram周围加一条halo(keepout);把Ram放在四周,尽量把中间留下的空间变成方形;在有阻塞的地方加一些由小的placementblockage组成的矩阵

  3)阻塞出现在标准单元的某一块:

也可以加一些由小的placementblockage组成的矩阵;module/instancepadding;利用placementguide减少那块地方的标准单元个数;scanchainreordering也会改善一些阻塞;定义density上限;使用congestiondriven的placement,并且要求place之后做congestion优化;在综合是禁止使用那些pin太多太密集的标准单元(多半是那些复杂的组合逻辑单元);请前端使用Ram代替触发器矩阵;请前端修改算法

  4)应该尽量减少powerroute占有的资源,谨慎选择powermesh使用的金属层,Via的大小等。

在detailroute完成之后,你如果已经试了各种解决signalcongestion的方法,还有少量dRc无法解决时,可以考虑切掉部分powermesh

  主要就是memorychannel出现congestion的处理,还有全是标准单元但有congestion的处理。

若全是标准单元但仍有

  congestion,要么是localdensity太高,要么就是pindensity太高,这时候就要限制celldensity来降低pindensity,另外如果是用icc的话,在placement的时候使用globalrouter来进行congestionremoval以及congestionremoval用higheffort都是有帮助的。

  @@12、howdoyougetbetterskew/insertiondelaysincts(clocktreesynthesis)

  如何得到更好的时钟树skew和insertiondelay难度:

4

  如果是用普通的cts的方法,可以从下面几个方面着手。

不太可能一次就把cts做得很好,要反复调试各种参数,达

  到最佳效果。

  1)合理的clockroot和throughpin。

这个看似cts会从sdc自动抓出来,但是并不一定是最好的,特别是多个clock相互有重叠的leafpin时,要特别注意

  2)不要用太大或者太小的clockbuf/inv

  3)选用Rc最小的金属层。

如果上面Rc最小的金属层已经被占用,比如Rc最小的top,top-1已经不够clocknet时,而top-2到layer2都是一样的Rc时,可以选用layer3/4。

为什么不用更高层哪?

因为这样既照顾了layer2/1的pin,有不用太多的via到更高层

  4)如果用doublewidthclockwire,可以适当增大clockbuf/inv的size

  5)合理的maxfanout。

有时clockbuf/inv的fanout可以超过max_fanout的限制

  6)不要把skew设得太小

  7)min_insertion_delay=0ns

  8)合理的transitiontime,不要太小

  9)使用postcts的ctsopt

  10)做clocktree时,就直接把clocknet走线完成

  cts时,就把时钟net都route了,不要等到detailroute那一步

  @@13、ifgivingtotalstandardcellgatecount,allmemorymacrolistincludingmemorytype,bitwidthanddepth,allothermacrowithrealsize,andiotypeandtotalnumber.howdoyou

  estimatethediesize

  如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他ip的实际大小,以及iocell

  的种类和数量,你如何估算整个芯片的面积?

  答案:

  ioneck和coreneck一般称作iolimited和corelimited,

  iolimited:

这个芯片的面积是因为io个数限制(太多),而不得不做得那么大。

core部分其实用不了那么大。

这时面积计算就简化为每边io个数的计算了。

  corelimited:

芯片面积是有core部分的决定的,io没有那么多

  在corelimited情况下,diesize的估算如下:

  芯片面积=core面积+powerring面积+padring面积

  core面积=

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

当前位置:首页 > 工作范文 > 制度规范

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

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