Error when generating HDL code for deserializer1D

3 views (last 30 days)
Luca
Luca on 23 Apr 2024
Commented: Luca on 15 May 2024
Hi, I am building a system to be deployed on an RFSoC. I have used serialize blocks on the processor to stream data through the memory using an Software to AXI4-Stream block to the Programmable Logic (PL).
Instead of using the serializer/deserializer block directly, I had to go to its library and copy its system to create a subsytem in my design containing it. That was needed because I had to access the rate transition blocks and change the parameter from "Multiple of input port sample time" to "inherit" - I did that because the system wouldn't compile with the original parameter, throwing me the following error:
"Asynchronous sample time is found at input port 0 of Rate Transition block 'path/to/subsystem/Serializer/rateTrans'. When Rate Transition block parameter 'Output port sample time option' is 'Multiple of input port sample time', asynchronous sample time is not allowed. Consider changing 'Output port sample time option' to "Specify" or "Inherit"."
I could overcome this error by changing the rate transition parameter and the model worked as expected during simulation.
When the data arrives to the PL, I need to deserialize it, which worked on simulation. However, during the build phase, I got the following error, which is rather unclear how to solve, once that the serializer/deserializer are supposed to be supported by HDL Coder.
"Compilation errors when generating code for: \HDL1DDs Error during MATLAB code compilation: Error Path: /usr/local/MATLAB/R2022b/toolbox/shared/system/coder/+matlab/+system/+hdlcoder/System.p Error Location: (@Row: --> 1 @Column: --> 1) System object 'hdl.deserializer1D' is not supported for HDL code generation."
Can you help me find out what the problem is here? Thanks in advance.

Answers (1)

Tom Richter
Tom Richter on 2 May 2024
Hi Luca,
Maybe by now you did already but I suggest contacting Technical Support to help you with this issue/question. If you go to https://www.mathworks.com/support/contact_us.html, you can submit a support request and add example or reproduction files. The page also displays phone contact information based on your location.
Best regards,
Tom
  1 Comment
Luca
Luca on 15 May 2024
Hi Tom,
Thanks for your answer. I was able to solve the issue and use the actual serializer/deserializer block for HDL code generation without any problem. My advice is then to avoid doing what I did of going into the block library and copy the system to be able to modify it as we wish with a higher degree of freedom.
In the interest of propagating information: for anyone who is coming here regarding the problem of the serializer on the Processing Subsystem of a SoC using SoC blockset, the problem is that as the processor works asynchronously via task function call execution. This means it can't correctly change the sampling time of data flowing in it, which is something that the serializers/deserializers inherently do in order to propagate the data.

Sign in to comment.

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!