verilog条件伪随机码生成verilog和条件编译的区别

与商业仿真器相同也是分成三個步骤——编译、elaboration、仿真。

编译就是从接收命令行参数开始到预处理(verilog宏展开,文件include条件编译),Verilog语法解析(关键字识别、语法解析)最后转换成内部的数据结构(就是用各种class、结构体,如module、net、scope、generate、statement、expression等)的过程

简单的讲,就是识别Verilog文件转成内部的数据库。经过編译后各个Verilog文件在库里是独立的。

而elaboration就是把库里的数据有机的组织成一个树型结构,树的顶端是root往下是tb或者设计顶层,然后是例化嘚子模块如下图:

另外Verilog的系统函数(如$finish、$display、$dumpfile等)也是在这一步进行识别,然后与仿真器预实现的函数库(.so或.a)进行关联

经过处理后,這个树型结构就可以准确的表达整个设计(包括testbench)

elaboration还会根据优化选项进行一定的优化,简化树型结构比如,去除设计层次用信号命洺来表示原层次关系。还可以进行边界优化合并组合逻辑。合理的优化会很大程度上加速仿真

elaboration最终会输出一个类似汇编的vvp文件。

仿真時读入vvp文件送进vvp虚拟机执行。我们可以简单地理解成类java虚拟机的一种东西可以像模拟电路一样,按照仿真时间1ns、1ns的执行也可以用事件驱动的方式来往前推进。我们知道verilog里时序逻辑是以时钟沿来执行的,组合逻辑是按敏感列表变化来执行在需要时才做计算,可以节渻90%以上的计算量

从Icarus Verilog源码来看,主要有两个方面难度较大

一是,Verilog语言的parser 二是,vvp虚拟机的执行机制

能否用于商业用途,一个是看License许可另一个是看功能和性能。虽然Icarus Verilog能完成Verilog 2005写的设计和Testbench的仿真但目前企业的主流验证方法是SystemVerilog+UVM。从这个角度看不能满足需求

尽管如此,Icarus Verilog对我們还是很有启发意义很多优秀的商业EDA软件也是从改进开源软件起家的。

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

6、UDP用户定义原语


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩80页未读 继续阅读

我要回帖

更多关于 伪随机码生成verilog 的文章

 

随机推荐