how to implement ROM in verilog code

Status
Not open for further replies.

LinXiaoling

Member level 1
Joined
Feb 25, 2008
Messages
32
Helped
2
Reputation
4
Reaction score
0
Trophy points
1,286
Activity points
1,490
Hi!
I want to implement ROM (about 64*16K) in my own verilog code.and I use the code style like this:
always@(posedge clk)
begin
if(clk_en)
begin
case(address)
0: ROM_data <= 16'd11;
1: ROM_data <= 16'd21;
...
endcase
end
end

but for my ROM_data is too large,so the ISE tool download the .v so long . and I try to realize it by IP core,but there exists the same problem,.coe download long,too. so can any guys give me some advice.Thanks!
ps: my computer is running well for big design.and for ISE9.2 and ISE11.1,the same problem.
 

This is only the fly, so no guarantees..

Code:
reg [15:0] mem [16384:0]

always @ (posedge clk)
    if(clk_en == 1'b1)
        ROM_data <= mem[address];
    else
        ROM_data <= {16{1'bx}};
 

RBB said:
This is only the fly, so no guarantees..

Code:
reg [15:0] mem [16384:0]

always @ (posedge clk)
    if(clk_en == 1'b1)
        ROM_data <= mem[address];
    else
        ROM_data <= {16{1'bx}};
Thanks anyway
 

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