PSoCでオリジナルコンポーネントの値をCPUに渡す方法:初級編

Receive a your original component value to C on PSoC
 
サイプレス社の「プログラムできるSoC」ことARM 32bit搭載マイコン・PSoC。Verilog言語を通じてFPGAのような論理回路をハードウェアレベルで作れるというのが最大の売り文句なのですが、C言語で組んだARMマイコン制御ブロックと連携しようとすると難易度は格段に跳ね上がります。C言語とVerilogを橋渡しする方法はいくつかあるので、私が独自に調べた手法を紹介していきます。

はじめはステータスレジスタとコントロールレジスタを介してデータを取得するする方法です。これは本来データの取得とは独立してコンポーネントの状態・制御を行うために使用するレジスタなのですが、これらレジスタのための標準コンポーネントとAPIがPSoC Creatorに含まれているので、手っ取り早さならこれが一番です。

欠点は、複数本のワイヤを引き出すことより、8bit、16bitとデータ幅が大きいほど、追加のコンポーネントリソースを追加せざるを得ず、結果としてリソースの消費が激しくなることです。

まずはPSoC CreatorのSynbol Wizardでクロック入力端子と8bit幅を持つ出力端子をもつを作成します。
このコンポーネントではクロックエッジが立ち上がるたびにresultの値を1つずつ増やしています。
サンプルプロジェクトのダウンロードはこちらからどうぞ。
2019/06/10