2014-11-03 11 views
0

ROM을 만들고 코드가 완전히 합성되어 잘 작동하지만 중요한 경고가 표시되고 구현을 실행하면 "[Place 30-494] Place to Design"이 표시됩니다. xillinx 웹 사이트 그러나이 오류에 대한 해결책은 없습니다. 여기 너희들이 나를 도와 희망 내 코드가 표시됩니다 :구현 중 오류가 발생했습니다

`timescale 1ns/1ps 
 
module ROM(output [7:0] LED, [4:0] Ao, input [7:0] D, [4:0] A, Clear, Load); 
 
reg [7:0] Store [0:31]; 
 

 
initial 
 
    begin      
 

 
    Store[0]<=4'b00000000; 
 
    Store[1]<=4'b00000000; 
 
    Store[2]<=4'b00000000; 
 
    Store[3]<=4'b00000000; 
 
    Store[4]<=4'b00000000; 
 
    Store[5]<=4'b00000000; 
 
    Store[6]<=4'b00000000; 
 
    Store[7]<=4'b00000000; 
 
    Store[8]<=4'b00000000; 
 
    Store[9]<=4'b00000000; 
 
    Store[10]<=4'b00000000; 
 
    Store[11]<=4'b00000000; 
 
    Store[12]<=4'b00000000; 
 
    Store[13]<=4'b00000000; 
 
    Store[14]<=4'b00000000; 
 
    Store[15]<=4'b00000000; 
 
    Store[16]<=4'b00000000; 
 
    Store[17]<=4'b00000000; 
 
    Store[18]<=4'b00000000; 
 
    Store[19]<=4'b00000000; 
 
    Store[20]<=4'b00000000; 
 
    Store[21]<=4'b00000000; 
 
    Store[22]<=4'b00000000; 
 
    Store[23]<=4'b00000000; 
 
    Store[24]<=4'b00000000; 
 
    Store[25]<=4'b00000000; 
 
    Store[26]<=4'b00000000; 
 
    Store[27]<=4'b00000000; 
 
    Store[28]<=4'b00000000; 
 
    Store[29]<=4'b00000000; 
 
    Store[30]<=4'b00000000; 
 
    Store[31]<=4'b00000000; 
 
    end 
 
always @(*) 
 
begin 
 
    if(Load) 
 
    if (D[7:0]) 
 
    begin 
 
     Store[0]<= LED; 
 
     Store[1]<= LED; 
 
     Store[2]<= LED; 
 
     Store[3]<= LED; 
 
     Store[4]<= LED; 
 
     Store[5]<= LED; 
 
     Store[6]<= LED; 
 
     Store[7]<= LED; 
 
     Store[8]<= LED; 
 
     Store[9]<= LED; 
 
     Store[10]<= LED; 
 
     Store[11]<= LED; 
 
     Store[12]<= LED; 
 
     Store[13]<= LED; 
 
     Store[14]<= LED; 
 
     Store[15]<= LED; 
 
     Store[16]<= LED; 
 
     Store[17]<= LED; 
 
     Store[18]<= LED; 
 
     Store[19]<= LED; 
 
     Store[20]<= LED; 
 
     Store[21]<= LED; 
 
     Store[22]<= LED; 
 
     Store[23]<= LED; 
 
     Store[24]<= LED; 
 
     Store[25]<= LED; 
 
     Store[26]<= LED; 
 
     Store[27]<= LED; 
 
     Store[28]<= LED; 
 
     Store[29]<= LED; 
 
     Store[30]<= LED; 
 
     Store[31]<= LED; 
 
    end 
 
    
 
    else if(A[4:0]) 
 
    begin 
 
    Store[0]<= Ao; 
 
    Store[1]<= Ao; 
 
    Store[2]<= Ao; 
 
    Store[3]<= Ao; 
 
    Store[4]<= Ao; 
 
    Store[5]<= Ao; 
 
    Store[6]<= Ao; 
 
    Store[7]<= Ao; 
 
    Store[8]<= Ao; 
 
    Store[9]<= Ao; 
 
    Store[10]<= Ao; 
 
    Store[11]<= Ao; 
 
    Store[12]<= Ao; 
 
    Store[13]<= Ao; 
 
    Store[14]<= Ao; 
 
    Store[15]<= Ao; 
 
    Store[16]<= Ao; 
 
    Store[17]<= Ao; 
 
    Store[18]<= Ao; 
 
    Store[19]<= Ao; 
 
    Store[20]<= Ao; 
 
    Store[21]<= Ao; 
 
    Store[22]<= Ao; 
 
    Store[23]<= Ao; 
 
    Store[24]<= Ao; 
 
    Store[25]<= Ao; 
 
    Store[26]<= Ao; 
 
    Store[27]<= Ao; 
 
    Store[28]<= Ao; 
 
    Store[29]<= Ao; 
 
    Store[30]<= Ao; 
 
    Store[31]<= Ao; 
 
    end 
 
    
 
    else if (Clear) 
 
    begin 
 
    Store[0]<=4'b00000000; 
 
    Store[1]<=4'b00000000; 
 
    Store[2]<=4'b00000000; 
 
    Store[3]<=4'b00000000; 
 
    Store[4]<=4'b00000000; 
 
    Store[5]<=4'b00000000; 
 
    Store[6]<=4'b00000000; 
 
    Store[7]<=4'b00000000; 
 
    Store[8]<=4'b00000000; 
 
    Store[9]<=4'b00000000; 
 
    Store[10]<=4'b00000000; 
 
    Store[11]<=4'b00000000; 
 
    Store[12]<=4'b00000000; 
 
    Store[13]<=4'b00000000; 
 
    Store[14]<=4'b00000000; 
 
    Store[15]<=4'b00000000; 
 
    Store[16]<=4'b00000000; 
 
    Store[17]<=4'b00000000; 
 
    Store[18]<=4'b00000000; 
 
    Store[19]<=4'b00000000; 
 
    Store[20]<=4'b00000000; 
 
    Store[21]<=4'b00000000; 
 
    Store[22]<=4'b00000000; 
 
    Store[23]<=4'b00000000; 
 
    Store[24]<=4'b00000000; 
 
    Store[25]<=4'b00000000; 
 
    Store[26]<=4'b00000000; 
 
    Store[27]<=4'b00000000; 
 
    Store[28]<=4'b00000000; 
 
    Store[29]<=4'b00000000; 
 
    Store[30]<=4'b00000000; 
 
    Store[31]<=4'b00000000; 
 
    end 
 
end 
 
endmodule

중요한 경고입니다

[공통 17-69] 명령이 실패 : 사이트 다음 더 할당 할 수 없습니다 하나 개의 포트

+0

'initial' 블록에서 할당을 blocking assig로 전환 해 보았습니까 non-blocking ('<=')이 아닌 nments ('=')? 이 경우 처음으로 초기화 할 때와 마찬가지로 블로킹이 더 좋습니다 (다른 곳에서는 RAM과 같은 순차 요소에 대해 비 블로킹 할당을 올바르게 사용합니다). – Unn

+0

네, 제가 합성하지 않을 것입니다. 왜 그런 일을하는지 모르지만 감사합니다. – Sultan

답변

1

당신의 출력 (LED 아오) 보인다는 코드에서 입력으로 사용됩니다

... 
Store[15]<= LED; 
... 
Store[7]<= Ao; 
... 

이 있어야한다 : 당신의 출력이 구동되지 않습니다 경우

... 
LED <= Store[15]; 
... 
Ao <= Store[7]; 
... 

도구는 단순히 모듈이나 신호도 사용하지 않습니다.

+0

네가 옳다. 방금 전 모든 것을 바꾸어 Store [A] <= D로 유지했습니다. 로드의 경우 '= 8'b00000000이고 클리어의 경우 = – Sultan

0

내가 전에 할당에 일부 내용을 변경 한 후에는 항상 내가 전체 항상 블록을 변경 차단 :

여기

내가 무슨 짓을하고 @grorel에 감사 :

`timescale 1ns/1ps 
 
