HDL時代に求められる論理回路設計とは ―― 回路記号を使わない設計手法の考え方

小林 優

2.動作仕様の表現方法

●ゲートやフリップフロップは使わない

 本稿ではゲートやフリップフロップなどの回路記号を使わないで論理回路設計を説明します.動作仕様は真理値表とタイミング・チャートで表現し,回路はブロック図で示します.

 具体例を示します.図4は6進カウンタの例です.図4-(a)で示された動作仕様を実現したのが図4-(b)です.ここでは,これ以上具体化した回路は扱いません.

 回路図で設計していたころは,ブロック図はあくまでも概要であって,最終的には詳細な回路図が必要でした.つまり図4-(c)のようにゲートとフリップフロップで構成された回路が最終目標だったわけです.


図4 回路設計の例
(b)と(c)はいずれも(a)の動作を実現する回路を記述したものである.両者を比較すると,明らかに(b)のほうが理解しやすそうに見える.HDL設計では,(b)で示したものから記述できるので,これ以上細かく表現する必要はない.

 

●ブロック図をもとに言語で記述する

 言語設計では機能が明確になっていて,言語で表現できるレベルであれば,それ以上細かく表現する必要はありません.図4-(b)のブロック図で示したものは,ほぼそのまま言語で表現できます.個々のブロックの動作を,設計言語の構文で正確に記述できるのです.

 図5に具体例を示します.2種類のブロックをそれぞれVerilog HDLで記述してみました.宣言部分を除くと,機能を表現しているのはたった1行です.ビット幅を変更しても,この1行に変更はありません.宣言部分を修正するだけです.


図5 回路ブロックとHDLの対応
ブロックの動作を,設計言語の構文で正確に記述できる.

 

 言語で表現できれば,あとは論理合成ツールが実際の回路に変換してくれます.言語で表現したところで設計は終了です.FPGA開発ツールのような統合環境では,設計言語で記述した回路から,論理合成,配置・配線,コンフィグレーション用のデータ作成までやってくれます.もちろん回路図で書いてもFPGA化できますが,そんな手間をかける必要はないのです.

●演算回路やカウンタを使いこなして設計する

 今までは個々のゲート回路やフリップフロップの動作を理解してから,実際の設計を行っていました.加算やカウントなどの動作はいたって単純ですが,回路図にするとそれなりの量になります.従来では,これをひとつひとつ追いかけて,加算やカウント動作をゲートやフリップフロップで実現する方法を学んでいました.

 ここでは,わざわざ遠回りするような学習方法をやめ,単純な機能のものは単純なまま理解できるようにしました.より高度な回路を設計できるようになるためには必要なことだと思います.従って加算やセレクタなどは一つのブロックで表現します.カウンタなどは,最終的には一つのブロックで表現しますが,細かい仕様の違いにより多くの種類があるので,最初のうちは図4-(b)のように分解して表現します.

 加算やカウンタの動作や回路構成を学ぶのが,論理設計学習の目的ではありません.さまざまな仕様を論理回路で実現できるよう,応用力をもった設計能力を身に付けるのが目的です.加算やカウンタのブロックを用いて,仕様を実現できるようになるために本稿を活用してください.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日