Main Content

マルチレートの IP コアの生成

この例では、IP Core Generation ワークフローを実行する際の、HDL Coder™ による複数のサンプルレートを使用する設計のサポートを示します。

AXI4 または AXI4-Lite などの AXI4 スレーブ インターフェイスのみを使用していて、[プロセッサ/FPGA の同期]Free running を使用している場合、設計で複数のサンプルレートを制限なく使用できます。

インターフェイス端子を AXI4-Stream、AXI4-Stream Video または AXI4 Master インターフェイスにマッピングする場合に複数のサンプルレートを使用するには、AXI4 インターフェイスにマッピングされる DUT 端子が、HDL コード生成後に設計の最速のレートで実行していることを確認します。

これらの例は、AXI4-Stream、AXI4-Stream Video または AXI4-Master マスター インターフェイスを使用する際に複数のサンプルレートを使用する設計をモデル化する方法を示します。

遅いレートでの設計の一部の実行

インターフェイスにマッピングされる DUT 端子が最速のレートで実行していることを確認して、設計の一部を遅いレートで実行できます。この例では、AXI4-Stream Video インターフェイスにマッピングする方法を示しますが、この方法を使用して AXI4-Stream または AXI4 Master インターフェイスにマッピングすることができます。

たとえば、モデル hdlcoder_axi_video_multirate を開きます。

load_system('hdlcoder_axi_video_multirate')
set_param('hdlcoder_axi_video_multirate','SimulationCommand','update')
open_system('hdlcoder_axi_video_multirate')

このモデルでは、Video_Algorithm の入力および出力に対応する DUT 端子が最速のレートで実行していることを確認します。

open_system('hdlcoder_axi_video_multirate/Multirate_DUT')

したがって、これらの端子を AXI4-Stream Video インターフェイスにマッピングできます。遅いレートで実行する入力 slow および出力 slowOut に対応するこのアルゴリズムの外部で実行する設計の一部分は、AXI4 または AXI4-Lite インターフェイスにマッピングできます。次の図は、このモデルのマッピングされているターゲット プラットフォーム インターフェイスの例を示しています。

メモ: Pixel Control Bus Creator ブロックと Pixel Control Bus Selector ブロックを使用するには、Vision HDL Toolbox™ がインストールされていなければなりません。Vision HDL Toolbox がない場合、Bus Creator ブロックと Bus Selector ブロックを代わりに使用してください。

AXI4-Stream Video インターフェイス生成向けのモデル設計も参照してください。

遅いレートで実行する設計の一部への最適化の適用

マルチレート サポートを使用して、遅いレートで実行する設計の一部にリソース共有などの最適化を適用できます。最適化によって Simulink™ モデルで速いレートが導入されないことを確認してください。この例では、AXI4-Stream インターフェイスにマッピングする方法を示しますが、この方法を使用して AXI4-Stream Video または AXI4 Master インターフェイスにマッピングすることができます。

たとえば、モデル hdlcoder_axi_multirate_sharing を開きます。

load_system('hdlcoder_axi_multirate_sharing')
set_param('hdlcoder_axi_multirate_sharing','SimulationCommand','update')
open_system('hdlcoder_axi_multirate_sharing/DUT')

このモデルでは、サブシステムに遅いレートで実行する簡単な乗算-加算アルゴリズムが含まれます。

open_system('hdlcoder_axi_multirate_sharing/DUT/Subsystem')

リソース共有を、設計のこの部分に適用できます。このサブシステムに保存されているパラメーターを確認するには、hdlsaveparams を実行します。

hdlsaveparams('hdlcoder_axi_multirate_sharing/DUT/Subsystem')
%% Set Model 'hdlcoder_axi_multirate_sharing' HDL parameters
hdlset_param('hdlcoder_axi_multirate_sharing', 'HDLSubsystem', 'hdlcoder_axi_multirate_sharing/DUT');
hdlset_param('hdlcoder_axi_multirate_sharing', 'ReferenceDesign', 'Default system with AXI4-Stream interface');
hdlset_param('hdlcoder_axi_multirate_sharing', 'ResetType', 'Synchronous');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisTool', 'Xilinx Vivado');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolChipFamily', 'Zynq');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolDeviceName', 'xc7z020');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolPackageName', 'clg484');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolSpeedValue', '-1');
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetDirectory', 'hdl_prj\hdlsrc');
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetFrequency', 50);
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetPlatform', 'ZedBoard');
hdlset_param('hdlcoder_axi_multirate_sharing', 'Workflow', 'IP Core Generation');

% Set SubSystem HDL parameters
hdlset_param('hdlcoder_axi_multirate_sharing/DUT/Subsystem', 'SharingFactor', 3);

DUT インターフェイス端子を AXI4-Stream マスターまたは AXI4-Stream スレーブ インターフェイスにマッピングできます。次の図は、このモデルのマッピングされているターゲット プラットフォーム インターフェイスの例を示しています。

AXI4-Stream インターフェイス生成向けのモデル設計も参照してください。

関連するトピック