AN82250 PSoC® 3, PSoC 4, and PSoC 5LP Implementing Programmable Logic Designs with Verilog (Japanese).pdf

AN82250
PSoC® 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実
装方法
著者: Vijay Kumar Marrivagu/Antonio Rohit De Lima Fernandes
関連製品ファミリー: CY8C3xxx、CY8C5xxx、CY8C42xx
関連サンプル コード: なし
関連アプリケーション ノート: AN81623、 AN82156
本アプリケーション ノートの最新版または関連プロジェクト ファイルについては、
http://www.cypress.com/AN82250 をご覧ください。
AN82250 は、PSoC® 3、PSoC 4 および PSoC 5LP の PLD 部にプログラマブル デジタル ロジックの設計を実施する方法を説明
します。また、PSoC の汎用デジタルブロック (UDB) およびそれらのプログラマブルロジックデバイス (PLD) のサブブロックを紹介
します。サンプルプロジェクトは、PSoC Creator™内に Verilog ベースのコンポーネントを作成することにより、設計で PLD を使用
する方法を説明します。
目次
はじめに .................................................................... 1
PSoC UDB ............................................................... 2
2.1
PSoC UDB 内の PLD のアーキテクチャ ............ 2
3
PSoC Creator ........................................................... 5
4
サンプル プロジェクト .................................................. 6
1
2
付録 B: マクロセル構成図 ........................................ 23
C
付録 C: シーケンス検出器の Verilog コード .............. 24
D
付録 D: ビルド後の設計の注意事項 ......................... 27
D.1
プロジェクトの報告ファイル .............................. 27
D.2
静的タイミング解析 .......................................... 27
4.1
Verilog コンポーネントの作成: Counter4Bit ....... 9
改訂履歴 .......................................................................... 28
4.2
Verilog コンポーネントの作成: SeqDetector ..... 16
ワールドワイド販売と設計サポート .................................... 29
5
データパス設計対 PLD ベースの設計 ....................... 20
6
まとめ ...................................................................... 20
6.1
7
B
その他の情報 ................................................. 20
関連リソース ............................................................ 21
著者について ............................................................ 21
A
付録 A: PSoC PLD と競合他社の CPLD とのリソース
比較 .......................................................................... 22
1 はじめに
PSoC 3、PSoC 4 および PSoC 5LP (以降は PSoC と記載) は単なるマイクロコントローラ以上のものです。PSoC により、
マイクロコントローラ、コンプレックス プログラマブル ロジック デバイス(CPLD)、および高性能アナログの機能を統合し、他に
例を見ない柔軟性を得ることができます。これにより、費用、基板面積、消費電力、および開発時間を低減できます。
注:PSoC 41xx に UDB が備えられていないため、このアプリケーションノートは適用されません。
このアプリケーションノートは、PSoC の汎用デジタルブロック (UDB) 内の PLD を紹介し、PSoC Creator コンポーネントを作
成することにより、それらを使用する方法を説明します。それは、コンプレックス プログラマブル ロジック デバイス (CPLD) 機
能を PSoC に移植するための効果的な最初のステップです。このアプリケーションノートをお読みいただいた後は、PSoC
PLD に詳しくなり、PSoC Creator を使用して Verilog ベースの独自のカスタム コンポーネントを作成することができます。
www.cypress.com
文書番号: 001-89367 Rev. *B
1
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
PSoC のデジタル機能の詳しい活用方法については、次のステップとして「AN82156 – PSoC 3, PSoC 4 and PSoC 5LP
Designing PSoC Creator Components with UDB Datapaths」をお読みください。
注:これは上級のアプリケーションノートであり、読者が PSoC Creator に精通していることを前提にしています。PSoC に初
めてのユーザは、「AN54181 – Getting Started with PSoC 3」、「AN79953 – Getting Started with PSoC 4」および
「AN77759 – Getting Started with PSoC 5LP」をご参照ください。PSoC Creator が初めての方は、PSoC Creator ホームページを
ご参照ください。
このアプリケーションノートは、デジタル設計および Verilog の基礎的な知識があることを前提にしています。これらの概念が
初めてであれば、「AN81623 – PSoC 3 and PSoC 5LP Digital Design Best Practices」および「KBA86336 – Just Enough
Verilog for PSoC」をご参照ください。関連の PSoC デジタル設計のリソースは「参考資料」節に記述されています。
2 PSoC UDB
PSoC は、汎用デジタルブロック (UDB) と呼ばれる小型、高速、低電力デジタル ブロックのアレイによってプログラマブル
ロジックを実装しています。PSoC のデバイスは最大 24 個の UDB があります。図 1 に示すように、UDB は 2 個の小型プログラマ
ブル ロジック デバイス (PLD)、1 個のデータパス モジュール、および 1 個のステータス コントロール ロジックから成っています。
図 1. UDB のブロック図
PLD
Chaining
PLD
12C4
(8 PTs)
PLD
12C4
(8 PTs)
Clock
and Reset
Control
Status and
Control
Datapath
Datapath
Chaining
Routing Channel
名前が示す通り、プログラマブル ロジックは、論理素子 (AND、OR、INVERT および FLIP-FLOP) のアレイを備えている
デバイス ファミリです。一般的に、PLD は、特定のロジック機能を実行するよう設定できる回路です。
PSoC PLD は、レジスタ付きまたは組み合わせ積和ロジック、ルックアップ テーブル、マルチプレクサ、ステート マシン、および
データパス動作の制御などを作成するのに使用されます。UDB データパスの詳細については、AN82156 をご参照ください。
2.1
PSoC UDB 内の PLD のアーキテクチャ
PSoC PLD は、ほとんどの標準 PLD と同様、AND アレイの後に OR アレイが続きます。それらの両方はプログラム可能です。
これは、普通、積和アーキテクチャと呼ばれています。
AND アレイ内の 8 本のプロダクト ターム (PT) に 12 本の入力を供給します。各 PT 内で、入力の真 (T) またはその補数 (C) を
選択できます。PT の出力は OR アレイへの入力となります。OR ゲートの出力はマクロセル (MC) に提供されます。マクロセルは、
追加の組み合わせロジックを持ったフリップ フロップです。
www.cypress.com
文書番号: 001-89367 Rev. *B
2
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
図 2 に示すように、各 UDB に 2 個の PLD があり、それぞれには 8 本の PT と 4 個のマクロセルがあります。PSoC には最大
48 個の PLD があり、そのため最大 192 個のマクロセルと最大 384 本の PT があります。各 PLD は独立しています。また、
キャリーチェーンを介して接続するか、またはデジタル システム インターコネクト (DSI) に接続することができます。
付録 A では、PSoC PLD リソースを競合他社の同じサイズの PLD と比較します。
図 2. PSoC PLD の構造
PT0
PT1
PT2
PT3
PT4
PT5
PT6
PT7
IN0
TC
TC
TC
TC
TC
TC
TC
TC
IN1
TC
TC
TC
TC
TC
TC
TC
TC
IN2
TC
TC
TC
TC
TC
TC
TC
TC
IN3
TC
TC
TC
TC
TC
TC
TC
TC
IN4
TC
TC
TC
TC
TC
TC
TC
TC
IN5
TC
TC
TC
TC
TC
TC
TC
TC
IN6
TC
TC
TC
TC
TC
TC
TC
TC
IN7
TC
TC
TC
TC
TC
TC
TC
TC
IN8
TC
TC
TC
TC
TC
TC
TC
TC
IN9
TC
TC
TC
TC
TC
TC
TC
TC
IN10
TC
TC
TC
TC
TC
TC
TC
TC
IN11
TC
TC
TC
TC
TC
TC
TC
TC
T
T
T
T
T
T
T
T
MC0
OUT0
T
T
T
T
T
T
T
T
MC1
OUT1
T
T
T
T
T
T
T
T
MC2
OUT2
T
T
T
T
T
T
T
T
MC3
OUT3
AND
Array
OR
Array
図 3 には、PSoC PLD にマップされた論理式の例を示します。
図 3. PLD にマップされた論理式
www.cypress.com
A
B
C
D
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
TC
IN4
TC
TC
TC
TC
TC
TC
TC
TC
IN5
TC
TC
TC
TC
TC
TC
TC
TC
IN6
TC
TC
TC
TC
TC
TC
TC
TC
IN7
TC
TC
TC
TC
TC
TC
TC
TC
IN8
TC
TC
TC
TC
TC
TC
TC
TC
IN9
TC
TC
TC
TC
TC
TC
TC
TC
IN10
TC
TC
TC
TC
TC
TC
TC
TC
IN11
TC
TC
TC
TC
TC
TC
TC
TC
T
T
T
T
T
T
T
T
MC0
T
T
T
T
T
T
T
T
MC1
T
T
T
T
T
T
T
T
MC2
OUT2
T
T
T
T
T
T
T
T
MC3
OUT3
X = (A & B) | (~C & D)
Y = (A & B) | ( C & D)
文書番号: 001-89367 Rev. *B
X
Y
3
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
マクロセルのアーキテクチャは図 4 に示されます。マクロセル出力はレジスタ付き出力、または組み合わせ出力のいずれかです。
付録 B では、2 つの例を使ってマクロセルを介したデータフローを説明します。詳細情報については、使用しているデバイス
のテクニカル リファレンス マニュアルの UDB 章のマクロセルの節をご参照ください。
図 4. PSoC PLD マクロセルのアーキテクチャ
XOR Feedback (XORFB)
00: D FF
01: Arithmetic (Carry)
10: T FF on high
11: T FF on low
(from prev MC)
XORFB[1:0]
SSEL
selin
cpt1
cpt0
3
2
1
0
CONST
1
1
0
To macrocell
read-only register
Constant (CONST)
0: D FF true in
1: D FF inverted in
0
Set Select (SSEL)
0: Set not used
1: Set from input
1
set
D Q
From OR gate
clk
out
0
QB
res
pld_en
reset
1
0
COEN
Carry Out Enable (COEN)
0:Carry Out disabled
1: Carry Out enabled
selout
RSEL
BYP
Output Bypass (BYP)
0: Registered
1: Combinational
Reset Select (RSEL)
0: Set not used
1: Set from input
(to next MC)
www.cypress.com
文書番号: 001-89367 Rev. *B
4
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
3 PSoC Creator
PSoC Creator は、ハードウェア開発に対応した回路図ベース
の環境を提供します。それは、次の 2 つの大まかな方法で
UDB PLD 内にロジック機能とステート マシンを実装すること
ができます。
1. Verilog: PSoC Creator は、ハードウェア記述言語 (HDL)
である Verilog に対応しています。Verilog を使用して、
PSoC UDB にマップされるデジタル機能を実装できます。
このプロセスでは、PSoC Creator に備えられた Verilog
コンパイラである Warp™合成ツールを使用します。
このアプリケーションノートは、Verilog ベースのコンポーネント
の作成方法を説明します (図 5 をご参照ください)。
2. 回路図: このプロセスは、必要な機能を実行する
ために個別のゲート (AND、OR、XOR、NOT)、DFF、
および他のデジタル論理ブロックを配線することを必要
とします。PSoC Creator は、すべての論理演算だけ
でなく、マルチプレクサ、ルックアップ テーブル (LUT)、
および他の簡単な PLD ベースの機能にもゲート記号
を提供します。
また、PSoC Creator は作成済み、且つテスト済みの
標準ペリフェラル コンポーネントも提供します。これら
のコンポーネントは、PLD とデータパスの両方を含む
UDB アレイにマップされます。その一部を図 6 に示し
ます。これらのコンポーネントを使用するのは、Verilog
を使わずに PSoC の PLD 機能を使用する際の最も簡
単な方法です。
Verilog の詳細については、「KBA86336 – Just Enough
Verilog for PSoC」をご参照ください。
図 6. PSoC Creator 内のデジタル コンポーネント
注:Warp の詳細については、PSoC Creator の Warp Verilog
リファレンス ガイド (Help > Documentation) をご参照ください。
図 5. Verilog ベースのコンポーネント
www.cypress.com
文書番号: 001-89367 Rev. *B
5
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
4 サンプル プロジェクト
PSoC について学ぶための最良の方法の 1 つは、それを使用することです。このサンプル プロジェクトでは、簡単な PLD
ベースの Verilog コンポーネントを作成する手順について説明します。
まず、アプリケーションノートのランディング ページで AN82250.zip ファイルをダウンロードします。プロジェクトを見るために、その
ファイルをフォルダに解凍して、PSoC Creator で AN82250.cywrk ファイルを開きます。このプロジェクトは、回路図面の指示に
従って CY8CKIT-001 PSoC 開発キット (DVK) の PSoC 3 で作業するよう設計しました。少し変更すると、他の開発
プラットフォームで実行できます。このプロジェクトをビルドして PSoC DVK にプログラムします。
このサンプル プロジェクトでは、ファームウェアを必要とせず、5 ビットのシーケンス検出器をハードウェアに完全に実装します。
回路図面の詳細については、図 7 をご参照ください。 このプロジェクトの重要な特長は、回路図面に表示されている全ての
コンポーネントが、クロックとピンを除き、UDB PLD に実装されていることです。
このプロジェクトは 2 進数のパターンを入力とします。パターンは、PSoC DVK での 2 個の押しボタン式スイッチにより生成さ
れます。「SW_1」スイッチのボタンを押すと論理 0、また「SW_2」スイッチのボタンを押すと論理 1 と解釈されます。検出器の
状態を示すために、4 個の出力で、DVK 上の LED を駆動します。
PsoC をリセットすると、LED が灯り、PSoC が入力受け入れ準備 (即ち、スイッチを押すこと) ができたことを示します。PSoC
は図 8 に示した状態図に従います。不完全ではあるが、正しいシーケンスを入力すると、LED は消えて、部分的なシーケンス
が入力されたことを示します。間違えてスイッチを押すと、4 個の LED が灯ります。完全な 5 ビット シーケンスを正しく入力すると、
LED は 2 進数でカウントし始めます。
図 7. サンプル プロジェクト用の TopDesign 回路図面
www.cypress.com
文書番号: 001-89367 Rev. *B
6
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
入力から出力への信号の流れは以下の通りです。

