A1.4,F1.4,MTI:VHDL时序仿真产生“错误:必须指定宽度的正值”-Xilinx-AMD社区-FPGA CPLD-ChipDebug

A1.4,F1.4,MTI:VHDL时序仿真产生“错误:必须指定宽度的正值”

描述

关键词:宽度,ROC,ROCYV,TimeSim.VHD,MTI,模型技术,
Modelsim系统

紧迫性:媒体

一般描述:当使用模型技术仿真器执行时
一个A1.4/F1.4 VHDL时序仿真,可能出现以下错误:

* **失败:**错误:必须指定宽度的正值***
时间:0 ns迭代:0实例:/TestStudio/UUT/ROCGNGD2VHDL

解决方案

向Testbench添加配置语句
——————————

对于A1.4/F1.4软件版本,增加了一个新的仿真单元。
VHDL仿真库称为ROC(配置重置)。目的
ROC单元是用来仿真电源重置周期的发生。
这是在配置完成后在实际器件中执行的。
ROC单元被自动放置在定时网表(TimeSim.VHD)中。
对于不包含启动块且尚未选择的设计
GP(将全局重置为端口)切换为NGD2VHDL。宽度
在错误消息中指定的值是脉冲宽度或
上电复位的持续时间。

为了执行时序仿真,必须指定宽度值。
建议的方法是添加一个配置语句到
初始化此值的设计测试台。

下面是一个可以附加的示例配置语句
测试台:

OpTyTyNAMEA的配置PASTM1M仿真
关于测试平台的体系结构
Aftand SnvayNo.E.Gyv.FixDeasyIn TestPlase≫& L.;
对于结构
对于ROCKNGD2VHDL:ROC使用实体工作。ROC(ROCYV)
通用映射(宽度=100 ns);
结束;
结束;
结束;
结束;
结束后仿真;

在上面的示例中,替换在大于和
小于设计符号的符号(& lt;& gt)
仿真。示出了100 ns的示例值。如果需要
真实模仿实际器件上电复位持续时间,输入T(POR)值
对于特定器件的数据。如果你渴望更快
仿真,只要最小GSR,就可以减少较小的值。
特定目标的脉冲宽度t(MRW)值不受侵犯
器件。T(MRW)也可以在Xilinx数据库中找到。一般来说
100纳秒是所有Xilinx FPGA和CPLDS的安全值。

在进行这些更改之后,测试平台需要重新编译(VCOM)。
并且需要使用模型技术仿真器(VSIM)调用。
配置名称、POST、M1I仿真,作为设计加载。

将全局设置/重设作为端口
—————————-

将配置语句添加到测试台的另一种选择
将全局设置/重置网络作为端口。如果设计
不包含启动块,此开关被激活,M1将
生成包含全局设置/重置端口的网表用于仿真
仅供参考。此端口将不会在实现的设计中出现。一次
这样做,可以通过切换GSR端口来控制全局重置。
无论是从测试台文件还是直接从仿真器。

要使M1创建全局设置/休息端口:

如果使用设计管理器GUI,选择“推出全局设置/重置”。
NET作为端口“实现编辑模板内的开关”& GT;
接口,仿真数据选项框。

如果使用命令行中的M1工具,则在运行时发出-gp开关。
NGD2VHDL。

不建议
————–

作为最后的手段,一种初始化宽度值的方法。
ROC将手动编辑NGD2VHDL中的初始化值。
生产网表。这不是建议的方法,因为这个编辑会
每次都需要执行仿真网表,但它是重新生成的
提供另一种选择。

若要编辑宽度值,请打开时间仿真网表(通常)
用文本编辑器调用TimeSimix.VHD并编辑时间值
在ROC实体声明中的以下行(一般指向
网表的顶部):

宽度:时间=0纳秒;

例如,如果需要100 ns的电源复位,则定时仿真。
网表应该看起来如下:

实体ROC
泛型(StaseEnPATS:String:= *);
宽度:时间=100纳秒;
端口(O:输出Stdululgic=‘1’);
ROC的属性ValaleLe0.0:实体是真实的;
结束ROC;

完成此更改后,编译仿真网表并执行
仿真正常。

A1.4仿真补丁
——————

如果仿真补丁为A1.4(Xilinx解决方案3739)已安装
在系统上,已经向NGD2VHDL中添加了不再使用的开关。
需要以前的决议。对于需要ROC的设计(DO)
不包含全局重置端口或“带出全局重置端口”
开关未启用)需要一个新的命令行开关-RPW
现在指定ROC的重置脉冲的值。

一个指定100 ns重置的开关的示例命令行用法
脉冲是:

NGD2VHDL -W-RPW 100设计

对于设计管理器用户,可以通过使用
自定义模板特征。见(Xilinx解决方案1227)详情请见
使用模板管理器的自定义特性。

有关此修补程序的信息,包括如何获取它,请参阅
(Xilinx解决方案3739).

请登录后发表评论

    没有回复内容