Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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.
 

RBB

Full Member level 5
Joined
Jul 2, 2007
Messages
304
Helped
71
Reputation
142
Reaction score
36
Trophy points
1,308
Location
USA
Activity points
2,559
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}};
 

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
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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top