マルチレートの 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 インターフェイス生成向けのモデル設計も参照してください。