gpt4 book ai didi

compiler-errors - 信号连接到以下多个驱动程序

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

我尝试运行以下命令但收到此错误:

这是 Verilog 代码:

module needle( input referrence,input  penalty,output index[7:0]);
//inout input_itemsets;
//input referrence;

//input penalty;
//output index;
parameter max_cols=8;
//
wire index[7:0];
wire referrence;
wire penalty;
//wire input_itemsets;
genvar i,idx;
generate
for( i = max_cols-4 ; i >= 0 ; i=i-1)
for( idx = 0 ; idx <= i ; idx=idx+1)
begin
assign index[i] = (idx + 1) * max_cols + (i + 1 - idx);
//assign index = (idx + 1) * max_cols + (i + 1 - idx);
//input_itemsets[index] <= maximum( input_itemsets[index-1-max_cols]+ referrence[index],
//input_itemsets[index-1] - penalty,
//input_itemsets[index-max_cols] - penalty);

end
endgenerate

endmodule

这是我收到的警告和错误:

WARNING:HDLCompiler:413 - "/home/suriyha/Monajalal/needle_t1/needle.v" Line 39: Result of 4-bit expression is truncated to fit in 1-bit target.
ERROR:HDLCompiler:1401 - "/home/suriyha/Monajalal/needle_t1/needle.v" Line 39: Signal index[3] in unit needle is connected to following multiple drivers:
Driver 0: output signal of instance Power (PWR_1_o_BUF_9).
Driver 1: output signal of instance Ground (GND_1_o_BUF_8).
Driver 2: output signal of instance Ground (GND_1_o_BUF_6).
Driver 3: output signal of instance Ground (GND_1_o_BUF_4).
Driver 4: output signal of instance Ground (GND_1_o_BUF_11).
Module needle remains a blackbox, due to errors in its contents
WARNING:HDLCompiler:1499 - "/home/suriyha/Monajalal/needle_t1/needle.v" Line 21: Empty module <needle> remains a black box.

但是主要代码是“assign index = (idx + 1) * max_cols + (i + 1 - idx);”但我决定让“索引”成为一个数组来避免这个问题,但是我已经开始尝试了。因此,无论索引是一个数组还是一个变量,我都遇到了这个多值问题。

代码的 C 版本是:

for( idx = 0 ; idx <= i ; idx++){
index = (idx + 1) * max_cols + (i + 1 - idx);
input_itemsets[index]= maximum( input_itemsets[index-1-max_cols]+ referrence[index],
input_itemsets[index-1] - penalty,
input_itemsets[index-max_cols] - penalty);
}

我还想知道我们是否可以有一个嵌套循环,就像我们在 Verilog 版本中的 C 计数器部分所拥有的那样,或者在这种情况下如何避免“多驱动程序”问题?

谢谢。

最佳答案

在您的 Verilog 代码中,大多数 index 位是双驱动 (x) 或非驱动 (z) 的常量:index[7:0]:zzzxxxx1

解释如下。外层循环是从 4 到 0,这意味着 index[7:5] 是未驱动的(z)。内部循环是从 0 到 i,它展开为如下内容:

assign index[4] = (0 + 1) * max_cols + (4 + 1 - 0);
assign index[4] = (1 + 1) * max_cols + (4 + 1 - 1);
...
assign index[1] = (0 + 1) * max_cols + (1 + 1 - 0);
assign index[1] = (1 + 1) * max_cols + (1 + 1 - 1);
assign index[0] = (0 + 1) * max_cols + (0 + 1 - 0);

所以 index[4:1] 是双驱动的(x),只有 index[0] 有一个驱动。

在这里进行测试的编译代码:EDA Playground

关于compiler-errors - 信号连接到以下多个驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18114981/

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