why the keywords '$readmemb()' couldn't be recognized

Status
Not open for further replies.

jason_tian

Junior Member level 2
Joined
Jan 8, 2007
Messages
20
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,389
Hi all:
when I wanted to use a Verilog system task,'$readmemb()' to load data to a inherent table, the Quartus2 5.1 seemed couldn't recognize it and the keyword didn't turned blue. Why please?
 

Hi jason_tian,

Did you check if Quartus II 5.1 supports the $readmemb system task?

Start Quartus and open Help. Then search for "System Tasks and Functions Verilog". You can check if the 5.1 supports $readmemb.

This is a example which uses $readmemh and in Quartus II 6.1 it definitively works.

Code:
module ram_init(
					input clk_i, rst_i,
					input [5:0] addr_i,
					input [7:0] data_i,
					output [7:0] data_o
				);

//Initialize with Verilog HDL's $readmemb
reg [7:0] ram [0:63] /* synthesis ramstyle = "M512" */ ;

reg [5:0] addr_r;

initial 
begin
 $readmemh("ram.txt", ram);
end

always@( posedge clk_i or posedge rst_i)
	if(rst_i)
		addr_r <= 'd0;
	else
		addr_r <= addr_i;

always@( posedge clk_i)
	ram[addr_i] <= data_i;

assign data_o = ram[addr_r];

endmodule

mhmhmh
 

    jason_tian

    Points: 2
    Helpful Answer Positive Rating
dear mhmhmh:
Thanks a lot for your detailed reply that helped me a lot!
I've checked as you described and found:
'14.2
File Input-Output System Tasks
Not supported.
'
I'm clear now,thank you!
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…