wide_road的个人空间 https://blog.eetop.cn/1107155 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

post simulation 转帖

已有 1320 次阅读| 2014-7-4 10:11 |个人分类:collection

electron ren和大家一起学习电子!2010-10-09 09:42Post-Place & Route Simulation in ISE不同阶段的仿真,需要不同的已编译的xilinx库文件:库文件的编译之需要使用ISE自身提供的compxlib.exe程序,在系统控制台输入compxlib -help就可以看到它的用法了。编译好之后修改一下modelsim.ini文件,把编译好的库引入就可以了。在每一个设计实现阶段,都有一个生成仿真模型的进程。在Post-Place & Route仿真阶段,这个进程就是要生成布局布线后仿真的模型。它调用NetGen生成仿真模型和SDF标准延时文件。默认的模型名和SDF名是_timesim.v(这个模型就是为后仿生成的门级网表文件)和_timesim.sdf。也可以通过右击该进程来修改生成模型的属性。为了进行仿真,还必须编译glbl.v文件($XILINX/verilog/src/glbl.v)。glbl.v模块把全局置位/复位信号 (GSR)和全局三态信号(GTS)连接到当前设计中。一般情况下,GTS和GSR不需要在testbench中定义。glbl.v中声明了它们并且自动 脉冲驱动GSR 100ns。在VHDL UNISIM库中,包括了ROC, ROCBUF, TOC, TOCBUF, 和 STARTBUF 这些单元以辅助全局置位/复位信号和三态信号的VITAL VHDL仿真。`timescale  1 ps / 1 psmodule glbl ();    parameter ROC_WIDTH = 100000;parameter TOC_WIDTH = 0;    wire GSR;wire GTS;wire PRLD;    reg GSR_int;reg GTS_int;reg PRLD_int;    assign (weak1, weak0) GSR = GSR_int;assign (weak1, weak0) GTS = GTS_int;assign (weak1, weak0) PRLD = PRLD_int;    initial beginGSR_int = 1'b1;PRLD_int = 1'b1;#(ROC_WIDTH)GSR_int = 1'b0;PRLD_int = 1'b0;end    initial beginGTS_int = 1'b1;#(TOC_WIDTH)GTS_int = 1'b0;endendmodule将glbl.v,_timesim.v和testbench.v一起编译的命令:vlog $env(XILINX)/verilog/src/glbl.v _timesim.v .v将设计load到modelsim中,并使用-L参数指向在仿真模型中定义了组建行为的verilog simprim模型。glbl同样需要load:vsim -t ps -L simprims_ver work. work.glblSDF文件自动加载。如果使用的是VHDL的设计文件,相应命令为:vcom -93 _timesim.vhd testbench.vhdvsim -t ps -sdfmax /UUT=_timesim.sdf work.testbench怎么样确定SDF文件呢?如果是在project navigator中直接调用modelsim仿真,那么,ProjNav创建do文件自动确定SDF文件的使用。若是使用verillog单独在modelsim中仿真,应该在modelsim中包含$sdf_annotate()语句来指定SDF文件及其路径。然而在VHDL中,SDF文件必须在MTI GUI或者vsim命令行中指定。必须为MTI提供两点信息:1.SDF文件使用区域。这个区域告诉MTI由xilinx工具产生的时序仿真网表在何处被实例化。假设testbench的入口名是TESHBENCH,仿真网表在testbench中实例化的名字为UUT。那么这个区域就是/TESTBENCH/UUT。2.SDF文件的位置。如果SDF文件与仿真网表文件在同一个文件夹中,那么只需要提供SDF文件名就可以了。否则,需要提供完整的路径名。下面是一个vsim命令的例子:vsim -t ps -sdfmax /testbench/uut=c:/project/sim/time_sim.sdf work.testbench在SDF文件中对每一个低层逻辑门提供了3种不同的延时值。分别是典型延时值(sdftyp)、最小延时值(sdfmin)和最大延时值 (sdfmax)。在对SDF文件进行实例化说明时,必须指定使用了哪一种延时值,例如对TESTBENCH中的UUT模块使用最大延时值标注:vsim -sdfmax /TESTBENCH/UUT=sdfile.sdf一般的设计中都会有很多子模块,而每一个模块可以使用不同的SDF文件标注:vsim -sdfmax /TESTBENCH/UUT1=sdfile1.sdf -sdfmin /TESTBENCH/UUT2=sdfile2.sdf----------------------------------------------------------------------------------------------------------------------------仿真库文件说明UNISIM(Library of Unified component simulation models) 仅仅用来做功能仿真。这个库包括了xilinx公司全部标准元件,可以被绝大多数的综合工具推论。UNISIM库被分为VHDL和verilog两种。XilinxCoreLib(CORE Generator HDL library models) 仅仅用来做功能仿真。这个库中包括了使用Xiilinx Core Generator工具产生的IP的仿真模型,例如FIR滤波器、各种FIFO、大的RAM、CAM等。SIMPRIM(Library of generic simulation primitives) 用来做时序仿真或者门级功能方针。SmartModel 用来模拟非常复杂一些FPGA设计。其中用到了PowerPC或者RocketIO等。这个库的代码是加密的,它通过SWIFT机括与仿真器通信。

点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 1029

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-23 17:05 , Processed in 0.026347 second(s), 17 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部