关于仿真的一些看法
2013-04-05
标签: 仿真

仿真,顾名思义,就是模仿真实情况,对设计进行一种验证。根据对设计的模拟,以及所模拟的设计的层次,可以对仿真进行分类,于是出现了所谓前仿,后仿,门级,RTL级,功能仿真,定时仿真等等诸多的词汇。搞明白各个级别的仿真对应的具体操作,自然,就不会混淆了。下面是个人的一点认识,有谬误之处,请大侠们指正。

根据IC设计流程,在制定了设计需求以及系统spec之后,最开始完成的当然是算法级别的的设计,我所接触的项目,这里是用C来完成的。至于有人提到,matlab也可以进行算法设计,可能在学校里用得多一些吧,实际工作中好像用得不多。 matlab是解释性的语言,效率比较低,另外与现有仿真工具的接口也不通用。对于算法C的仿真,主要是对算法进行验证,这一阶段的仿真是决定最后系统成败的关键。这一阶段会产生后续仿真中所需要的测试向量。 这个阶段的工作本人接触不多,不多说了 ,大人补充。

接下去就是RTL级别的仿真了,或者说前仿,或者说功能级仿真,都是一回事。这时,已经有了所有的RTLcode, 这里所说的寄存器传输级,是指verilog等hdl 语言的描述的一种抽象层次,实际很多这时候的写法还是抽象级别更高的写法。 RTL仿真需要搭建测试平台,也就是所说的testbench。一般包括这么几个部分: 代测模块例化, 激励产生,输出结果检验,仿真过程控制,仿真结果(波形)存储等。关于过程控制和仿真结果等可以针对不同的simulator来采用不同的task来完成。我用到的东西不多,只用过modelsim和NCveilog,vcs只接触过一次。这三个应该是目前提到最多的软件了,modelsim速度最慢,价格最便宜,盗版最多,所以讨论最火。NC速度最快,是cadence的主力产品,现在是IC设计signoff的工具之一, VCS是synopsys的产品,速度介于两者之间。其实这三个工具的基本功能和基本命令以及参数都差不太多,只是有些许的差别。RTL级别的仿真,主要仿真功能的正确性,速度比较快,不涉及定时关系,虽然有时候在rtlcode里面会有类似1ns的惯性延时来模拟门级特性,故此也叫功能仿真。

RTL code经过综合,得到netlist——门级网表,相应的仿真便称为门级仿真,门级仿真又可以分为post-synthesis,post-dft, post-layout等不同层次。真正的“后仿”是指post-layout仿真。门级仿真一般会加入定时信息,常用的是导入sdf(标准延时文件),因此又称之为定时仿真。但并非门级仿真都是定时仿真,比如simulator可以支持零延时的仿真。门级的仿真,速度比较慢,主要是验证系统的动态定时特性。这种验证和静态时序分析一起构成综合后验证的必备手段。

等到place route之后,得到最后的gds,再反相提取参数,再进行物理层次的仿真,应该属于晶体管级的仿真了,俺目前害没接触到,请高手指教。

可能会用到的工具/仪表
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号