2 個の押しボタン スイッチの入力は、デバウンサ コンポーネントを使って跳ね返りが抑えられ、エッジが検出されます。
このコンポーネントをアクセスするためには、PSoC Creator をコンポーネント パック 4 かそれ以降のものに更新してください。

入力ピンは、抵抗プルアップとして設定されます。そのため、押しボタンの入力は、スイッチを押すとハイからローに変化し
ます。従って、デバウンサの「ネガティブ エッジでの検出」出力は、スイッチが押されたことが有効であることを示すために
使用されます。

その後、これらの信号は、10110 のシーケンスを検出するよう設定された SeqDetector コンポーネントに行きます。この
パターンは、コンポーネントのカスタマイザで 0 (00000) ~ 31 (11111) の間の値を入力することで変更できます (図 9 を
ご参照ください)。

シーケンス全体を正しく入力すると、「検出」出力がアサートされます。入力をたった一度だけ間違えても、「再起動」出力
がアサートされます。

「検出」信号がアサートされると、4 ビット カウンターはカウントし始めます。それまでは、リセット状態が維持されます。
カウンター周期は、コンポーネントのカスタマイザ内に 1 ~ 15 の間の望ましい 4 ビット周期値を入力することで調整できます
(図 12 をご参照ください)。

「再起動」および「検出」信号は出力のマルチプレクサを制御して、図 8 の状態図に基づき 4 個の LED を駆動します。
図 8. サンプル プロジェクトの状態図
Correct SW press
LEDs ON
Wrong
SW
press
Reset
Reset/
Wrong Sequence
ct
r r e e ss
Co pr
SW
detect, restart = 0,1
es
W
ro
s
s
SW Press 5 Correct
detect, restart = 1,0
ss
Wrong SW press
p re
gS
W
es
p re
Wr
on
pr
W
gS
Correct SW
press
LEDs OFF
SW
on
Wr
detect, restart = 0,0
ng
Correct SW
press
pr
ss
SW Press 1 Correct
ro
W
ng
SW
LEDs
counting
SW Press 2 Correct
SW Press 4 Correct
detect, restart = 0,0
detect, restart = 0,0
LEDs OFF
Co
rre
ct
SW
pr
es
s
SW Press 3 Correct
detect, restart = 0,0
Co
rre
c
W
tS
pr
es
s
LEDs OFF
LEDs OFF
www.cypress.com
文書番号: 001-89367 Rev. *B
7
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
図 9. SeqDetector コンポーネントのカスタマイザ
図 10. カウンタ コンポーネントのカスタマイザ
注: 4 ビット カウンタ用の Verilog ファイルとシーケンス検出器コンポーネントを表示するために、Workspace Explorer の
Components タブに移動してください。
PSoC PLD を効果的に使用するための重要な点は、PSoC Creator で Verilog ベースのコンポーネントを作成することです。
「KBA86338 – Creating a Verilog-based Component」では、Verilog ベースのコンポーネントの作成プロセスをまとめます。
事例として SeqDetector と Counter4Bit コンポーネントを使用すると、このプロセスについて理解できるようになります。
www.cypress.com
文書番号: 001-89367 Rev. *B
8
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
4.1
Verilog コンポーネントの作成: Counter4Bit
最も簡単なカスタム Verilog ベースのコンポーネントの一つは、同期リセットとイネーブル機能を備えた 4 ビットのアップカウンタです。
4.1.1 4 ビット カウンタ コンポーネントの作成手順
既存のプロジェクトに新しいコンポーネントを追加することができますが、この事例では、既存のプロジェクトが無い状態から始めます。
PSoC Creator を起動して、新規プロジェクトを作成します。この事例では、図 11 に示すように、「MyComponents」を
プロジェクト名とします。
注: Creator 3.3 およびそれ以降の場合、新規プロジェクトの作成ダイアログは変更されました。Design Project のダイアログ内で、
Target Device を選択し 、 使用し てい る デバイ スを選 んで、 それか ら Next をク リック しま す。次の画面で、 Empty
Schematic を選択し、Next をクリックします。最後の画面で、ワークスペースおよびプロジェクト名を「MyComponents」に変
更し、Finish をクリックします。
1.
図 11. 新規プロジェクトのダイアログ ボックス
2.
Workspace Explorer の Source タブで、MyComponents ワークスペースを右クリックして、Add > New Project を
クリックします。
3.
この新規プロジェクトをコンポーネント ライブラリに設定するために、New Project ダイアログ ボックスで Other タブをク
リックして PSoC Library を選択します( 図 12 をご参照ください)。この例でそれに「MyLibrary」と名付け、ロケーションを
デフォルト値のままにします。
カスタム コンポーネントを個別のライブラリ プロジェクトで作成したほうが良いです。これにより、コンポーネントの管理と
再利用が簡単になります。
図 12. ライブラリ プロジェクトを追加する
www.cypress.com
文書番号: 001-89367 Rev. *B
9
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
注: Creator 3.3 およびそれ以降の場合、新規プロジェクトの作成ダイアログは変更されました。ダイアログでは、Library
project を選択し、Next をクリックします。ライブラリに「MyLibrary」という名前をつけて、Finish をクリックします。
作成したライブラリに新しいコンポーネントを以下の通りに追加します。
4.
Components タブで、「MyLibrary」プロジェクトを右クリックして、コンテキスト メニューから Add Component Item を
クリックします(図 13 をご参照ください)。
バージョン番号をコンポーネント名に含めるのは良いやり方です。コンポーネント名に「_vX_Y」タグを加えます (その内、
「X」はメジャーバージョンであり、「Y」はマイナー バージョンです)。PSoC Creator はバージョン管理機能を持っていて、
コンポーネントの複数のバージョンを追跡できます。
5.
Symbol Wizard コンポーネントのテンプレートを選択して、コンポーネントに「Count4Bit_v1_00」と名付けます。
図 13. カスタム コンポーネントを作成する
空のシンボルから始めることができますが、この事例では、時間をかけないためにウィザードを使用します。詳細につい
ては、Help > Documentation にあるコンポーネント作成者ガイドをご参照ください。
6.
Create New ボタンをクリックして、コンポーネントのシンボル ウィザードを起動します。
このウィザードでは、入力と出力を定義するよう要求して、この情報を使ってコンポーネント シンボルを作成します。
7.
図 14 に示すように、回路図シンボル用に 3 個の入力端子と 2 個の出力端子を定義します。
図 14. Count4Bit 用のシンボル作成ウィザード
www.cypress.com
文書番号: 001-89367 Rev. *B
10
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
図 15 に示すように、OK をクリックして、シンボル回路図でシンボルを生成します。
図 15. 4 ビット カウンタ用の最初のシンボル
図 16 に示すように、コンポーネントのサイズを変更でき、コンポーネントの外観も変更できます。
図 16. 4 ビット カウンタの最終シンボル
8.
シンボル回路図で空きスペースを右クリックして、Properties をクリックします。図 17 に示すように、プロパティ フィールドの
Symbol セクションで、Doc.CatalogPlacement の省略記号 (…) をクリックします。
図 17. シンボル属性のダイアログボックス
9.
図 18 に示すように、Catalog Placement ダイアログで、「Community/Digital/Logic/Counter 4-bit」を入力します。
これにより、カウンタは、Component Catalog ウィンドウの Community タブで、「Digital」フォルダの「Logic」サブフォルダの
中に配置されます。そのカタログ名は「Counter 4-bit」です。
図 18. カタログ配置を設定する
www.cypress.com
文書番号: 001-89367 Rev. *B
11
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
カウンタ用に設定可能な周期値を持たせるために、コンポーネントのパラメータを追加する必要があります。
10. シンボル回路図で空きスペースを右クリックして、Symbol Parameters をクリックします (図 19 をご参照ください)。
パラメータの名、タイプ、およびデフォルトの値を、それぞれ「period」、「uint8」、および「15」に指定します。このパラメーター
により、ユーザーはカスタマイザでカウンターの周期値を指定できます (図 10 をご参照ください)。
図 19. Count4Bit のシンボル パラメータ
11. Parameter Definition ダイアログ ボックスの Misc セクションで Description フィールドをクリックして、このパラメータ
用に記述します。
Validators フィールドをクリックして、パラメータの検証ツールを設定します。検証ツールは、パラメータが許容入力範囲
以内にあるかをチェックします。
図 20 のように、周期値が 1~15 の間にあることを保証するよう検証ツールを設定します。OK をクリックして、変更を適
用します。
図 20. Count4Bit の検証ツールを追加する
www.cypress.com
文書番号: 001-89367 Rev. *B
12
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
12. 図 21 に示すように、Parameter Definition ダイアログ ボックスで、Hardware フィールドを True にセットします。これ
は、パラメーターを Verilog ファイルに渡すために必要です。
図 21. パラメーターのハードウェアへの引き渡し
次のステップとして、回路図シンボルを Verilog ファイルにリンクさせます。PSoC Creator は、コンポーネント シンボルに
基づいて Verilog シェルを生成します。
13. このためには、シンボル回路図で空きスペースを右クリックして、Generate Verilog をクリックします。 図 22 のように、
Generate Verilog ダイアログ ボックスでデフォルト設定のままにして、Generate をクリックします。
図 22. シンボル用の Verilog ファイルの生成
Target の値は、特定のデバイスの設定を制限するのに使用できますが、この事例ではデフォルト設定を使用します。
作成したシンボルの Verilog ファイルが出来上がります。
注: Verilog ファイルには、3 組の#start header - #end があります。このファイルを編集する時、全てのコードをこれらの
セクション内に配置してください。これらのセクション外での Verilog ファイルへの変更は、Verilog ファイルを再生成すると無く
なります。
この時点で、Verilog でカウンタを記述できるようになります。参照のために、完全なコードはコード 1 に示します。
www.cypress.com
文書番号: 001-89367 Rev. *B
13
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
4.1.2 Verilog 設計: 4 ビット カウンター
まず、出力をレジスタ付き出力にします。Count4Bit_v1_00 モジュールの I/O リストを次のように変更します。
output reg [3:0] count,
output reg tc,
注: Verilog ファイルを再生成する場合、これらの変更を再び行う必要があります。また、これらの定義はファイル内のどこか
他の所で行うことはできません。
次に、これが同期設計であるため、Verilog ファイルで#start body と#end コメントの間に always ブロック (およびクロッ
ク エッジの情報) を加えます。
always @ (posedge clock)
begin
. . .
end
注: タイミングと同期化の失敗の可能性を低減するために、PSoC 設計でポジティブ エッジ クロックを使用したほうが良いです。
カウンタには同期リセット信号があります。この信号がアサートされると、「tc」と「count」の両方をクリアします。
if(reset)
begin
count <= 4'b0000;
tc <= 1'b0;
end
注:非同期リセット/プリセット信号もサポートされます。非同期フリップ フロップ合成の詳細については、「Warp Verilog
Reference Guide」の 3.3.2 節をご参照ください。
en 入力は、ハードウェア イネーブルです。この入力が LOW の場合、出力はアクティブのままであるが、コンポーネントの状
態は変わりません。
if(en)
/* start counting */
begin
. . .
end
else
/* preserve state */
begin
count <= count;
tc <= tc;
end
count が周期値に達すると、count が period に等しいである限り、端末のカウント出力 tc は論理 1 となる必要がありま
す。
if(count == period)
begin
tc <= 1'b1;
count <= 4'b0000;
end
www.cypress.com
文書番号: 001-89367 Rev. *B
14
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
そうでないと、4 ビット カウンターは 0 から period までカウントし、ポジティブ エッジ毎に count 出力をインクリメントする必
要があります。
else
begin
count <= count + 1;
tc <= 1'b0;
end
Verilog ファイルへの変更が終わったら、保存します。ここで、4 ビット アップ カウンターの Verilog 記述が完了します。完全な
コードはコード 1 に示します。
コード 1. 4 ビット カウンターの完全な Verilog 設計
module Count4Bit_v1_00 (
output reg [3:0] count,
output reg tc,
input
clock,
input
en,
input
reset
);
parameter period = 0;
//`#start body` -- edit after this line, do not edit this line
always @ (posedge clock)
begin
if(reset)
begin
count <= 4'b0000;
tc <= 1'b0;
end
else
begin
if(en)
begin
if(count == period)
begin
tc <= 1'b1;
count <= 4'b0000;
end
else
begin
count <= count + 1;
tc <= 1'b0;
end
end
else
begin
count <= count;
tc <= tc;
end
end
end
//`#end` -- edit above this line, do not edit this line
endmodule
www.cypress.com
文書番号: 001-89367 Rev. *B
15
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
「MyComponents」プロジェクトでこのコンポーネントを使用するには、「MyLibrary」を依存関係として設定する必要があります。
そうするためには、Source タブで MyComponents を右クリックして、Dependencies を選択します。図 23 に示すように、
User Dependencies の下にある「MyLibrary」のチェックボックスがチェックされていることを確認してください。
図 23. コンポーネントのライブラリ依存関係を追加
設計で使用するためには、Component Catalog プロジェクトの TopDesign.cysch ファイルを開いて、Component Catalog
に移動します。4 ビット カウンタは Community タブに配置されています。それを回路図にドラッグしドロップして、必要な接続
を行います。
注:ライブラリ プロジェクトの作成と使用方法については、PSoC Creator のヘルプ記事「Library Component Project」と
「Basic Hierarchical Design Tutorial」をご参照ください。
次は、Verilog でシーケンス検出器コンポーネントを作成します。
4.2
Verilog コンポーネントの作成: SeqDetector
SeqDetector コンポーネントはこのサンプルプ ロジェクトの中心です。それは、PSoC PLD に実装された設定可能な 5 ビット
の 2 進数のシーケンス検出器です。
4.2.1 SeqDetector コンポーネントの作成手順
SeqDetector の作成手順はカウンタと同様です。
1.
Workplace Explorer の Components タブを選択します。MyLibrary プロジェクトを右クリックして、Add Component
Item をクリックします。
2.
Symbol Wizard コンポーネントのテンプレートを選択して、コンポーネントに SeqDetect_v1_00 と名付けます。
3.
Create New ボタンをクリックして、コンポーネント シンボル ウィザードを起動します。
4.
図 24 のように、回路図シンボル用に 4 個の入力端末と 2 個の出力端末を定義します。
www.cypress.com
文書番号: 001-89367 Rev. *B
16
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
図 24. SeqDetector 用のシンボル作成ウィザード
5.
図 25 に示すように、OK をクリックして、シンボル回路図でシンボルを生成します。
図 25. シーケンス検出器の最初のシンボル
図 26 に示すように、コンポーネントのサイズを変更できます。
図 26. シーケンス検出器の最終のシンボル
6.
シンボル回路図で空きスペースを右クリックして、Properties をクリックします。
プ ロ パ テ ィ フ ィ ー ル ド の Symbol セ ク シ ョ ン で 、 Catalog Placement の 省 略 記 号 (…) を ク リ ッ ク し ま す 。
CatalogPlacement で Community/Digital/Logic/Sequence Detector 5-bit を入力します。
これにより、SeqDetector は、Component Catalog の Community タブで、「Digital」フォルダの「Logic」サブフォルダの
中に配置されます。そのカタログ名は「Sequence Detector 5-bit」です。
www.cypress.com
文書番号: 001-89367 Rev. *B
17
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
7.
SeqDetector のシーケンス値を設定可能にするために、コンポーネントのパラメータを追加します。
シンボル回路図で空きスペースを右クリックして、Symbol Parameters をクリックします。
図 27 のように、パラメーターの名称、タイプ、および初期値をそれぞれ「sequence」、「uint8」、および「22」に指定します。
図 27. SeqDetect 用にパラメータを定義する
8.
Parameter Definition ダイアログボックスの Misc セクションで Description フィールドをクリックして、このパラメータ
用に記述します。
9.
Validators フィールドをクリックして、シーケンスの検証ツールを設定します。図 28 のように、シーケンス値が 0~31 の
間にあることを保証するために検証ツールを設定します。OK をクリックして、変更を適用します。
図 28. SeqDetect 用の検証ツール
10. Parameter Definition ダイアログ ボックスに戻った時、Hardware フィールドを True にセットします。
11. このためには、シンボル回路図で空きスペースを右クリックして、Generate Verilog をクリックします。
次のステップとして、回路図シンボルを Verilog ファイルにリンクさせます。
12. Generate Verilog ダイアログ ボックスですべての設定を初期値のままにして、Generate をクリックします。
シーケンス検出器モジュール用の完全な Verilog コードは、付録 C に記載されています。次の節では、コードの主なパーツを
説明します。
www.cypress.com
文書番号: 001-89367 Rev. *B
18
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
4.2.2 Verilog 設計: SeqDetector
カウンタと同様、最初の段階として、SeqDetect モジュールの端末リストに出力を登録します。
output reg detect,
output reg restart,
シーケンス検出器の重要な要素は、合計 6 状態あるステートマシンです (図8)。それぞれの状態に対応したローカル パラメータを
作成するために、下記のコードを #start body コメントの直後に加えます。
localparam START
= 3'd0;
localparam STATE_1 = 3'd1;
localparam STATE_2 = 3'd2;
localparam STATE_3 = 3'd3;
localparam STATE_4 = 3'd4;
localparam DETECT = 3'd5;
状態定義の定数がlocalparam キーワードを使って宣言されることに注意してください。これにより、他のモジュールで同じ名前
の定数と衝突することを防ぎます。
状態変数を「register」タイプとして、パターン変数を「wire」タイプとして宣言します。
reg [2:0] state_curr, state_next;
wire [4:0] pattern = sequence;
シーケンス検出器モジュールには、順次ブロックと組み合わせブロックという 2 個の always ブロックがあります。
always 順次ブロックはポジティブ エッジでトリガーされたフリップ フロップと同じように動作します。
always 組み合わせブロックは、以下の通りに定義されるセンシティビティ リストがあります。
always @ (oneIn or zeroIn or state_curr or pattern)
注: PSoC Creator 用に Verilog、always の文言はセンシティビティ リストを持たなければなりません。
always 組み合わせブロックは、入力をデコードし、入力と現時点での状態に基づいて次の状態を割り当てます。1 か 0 の入
力のいずれかが検出されると、その入力がチェックされ、あるいは現時点での状態が維持されます。
例えば、最初の状態は以下のようです。
if((oneIn & pattern[4]) ||
(zeroIn & !pattern[4]))
begin
state_next <= STATE_1;
end
else
begin
state_next <= START;
end
注: pattern[4]はシーケンスの最初の正しい値を保存します。
他の状態は同様に、コンポーネント入力を pattern[3], … , pattern[0]と比較して、次の状態をデコードします。
Verilog ファイルへの変更が終わったら、保存します。この時点で、シーケンス検出器の設計は完了しました。それを設計で使
用するには、カウンタの節で説明した手順に従います。
www.cypress.com
文書番号: 001-89367 Rev. *B
19
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
5 データパス設計対 PLD ベースの設計
通信、タイミング、および制御アプリケーションは、各機能を支える論理構成に関する要求が異なります。
経験則として、UDB リソースを利用する最適な方法は以下の通りです。


