トライステート信号を含むカスタム pcore を EDK 用に生成するには、次の手順にしたがってください。
1) HDL で、双方向データ タイプを使用するのではなく、トライステート用に使用する 3 つの信号をすべて個別にインプリメントします。また、I/O バッファーはインスタンシエートしないでください。EDK では必要なバッファーが自動推論されます。psf_rm.pdf の 68 ページから 69 ページに記載されているコード形式および命名規則に従っていることを確認します。このファイルは EDK インストールの doc フォルダーにあります。
2) HDL を System Generator にブラックボックス モジュールとして読み込み、標準フローを使用して pcore を生成します。
3) 新しく生成した pcore を EDK プロジェクトの pcore フォルダーにコピーします。
4) pcore のトライステート信号を反映させるため MPD ファイルを変更します。同じ命名規則に従ってください。3 つの信号すべてが psf_rm.pdf に沿って正しく生成されていることを確認するため、System Generator で生成された最上位の HDL を確認します。また、MPD ファイルを変更する際、最上位 System Generator HDL に表示されるのと同じ信号名を使用します。ガイドとして GPIO コアにあるトライステート信号を使用します。MPD ファイルで追加/変更する必要のある行の例は次のとおりです。
MPD ファイルは次のようにアップデートされます。
# Peripheral Options
IO_INTERFACE IO_IF = data
# Ports
PORT data_io = "", DIR=INOUT, VEC=[0:(8-1)], ENABLE=SINGLE, THREE_STATE=TRUE, TRI_I = data_I, TRI_O = data_O, TRI_T = data_T, PERMIT = BASE_USER, DESC = 'Data IO', IO_IF = data, IO_IS = data_io
PORT data_i = "", VEC = [0:(8-1)], DIR = IN, IO_IF = data, IO_IS = data_in
PORT data_o = "", VEC = [0:(8-1)], DIR = OUT, IO_IF = data, IO_IS = data_out
PORT data_t = "", DIR = OUT, IO_IF = data, IO_IS = tri_out
The top-level SysGen entity for this pcore was generated follows:
entity test_plbw is
port (
data_i: in std_logic_vector(0 to 7);
data_o: out std_logic_vector(0 to 7);
data_t: out std_logic;
);
end test_plbw;
これでトライステート ポートが XPS で正しく認識され処理されるようになります。
MPD ファイルのコンフィギュレーションについては、psf_rm.pdf の第 3 章を参照してください。
System Generator for DSP のリリース ノートおよび既知の問題は (ザイリンクス アンサー 29595) を参照してください。
Answer Number | アンサータイトル | 問題の発生したバージョン | 修正バージョン |
---|---|---|---|
29595 | ザイリンクス DSP ツール、System Generator for DSP、および AccelDSP 合成ツール - リリース ノートおよび既知の問題 | N/A | N/A |