How to add TCL script to HDL Coder IP Core generation
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alex Aronov
el 15 de Sept. de 2023
Editada: Kiran Kintali
el 7 de En. de 2025 a las 14:38
I use HDL Coder IP Core flow and I need to add a TCL script that I have to open Vivado, add the new IP core to the existing project and implement with it.
I tried "add additional sources" option in HDL Coder to point to my TCL script there. The TCL script was never executed.
Of course I can run the script manually after IP core is generated, but I want to have a pushbutton solution, such that I only start IP Core generation and everything else would work automatically.
One possible way would be to do everything (including IP core generation) in a TCL script, but I don't know how to make HDL coder to generate IP core in a TCL script.
Any suggestions?
Thank you, alex
0 comentarios
Respuesta aceptada
Wang Chen
el 18 de Sept. de 2023
Hi Alex,
To clarify, "add additional sources" option (in HDL Workflow Advisor "Generate RTL code and IP core" step) is intended to include additional source files into the generated IP core. It will not execute the supplied Tcl script.
If you want to "I have to open Vivado, add the new IP core to the existing project and implement with it.", have you tried to create a custom reference design in IP core generation workflow? The steps to select a reference design (existing project), and run build tasks are exactly doing what you described. After you create a custom reference design, there are also callback functions you could use to execute your customized Tcl script.
Example of the IP core generation workflow with reference deisgn/bitstream build tasks; https://www.mathworks.com/help/hdlcoder/ug/getting-started-with-hardware-software-codesign-workflow-for-zynq-ultrascale-mpsoc-devices.html
Document/Examples of creating a custom reference design to include your existing project into the workflow:
Callback functions available when define custom reference design (where you could execute your tcl):
Alternatively, if you only want to run IP core generation (without the later build steps). You could Export a script from HDL Workflow Advisor, and run the IP core generaiton workflow in command-line. This way you could then execute your Tcl using command line, so you can have one combined script to do both IP core generation and the Tcl execution.
Thanks,
Wang
Más respuestas (1)
Kiran Kintali
el 17 de Sept. de 2023
Editada: Kiran Kintali
el 18 de Sept. de 2023
In the HDL Workflow Advisor for Generic ASIC/FPGA workflow, in the FPGA Synthesis and Analysis > Create Project task, in the Additional source files field, enter the full path to the Tcl file manually, or by using the Add button. When HDL Coder™ creates the project, the specified Tcl script is executed to apply the synthesis project settings.
For your usecase custom reference design creation in IP core generation workflow would be more suitalbe. This workflow has steps for selecting a custom reference design and run build tasks which is what you are looking for. After Custom reference design creation you can execute additional callback functions to run Tcl scripts of your choice. See this example for additional details..
Can you reach out to tech support for additional features related to tcl specification? Thanks.
4 comentarios
Luca
el 7 de En. de 2025 a las 11:30
Many thanks for the very useful information Kiran.
My design uses a RF Data Converter block, which is the one I am trying to customize with the tcl script. However, on the Extended Capabilities section of its page, it mentions to "use the SoC Builder tool", which is from SoC Blockset.
Does this means that it is not possible to customize my design because it uses the RF Data Converter block?
I tried generating code for it with HDL Coder and I got an error on R2022b: "Block 'soc_rfsoc_top/RF Data Converter/Stream to Sample2/Variant/On/Check Signal Attributes1' is not supported for HDL code generation." I will update and try the IP Core generation workflow, but I am not confident it will solve my issue.
Kind regards,
Kiran Kintali
el 7 de En. de 2025 a las 14:38
Editada: Kiran Kintali
el 7 de En. de 2025 a las 14:38
The RF Data Converter block is supposed to be put outside of the DUT subsystem. Following example uses the RF Data Converter block and Simulink-canvas IP core generation workflow together: Multi-Channel Transceiver Using Xilinx RFSoC Device
If you are trying to modify the reference design to change the settings on the RF Data Converter in the reference design. You should consider reviewing these examples that show how to:
- Add a callback function to modify the vivado project using "PostCreateProjectFcn", https://www.mathworks.com/help/hdlcoder/ug/define-custom-reference-design-with-custom-parameters-and-callback-functions.html
- Create a new custom reference design. Document/Examples of creating a custom reference design to include your existing project into the workflow: https://www.mathworks.com/help/hdlcoder/create-a-custom-hardware-platform.html
Please reach out to tech support for additional help.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!