1

简单的 32 位寄存器:

    reg32 Reg_32 (
    .in(valueA), // input 32 bits               
    .clock(clk),
    .reset(rst),
    .out(valueB) // output 32 bits  

但是,valueA定义为 10 位线 [9:0]。

是否valueA需要 22 个扩展的 0 位?

IE:

    .in({22b'0,valueA}), // 22 bits of 0 + value of wire [9:0]

还是编译器在 ModelSim 中执行此操作?

4

1 回答 1

4

我怀疑在大多数情况下这是必要的。但是,为了避免由于不同的编译器导致的不可预测的行为,将值显式填充到正确的宽度会更安全。我将使用复制连接(例如,如IEEE Std 1800-2012中所述):

.in ({ {22{1'b0}}, valueA}), 
于 2013-07-13T19:25:57.733 回答