PLD (ランダム ロジック): 制御機能、CPLD 統合、グルーロジック。
データパス (ストラクチャード ロジック): 通信、タイミング、演算。
例えば、以下の、データパス対 PLD で実行された 8 ビット演算と論理演算を考えてみます。
PLD のみにおけるリソース消費
データパスのみにおけるリソース消費
機能
PLD
使用量 (%)
データパス
使用量 (%)
ADD8
5
10.4%
1
4.2%
SUB8
5
10.4%
1
4.2%
CMP8
3
6.3%
1
4.2%
SHIFT8
3
6.3%
1
4.2%
注:率は 24 個の UDB を備えているデバイスで計算されます。
PSoC PLD で複合機能を実行できますが、データパス モジュールを活用しないと、リソース不足になりがちです。
6 まとめ
このアプリケーション ノートでは、UDB PLD を紹介し、PSoC Creator で Verilog ベースのコンポーネントを作成するための設
計プロセスについて説明します。このアプリケーション ノートをお読みいただいた後、PLD アーキテクチャに詳しくなり、
Verilog ベースの独自のカスタム コンポーネントを作成することができます。
PSoC UDB は、デジタル設計に柔軟且つ効果的なアーキテクチャを提供しています。簡単なものからある程度複雑なものま
で広範囲のロジック設計を PSoC の PLD に移植することができます。高度に複雑な設計は、PLD とデータパスを組み合わ
せて使用することで最もよく設計できます。UDB データパスの詳細については、AN82156 をご参照ください。
6.1
その他の情報
付録 A は、リソース カウントに関する、PSoC PLD と競合他社の CPLD との比較表を記載します。
付録 B では、2 つの例を使ってマクロセルを介したデータフローを説明します。
付録 C には、シーケンス検出器モジュール用の完全な Verilog コードを記載します。
付録 D では、プロジェクトの報告ファイルと静的タイミング解析を簡単に説明します。
www.cypress.com
文書番号: 001-89367 Rev. *B
20
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
7 関連リソース
アプリケーション ノート
AN82156 - PSoC 3, PSoC 4 and PSoC 5LP Designing PSoC Creator Components with UDB Datapaths
AN81623 – PSoC 3 and PSoC 5LP Digital Design Best Practices
AN62510 – Implementing State Machines with PSoC 3 and PSoC 5LP
AN61290 – PSoC 3 and PSoC 5LP Hardware Design Considerations
AN72382 – Using PSoC 3 and PSoC 5LP GPIO Pins
AN60580 – SIO Tips and Tricks in PSoC 3 and PSoC 5LP
AN54181 – Getting started with PSoC 3
AN79953 – Getting Started with PSoC 4
AN77759 – Getting started with PSoC 5LP
KB 記事
KBA86336 – Just Enough Verilog for PSoC
KBA86338 – Creating a Verilog-based Component
KBA81772 – Adding Component Primitives / Verilog Components to a Project
Basics of Verilog and Datapath Configuration Tool for Component Creation
ビデオ
以下のビデオは、PSoC Creator および Verilog コンポーネントの作成プロセスについて説明します。
基本
Creating a New Project
Using the Start Page
コンポーネントの作成
PSoC Creator 113: PLD Based Verilog Components
Creating a New Component Symbol
Creating a Verilog Implementation
Creating a Schematic Implementation
著者について
氏名:
Vijay Kumar Marrivagu
役職:
システム エンジニアのプリンシパル
経歴:
デジタル設計と検証で数年の経験。
氏名:
Antonio Rohit De Lima Fernandes
役職:
アプリケーション エンジニア
経歴:
電気工学における B.E (India、Rajasthan、Pilani、BITS)。
www.cypress.com
文書番号: 001-89367 Rev. *B
21
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
A 付録 A: PSoC PLD と競合他社の CPLD とのリソース比較
表 1 では、PSoC PLD リソースを競合他社の同じサイズの CPLD と比較しています。この表では、UDB データパスでのプロ
グラマブル ロジックを考慮に入れていないことに注意してください。PSoC PLD とデータパスの両方を使用すれば、PSoC は
より大きなサイズの CPLD と競争できるようになります。
表 1. PSoC PLD と競合他社の PLD とのマクロセル比較
マクロセル (MC)
ブロック数
ブロック毎の マク
ロセル (MC) 数
ブロック毎の
入力数
プロダクト ターム
(PT) 数
ブロック毎のプロ
ダクト ターム
(PT) 数
スーパセット PSoC 3、PSoC
5LP
192
48
4
12
384
8
CY8C42
32
8
4
12
64
8
128~240*
24
10
36
*
*
4032ZE
32
2
16
36
160
80
4064ZE
64
4
16
36
320
80
40128ZE
128
8
16
36
640
80
XC2C32A
32
2
16
56
112
56
XC2C64A
64
4
16
56
224
56
XC2C128
128
8
16
56
448
56
デバイス
サイプレス PSoC
Altera MAX-II
EPM240
Lattice ispMACH
Xilinx Coolrunner-II
* Altera MAX-II は従来のプロダクト タームのアーキテクチャではありません。
www.cypress.com
文書番号: 001-89367 Rev. *B
22
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
B 付録 B: マクロセル構成図
図 29 および図 30 には、それぞれ D フリップ フロップ (D-FF) と T フリップ フロップ (T-FF) 機能のマクロセルを介したデータ
フローを示します。
図 29. D-FF 機能が有効なマクロセル
00
SSEL
selin
cpt1
cpt0
0
3
2
1
0
1
0
To macrocell
read-only register
1
0
1
out
set
D Q
From OR gate
clk
0
QB
res
pld_en
reset
1
0
0
COEN
RSEL
selout
図 30. T-FF 機能が有効なマクロセル
10
SSEL
selin
cpt1
cpt0
CONST
3
2
1
0
1
0
To macrocell
read-only register
1
0
1
out
set
D Q
From OR gate
clk
0
QB
res
pld_en
reset
1
0
COEN
0
RSEL
selout
www.cypress.com
文書番号: 001-89367 Rev. *B
23
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
C 付録 C: シーケンス検出器の Verilog コード
module SeqDetect_v1_20 (
output reg detect,
output reg restart,
input
clock,
input
oneIn,
input
reset,
input
zeroIn
);
/* Note that the value assigned to the parameter in this line
* has no effect. The actual parameter value is taken from
* the component customizer.
*/
parameter sequence = 0;
//`#start body` -- edit after this line, do not edit this line
/* Six states are required.
* The states follow START -> STATE_1 -> ... -> DETECT if the
* correct inputs are entered. As soon as a wrong input is entered
* the design jumps to the START state. The states are defined as
* localparams (instead of `defines) to limit their scope to this
* module only.
*/
localparam START
= 3'd0;
/* detect, restart = 0, 1 */
localparam STATE_1 = 3'd1;
/* detect, restart = 0, 0 */
localparam STATE_2 = 3'd2;
/* detect, restart = 0, 0 */
localparam STATE_3 = 3'd3;
/* detect, restart = 0, 0 */
localparam STATE_4 = 3'd4;
/* detect, restart = 0, 0 */
localparam DETECT = 3'd5;
/* detect, restart = 1, 0 */
/* registered value to hold 3-bit state */
reg [2:0] state_curr, state_next;
/* pattern[4:0] holds the user-supplied sequence value
* suppose sequence = 22 then pattern[4:0] = 5'b10110
* Note that pattern[4] is the first-entered user input
*/
wire [4:0] pattern = sequence;
/* Sequential block of the state machine - outputs are assigned here */
always @ (posedge clock)
begin
/* reset causes the component to enter the START state */
if(reset)
begin
state_curr <= START;
/* Immediately assign detect and restart values */
detect <= 1'b0;
restart <= 1'b1;
end
else /* reset is not asserted - go through states */
begin
state_curr <= state_next;
/* Assign 'detect' value - 1 only in DETECT state, 0 otherwise */
if (state_next == DETECT)
begin
detect <= 1'b1;
end
else
www.cypress.com
文書番号: 001-89367 Rev. *B
24
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
begin
detect <= 1'b0;
end
/* Assign 'restart' value - 1 only in RESTART state, 0 otherwise*/
if (state_next == START)
begin
restart <= 1'b1;
end
else
begin
restart <= 1'b0;
end
end
end
/* Finite State Machine combinatorial block - contains most of the
* combinatorial logic.
*/
always @ (oneIn or zeroIn or state_curr or pattern)
begin
/* If either a one or zero has been entered, take action */
if(oneIn | zeroIn)
begin
case(state_curr)
START:
/* Initial state */
begin
/* check whether the first bit entered is correct */
if((oneIn & pattern[4]) || (zeroIn & !pattern[4]))
begin
state_next <= STATE_1;/* advance to the next state */
end
else
/* revert to the initial state */
begin
state_next <= START;
end
end
STATE_1:
/* First input is correct */
begin
if((oneIn & pattern[3]) || (zeroIn & !pattern[3]))
begin
state_next <= STATE_2;
end
else
begin
state_next <= START;
end
end
STATE_2:
/* Two inputs are correct */
begin
if((oneIn & pattern[2]) || (zeroIn & !pattern[2]))
begin
state_next <= STATE_3;
end
else
begin
state_next <= START;
end
end
www.cypress.com
文書番号: 001-89367 Rev. *B
25
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
STATE_3:
/* Three inputs are correct */
begin
if((oneIn & pattern[1]) || (zeroIn & !pattern[1]))
begin
state_next <= STATE_4;
end
else
begin
state_next <= START;
end
end
STATE_4:
/* Four inputs are correct */
begin
if((oneIn & pattern[0]) || (zeroIn & !pattern[0]))
begin
state_next <= DETECT;
end
else
begin
state_next <= START;
end
end
DETECT:
/* All five inputs are correct! */
begin
/* When in the detect state, if an input is given, show same behavior as START */
/* check whether the bit entered is the correct beginning to a new sequence*/
if((oneIn & pattern[4]) || (zeroIn & !pattern[4]))
begin
state_next <= STATE_1;
end
else /* revert to the initial state */
begin
state_next <= START;
end
end
default:/* we should never get here - reset the component*/
begin
state_next <= START;
end
endcase
end
else /* if neither 1 or 0 have been entered, stay in same state */
begin
state_next <= state_curr;
end
end
//`#end` -- edit above this line, do not edit this line
endmodule
www.cypress.com
文書番号: 001-89367 Rev. *B
26
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
D 付録 D: ビルド後の設計の注意事項
D.1
プロジェクトの報告ファイル
Workspace Explorer ウィンドウの Results タブからプロジェクトのビルド レポート (<project_name>.rpt) をアクセスします。
正常に完了したビルド後に作成されます。以下は、報告ファイルの主な部分です。

