Simulink からの HDL 生成に関して

Simulink 上のモデルをトリガ入力で起動するブロックとして HDL に変換したいと考えています。
”開始(割り込み)信号の検出 -> 対象ブロックの入力データをラッチ -> 対象ブロックでの処理 -> 対象ブロックの出力データをラッチ -> 終了(割り込み)信号を出力”
のような流れで Xilinx Zynq の ARM コアから FPGA のプログラマブルロジックに実装したファンクションをコールするような形式です。
このようなブロックを作る場合 Simulink 上の対象モデルに Trigger ブロックを追加するだけでよい、あるいは対象モデルの全てのポートを Triggered Subsystem にすればよい、それとも別な方法があるのかお教えください。
また参考になるサンプル等があれば併せてお教えください。

 採用された回答

Shoumei
Shoumei 2018 年 11 月 1 日

1 投票

ZynqのARM-FPGA間の同期はFree runningモードとCoprocessing-Blockingモードという2種類あって、後者がNobuo Iwasakiさんが言われているような動作に該当すると思います。
モデルはTriggered Subsystemを使わずに、HDLワークフローアドバイザーでIPコア生成するときにこのモードを選択するようです。

1 件のコメント

Nobuo Iwasaki
Nobuo Iwasaki 2018 年 11 月 1 日
回答ありがとうございました。
FPGA に実装する部分は IP コアとして扱うことを考えていたのですが、教えていただいた Coprocessing モードは IP コア生成ワークフローをサポートしていませんでした。メニュー上は設定できるのですがヘルプに記載されていました。 ということで IP コアとして扱うことをやめる方向で再検討したいと思います。 複数のプロジェクトでの使いまわし等を考慮して IP コア化したかったのですが...。

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

その他の回答 (0 件)

製品

リリース

R2018a

質問済み:

2018 年 10 月 30 日

コメント済み:

2018 年 11 月 1 日

Community Treasure Hunt

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

Start Hunting!