1

关于投票
仿真与综合有什么不同

 

 

综合工具不支持任何延迟模型,做过综合的人不会有一点疑问。要搞清楚这个问题,你就必须懂得功能仿真(function simulation)和综合(synthesis)是怎么回事,有何区别。

 

功能仿真,也就是对你设计的电路通过软件方式作功能正确与否的考量,是对了还是错了,idea对不对,逻辑思路是否完备。为达到这一点,功能仿真可以做到非常抽象的层次,如你提到的after语句,我明确告诉电路在xx时间发生什么事件(event),电路在该时刻得到这个事件(event),执行一段代码,得到你要的结果。ok,出不出错,非常容易发现。那么,功能验证很快就可以做出来。

 

综合又是什么的干活呢?笼统一点说,就是将你设计的代码映射到具体的工艺当中去,这是ASICFPGA设计必经的环节。你的idea到这一步就将具体到门电路的实现上。你设计的组合逻辑将映射为一堆与或非门,你设计的时序电路将映射为DFFs。你设计中的(采用zero delay模型)信号连接将表示为器件的直接连接,这种线连接仍然采用的是zero delay模型,因为它没有器件布局的信息,这时不会有连线延时信息!!!那些after等延迟语句它将生成什么呢?什么也生成不了,因为综合后生成的只是一堆foundry提供的综合库中的器件,以及他们如何连接的信息,别无其他。这就是网表(netlist),它已有器件延时,但还没有线延时。

 

网表生成后就是再仿真,一般没有什么问题。然后给到foundry处布局布线,或者你自己做,得到真正的延时文件,再综合,此时网表就具有线延时了,再做后仿真,过了就可以拿去投片了。

 

现在你应该知道延时语句跟综合的联系了吧。说到底,HDL语言可以分为仅支持仿真和支持仿真和综合两类,而after属于前者。仿真的目的,并不在于可以直接到综合,当然这是我们所追求的,即所谓synthesizeable RTL coding,更进一步,还应testable RTL coding,而在于可以快速地构建电路原型,验证设计思路。

 

其实不单单是延时可以在功能仿真中人为的作出,而不被综合工具所接受,功能仿真中还有许多特性不被综合工具所接受或与综合特性不符合。比如组合逻辑的仿真,如果敏感变量表不全,综合出来的网表再仿真就会与功能仿真不一致,你知道是为什么吗?

 

系统分类: 模拟技术
用户分类: 你言我语
标签: 仿真,综合
来源: 转贴
发表评论 阅读全文(102) | 回复(0)

0

关于投票
请路过的访客投我一票!
        我参加了EDN的博客大赛,请来访的客人如果认为那篇博文还算可以多多投票和发表评论。投票就是在每篇博文前的小图标“顶一下”上点击就可以了。谢谢大家!我会努力发布更多有价值的博文,希望各位继续关注!加油!
系统分类: 模拟技术
用户分类: 生活随感
标签: 无标签
来源: 原创
发表评论 阅读全文(181) | 回复(0)
总共 , 当前 /