11.x XST  – “警告:HDLC编译器:924  – ”-Altera-Intel社区-FPGA CPLD-ChipDebug

11.x XST – “警告:HDLC编译器:924 – ”

问题描述

当我针对Virtex-6和Spartan-6器件并且元注释不起作用时,XST中出现以下警告,但我没有针对旧器件的任何问题。为什么?

解决/修复方法

在11.2中,XST为Virtex-6和Spartan-6系列引入了新的VHDL / Verilog解析器。有关此更改的更多信息,请参阅(Xilinx答复32927)

随着Verilog-2001的引入,Verilog属性成为应用设计约束的首选方法。 XST仍支持Verilog综合元件,但是,对于在Virtex-6或Spartan-6设计中工作的元件,存在以下限制:

如果metacomment适用于:

找到信号和元信息

– 在模块描述之前,旧器件的XST和Virtex-6和Spartan-6系列的XST都忽略该属性。

– 在模块描述中,旧器件的XST和Virtex-6和Spartan-6系列的XST都考虑了这个元件。

– 在模块描述之后,旧器件的XST会考虑这个元件,而Virtex-6和Spartan-6系列的XST会忽略它。

-a模块,然后无论元件位置如何,旧器件的XST和Virtex-6和Spartan-6系列的XST都将其考虑在内。

在以下示例中,fsm_extract约束应用于状态信号。约束位于模块描述之后。

文件:ex_0016_v.v

编译库:工作

模块ex_0016_v(clk,reset,x1,outp);

输入clk,reset,x1;

输出输出;

reg outp;

reg [1:0]状态;

参数s1 = 2’b00;参数s2 = 2’b01;

参数s3 = 2’b10;参数s4 = 2’b11;

最初开始

state = 2’b00;

结束

总是@(posedge clk或posedge reset)

开始

如果(重置)

开始状态<= s1; outp <= 1’b1;结束

其他

开始

案件(州)

s1:开始

if(x1 == 1’b1)

开始

州<= s2;

outp <= 1’b1;

结束

其他

开始

州<= s3;

outp <= 1’b0;

结束

结束

s2:开始状态<= s4; outp <= 1’b1;结束

s3:开始状态<= s4; outp <= 1’b0;结束

s4:开始状态<= s1; outp <= 1’b0;结束

ENDCASE

结束

结束

endmodule

//状态的综合属性fsm_extract为“no”//注意:此处为警告点。

旧器件的XST接受元件并且不推断状态机。

为信号<state>设置属性“fsm_extract = no”。

Virtex-6和Spartan-6系列的XST忽略了应用于信号的元模型并提取状态机。

警告:HDLCompiler:924 – “ex_59_1_0.v”第42行:在此范围内找不到属性目标标识符状态

找到信号<state>的有限状态机<FSM_0>。

要解决此问题,必须将元信息放在模块描述中。

文件:ex_0016_v.v

编译库:工作

模块ex_0016_v(clk,reset,x1,outp);

输入clk,reset,x1;

输出输出;

reg outp;

reg [1:0]状态;

参数s1 = 2’b00;参数s2 = 2’b01;

参数s3 = 2’b10;参数s4 = 2’b11;

最初开始

state = 2’b00;

结束

//状态的综合属性fsm_extract为“no”

总是@(posedge clk或posedge reset)

开始

如果(重置)

开始状态<= s1; outp <= 1’b1;结束

其他

开始

案件(州)

s1:开始

if(x1 == 1’b1)

开始

州<= s2;

outp <= 1’b1;

结束

其他

开始

州<= s3;

outp <= 1’b0;

结束

结束

s2:开始状态<= s4; outp <= 1’b1;结束

s3:开始状态<= s4; outp <= 1’b0;结束

s4:开始状态<= s1; outp <= 1’b0;结束

ENDCASE

结束

结束

endmodule

Xilinx建议您不要使用metcomments。相反,您应该遵循Verilog 2001construct来传递属性。

请登录后发表评论

    没有回复内容