【发布时间】:2013-12-31 07:46:57
【问题描述】:
我是verilog和xilinx的初学者,我正在用verilog编写一个四端口ram,
我想合成我的代码,但是我的代码虽然很小,但是合成需要很长时间,我强行停止它,我无法合成我的代码。
我不知道问题出在哪里,我该怎么办?这是我自己的代码..
module Dram(CLKM,WEA,WEB,WEC,WED,ENA,ENB,ENC,END,DIA,DIB,DIC,DID,ADDRA,ADDRB,ADDRC,ADDRD,DOA,DOB,DOC,DOD);
input WEA,WEB,WEC,WED,ENA,ENB,ENC,END;
input [17:0]DIA,DIB,DIC,DID;
input [9:0]ADDRA,ADDRB,ADDRC,ADDRD;
input CLKM;
output reg [17:0] DOA,DOB,DOC,DOD;
reg state_reg,state_next;
reg [17:0]ram[1023:0];
always@(posedge CLKM)
begin
state_reg=state_next;
end///edn for always
always@(negedge CLKM)
begin
case(state_reg)
1'b0:
begin
if(ENA)
begin
if(WEA)
ram[ADDRA]<=DIA;
DOA<=ram[ADDRA];
end//////for enA
if(ENB)
begin
if(WEB)
ram[ADDRB]<=DIB;
DOB<=ram[ADDRB];
end////for enB
state_next=1'b1;
end////for 1'b0
1'b1:
begin
if(ENC)
begin
if(WEC)
ram[ADDRC]<=DIC;
DOC<=ram[ADDRC];
end
if(END)
begin
if(WED==1'b1)
ram[ADDRD]<=DID;
DOD<=ram[ADDRD];
end
state_next=1'b0;
end///end for 1'b1
endcase
end//end for always
endmodule
我认为这是一个简单的代码,并没有得到很多时间,但现在我无法合成我的代码?哪里有问题?请帮帮我!!! 谢谢
【问题讨论】:
-
很好的做法是很好地格式化您的代码以使其更易于阅读。使用 sp.ace 进行缩进而不是制表符。