FPGA时序仿真及优化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xuanwo11/article/details/81023916

        在DC综合中, 一般(布局布线)P&R完成后,就进入后仿阶段,为什么要后仿,后仿的目的在于消除或减小理论结果与实际结果之间的差异 ,版图生成以后,版图中的连线及连线间的寄生电阻,寄生电容,甚至寄生电感(现阶段一般后仿不包括电感)都是前仿中没有添加的,亦即,前仿的网表中认为各根连线的电阻电容均为零。事实并非如此,如果这些寄生电阻电容效应足够大,那么实际做出的电路就和前仿差别较大。后仿需要考虑版图中实际连线的RC延时。ICC生成版图之后,ICC会写出一个电路网表,star_rc_xt 抽取版图寄生参数,PT获得寄生参数信息后写出sdf(standard delay format)文件,用于反标入电路网表。后仿真的对象是由ICC生成的电路网表,后仿真是电路级的仿真,仿真反标入了由PT产生的sdf文件(存储timing数据)

        本文主要研究ISE联合Modelsim进行时序仿真的研究。在用ModelSim SE 版本时,由于不包含特定厂商的库文件,而在做时序仿真时恰恰与特定的器件相关,要用到这些库,为了提高仿真速度,通常需要提前编译这些库,而且不同厂商编译库的方法不尽相同,本文以编译Xilnx 公司的库为例,介绍编译库的方法。在选择所要编译的语言后,Xilinx Software Version、编译的库、Xilinx 路径和Modelsim 路径后就可以进行库的编译了(使用Tcl脚本)。其中主要在modelsim中编译xilinx的三个库,分别是unisims库,simprims库,和corelib库,其中unisims库全称为(library of united component simulation models),包含了xilinx所有的标准元件,这个库只用来做功能仿真。simprims全称为(library of generic simulation primitives),这个库用来做时序仿真或者门级功能仿真。corelib库顾名思义,这个库里装的是xilinx的各种ip核,仅用来做功能仿真

主要用到的编译指令如下(本文库文件所在路径已标出):

vlog -work simprim_ver H:/Xilinx/14.7/ISE_DS/ISE/verilog/src/simprims/*.v

vlog -work unisim_ver H:/Xilinx/14.7/ISE_DS/ISE/verilog/src/unisims/*.v

vlog -work xilinxcorelib_ver H:/Xilinx/14.7/ISE_DS/ISE/verilog/src/XilinxCoreLib/*.v

 

依照上述过程完成时序仿真,仿真结果如下图所示:

 

参考博文:https://wenku.baidu.com/view/4b9521f9f705cc175527094f.html

展开阅读全文

没有更多推荐了,返回首页