Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

release

JTAGまたはイーサネットケーブルリソースを解放する

    説明

    release(mem) は、使用するインターフェイスに応じて、JTAG ケーブルまたはイーサネット ケーブル リソースを解放します。

    • JTAG インターフェイスを使用すると、関数は JTAG ケーブル リソースを解放し、FPGA の再プログラムに使用できるようにケーブルを解放します。初期化後、AXI マネージャー オブジェクト mem が JTAG ケーブル リソースを保持し、他のプログラムは JTAG ケーブルにアクセスできなくなります。アクティブな AXI マネージャー オブジェクトがある場合、JTAG 経由の FPGA プログラミングは失敗します。FPGA を再プログラムする前に、release 関数を呼び出します。

    • イーサネット インターフェイスを使用する場合、関数はイーサネット通信チャネルを閉じ、関連するリソースをクリアします。AXI マネージャー オブジェクト mem の作成中に、オブジェクトは通信ストリームを初期化して、ホスト コンピューターとターゲット プロセッサ間のデータ交換を可能にします。ボードにアクセスする必要がなくなった場合は、release 関数を呼び出します。

    すべて折りたたむ

    この例では、MATLAB® から Intel® FPGA ボード上のメモリ位置を読み書きする方法を示します。

    この例を使用する前に、MATLAB ホスト マシンに接続された FPGA ボード上でデザインが実行されている必要があります。FPGA 設計には、FPGA ベンダー向けにカスタマイズされた AXI マネージャー IP が含まれている必要があります。サポート パッケージのインストールにはこの IP が含まれます。プロジェクトに IP を含めるには、AXI マネージャーを使用して FPGA 外部メモリにアクセスする の例を参照してください。

    AXI マネージャー オブジェクトを作成します。オブジェクトは MATLAB を FPGA ボードに接続し、IP が存在することを確認します。

    mem = aximanager('Intel')
    
    mem =
    
       aximanager with properties:
                Vendor: 'Intel'
         JTAGCableName: 'auto'

    10 個のアドレスを書き込み、1 つの場所からデータを読み取ります。デフォルトでは、これらの関数はデータの各ワードのアドレスを自動的に増分します。

    writememory(mem,140,[10:19]);
    rd_d = readmemory(mem,140,1)
    
    rd_d =
    
       uint32
        10

    10 か所からデータを読み取ります。

    rd_d = readmemory(mem,140,10)
    
    rd_d =
    
       1x10 uint32 row vector
        10   11   12   13   14   15   16   17   18   19

    AXI マネージャーが同じアドレスからすべてのデータを読み取るように指定して (自動増分を無効にして)、同じアドレスからデータを 10 回読み取ります。

    rd_d = readmemory(mem,140,10,'BurstType','Fixed')
    
    rd_d =
    
       1x10 uint32 row vector
        10   10   10   10   10   10   10   10   10   10

    同じアドレスにデータを10回書き込みます。この場合、アドレス 140 に格納される最終値は 29 です。

    writememory(mem,140,[20:29],'BurstType','Fixed');
    rd_d = readmemory(mem,140,10)
    
    rd_d =
    
       1x10 uint32 row vector
        29   11   12   13   14   15   16   17   18   19

    アドレスを 16 進数値として指定します。読み取ったデータを uint32 以外のデータ型にキャストする関数を指定します。

    writememory(mem,0x1c,[0:4:64]);
    rd_d = readmemory(mem,0x1c,16,'OutputDataType',numerictype(0,6,4))
    
    rd_d =
    
       Columns 1 through 10
              0    0.2500    0.5000    0.7500    1.0000    1.2500 ...
                             1.5000    1.7500    2.0000    2.2500
       Columns 11 through 16
         2.5000    2.7500    3.0000    3.2500    3.5000    3.7500
               DataTypeMode: Fixed-point: binary point scaling
                 Signedness: Unsigned
                 WordLength: 6
             FractionLength: 4

    ボードにアクセスする必要がなくなったら、JTAG 接続を解放します。

    release(mem);
    

    この例では、MATLAB® から Xilinx® FPGA ボード上のメモリ位置を読み書きする方法を示します。

    この例を使用する前に、MATLAB ホスト マシンに接続された FPGA ボード上でデザインが実行されている必要があります。FPGA 設計には、FPGA ベンダー向けにカスタマイズされた AXI マネージャー IP が含まれている必要があります。サポート パッケージのインストールにはこの IP が含まれます。プロジェクトに IP を含めるには、JTAGベースのAXIマネージャを使用してFPGAメモリにアクセスする の例を参照してください。

    AXI マネージャー オブジェクトを作成します。オブジェクトは MATLAB を FPGA ボードに接続し、IP が存在することを確認します。

    mem = aximanager('Xilinx')
    
    mem =
    
       aximanager with properties:
                Vendor: 'Xilinx'
         JTAGCableName: 'auto'

    10 個のアドレスを書き込み、1 つの場所からデータを読み取ります。デフォルトでは、これらの関数はデータの各ワードのアドレスを自動的に増分します。

    writememory(mem,140,[10:19]);
    rd_d = readmemory(mem,140,1)
    
    rd_d =
    
       uint32
        10

    10 か所からデータを読み取ります。

    rd_d = readmemory(mem,140,10)
    
    rd_d =
    
       1x10 uint32 row vector
        10   11   12   13   14   15   16   17   18   19

    AXI マネージャーが同じアドレスからすべてのデータを読み取るように指定して (自動増分を無効にして)、同じアドレスからデータを 10 回読み取ります。

    rd_d = readmemory(mem,140,10,'BurstType','Fixed')
    
    rd_d =
    
       1x10 uint32 row vector
        10   10   10   10   10   10   10   10   10   10

    同じアドレスにデータを10回書き込みます。この場合、アドレス 140 に格納される最終値は 29 です。

    writememory(mem,140,[20:29],'BurstType','Fixed');
    rd_d = readmemory(mem,140,10)
    
    rd_d =
    
       1x10 uint32 row vector
        29   11   12   13   14   15   16   17   18   19

    アドレスを 16 進数値として指定します。読み取ったデータを uint32 以外のデータ型にキャストする関数を指定します。

    writememory(mem,0x1c,[0:4:64]);
    rd_d = readmemory(mem,0x1c,16,'OutputDataType',numerictype(0,6,4))
    
    rd_d =
    
       Columns 1 through 10
              0    0.2500    0.5000    0.7500    1.0000    1.2500 ...
                             1.5000    1.7500    2.0000    2.2500
       Columns 11 through 16
         2.5000    2.7500    3.0000    3.2500    3.5000    3.7500
               DataTypeMode: Fixed-point: binary point scaling
                 Signedness: Unsigned
                 WordLength: 6
             FractionLength: 4

    ボードにアクセスする必要がなくなったら、JTAG 接続を解放します。

    release(mem);
    

    入力引数

    すべて折りたたむ

    aximanager オブジェクトとして指定された JTAG ベースの AXI マネージャー IP またはイーサネット ベースの AXI マネージャー IP への接続。

    バージョン履歴

    R2017a で導入