1.用Verilog做顶层模块例化的时候报了一个错误,经过查询有各种各样的错误和解决方法
以下是我的模块(16进制转化为3位BCD码)的代码,采用常用的大四加三算法
module adder(
input clk_ADDER,
input [15:0] value_ADDER,
output reg[11:0] bcd_out_ADDER
);
reg[3:0] i;
reg[6:0] value_temp;
reg[11:0] bcd;
always @(posedge clk_ADDER)
begin
value_temp[6:0] <= value_ADDER[10:4];
bcd <= 12'b0;
for(i = 0;i < 6;i = i+1)
begin
bcd <= {bcd[10:0],value_temp[6]};
if(bcd[3:0] > 4'd4)
bcd[3:0] <= bcd[3:0] + 4'd3;
if(bcd[7:4] > 4'd4)
bcd[7:4] <= bcd[7:4] + 4'd3;
if(bcd[11:8] > 4'd4)
bcd[11:8] <= bcd[11:8] + 4'd3;
value_temp <= value_temp << 1;
bcd_out_ADDER[11:0] <= {bcd[10:0],value_temp[6]};
end
end
endmodule
接着我在顶层中调用此模块
module modulebcd(
input clk,
input [15:0] value,
output r