はじめに

こんにちは。トットです。

このコラムのタイトルを見て、 『 あれ? 』 と思う人もいるかもしれません。

 

実は、このコラム 『 同期式回路と非同期式回路の違い 』 のシリーズには、続きがあったのです。

 

 『 同期式回路と非同期式回路の違い 』 のシリーズをご覧になっていない方は、 『 同期式回路と非同期式回路の違い~ 比較編 ~ 』 から見ていただけると幸いです。*

あらすじ

前コラムを書き終わり、 『 FPGA は、同期式回路で設計すべきだと理解しました 』 と先輩に伝えたところ、

 

私: 『 16 個です。 』

 

先輩 : 『 17 bit カウンタだったら、LE 何個消費すると思う ? 』

 

私: 『 LE は 4 入力 1 出力の LUT と1つのレジスタから、構成されているから・・・ 17 個 ? 』

 

先輩 : 『 30 点!回路図と言語の両方で 17 bit カウンタを作ってごらん 』

 

といわれたので、17 bit カウンタを作り確認してみました。

前回同様、回路図で 17 bit 同期式カウンタを作ってコンパイル・レポートを確認したところ

私: 『 あれ? LE を 23 個消費している・・・。』

 

なぜだろうと考えたところ、答えは、先ほどの私の言葉の中にありました。

 

同期式カウンタは、ビット数が増えていくにつれて、and 素子の入力ポートが増えていくので 1 つのカウンタに対し 1 つの LUT では補えなくなります。

 

* LUT については、梅おにぎりの 『 FPGA って何 ? 』 をご参照してください。

 

よって、Cyclone ® IV E の LE を 23 個消費してしまいます。

言語で 17 bit カウンタを作ってコンパイル・レポートを確認したところ

言語での17 bit 同期式カウンタは、17 個の LE を消費していました。

 

なぜだ??と疑問に思った私は、

 

2つの 『 Resource Property Editor 』 を比べてみました。

回路図の 17 bit 同期式カウンタと言語の 17 bit 同期式カウンタの比較

 

回路図の 17 bit 同期式カウンタと言語の 17 bit 同期式カウンタの LE の内部を比べてみると

 

 ・回路図の 17 bit 同期式カウンタは、 Carry Chain が使われていない。

 ・言語の 17 bit 同期式カウンタは、 Carry Chain が使われている。

 

*  Carry Chain は、カウンタや加算器など高速な演算を実現するために、隣接する LE 間を接続する専用の配線*

*  Carry Chain が使用される条件: 1.言語でのカウンタ設計 2.アルテラメガファンクションのLPMカウンタを使用する設計        *

 

言語の17 bit 同期式カウンタは、 Carry Chain を使用しているので、余計な LE を消費しないことが分かりました。

 

また、FPGA の設計では、LE のアーキテクチャの  Carry Chain を使用することによって、 LE の消費を低減することができるので、同期式回路の設計が適していると理解できました。

今回のまとめ

 ・LE のアーキテクチャには、 Carry Chain がある。

 ・FPGA の同期式回路の設計では、LE の消費を低減できる。

 

 

比較編へ戻る・・・