关于芯片设计前后端接口我是没有发言权的,在此只是记录下我了解过的或者用过的东西。

1. FEP

Front End Processing是ASIC的一个步骤,当前段工程师把写好的design文件交给后端之前,fep工程师会负责插入一些测试用或者可靠性用到的东西,例如dft和fuse等

关于dft,一般的芯片都交给eda工具自己去插,但是有时候,尤其是cpu芯片,是需要用户手工的把scanchain连起来的,这样一来就可以对每条scanchain有一个命名,而且可以做到每个chain都在逻辑功能上有用处。例如arm的processor core,你可以通过ICE(类似于powerpc的riscwatch)工具对core里面的某个寄存器进行读写设置,就是通过这些有名字有意义的chain来实现的。

 

关于fuse,fuse可以避免一些芯片生产的问题,尤其是出问题概率很高的sram上,很多芯片大量使用sram,cam等一旦这个array的一个cell出了问题,把这个芯片都扔掉是不是很可惜吗?fuse就是解决这个问题的,当你使用定制的sram/cam等memoryblock的时候,这些block实际上比你需要的大一些,多出来的这些行和列就可以做修补。过程大概是这样的:芯片生产出来和交付给客户后都会进行测试,可以通过配置某些管脚,使芯片进入fuse状态,在改状态下,MBIST逻辑会扫描memory的所有cell看是否有问题,如果发现问题的数量小于冗余行列的数量,BIST逻辑会将修补信息一次性写入FARM,之后芯片就可以正常使用而不需再进入fuse状态。当然这个过程应该可以重复(不确认)。

 

2. Synthesis

logic synthesis就是把rtl的设计描述变成门级描述,当然这样说不准确,不过鉴于只是为了理解,我们姑且保留这样的说法。工具一般是dc,当然目前有很多结合physical信息综合工具,大同小异了。而在A公司,processor的设计基本上保持者门级描述的传统,所以synthesis工具可以施拳脚的机会不多,我基本上就在一个项目中用到。

 

3. Timing assertion

Timeing assertion在一般的芯片是和综合放在一起的,可以作为综合时的约束,但是在这里,貌似timing assertion变的很重要一样,又是review又是和客户沟通的,它事关芯片成败当然很重要,但和功能比来说,没有那么重要了,就是理解下芯片的clock结构,写写时钟约束。难点在于懂timing assertion的这些人不写assertion,而写assertion的是前段工程师,又不太懂。 DILEMMA!

 

4. POR

Power On Reset,这个要在logic仿真和timing仿真时都要做的,貌似没什么好说的。

 


转载于:https://blog.51cto.com/panyf/1192407