MATLAB Answers

HDL Coder Workflow Advisor timing analysis

6 views (last 30 days)
Hello! I am currently working on a project for which my task is to develop a control algorithm for a power converter. This algorithm must be implemented inside an FPGA where the other modules are developped by another person. I decided to use HDL Coder to avoid coding the algorithm, and also insure rapid iterations afterward if corrections are needed (change of controller, architecture,...).
The FPGA is a Xilinx Spartan6, and thus the synthesis tool is included in ISE suite.
My question is:
When I use the workflow advisor, I cannot obtain any result on the timing analysis (Max Frequency) that would help me adding pipelines to my design in order to increase the Frequency. It seems that it considers the module I am generating as a TOP-level, and then tries to bind the I/Os of this module to IOBs. These I/Os are in fact connected to our register base (several 18-bits data). I thus have a message in the synthesis telling me that "more than 100% of the device ressources are used", which is not really the case. Mapping is therefore not possible, and it seems that the workflow advisor needs to perform mapping and P&R to obtain the critical path.
*==> Is it possible to specify that my module is not a TOP and use only the synthesis results as timing inputs to be highlighted in my Simulink Model?*
==> Are there any other options to allow me using this highlighting functionnality in order to place the required pipelines?
I am asking this question because when I give our FPGA expert the generated sources, he's able to perform a synthesis and find the critical path and Minimum Period of the design.
MATLAB/Simulink/HDL-Coder version: 2013b
Thanks by advance for your help. Regards
Grégory SEABRA

Accepted Answer

Wang Chen
Wang Chen on 17 Feb 2015
Edited: Wang Chen on 17 Feb 2015
Hi Grégory,
You can open Xilinx ISE project from the link generated in HDL Workflow Advisor step 4.1, and change following two settings in the ISE project. Then ISE will not attempt to bind the I/Os to IOBs.
  1. Clear “add I/O buffer” (–iobuf) in synthesis settings
  2. Clear “trim unconnected signals” (–u) in mapping settings
Alternatively, you can create a Tcl file with following two lines to set the same settings, and attach the Tcl file in the "Additional source files" box in HDL Workflow Advisor step 4.1.
project set "Trim Unconnected Signals" "false" -process "Map"
project set "Add I/O Buffers" "false" -process "Synthesize - XST"
Starting from MATLAB R2015a, these settings are automatically applied to the ISE project.
  1 Comment
Grégory SEABRA
Grégory SEABRA on 19 Feb 2015
Hi Wang,
I tried your solution (create a .tcl file) and it worked well.
Thank you very much for your support!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!