cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
eitanbella
Visitor
Visitor
4,712 Views
Registered: ‎01-11-2011

spartan6 readback of blockRAM RAMB16BWER

hi,

 

I'm trying to do readback of spartan6 ( xc6slx9 ) block ram.

I implemented in my design units of RAMB16BWER.

the Impact program generated *.ll file (logic allocation file) which should describe the location of the Block-Ram bits on the readback file.

 

this *.ll file looks starnge:

It looks like SEVERAL bits in the Block-Ram (and not single bit) are located on THE SAME position (=offset) from the readback file.  Which is not logical!

Another strange behaviour: the frames of the BlockRams start from a bit index on the readback file which is bigger than

the actual size of the readback file maximum bit index.

 

Can anyone help me understand what I doing wrong and how can i get the real value of the BlockRam bits from the logic allocation file????

 

 

thanx'

eithan

0 Kudos
4 Replies
austin
Scholar
Scholar
4,703 Views
Registered: ‎02-27-2008

I believe there are a number of issues with readback of the BRAM in S6: check the technical answers.

http://www.xilinx.com/support/answers/32651.htm
Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
eitanbella
Visitor
Visitor
4,671 Views
Registered: ‎01-11-2011

hi again'

 

the issues on the attached link - are irrelevant to my problem.

 

i use write_first mode and RAMB16BWER on spartan6.

 

when i create the logic allocation file (*.ll) from which i want to extract the location of SINGLE bit  from the block ram on my impact.bin file. i get texts like (copied from my *.ll file):

Bit  2325678 0x1100c236    306 Block=RAMB16_X0Y14 Ram=B:BIT9056
Bit  2325678 0x1100c237    288 Block=RAMB16_X0Y14 Ram=B:BIT9073
Bit  2325678 0x1100c238    270 Block=RAMB16_X0Y14 Ram=B:BIT9090
Bit  2325678 0x1100c239    252 Block=RAMB16_X0Y14 Ram=B:BIT9107
Bit  2325678 0x1100c23a    234 Block=RAMB16_X0Y14 Ram=B:BIT9124
Bit  2325678 0x1100c23b    216 Block=RAMB16_X0Y14 Ram=B:BIT9141
Bit  2325678 0x1100c23c    198 Block=RAMB16_X0Y14 Ram=B:BIT9158
Bit  2325678 0x1100c23d    180 Block=RAMB16_X0Y14 Ram=B:BIT9175
Bit  2325678 0x1100c23e    162 Block=RAMB16_X0Y14 Ram=B:BIT9192
Bit  2325678 0x1100c23f    144 Block=RAMB16_X0Y14 Ram=B:BIT9209
Bit  2325678 0x1100c240    126 Block=RAMB16_X0Y14 Ram=B:BIT9226
Bit  2325678 0x1100c241    108 Block=RAMB16_X0Y14 Ram=B:BIT9243
Bit  2325678 0x1100c242     90 Block=RAMB16_X0Y14 Ram=B:BIT9260

 

In this example of the *.ll file:

what bit from the BLOCK RAM will be in offset 2325678 from the impact.bin?

It seems like many BLOCKRAM bits are there!!!

 

can you tell me what should i do in order to know how to do readback of block rams.

 

ASAP

 

thanx

eitan

 

 

 

0 Kudos
robinliuy
Voyager
Voyager
4,636 Views
Registered: ‎05-21-2008

The .ll format is
<offset> <frame address> <frame offset> <information>
0 Kudos
eitanbella
Visitor
Visitor
4,624 Views
Registered: ‎01-11-2011

hi again'

 

I know the *.ll format and that it starts with the offset from the readback file.

but it seems theres a BUG in the *.ll file:.

 

to make you understand the BUG, i copied a part of my ll file:


Bit  2325678 0x1100c236    306 Block=RAMB16_X0Y14 Ram=B:BIT9056
Bit  2325678 0x1100c237    288 Block=RAMB16_X0Y14 Ram=B:BIT9073
Bit  2325678 0x1100c238    270 Block=RAMB16_X0Y14 Ram=B:BIT9090
Bit  2325678 0x1100c239    252 Block=RAMB16_X0Y14 Ram=B:BIT9107
Bit  2325678 0x1100c23a    234 Block=RAMB16_X0Y14 Ram=B:BIT9124
Bit  2325678 0x1100c23b    216 Block=RAMB16_X0Y14 Ram=B:BIT9141
Bit  2325678 0x1100c23c    198 Block=RAMB16_X0Y14 Ram=B:BIT9158
Bit  2325678 0x1100c23d    180 Block=RAMB16_X0Y14 Ram=B:BIT9175
Bit  2325678 0x1100c23e    162 Block=RAMB16_X0Y14 Ram=B:BIT9192
Bit  2325678 0x1100c23f    144 Block=RAMB16_X0Y14 Ram=B:BIT9209
Bit  2325678 0x1100c240    126 Block=RAMB16_X0Y14 Ram=B:BIT9226
Bit  2325678 0x1100c241    108 Block=RAMB16_X0Y14 Ram=B:BIT9243
Bit  2325678 0x1100c242     90 Block=RAMB16_X0Y14 Ram=B:BIT9260

 

a) Where is the location for Bit9260 of the RAM BLOCK?

    its on offset (from readback file) = 2325678 according to the ll file.

b) Where is the location for Bit9243 of the RAM BLOCK?

    its also (!) on offset (from readback file) = 2325678 according to the ll file.

c) Where is the location for Bit9226 of the RAM BLOCK?

    its also (!!!) on offset (from readback file) = 2325678 according to the ll file.

etc...

 

How is it possible???  Is the a BUG in the *.ll on spartan6???

 

Eitan

 

 

0 Kudos