Indeed I've implemented a separating out and reordering in a python script,
however rightnow I just trying to get an spectrum with a quite normal value
of the noise floor and a good dinamic range.
Anyways for this spectrometer i need the bram with depth 2^11 and 32 bits
each channel because I am sending out spectrums to my PIC32 microcontroller.
I've used to recibe data with a python script as the tutorial 3:
data=struct.unpack('>2048I',fpga.read('bram0',2048*4,0))
I've implemented the delay_bram as you can see in the picture, but the
results still are the same (I've tryed with 32bits too):
https://drive.google.com/file/d/0B9LbvB1SpcjOLXpfV0pLSzdVblU/view?usp=sharing
./s12_simple_32bits_1bram.py 192.168.1.11 -g 1000 -l 65536
https://drive.google.com/file/d/0B9LbvB1SpcjOTEV4ckFuUjlTQzQ/view?usp=sharing
I have injected a -3dBm tone signal @250MHz in the Bw=500MHz, but the data
seems intractable or maybe corrupted. I've noticed that something wrong my
models experience intermittent time outs on shared bram reads with ROACH 1.
or Maybe I can not extend the write and address time? this extra time
generate bad results? Has anyone else seen anything like this?
Regards,
Andrés

El lun., 17 ago. 2015 a las 14:52, Jack Hickish (<jackhick...@gmail.com>)
escribió:

> Hi Andres
>
> On Mon, 17 Aug 2015 at 08:25 Andres Alvear <andres.alve...@gmail.com>
> wrote:
>
>> Hello CASPER,
>>
>> I am implementing one spectrometer with one Shared BRAM yellow block with
>> the next specifications:
>>
>>    1. ROACH 1
>>    2. ADC083000: ADC0 (ZDOK0). 8 outputs per clock.
>>    3. Bw: 500 MHz
>>    4. N° of channels: 2048
>>    5. One Shared BRAM with:
>>       - Address width: 11
>>       - Data width: 32 bits.
>>
>> I've decided implement a mux with delays to pass 4 parallel streams to
>> serial. Finally the idea is map into memory in a correlative order from 0
>> to 2047.
>>
>> I have attached snapshot of my simulink model and results.
>>
>> https://drive.google.com/file/d/0B9LbvB1SpcjONm5WR0ZZVmRHLUU/view?usp=sharing
>>
>>
>> https://drive.google.com/file/d/0B9LbvB1SpcjOWmZ0cVdGdmRaYUE/view?usp=sharing
>>
>>
>> https://drive.google.com/file/d/0B9LbvB1SpcjONlNwVnh5Qi01clE/view?usp=sharing
>>
>> As you see in the picture I am packing the 4 parallel streams in one bram
>> in order to unpack 2048 channels at once instead 512 per bram (I mean a
>> design with 4 Shared BRAM).
>> Does anyone know whether simulations involving the Shared BRAM yellow
>> block are supposed to work? I'd like to simulate the address into the
>> memory. I am not pretty sure about the write and read timing for Shared
>> BRAM.
>>
>
> Simulations of the shared bram should work. If you look under the block
> mask, you'll see a simulation model which is just a normal bram. By default
> it has latency 1, but this will increase to 2 or 3 if you turn on one or
> both of the pipelining options in the shared bram mask.
>
>
>
>> Does anyone know whether theese z^-511 delays are good enough for this
>> kind of implementation? I'm doing something wrong?
>>
>
> You certainly can do it this way -- personally for large, wide delays like
> you're using I would consider using a "bram_delay" block, which will delay
> your data in bram rather than slices. This block is available in the casper
> delays library.
>
> For what it's worth, the shared bram will support inputs that are 128 bits
> wide, so you could dispense with your serializer. In this case, you would
> just concatenate the four 32 bit streams together and save them in a shared
> bram with width 128 and depth 2^9 (rather than width 32 and depth 2^11). An
> arrangement like this probably also makes the readout a little simpler,
> since if you read the bram and interpret the contents as 32 bit words, all
> your channels will come out in order. If I'm interpreting your screen shots
> correctly then at the moment your storing channels 0:2048:8, then 1:2048:8,
> etc, which I'm guessing your separating out and reordering in software(?).
>
> Cheers,
> Jack
>
>
>>
>> Cheers,
>> Andrés Alvear
>> Universidad de Chile
>>
>

Reply via email to