【问题标题】:How to fix Xilinx Xst 1710 warning如何修复 Xilinx Xst 1710 警告
【发布时间】:2018-04-24 03:41:13
【问题描述】:

当我尝试在 xilinx 14.3 上合成它时,我在 verilog 代码中收到此警告。它们来自这部分代码:

module Output_calc_debug(
 input clk,
input wire signed [0:7]oc_in,
input [0:2]pid,
output reg signed[0:31]oc_out_1d);
/***code***/
    reg signed[0:1]  L,W,S;  //lines name from output calculator
                    parameter N=2'd0, E=2'd3;
    if(pid==3'd0) // if port=0(North) then this port only can send data to other ports
            begin
            W<=2'd0; S<=2'd1; L<=2'd2; //assigning indecies to assosiated port directions
            end
            else if(pid==3'd1)
            begin
                  S<=2'd1; L<=2'd2;W<=-2'd1;
            end
            else if(pid==3'd2)
            begin
                 W<=2'd1; L<=2'd2;S<=-2'd1;
            end
            else if(pid==3'd3)
            begin
                 W<=2'd1; S<=2'd2;L<=-2'd1;
            end
            else if(pid==3'd4)
            begin
                  W<=2'd1; S<=2'd2; L<=2'd3;
            end
            else
            begin
            W<=-2'd1;L<=-2'd1;S<=-2'd1;
            end
/**code***/

在另一个名为 Port_Debug 的模块中实例化此模块的代码:

module Port_Debug(
output signed [0:31]oc_out_1d 
,input wire signed [0:31]sc_in_1d 
,input wire signed[0:7]main_in
,output wire signed[0:7]main_out 
,input clk,input [0:2]pid 
);

wire  signed[0:7]inport_out1; 

inport_debug i1(clk,main_in,inport_out1); 
Output_calc_debug oc1(clk,inport_out1,pid,oc_out_1d);  //module output_calc object in port
Scheduler_Debug s1(clk,sc_in_1d,main_out); 

endmodule

注意: 这个模块 Port_Debug 在另一个模块中被实例化了五次

警告说:

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 0。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 1。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 0。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 1。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 0。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 1。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 1。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始化值)有一个 块 中的常量值 0。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始值)有一个 块 中的常量值 1。此 FF/Latch 将被修剪 在优化过程中。

WARNING:Xst:1710 - FF/Latch (没有初始化值)有一个 块 中的常量值 0。此 FF/Latch 将被修剪 在优化过程中。


我在google和其他论坛上搜索过,但似乎没有可能的解决方案来删除它,人们一直建议忽略它,不想这样做。

【问题讨论】:

  • 您所包含的错误是指未出现在您向我们展示的代码中的寄存器。请包含与此错误相关的所有代码,而不仅仅是带有错误消息的行。
  • 我已更新代码,请立即查看。

标签: verilog fpga xilinx


【解决方案1】:

该错误可能来自您的代码。例如如果您的 pid 是常量或不能具有所有可能的值,则派生值也是常量。

还修复你的代码,索引从高到低:wire signed[7:0] 在一个字节中,LS 位是位 0 而不是位 7。


......请解释......

例子:

wire [1:0] sel;
...
   case(sel)
   2'b00 : examp = 4'h0001;
   2'b01 : examp = 4'h0010;
   2'b10 : examp = 4'h0100;
   2'b11 : examp = 4'h1000;
   endcase

如果 sel 只取值 00 和 01,那么 value 将只有 0001 或 0010。在这种情况下,值 [3] 和值 [2] 将被优化为零。

sel 只取两个值可能有很多原因,其中一些可能是您这边的错误。综合工具非常聪明,它发现了这些并相应地优化了所有代码。

最终的例子是具有一个串行输出的非常大的设计。如果输出未连接(例如打字错误),整个设计将被优化并最终为空。

【讨论】:

  • 虽然我同意你使用[7:0],但[0:7]仍然是一个有效的语法
  • 我知道,但我相信早日改正坏习惯。在您知道之前,我们被关于“为什么我的数字为负数时没有设置我的 v[7] 的问题淹没了。它在我的 C 程序中......”
  • 位排序取决于供应商。我有一本 PowerPC 手册,它始终将位编号为 0 到 31,其中 0 作为 MSB……
  • 如果你想使用 Xilinx、Altera、Lattice、ActeL ARM、Cadence、Synopsys 等公司的 IP,你应该坚持被认为是标准的东西。
  • ."那个错误可能来自你的代码更远的地方。例如,如果你的 pid 是常量或者不能有所有可能的值,那么派生的值也是常量。"....请解释...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2020-11-28
  • 2017-10-25
  • 2017-07-03
相关资源
最近更新 更多