-1
VCS 신시사이저에서이 오류가 발생합니다. 나는 모든 것을 시도했지만 그것은 나에게 이해가 가지 않는다. VectorY [0], VectorY [1], VectorY [2], VectorY [3] 또는 직접 연결된 네트가 하나 이상의 소스에 의해 구동되고 적어도 하나의 소스가 상수 넷이라는 것을 이라고합니다. (ELAB-368)넷 'VectorY [0]'또는 직접 연결된 넷은 둘 이상의 소스에 의해 구동되며, 적어도 하나의 소스는 상수 넷입니다. (ELAB-368)
module control (clk, start, S1S2mux, newDist, CompStart, PEready, VectorX, VectorY, addressR, addressS1, addressS2,completed);
input clk;
input start;
output reg [15:0] S1S2mux;
output reg [15:0] newDist;
output CompStart;
output reg [15:0] PEready;
output reg [3:0] VectorX,VectorY;
output reg [7:0] AddressR;
output reg [9:0] AddressS1,AddressS2;
reg [12:0] count;
output reg completed;
integer i;
assign CompStart = start;
always @(posedge clk) begin
if(start==0) begin
count<= 12'b0;
completed<=0;
newDist<=0;
PEready<=0;
VectorX<=0;
VectorY<=0;
end
else if (completed==0)
count <= count+1'b1;
end
always @(count) begin
for (i = 0; i < 15; i = i+1)
begin
newDist [i] = (count [7:0] == i);
PEready [i] = (newDist [i] && !(count < 8'd256));
S1S2mux [i] = (count [3:0] > i);
end
addressR = count [7:0];
addressS1 = (count[11:8] + count[7:4] >> 4)*5'd32 + count [3:0];
addressS2 = (count[11:8] + count[7:4] >> 4)*4'd16 + count [3:0];
VectorX = count[3:0] - 4'd7;
VectorY = count[11:8] >> 4 - 4'd7;
completed = (count == 4'd16 * (8'd256 + 1));
end
endmodule
두 개 이상의 always 블록에서 동일한 변수 (예 : VectorY)에 할당하지 않아야합니다. – toolic