FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-19-2004, 08:21 AM
Daniel Köthe
Guest
 
Posts: n/a
Default Initialize Blockram from file

Hello,
i think in the last release of Xilinx Webpack 6.1 or 6.2 the abilitiy
has added to initialize a blockram from file by xst. But this feature is
not documented by xilinx or 1 don't found it.

Has anyone used this feature?
Reply With Quote
  #2 (permalink)  
Old 05-19-2004, 03:26 PM
Jon Beniston
Guest
 
Posts: n/a
Default Re: Initialize Blockram from file

Daniel Köthe <[email protected]> wrote in message news:<[email protected]>...
> Hello,
> i think in the last release of Xilinx Webpack 6.1 or 6.2 the abilitiy
> has added to initialize a blockram from file by xst. But this feature is
> not documented by xilinx or 1 don't found it.
>
> Has anyone used this feature?


You can certainly do it using Core Gen. Also, if you look under
language templates in Project Navigator, you can do it with defparams:

// RAMB16_S1: Virtex-II/II-Pro, Spartan-3 16kx1 Single-Port RAM
// Xilinx HDL Language Template version 6.1i

RAMB16_S1 RAMB16_S1_inst (
.DO(DO), // 1-bit Data Output
.ADDR(ADDR), // 14-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 1-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);

// The following defparam declarations are only necessary if you
wish to change the default behavior
// of the RAM. If the instance name is changed, these defparams
need to be updated accordingly.

defparam RAMB16_S1_inst.INIT = 1'h0; // Value of output RAM
registers at startup
defparam RAMB16_S1_inst.SRVAL = 1'h0; // Ouput value upon SSR
assertion
defparam RAMB16_S1_inst.WRITE_MODE = "WRITE_FIRST"; // WRITE_FIRST,
READ_FIRST or NO_CHANGE

// The following defparam INIT_xx declarations are only necessary
if you wish to change the initial
// contents of the RAM to anything other than all zero's.

defparam RAMB16_S1_inst.INIT_00 =
256'h000000000000000000000000000000000000000000000 0000000000000000000;

Cheers,
JonB
Reply With Quote
  #3 (permalink)  
Old 05-19-2004, 08:11 PM
Gabor Szakacs
Guest
 
Posts: n/a
Default Re: Initialize Blockram from file

I think you're looking for a way to initialize the RAM after
the FPGA is placed and routed so you don't need to recompile?
If you use the .ucf file to initialize the RAM it will require
re-running place-and-route.
There is an article on merging RAM data directly into the bitstream
file in the TechXclusives section of Xilinx.com titled
"Reconfiguring Block RAMs" by Kris Chaplin

[email protected] (Jon Beniston) wrote in message news:<[email protected] om>...
> Daniel Köthe <[email protected]> wrote in message news:<[email protected]>...
> > Hello,
> > i think in the last release of Xilinx Webpack 6.1 or 6.2 the abilitiy
> > has added to initialize a blockram from file by xst. But this feature is
> > not documented by xilinx or 1 don't found it.
> >
> > Has anyone used this feature?

>
> You can certainly do it using Core Gen. Also, if you look under
> language templates in Project Navigator, you can do it with defparams:
>
> // RAMB16_S1: Virtex-II/II-Pro, Spartan-3 16kx1 Single-Port RAM
> // Xilinx HDL Language Template version 6.1i
>
> RAMB16_S1 RAMB16_S1_inst (
> .DO(DO), // 1-bit Data Output
> .ADDR(ADDR), // 14-bit Address Input
> .CLK(CLK), // Clock
> .DI(DI), // 1-bit Data Input
> .EN(EN), // RAM Enable Input
> .SSR(SSR), // Synchronous Set/Reset Input
> .WE(WE) // Write Enable Input
> );
>
> // The following defparam declarations are only necessary if you
> wish to change the default behavior
> // of the RAM. If the instance name is changed, these defparams
> need to be updated accordingly.
>
> defparam RAMB16_S1_inst.INIT = 1'h0; // Value of output RAM
> registers at startup
> defparam RAMB16_S1_inst.SRVAL = 1'h0; // Ouput value upon SSR
> assertion
> defparam RAMB16_S1_inst.WRITE_MODE = "WRITE_FIRST"; // WRITE_FIRST,
> READ_FIRST or NO_CHANGE
>
> // The following defparam INIT_xx declarations are only necessary
> if you wish to change the initial
> // contents of the RAM to anything other than all zero's.
>
> defparam RAMB16_S1_inst.INIT_00 =
> 256'h000000000000000000000000000000000000000000000 0000000000000000000;
>
> Cheers,
> JonB

Reply With Quote
  #4 (permalink)  
Old 05-19-2004, 08:38 PM
Shalin Sheth
Guest
 
Posts: n/a
Default Re: Initialize Blockram from file

You can initialize BlockRAM after the bitfile has been created using a
tools called Data2MEM that is part of the Xilinx ISE tools. To read
more about Data2MEM goto:
http://www.xilinx.com/ise/embedded/data2bram.htm

Shalin-

Gabor Szakacs wrote:
> I think you're looking for a way to initialize the RAM after
> the FPGA is placed and routed so you don't need to recompile?
> If you use the .ucf file to initialize the RAM it will require
> re-running place-and-route.
> There is an article on merging RAM data directly into the bitstream
> file in the TechXclusives section of Xilinx.com titled
> "Reconfiguring Block RAMs" by Kris Chaplin
>
> [email protected] (Jon Beniston) wrote in message news:<[email protected] om>...
>
>>Daniel Köthe <[email protected]> wrote in message news:<[email protected]>...
>>
>>>Hello,
>>>i think in the last release of Xilinx Webpack 6.1 or 6.2 the abilitiy
>>>has added to initialize a blockram from file by xst. But this feature is
>>>not documented by xilinx or 1 don't found it.
>>>
>>>Has anyone used this feature?

>>
>>You can certainly do it using Core Gen. Also, if you look under
>>language templates in Project Navigator, you can do it with defparams:
>>
>> // RAMB16_S1: Virtex-II/II-Pro, Spartan-3 16kx1 Single-Port RAM
>> // Xilinx HDL Language Template version 6.1i
>>
>> RAMB16_S1 RAMB16_S1_inst (
>> .DO(DO), // 1-bit Data Output
>> .ADDR(ADDR), // 14-bit Address Input
>> .CLK(CLK), // Clock
>> .DI(DI), // 1-bit Data Input
>> .EN(EN), // RAM Enable Input
>> .SSR(SSR), // Synchronous Set/Reset Input
>> .WE(WE) // Write Enable Input
>> );
>>
>> // The following defparam declarations are only necessary if you
>>wish to change the default behavior
>> // of the RAM. If the instance name is changed, these defparams
>>need to be updated accordingly.
>>
>> defparam RAMB16_S1_inst.INIT = 1'h0; // Value of output RAM
>>registers at startup
>> defparam RAMB16_S1_inst.SRVAL = 1'h0; // Ouput value upon SSR
>>assertion
>> defparam RAMB16_S1_inst.WRITE_MODE = "WRITE_FIRST"; // WRITE_FIRST,
>>READ_FIRST or NO_CHANGE
>>
>> // The following defparam INIT_xx declarations are only necessary
>>if you wish to change the initial
>> // contents of the RAM to anything other than all zero's.
>>
>> defparam RAMB16_S1_inst.INIT_00 =
>>256'h0000000000000000000000000000000000000000000 000000000000000000000;
>>
>>Cheers,
>>JonB


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to initialize memory. Chih-Hsu Yen Verilog 3 02-23-2006 09:30 AM
How to initialize inferred RAM kyrten Verilog 3 04-14-2004 05:29 AM
BlockRam @ 333MHz Jan Kindt FPGA 0 09-01-2003 01:07 PM


All times are GMT +1. The time now is 11:50 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved