第 4 章 FPSM モデルシミュレーションと FPGA 実装による評価
4.2 PMU モデルと各周辺回路シミュレーション
4.2.3 PWM の FPGA 実装
ここで,これまでシミュレーションで確認してきたモデルの中から,代表的なマイコン周辺回路として 8 ビット PWM モデルを選択し,FPGA に実装して実験を行った.市販の ALTERA 社 StratixII 搭載 FPGA ボ ードを用い,別途作成した 8 ビット PWM の Verilog HDL モデルをコンパイルし,FPGA にマッピングした.
図 4-41 にその回路図を示す.
また,図 4-42 に 8 ビット PWM に実装した動作を示す.今回の実験では,パルス幅のデューティー比を 0%から 100%の間でアップ/ダウン変化させ,これを繰り返し自走させる.また,実験用回路には FPGA ボードにあるスイッチを利用して,8 ビット PWM に任意に外部イベントを加えて,停止/再開させる HOLED_RELEASE/HOLED_REQUEST 信号の動作確認も行った.図 4-43 に FPGA に実装した 8 ビット PWM の観測 した波形を示す.
81
図 4-41 FPGA に実装した PMU を用いた 8 ビット PWM の回路図
図 4-42 8 ビット PWM に実装した動作
(a) (b)
図 4-43 FPGA に実装した 8 ビット PWM の波形
PMU① PMU② PMU③
JK-FF
82
ここでは,C レジスタ = 15 ,T レジスタ = 10 ,X レジスタ = 3 が設定された波形になっている.
PMU①はシステムクロックを 15 分周した分解能の信号 CFLAG1 を出力し,PMU②はこの CFLAG1 を 10 回カ ウント後,周期 CFLAG2 を出力する.PMU③は指定されたパルス幅の Low 期間として CFLAG1 を 3 回カウン トし,この結果,JK-FF からはデューティー70%の PWM の波形が出力されているのが観測できた.以上の ようにシミュレーションモデルの波形と同様の動作が確認できた.
次に,FPGA への実装結果を表 4-12 に示す.FPGA 実装では,デバイスは ALTERA 社製 EP1S40F780C58,
ロジックシンセシスは同社から提供される QuartusII Ver6.1 を使用した.図 4-44 にこの実験で使用し た FPGA ボード写真を示す.動作時のシステムクロックは 50MHz とした.また,FPGA ボードには ALTERA 社 NiosII の CPU が搭載されており,これを使用して PMU へのコンテキストの書き込みを行った.8 ビッ ト精度の PWM の FPGA 実装では,4K ビット× 3 個,計 12K ビットメモリと 345 個の LE (Logic Elements) を使って実装されている.ここで使用された 8 ビットのカウンタ/タイマ,すなわち 1 個の PMU は 4K ビ ットのメモリと 115 個の LE で実装されている.
表 4-12 FPGA 実装結果
図 4-44 FPGA 実装ボード写真
以上,FPSM のシミュレーションモデルに実装し,動作検証したマイコン周辺回路機能を表4-13 にま とめる.
83
表 4-13 マイコン周辺回路機能の検証結果
Number of PMUs
Peripheral Option × 2 × 3 × 8
Clocked Serial Interface
Receiver(Rx)
(8 bits)
✓
Transmitter(Tx) ✓
PWM 8 bit Accuracy 1 output ✓
16 bit Accuracy 2 output ✓
FIFO Memory R/W Buffer Size up to 16 Bytes ✓
up to 256 Bytes ✓