PSoC® 3/ PSoC 5LP CPU か DMA で Verilog で PLD に実装されたコンポーネントからデータを取得する方法 - KBA203627 - Community Translated (JA)

Version 1

    Community Translated by MoTa_728816         Version: **

     

    Translation - English: Retrieving Data from a PSoC® 3/ PSoC 5LP Verilog Component Implemented in PLDs with the CPU or DMA - KBA203627

     

    質問:

    UDB ブロックの PLD を使用した Verilog コンポーネントのデータを CPU/DMA から読むのにはどうしたら良いですか?

     

    回答:

    PLD を使用した Verilog コンポーネントでは内部の信号の値を保存できるハードウェアレジスタはありません。そのため、CPU/DMA がこのコンポーネントから直接データを読むことはできません。コンポーネントから読む一つの方法は、目的の信号を出力ピンに出力してそのピンをステータスレジスタに接続することです。

     

    注意:もしUDB コンポーネント PLD の入力または出力が PI/PO バスで固定されたデータパスと結合されている場合、それは CPU/DMA から読むことが可能です。PI/PO バスは UDB ステータス/コントロールレジスタと同じ 8-bit バスを共有しています。

     

    以下は簡単な 3-bit カウンタの例です:

     

    module Mod3Counter

    (

         count,

         clock

    );

         output [2:0] count;

         input clock;

    //`#start body` -- edit after this line, do not edit this line

    reg [2:0] count;

    always @(posedge clock)

    begin

         count <= count+1'd1;

    end

    endmodule

     

    ご覧のように、‘count’ は出力信号を持ちます。下図に示されるように ‘count’ 端子はステータスレジスタに接続されています。

     

    001-1.png

     

    CPU は単にステータスレジスタ (Status_Reg_1) を読むだけで count を読むことが出来ます。DMA のソースアドレスをステータスレジスタのアドレスに設定することで count を他のデスティネーションへ転送することも可能です。