Verilog Xilinx警告XST:1710和XST:1895之间到底有什么区别?

Verilog Xilinx警告XST:1710和XST:1895之间到底有什么区别?,verilog,xilinx,synthesis,Verilog,Xilinx,Synthesis,有人能解释一下Xilinx两个警告的区别吗: Xst:1710-FF/Latch reg_0(无初始值)有一个常量值 块中0的值。此FF/闩锁将在安装过程中进行修剪 优化过程 Xst:1895-由于其他FF/门闩修剪,FF/门闩调节1(无 初始值)在块中的常量值为0。这是一个插销 将在优化过程中进行修剪 假设“reg”是一个字节长的寄存器。reg\u 0被优化掉(也称为修剪),因为它从未被分配,而是在分配其他寄存器或网络时被引用。由于合成器没有指定的初始值,因此默认为零。因此,合成器可以保存触发

有人能解释一下Xilinx两个警告的区别吗:

Xst:1710-FF/Latch reg_0(无初始值)有一个常量值 块中0的值。此FF/闩锁将在安装过程中进行修剪 优化过程

Xst:1895-由于其他FF/门闩修剪,FF/门闩调节1(无 初始值)在块中的常量值为0。这是一个插销 将在优化过程中进行修剪


假设“reg”是一个字节长的寄存器。

reg\u 0
被优化掉(也称为修剪),因为它从未被分配,而是在分配其他寄存器或网络时被引用。由于合成器没有指定的初始值,因此默认为零。因此,合成器可以保存触发器,并且在设计中使用
reg_0
将被视为逻辑0

reg [7:0] reg_0;
reg [7:0] reg_1;
always @(posedge clk) begin
  reg_1 <= in & reg_0;
end
reg_1
已优化,因为其值取决于已优化的其他触发器。使用以下示例:
reg\u 1
取决于
reg\u 0
。由于
reg_0
将始终为零(因为它从未分配),
reg_1
也将始终为零。因此,为什么它会说“由于其他FF/门闩修剪”。合成器保存触发器,在设计中使用
reg_1
将被视为逻辑0

reg [7:0] reg_0;
reg [7:0] reg_1;
always @(posedge clk) begin
  reg_1 <= in & reg_0;
end
reg[7:0]reg\u 0;
reg[7:0]reg_1;
始终@(posedge clk)开始

reg_1
reg_0
被优化掉(也称为修剪),因为它从未被分配,而是在分配其他寄存器或网络时被引用。由于合成器没有指定的初始值,因此默认为零。因此,合成器可以保存触发器,并且在设计中使用
reg_0
将被视为逻辑0

reg [7:0] reg_0;
reg [7:0] reg_1;
always @(posedge clk) begin
  reg_1 <= in & reg_0;
end
reg_1
已优化,因为其值取决于已优化的其他触发器。使用以下示例:
reg\u 1
取决于
reg\u 0
。由于
reg_0
将始终为零(因为它从未分配),
reg_1
也将始终为零。因此,为什么它会说“由于其他FF/门闩修剪”。合成器保存触发器,在设计中使用
reg_1
将被视为逻辑0

reg [7:0] reg_0;
reg [7:0] reg_1;
always @(posedge clk) begin
  reg_1 <= in & reg_0;
end
reg[7:0]reg\u 0;
reg[7:0]reg_1;
始终@(posedge clk)开始
注册1