【问题标题】:I am facing the "Size mismatch error" in verilog我在verilog中面临“尺寸不匹配错误”
【发布时间】:2018-02-03 22:27:02
【问题描述】:
parameter N1 = 5;
parameter N2 = 5;
wire [(N1+N2-1):0] seckey [8:1];    
shiftreg #(.depth(N1+N2-1)) sr1( .clk(clk), .reset(reset), .data_in(muxout[1]), .data_out(seckey[0]));

//--------------------------------------------- -----------------------------------------//

module shiftreg(
input clk,
input reset,
input data_in,
output data_out
);

parameter depth = 9;
wire [depth:0] connect_wire;
wire [depth:0] data_out;
//wire [depth:0] data_out;
assign connect_wire[0] = data_in;

assign data_out[depth:0] = connect_wire[depth:0];

genvar i;
generate
    for(i=1; i<=depth; i=i+1) begin: loop1
        ff dff(.d(connect_wire[i-1]), .clk(clk), .reset(reset), .q(connect_wire[i]));
    end
endgenerate

endmodule

//--------------------------------------------- ------------------------------------//

module ff(
input d,
input clk,
input reset,
output reg q
);



always @ (posedge clk or posedge reset)
begin
    if (reset) begin
    q <= 1'b0;
    end
    else begin
    q <= d;
    end
end


endmodule

//--------------------------------------------- ---------------------------------------//

N1 和 N2 的值为 5。 我收到错误“端口连接大小不匹配(data_out)。正式端口大小为 10 位,而实际信号大小为 1 位”

我已将 data_out 端口的大小设置为 10 位,但它仍然显示信号大小为 1 位。

【问题讨论】:

    标签: verilog fpga hardware-programming asic


    【解决方案1】:

    要设置data_out的大小,需要在声明参数的地方设置大小。试试下面的标题

    module shiftreg(clk, reset, data_in, data_out);
    
    parameter depth = 9;
    input clk;
    input reset;
    input data_in;
    input [depth:0] data_out;
    

    还有:

    assign data_out[depth:0] = connect_wire[depth:0];
    

    可以替换为

    assign data_out = connect_wire;
    

    【讨论】:

      猜你喜欢
      • 2017-09-12
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多