我正在为verilog
创建一个rsa cryptosystem
代码,模块的基本结构就像下面显示的代码一样。
Althogh代码在模拟中工作正常,它会发出警告:
Xst:1710 - FF/Latch <out_en> (without init value) has a constant value of 1 in block <o1>. This FF/Latch will be trimmed during the optimization process.
and Xst:1895 - Due to other FF/Latch trimming, FF/Latch <aa_1> (without init value) has a constant value of 0 in block <test1>. This FF/Latch will be trimmed during the optimization process.
我正在使用xilinx ise 13.1。
请帮帮我
module okletssee(
input en,
input clk,
input[2:0] a,b,
output reg[2:0] c,
output reg out_en
);
always @(posedge clk)
begin
if(en==1'b1)
begin
c=a+b;
out_en=1'b1;
end
else out_en=1'b0;
end
endmodule
module test1(
input[2:0] a,b,
input clk,
output reg[2:0] out_reg
);
wire[2:0] cc;
wire out1_en;
reg[2:0] aa,bb;
reg en;
okletssee o1(en,clk,aa,bb,cc,out1_en);
reg cse;
always @(posedge clk)
begin
case(cse)
default: begin
aa=a;
bb=b;
en=1'b1;
cse=1'b1;
end
1'b1: begin
if(out1_en==1'b1)
out_reg=cc;
else cse=1'b1;
end
endcase
end
endmodule
答案 0 :(得分:1)
好的......你的代码非常糟糕。逻辑完全搞砸了;它无法模拟“罚款”。你的第一个明显问题是test1.en
实际 保持高位,因此是多余的。这正是你的合成器告诉你的。
答案 1 :(得分:0)
如果你不想修剪输出,你应该以某种方式使用它。例如,在另一个模块中或作为输出引脚。