我一直在试图实现一个简单的verilog程序,但我一直保持运行到两个错误,我似乎可以找到解决方案。我收到的两个错误是:信号结果植入连接到多个驱动程序
1. Line 21: Empty module <AddOrSubtractThenSelectAndDecodedInto7SegmentsDisplay> remains a black box.
2. Line 40: Signal Result[3] in unit AddOrSubtractThenSelectAndDecodedInto7SegmentsDisplay is connected to following multiple drivers:
Driver 0: output signal Result[3] of instance Latch (Result[3]).
Driver 1: output signal Result[3] of instance Latch (_i000011).
Driver 0: output signal Result[2] of instance Latch (Result[2]).
Driver 1: output signal Result[2] of instance Latch (_i000012).
Driver 0: output signal Result[1] of instance Latch (Result[1]).
Driver 1: output signal Result[1] of instance Latch (_i000013).
Driver 0: output signal Result[0] of instance Latch (Result[0]).
Driver 1: output signal Result[0] of instance Latch (_i000014).
Module AddOrSubtractThenSelectAndDecodedInto7SegmentsDisplay remains a blackbox, due to errors in its contents
我试图在询问之前找到解决方案,但无法为我的问题找到适当的解决方案。所以我的问题是:为什么会发生这种情况,解决这个问题的最佳解决方案是什么?
这里是我的Verilog代码(没有测试台):
module AddOrSubtractThenSelectAndDecodedInto7SegmentsDisplay(A,B,S,Result,OF,Display);
// Inputs A,B,S
input [3:0] A;
input [3:0] B;
input [1:0] S;
// Outputs OF,Result,Display
output reg [6:0] Display;
output reg [3:0] Result;
output reg OF;
reg [3:0] Result_reg;
// Wires
wire [3:0] A;
wire [3:0] B;
wire [1:0] S;
always @(A,B,S) begin
if (S == 1)
{OF,Result} = A + B;
else if (S == 0)
{OF,Result} = A - B;
end
always @(OF,Result) begin
case (Result)
5'b00000: Display = 7'b1111110;//0
5'b00001: Display = 7'b0110000;//1
5'b00010: Display = 7'b1101101;//2
5'b00011: Display = 7'b1111001;//3
5'b00100: Display = 7'b0110011;//4
5'b00101: Display = 7'b1011011;//5
5'b00110: Display = 7'b1011111;//6
5'b00111: Display = 7'b1110000;//7
5'b01000: Display = 7'b1111111;//8
5'b01001: Display = 7'b1111011;//9
5'b01010: Display = 7'b1110111;//A
5'b01011: Display = 7'b0011111;//B
5'b01100: Display = 7'b1001110;//C
5'b01101: Display = 7'b0111101;//D
5'b01110: Display = 7'b1001111;//E
5'b01111: Display = 7'b1000111;//F
default: Display = 7'bx;
endcase
if (OF == 1)begin
Result = 4'bx;
Display = 7'b0011101;
end
end
endmodule
'Result'是4位宽。为什么你使用5位的案件('5'b00000')? – toolic