[20Q1.06A] 4ビットカウンタでわかるFPGAのための論理回路 入門

FPGA 質問箱 (ACRi フォーラム) へようこそ フォーラム 2020年Q1のACRiブロクのコース (記事) に関する意見交換 [20Q1.06A] 4ビットカウンタでわかるFPGAのための論理回路 入門

2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #227
      Forum AdminForum Admin
      キーマスター

      [20Q1.06A] 4ビットカウンタでわかるFPGAのための論理回路 入門
      に関する意見交換の場です。

    • #248
      アバターR.M.
      ゲスト

      以前にも書き込みをさせて頂いたのですがフォーラムの仕様変更で消えてしまったようなのでもう一度書き込みさせて頂きます。

      第2回の記事中でNANDゲートやNORゲートはANDゲートやORゲートより効率が良いという文がありましたが、効率が良いとはどのような点において効率が良いのか、ご教授いただけると幸いです。

      • #298
        Forum Admin執筆者
        ゲスト

        CMOS回路の論理ゲートは通常nMOSトランジスタとpMOSトランジスタを組み合わせて作ります.トランジスタは要はスイッチで,入力電圧によって電流が流れるか流れないかが決まります.トランジスタの細かい動作や特性の説明は教科書に譲りますが,電流が流れるための入力電圧の違いからnMOSを電圧が低い側(グランド),pMOSを電圧が高い側(電源電圧)に接続して論理ゲートを構成します.そうすると,NOTはそれぞれのトランジスタを1個ずつ,NANDとNORは2個ずつ使って構成できます.一方で,ANDとORはそれぞれNANDとNORにNOTをつなぐ形でしか構成できません.
        また,nMOS,pMOSの電源,グランドへの接続を逆にしてトランジスタ2個ずつでAND,ORを構成できますが,動作速度が遅くなります.

        • #316
          アバターR.M.
          ゲスト

          ご教授ありがとうございます。
          ゲートを構成するトランジスタの個数と特性上の問題でNANDとNORの方が効率的だということ、理解しました。

    • #282
      アバターNaoki FUJIEDA
      ゲスト

      20Q1.07A 担当の藤枝です.担当外ですがせっかくなので回答します.

      結論から言うと,必要なトランジスタの個数が少なくすみます.以下解説します.(ディジタル回路の文脈なので,アナログ回路的な話は思いっきり抽象化して説明していることをご容赦ください)

      CMOS 回路の場合,PMOS と NMOS という2種類のトランジスタを併用しています.ディジタル回路の場合トランジスタを一種のスイッチとして使います.MOS トランジスタの場合,ゲート (G),ソース (S),ドレイン (D) という3つの端子があるのですが,この文脈では G はスイッチのオンオフを制御する端子,S は電圧源,そして D は出力となります.

      そして,PMOS は G が ‘1’ (ここでは電圧が高いという意味です),S が ‘0’ (電圧が低いという意味です) のときに S-D 間がオンになるスイッチ,NMOS は G が ‘0’,S が ‘1’ のときにオンになるスイッチになります.

      これを組み合わせて,例えば NOT ゲートの場合トランジスタ2個を使って,以下のように論理ゲートを作成できます.入力は両方のトランジスタの G 端子に接続します.

      ┬ ‘1’ (PMOS の S 側)
      ○ PMOS
      ├ 出力
      ○ NMOS
      ┴ ‘0’ (NMOS の S 側)

      入力が ‘0’ ならば PMOS がオンになり出力が ‘1’ に,入力が ‘1’ ならば NMOS がオンになり出力が ‘0’ になります.

      同様に,PMOS と NMOS を N 組用意して,PMOS を並列に,NMOS を直列に並べれば NAND ゲートが作成できますし,PMOS を直列に,NMOS を並列に並べれば N 入力の NOR ゲートが作成できます.この場合のトランジスタ数は 2N 個です.

      そして残念ながら,AND ゲートや OR ゲートは直接作る方法がなく,NAND と NOT,NOR と NOT を併用しなければなりません.したがって,N 入力の AND や OR に必要なトランジスタ数は 2N + 2 個です.これが「NAND や NOR の方が効率が良い」とされる所以です.

      なお,FPGA の文脈では組合せ回路は LUT という形でさらに抽象化されますので,この違いは考慮する必要がなくなる (例えば,2入力の NAND も AND も同じ「LUT 1個」) ことも,申し添えさせていただきます.

      • #317
        アバターR.M.
        ゲスト

        ご教授ありがとうございます。
        FPGA開発の上ではLUTのおかげで具体的なアナログ回路のようなゲート構成まで考える必要がなくなるということでしょうか。

        • #403
          アバターNaoki FUJIEDA
          参加者

          (返信が遅くなりましたが)その通りです.これも一種の抽象化といえるでしょう.

2件の返信スレッドを表示中
  • このトピックに返信するにはログインが必要です。
タイトルとURLをコピーしました