技術的なマッピングのまとめ: マクロセル、プロダクト ターム、データパス、ピン、クロック分周器などが図 31 に示されます。
図 31. PSoC Creator プロジェクトのビルド リポート ファイル

合成結果: Verilog コンパイル、構文解析、高レベルの合成、最適化など合成の各段階で生成されたエラーと警告を一覧
表示します。同節は、シンセサイザによって最適化して除去したロジックの詳細情報を含みます。これは、デバッギング
およびトラブルシューティングに役立ちます。

デジタル部の配置: PLD パッキングのまとめ。図 32 図 32 は PLD の利用例を示します。
図 32. PLD パッキングのまとめレポート

デジタル部の配置: PLD パッキングのまとめ: PLD の統計値: 図 33 は、ロジック アレイ ブロック (LAB) 毎の PLD PT と
マクロセルの平均使用量の例を示します。
図 33.PLD の使用量のレポート例

D.2
最終配置のまとめ: コンポーネントの詳細を提示します。同節は、UDB の使用量、占有率、統計値、および配置 (座標)
の詳細を示します。
静的タイミング解析
デジタル設計のデバッグ処理の重要な一部は、静的タイミング解析 (STA) です。STA はデジタル設計を評価し、信号の入出
力間の遅延を計算します。それらの遅延に基づいて、設計で使用される各クロックの最大許容周波数を算出します。
プロジェクトをビルドすると、PSoC Creator は静的タイミング解析レポートを自動的に作成します。このレポートは、各クロック
の周波数を制限する、設計内の重要な部分を提示します。算出された最大周波数が要求されたクロック周波数より小さい場
合、設計内にタイミング違反が存在することを示す警告を表示します。
タイミング違反の回避方法、および PSoC Creator STA 警告の処理の詳細については、「AN81623 – PSoC 3 and
PSoC 5LP Digital Design Best Practices」をご参照ください。
www.cypress.com
文書番号: 001-89367 Rev. *B
27
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
改訂履歴
文書名: AN82250 - PSoC® 3、PSoC 4 および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
文書番号: 001-89367
版
ECN
変更者
発行日
**
4136657
HZEN
09/26/2013
これは英語版 001-82250 Rev. *D を翻訳した日本語版 001-89367 Rev. **です。
*A
4722751
HZEN
04/27/2015
これは英語版 001-82250 Rev. *F を翻訳した日本語版 001-89367 Rev. *A です。
*B
5184202
HZEN
03/22/2016
これは英語版 001-82250 Rev. *H を翻訳した日本語版 001-89367 Rev. *B です。
www.cypress.com
変更内容
文書番号: 001-89367 Rev. *B
28
®
PSoC 3、PSoC 4、および PSoC 5LP の Verilog によるプログラマブル ロジック設計の実装方法
ワールドワイド販売と設計サポート
サイプレスは、事業所、ソリューション センター、メーカー代理店および販売代理店の世界的なネットワークを保持しています。お客様
の最寄りのオフィスについては、サイプレスのロケーション ページをご覧ください。
PSoC®ソリューション
製品
車載用
cypress.com/go/automotive
psoc.cypress.com/solutions
クロック & バッファ
cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
インターフェース
cypress.com/go/interface
サイプレス開発者コミュニティ
照明 & 電源管理
cypress.com/go/powerpsoc
コミュニティ | フォーラム | ブログ | ビデオ | トレーニング
メモリ
cypress.com/go/memory
テクニカル サポート
PSoC
cypress.com/go/psoc
タッチ センシング
cypress.com/go/touch
USB コントローラー
cypress.com/go/usb
ワイヤレス/RF
cypress.com/go/wireless
cypress.com/go/support
PSoC はサイプレス セミコンダクタ社の登録商標です。本書で言及するその他すべての商標または登録商標は、それぞれの所有者に帰属します。
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone : 408-943-2600
Fax : 408-943-4730
Website : www.cypress.com
© Cypress Semiconductor Corporation, 2012-2016. 本文書に記載される情報は、予告なく変更される場合があります。Cypress Semiconductor Corporation
(サイプレス セミコンダクタ社) は、サイプレス製品に組み込まれた回路以外のいかなる回路を使用することに対して一切の責任を負いません。サイプレス セミコン
ダクタ社は、特許またはその他の権利に基づくライセンスを譲渡することも、含意することもありません。サイプレス製品は、サイプレスとの書面による合意に基づ
くものでない限り、医療、生命維持、救命、重要な管理、または安全の用途のために使用することを保証するものではなく、また使用することを意図したものでもあ
りません。さらにサイプレスは、誤作動や故障によって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとして
サイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスク
を負うことを意味し、その結果サイプレスはあらゆる責任を免除されることを意味します。
このソースコード (ソフトウェアおよび/またはファームウェア) はサイプレス セミコンダクタ社 (以下「サイプレス」) が所有し、全世界の特許権保護 (米国およびそ
の他の国)、米国の著作権法ならびに国際協定の条項により保護され、かつそれらに従います。サイプレスが本書面によりライセンシーに付与するライセンスは、
個人的、非独占的かつ譲渡不能のライセンスであり、適用される契約で指定されたサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカ
スタム ソフトウェアおよび/またはカスタム ファームウェアを作成する目的に限って、サイプレスのソース コードの派生著作物をコピー、使用、変更そして作成す
るためのライセンス、ならびにサイプレスのソース コードおよび派生著作物をコンパイルするためのライセンスです。上記で指定された場合を除き、サイプレスの
書面による明示的な許可なくして本ソース コードを複製、変更、変換、コンパイル、または表示することはすべて禁止します。
免責条項: サイプレスは、明示的または黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性または特定目的への適合性の黙
示的な保証が含まれますが、これに限定されません。サイプレスは、本文書に記載される資料に対して今後予告なく変更を加える権利を留保します。サイプレス
は、本文書に記載されるいかなる製品または回路を適用または使用したことによって生ずるいかなる責任も負いません。サイプレスは、誤作動や故障によって使
用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレス製品を使用することを許可していません。生命
維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任
を免除されることを意味します。
ソフトウェアの使用は、適用されるサイプレス ソフトウェア ライセンス契約によって制限され、かつ制約される場合があります。
www.cypress.com
文書番号: 001-89367 Rev. *B
29