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

조회 수: 8(최근 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