gpt4 book ai didi

Verilog:为什么我不能反转电线?

转载 作者:行者123 更新时间:2023-12-02 04:26:37 26 4
gpt4 key购买 nike

module hamming_code #( parameter TOTAL_LENGTH = 15,
parameter PARITY_BITS = 4
)
(
//inputs
input [TOTAL_LENGTH-1:0] codeword,

//outputs
output [TOTAL_LENGTH-1:0] correctedWord
// output reg badData
);
wire b;
assign correctedWord = codeword;

assign b = ~codeword[0];
assign correctedWord[0] = b;

endmodule

我正在尝试反转电线数组中单根电线的值。但是,每当我这样做时,该位置就会变成“X”而不是 0 或 1。为什么会出现这种情况?

最佳答案

您拥有的三个赋值语句都是并行应用的,而不是顺序应用的。您将 CorrectedWord 的位 0 分配两次,在每次分配中给相反的值。如果您对一根导线进行了多次分配,则有一个解析函数可以确定输出。在您的例子中,有两个驱动程序,一个驱动 1,另一个驱动 0,解析为 X。

你想做这样的事情:

assign  correctedWord[TOTAL_LENGTH-1:1] = codeword[TOTAL_LENGTH-1:1];
assign correctedWord[0] = ~codeword[0];

或者这个:

assign  correctedWord = {codeword[TOTAL_LENGTH-1:1], ~codeword[0]};

关于Verilog:为什么我不能反转电线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com