Clear Filters
Clear Filters

buffer quivalent block in HDL coder

14 views (last 30 days)
I am using buffer block in simulink model to store 512 samples of fft output,but this buffer block is unsupported for hdl code generation.so what is buffer equivalent block in HDL coder for hdl code generation. i have tried to use 'DESERIALIZER 1D' block in place of buffer then it is showing an error that "Illegal block in enabled subsystem",how to fix this error

Accepted Answer

DEEKSHA GUPTA
DEEKSHA GUPTA on 20 Mar 2018
Edited: Walter Roberson on 7 Apr 2018
I am attaching snap of my simulink model and error. plz suggest how to fix this error
Simulink Block Warnings/Errors
hdl_fft_ipcore/PFB Spectrum Viewer/BitRevOrder Error: Block 'hdl_fft_ipcore/PFB Spectrum Viewer/BitRevOrder' is unsupported for HDL code generation when in native floating-point mode.
hdl_fft_ipcore/PFB Spectrum Viewer/Buffer Error: Block 'hdl_fft_ipcore/PFB Spectrum Viewer/Buffer' is not supported for HDL code generation. To continue with code generation, comment out this block.

More Answers (2)

Bharath Venkataraman
Bharath Venkataraman on 19 Mar 2018
Edited: Bharath Venkataraman on 19 Mar 2018
If you are using the HDL Optimized FFT block , I suggest you use a RAM block (either single port, simple dual port or dual port) to buffer the values and read them out.
  3 Comments
Bharath Venkataraman
Bharath Venkataraman on 20 Mar 2018
You will have to create those signals to drive the RAM based on the FFT output.
An easier approach would be to use the HDL FIFO . You can use the FFT output valid to push into the FIFO and then pop for FFT length cycles when the end output from the FFT goes high. You can use the HDL counter block to count the number of cycles you need to keep the pop high.
May I ask why you need the output of the FFT to be buffered?
DEEKSHA GUPTA
DEEKSHA GUPTA on 20 Mar 2018
Edited: DEEKSHA GUPTA on 20 Mar 2018
I am using HDL optimized FFT block for vectored data(16 samples in each frame) to calculate 512 point FFT for that i need to buffer these 16 samples 32 times(16×32=512) for that i need to use buffer follwed by matlab function block which reverse the order of fft ouput to get natural order of fft output but both buffer and matlab function block is not supported by hdl coder.. i can not use HDL FIFO,because hdl fifo supports only scalar input but my input is vector

Sign in to comment.


Bharath Venkataraman
Bharath Venkataraman on 20 Mar 2018
Starting in R2018a, you can choose natural or bit-reversed order for the FFT block with vector input.
  1 Comment
DEEKSHA GUPTA
DEEKSHA GUPTA on 7 Apr 2018
I have create a model to determine 512 point FFT while giving vectored input(16*1).but my FFT model is giving bit reversed order,so to get ouput in natural order i need to reverse the order of output for that i need to use matlab function block which reverses the order of FFT output.before function block i have used buffer to store 512 data.but while converting into hdl code it is showing error " Simulink Block Warnings/Errors fft512V16/mainsystem/Enabled Synchronous Subsystem/Deserializer1D Error: Illegal block in enabled subsystem. fft512V16/mainsystem/Enabled Synchronous Subsystem/Enable Error: All ports of an enabled/triggered subsystem must have the same sample rate for HDL code generation. "

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!