the compilation failed due to timing violation

3 次查看(过去 30 天)
Hello,
I am working on generating an NI FPGA Bitfile from Simulink. During the generation process, I encountered an error. I have attached the error message and the HDL code generation report. Could you please help me resolve this issue?
%% Set Model ‘PB’ HDL parameters
hdlset_param(PB, 'AdaptivePipelining', 'on');
hdlset_param(PB, 'Backannotation', 'on');
hdlset_param(PB, 'CriticalPathEstimation', 'on');
hdlset_param(PB, 'FloatingPointTargetConfiguration', hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint' ...
, 'LatencyStrategy', 'Zero') ...
);
hdlset_param(PB, 'HDLSubsystem', PB);
hdlset_param(PB, 'MulticyclePathConstraints', 'on');
hdlset_param(PB, 'OptimizationReport', 'on');
hdlset_param(PB, 'Oversampling', 61);
hdlset_param(PB, 'ReferenceDesign', 'Default system');
hdlset_param(PB, 'ResourceReport', 'on');
hdlset_param(PB, 'SynthesisTool', 'NI LabVIEW');
hdlset_param(PB, 'SynthesisToolChipFamily', 'Kintex7');
hdlset_param(PB, 'SynthesisToolDeviceName', 'xc7k325t');
hdlset_param(PB, 'SynthesisToolPackageName', 'fbg676');
hdlset_param(PB, 'SynthesisToolSpeedValue', '-1');
hdlset_param(PB, 'TargetDirectory', 'hdl_prj\hdlsrc');
hdlset_param(PB, 'TargetFrequency', 40);
hdlset_param(PB, 'TargetPlatform', 'PXIe-7868R');
hdlset_param(PB, 'Traceability', 'on');
hdlset_param(PB, 'Workflow', 'NI FPGA Bitfile Generation');
Thank you.

采纳的回答

Wang Chen
Wang Chen 2024-9-6
To clarify, it looks like you are trying to run the HDL Coder generated HDL code using 40MHz clock, and the NI FPGA compilation reports that the logic cannot meet 40MHz requrement (25ns).
The recommentation is to use the HDL Coder features to find out the critical path in your design, and then use HDL Coder optimization features to insert pipeline registers to reduce the critical path to be less than 25ns.
You can use several HDL Coder features mentioned in this page:
  1. Critial path estimation, see section "Strategy 2: Estimate Critical Path Without Running Synthesis". This is the fastest way to get critical path, without need to run synthesis tool. You can use this feature to get quick estimate and iteratively improve your design.
  2. Generic ASIC/FPGA workflow, see section "Strategy 3: Annotate Critical Path By Using Backannotation". You can get more accurate timing result by running sythesis tool. You can continue improve your design until you can meet timing in this workflow
After you identified the critical path in your design, there are several recommendations for improve the design in "Step 3: Resolve Timing Failures" section.
Thanks,
Wang

更多回答(0 个)

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by