MATLAB Answers

How to use the Unit Delay for HDL-Coder on Zedboard Zynq-7000?

1 ビュー (過去 30 日間)
Jan Graßhoff
Jan Graßhoff 2016 年 1 月 25 日
コメント済み: Jan Graßhoff 2016 年 1 月 26 日
We'd like to use the standard Unit Delay block in the Simulink HDL-Coder. As a minimal example we created an Atomic Subsystem, only consisting of a single Unit Delay block.
The simulation worked as expected: The input signal was delayed by one time step.
The model was tested on our Zedboard Zynq-7000. The subsystem ran on the FPGA. However, in contrast to the simulation, the unit delay did not seem to do anything at all, as the output signal was exactly the same as the input signal.
We use Matlab R2015b with Vivado 2014.4.
The Simulink model was attached.

採用された回答

Wang Chen
Wang Chen 2016 年 1 月 25 日
Hi Jan, when you run the model on Zynq board, the FPGA part of the design is running at a fast frequency (50MHz). When you are using external mode to monitor the output, the ARM processor is running at a much slower sample rate (e.g. 10KHz), the delay in FPGA happens so fast that ARM cannot see it.
You can try the coprocessing Processor FPGA synchronization mode, where the FPGA is slowed down to be locked step with ARM sample time, so you can see the delay effect. http://www.mathworks.com/help/hdlcoder/ug/processor-and-fpga-synchronization.html
Or you can build a small counter using the unit delay, and observe that the counter counts at fast frequency in the FPGA.
Or you can use following example to save the fast FPGA signal in a FIFO, and then bring the data back to ARM to see the delay result. http://www.mathworks.com/help/hdlcoder/examples/debug-a-zynq-design-using-hdl-coder-and-embedded-coder.html
  1 件のコメント
Jan Graßhoff
Jan Graßhoff 2016 年 1 月 26 日
Thank you, the Coprocessing synchronization mode was, what we were looking for!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by