7.1IXST -“错误:XST:917 -未声明信号“-Xilinx-AMD社区-FPGA CPLD-ChipDebug

7.1IXST -“错误:XST:917 -未声明信号

描述

关键词:数组,总线,宽

紧迫性:标准

一般描述:
XST错误地发出错误消息:

“错误:XST:917 -未声明的信号&信号StRealNo.gt;

下面是几个确定的问题。

解决方案

如果在一个“总是”过程块中声明一个RG数据类型,XST也会报告这个错误,如下所示:

模块测试(输入CLK,输入RST);


总是@(CLK或RST)
开始:计算机程序
Reg [0:0] CLAV[2:0];
CLAV〔0〕=1’BX;
CLAV〔1〕=1’BX;
CLAV〔2〕=1’BX;
结束


终端模块

如果信号CLAV被声明在“总是”块之外,XST将接受代码:

模块测试(输入CLK,输入RST);


Reg [0:0] CLAV[2:0];

总是@(CLK或RST)
开始:计算机程序
CLAV〔0〕=1’BX;
CLAV〔1〕=1’BX;
CLAV〔2〕=1’BX;
结束


终端模块

当在verilog函数中执行总线范围的数组声明时:
Reg [32∶1 ]信号名[8:0];

XST将生成以下错误消息:
“错误:XST:917 -未声明的信号&信号StRealNo.gt;

这是因为XST不支持函数中的总线范围的数组声明。唯一的解决方案是将阵列分解成单独的总线,方式如下:

Reg [8:0]
Reg [8:0]
Reg [8:0]信号;


Reg [8:0]

注意:在5.1i软件版本中解决了声明总线范围数组的问题。

如果您已经在VHDL文件中实例化了一个包含状态机的Verilog文件,XST也将报告此错误。Verilog状态机将用参数声明的状态名,例如在下面的示例中:

参数[3:0]
S1= 2’B01,
S2= 2’B10;

RG[3:0] CS;
Reg [3:0] NS;

总是@(POST时钟或后置复位)
开始
如果(复位)CS & lt;=S1;
否则Cs & lt;
结束

总是@(cs或/*lt;其他输入& gt;*/)
开始
案例(CS)
S1:开始
q& lt=0;
ns& lt=s2;
结束
S2:开始
q& lt=1;
NS& Lt= S1;
结束
端部病例
结束

若要解决此问题,请使用“定义”代替“参数”来声明状态名。在使用国家名称的每个地方一定要使用“符号”:

“定义S1 2”B01
定义S2’B10

RG[3:0] CS;
Reg [3:0] NS;

总是@(POST时钟或后置复位)
开始
如果(复位)CS & lt;=s1;
否则Cs & lt;
结束

总是@(cs)
开始
案例(CS)
S1:开始
q& lt=0;
ns& lt;
结束
S2:开始
q& lt=1;
ns& lt;
结束
端部病例
结束

当函数中声明参数时,XST也将生成上述错误消息:

函数[FIFOXADDRIGHORITION-1:0] BI2GRY;
输入[FIFOXADDRIGHORITION-1:0]输入;

参数DestthyStand=4;
/B2GHY
整数输入;
整数OutPuthGrayIn;
Reg〔深度〕-1:0深度;

所做的工作是在函数的体外声明参数。这个限制将被固定在XST的未来版本中。

请登录后发表评论

    没有回复内容