2 Replies Latest reply on May 20, 2020 12:53 AM by MoTa_728816
      • 2. Re: Community Translation - Retrieving Data from a PSoC® 3/ PSoC 5LP Verilog Component Implemented in PLDs with the CPU or DMA - KBA203627
        MoTa_728816

        Original KBA: KBA203627

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

         

        Translated by: MoTa_728816

        ===============================

        タイトル:PSoC® 3/ PSoC 5LP CPU か DMA で Verilog で PLD に実装されたコンポーネントからデータを取得する方法 - 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 を他のデスティネーションへ転送することも可能です。

        ===============================

        20-May-2020

        moto