module ROM(output [7:0] LED, [4:0] Ao, input [7:0] D, [4:0] A, input Clear, input Load); 
 
reg [7:0] Store [0:31]; 
 
assign Ao = A; 
 
assign LED = Store[A]; 
 
initial 
 
    begin  
 

 
    Store[0]<=8'b00000000; 
 
    Store[1]<=8'b00000000; 
 
    Store[2]<=8'b00000000; 
 
    Store[3]<=8'b00000000; 
 
    Store[4]<=8'b00000000; 
 
    Store[5]<=8'b00000000; 
 
    Store[6]<=8'b00000000; 
 
    Store[7]<=8'b00000000; 
 
    Store[8]<=8'b00000000; 
 
    Store[9]<=8'b00000000; 
 
    Store[10]<=8'b00000000; 
 
    Store[11]<=8'b00000000; 
 
    Store[12]<=8'b00000000; 
 
    Store[13]<=8'b00000000; 
 
    Store[14]<=8'b00000000; 
 
    Store[15]<=8'b00000000; 
 
    Store[16]<=8'b00000000; 
 
    Store[17]<=8'b00000000; 
 
    Store[18]<=8'b00000000; 
 
    Store[19]<=8'b00000000; 
 
    Store[20]<=8'b00000000; 
 
    Store[21]<=8'b00000000; 
 
    Store[22]<=8'b00000000; 
 
    Store[23]<=8'b00000000; 
 
    Store[24]<=8'b00000000; 
 
    Store[25]<=8'b00000000; 
 
    Store[26]<=8'b00000000; 
 
    Store[27]<=8'b00000000; 
 
    Store[28]<=8'b00000000; 
 
    Store[29]<=8'b00000000; 
 
    Store[30]<=8'b00000000; 
 
    Store[31]<=8'b00000000; 
 
    end 
 
always @(*) 
 
begin 
 
    if (Load) 
 
    begin 
 
     Store[A]<= D; 
 
    end 
 
    
 
    else if (Clear) 
 
    begin 
 
    Store[A]<= 8'b00000000; 
 
    end 
 
    
 
end 
 
endmodule

또한 초기는 8 비트가 아님 4 비트가되어야합니다

관련 문제