Hi Mitch,

Thanks for your information and suggestions. As we are working on the
"Tutorial 3: Example Spectrometer” using an RFSoC 4x2 board.
By keeping the same configuration of the example spectrometer, we wish to
improve the resolution by a factor of 2.
As per your suggestion in your last email,

   - We have tried changing the munge block from 8 bit to 16 bit, but we
   landed with error at the 9th bit slice block.
   - It was also found that adc_snap is restricting us to 8 bit only.
   - But, we were able to increase block size for bram, pfb and fft from 8
   output to 16 output from their respective setting.

Can you provide us with guidance on the modifications that need to be made
to the Munge, adc_snap, bram, pfb, and fft blocks to reach the necessary
resolution in their respective settings?

Regards
Tilak


On Fri, 18 Jul 2025 at 02:59, Mitchell Burnett <mitch.c.burn...@gmail.com>
wrote:

> Hi Tilak,
>
> I am glad to hear that you were able to use "Tutorial 3: Example
> Spectrometer”, and other tutorials, to test all ADC inputs of your RFSoC
> 4x2. That tutorial spectrometer is a good staring point for designing a
> spectrometer of a different resolution. Please keep in mind that changes
> need to be made to both the Simulink and Python codes to achieve a finer
> resolution spectrometer.
>
>  (i)  We tried changing the variable nfft in the above python code, but
> there was no effect
> (ii)  Also, Change in command line the accumulation length parameter '- l
> ' made no difference.
>
>
> Yes, there would be no effect. This is because the FFT transform size, and
> the sample rate, are fixed parameters in the Simulink design. The `nfft`
> variable in the Python code is only used to correctly interpret the output
> based on those fixed parameters.
>
> (iii) To understand how it works keeping in mind that 4Gsps is the maximum
> sampling rate we tried a sampling rate of 2000 Msps in the block below
>
> ERROR: expected rfdc core axi stream clock rate 125.000 MHz on tile 224
> does not match platform selected clock
> rate of 245.760 MHz.
>
>
> This error has occurred because the “User IP Clock Rate (MHz)” field in
> the RFSoC 4x2 yellow block configuration window does not match the
> “Required AXI4-Stream Clock (MHz)” field in the RFDC yellow block's
> configuration window. Before starting Vivado, the toolflow will perform a
> design review check (DRC) that makes sure these two fields match. The
> bullet you reference from Tutorial 2 is trying to explain the fact that
> this needs to be manually updated by the user. So, in practice after
> specifying the RFDC's parameters (sample rate, decimation, number of
> samples per clock cycle) the “Required AXI4-Stream Clock (MHz)” will be
> calculated and the designer needs to open the RFSoC 4x2 Yellow Block and
> update the “User IP Clock Rate (MHz)” filed. For you, having changed the
> sample rate from 3932.16 Msps to 2000 Msps, you will now will need to
> double-click the RFSoC 4x2 Yellow Block to open that configuration window
> and change the clock rate from 245.76 MHz to 125 MHz.
>
> If you alter the “Samples Per AXI4-Stream Cycle” in the RFDC mask you will
> need to change the “number of simultaneous input” parameters on both the
> PFB and FFT blocks. In the tutorial, 8 samples per cycle is chosen. That is
> why number of simultaneous inputs is 3 (2^3 = 8). This is also why there
> are 8 shared bram blocks storing accumulated FFT outputs. One block for
> each out the 8 samples that happen every cycle. Each Bram memory therefore
> stores one-eighth of the output spectrum from the FFT.
>
> If you adjust the FFT transform size will also need to alter several other
> components of the Simulink design. Specifically, those are:
>
> FFT shift size
> Vector length of the vector accumulator blocks
> Address width of the the shared bram memories
> Address counter driving the shared bram memories
> Sync pulse generation period (See casper pulse generation memo
> <https://github.com/casper-astro/publications/blob/master/Memos/files/sync_memo_v1.pdf>
> )
>
> Hope this helps,
> Mitch
>
> On Jul 16, 2025, at 7:10 AM, Tilak Katoch <katoch.ti...@gmail.com> wrote:
>
> Hi Mitch,
>
> As per your suggestion last time, I have gone through the Tutorial 1 , 2 &
> 3 for introduction to Simulink providing the details about the software and
> hardware interactions. And we have succeeded in reading the input from an
> external frequency synthesizer using the RFSoC 4X2 board from all the ADC
> inputs using the python code "python rfsoc4x2_tut_spec.py rfsoc4x2 real" .
>
> Now following Tutorial 2 and 3, We are exploring ways to change the fft
> sample size in order to alter/improve the frequency resolution of the
> spectrometer, Δf
>
>  (i)  We tried changing the variable nfft in the above python code, but
> there was no effect
> (ii)  Also, Change in command line the accumulation length parameter '- l
> ' made no difference.
> (iii) To understand how it works keeping in mind that 4Gsps is the maximum
> sampling rate we tried a sampling rate of 2000 Msps in the block below
>
> For the RFSoC 4x2, each tile tab is configured the same with Enable Tile 
> selected
> and clock configuration set as follows.Note that the Required AXI4-Stream
> Clock (MHz) field matches the clock of the RFSoC 4x2 platform block. For
> a dual-tile platform configure this section as:
> [image: ../../_images/rfsoc4x2_rfdc_tile_conf.png]
>
>
> This gave us following error as shown below with the image
>
> ERROR: expected rfdc core axi stream clock rate 125.000 MHz on tile 224
> does not match platform selected clock
> rate of 245.760 MHz.
>
> Error using jasper (line 23)
> Backend build failed! Check log files for more information
>
> <image.png>
>
> On following the Tutorial 2, it mentioned as below:
>
>
>    - The Required AXI4-Stream Clock field indicates what the User IP Clock
>     Rate of the platform yellow block must be set. There is a DRC within
>    the toolflow that checks to make sure the values match. However, this does
>    require that the CASPER designer make sure the two fields remain in sync.
>
>
> I was not able to get this thing in the program. So I need the help to set
> it properly and it should reflect the change in frequency resolution. Or is
> there any other way to do it, to see change in frequency resolution?
>
> Regards,
> Tilak
>
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To view this discussion visit
> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAPGD9M%3DxAdHN0mTyW0XnKoOiD2MizOqzq3A-sNHUZGiG3gRv_w%40mail.gmail.com
> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAPGD9M%3DxAdHN0mTyW0XnKoOiD2MizOqzq3A-sNHUZGiG3gRv_w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To view this discussion visit
> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/1311CCA3-F790-475B-8269-E65D7075608F%40gmail.com
> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/1311CCA3-F790-475B-8269-E65D7075608F%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To view this discussion visit 
https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAPGD9MmjX9Jm7OfChxtBM8Cbr%2BUrgEg%3DyfXy0w1uY0JiDK7q%2Bw%40mail.gmail.com.

Reply via email to