FPGAで遊ぼう!

FPGAでの遊びを通して、技術について紹介していきます

2進数

デジタル信号は、「0」「1」のビットで表現すると説明しましたが、私たちが普段使っている数は、どのように表現するのでしょうか?私たちが使っている数には、「0」から「9」の数字が使われています。ビットで表現するデジタル信号は、2種類しかないので、表現できないと思われるかもしれません。前回のデジタル回路で、nビットのデジタル信号は、2n種類の状態を表現できると説明したと思います。1桁の0~9数は、10種類の状態を表現しています。デジタル信号で10種類の状態を表現するためには、4ビットで表現できます。4ビットの信号を0~9の数に割り当てれば、デジタル信号で表現可能です。数の桁数が増えれば、デジタル信号のビット数も増やせば、表現可能です。

 

私たちが普段使っている数は、10種類の数字を使っていて、10ずつ桁が上がるので、10進数と呼ばれています。9の次は10、19の次は20と10ずつ桁が上がっていきます。10進数は、

 10進数=100の位×100+10の位×10+1の位

と式で表すことができます。

デジタル信号は、2種類の数字を使っていて、2の倍数ずつ桁が上がるので、2進数と呼ばれています。

 2進数=4の位×4+2の位×2+1の位

と式で表すことができます。

 

10進数の2進数への変換は、数を2で割って、余りを各位の数字にすることで行います。例えば、10進数の123を2進数に変換する場合では、

  123÷2 = 61・・・1

1の位は、1になります。

  61÷2 = 30・・・1

2の位は、1になります。

  30÷2 = 15・・・0

4の位は、0になります。

  15÷2 = 7・・・1

8の位は、1になります。

  7÷2 = 3・・・1

16の位は、1になります。

  3÷2 = 1・・・1

32の位は、1になります。

  1÷2 = 0・・・1

64の位は、1になります。

     123 =  1×64+1×32+1×16+1×8+0×4+1×2+1

2進数は、1111011となります。

 

デジタル回路では、基本的に2進数で処理を行います。

 

まとめ

  • デジタル信号では、数字は2進数で表現する。
  • 2進数は、「0」「1」を使う。
  • 10進数を2進数にするには、2で割っていく。

デジタル回路

FPGAで実現できるのは、デジタル回路というお話をしましたが、もう少し詳しく説明したいと思います。デジタル回路は、デジタル信号を扱う回路のことです。デジタル信号とは、2つの状態を持つ信号のことです。例えば、豆電球が、「光っている」、「消えている」というような2つの状態のことです。豆電球の明るさは、豆電球に接続した電池の消耗具合や、電池の数、つまり電圧によって変わります。電圧によって連続的に明るさのでアナログ信号(図中の赤線)と呼ばれます。デジタル信号は、このアナログ信号に対して、光っていると判断する明るさより明るければ、「光っている」、光っていると判断する明るさより暗ければ、「消えている」とします(図中の青線)。

 

アナログ信号とデジタル信号

 

 

デジタル信号のメリットは、何でしょうか?図からも分かるように、デジタル信号は電圧の変化に鈍感です。従って、ノイズ等の環境変化に強く、安定した動作が実現可能になっています。例えば、昔のTVはアナログ放送で映像にノイズが混じっていましたした。それがデジタル放送になることによって、ノイズがないより奇麗な映像を安定して送受信できるようになっているのです。

 

豆電球の例で「光っている」「消えている」という表現をしましたが、デジタル信号では、それぞれ数字の「1」と「0」で表します。デジタル回路では、入力もデジタル信号なので、デジタル回路は、デジタル信号を入力とし、デジタル信号を出力することになります。「1」と「0」では、2つの状態を表現できないため、通常は複数のデジタル信号を使います。2つの信号を使えば、「00」「01」「10」「11」の4つの状態、3つの信号を使えば、「000」「001」「010」「011」「100」「101」「0110」「111」の4つの状態を表現することができます。n個の信号を使えば、2nの状態を表現することができます。「1」と「0」は、ビットと呼ばれ、nは、ビット数と呼ばれています。ビット数が大きいほど、多くの状態を表現することができ、複雑な処理を行うことができます。

 

 

まとめ

  • デジタル回路は、デジタル信号を処理する回路
  • デジタル信号は、ビットで表され、ビット数が多いほど複雑な処理が可能

FPGAとは?

FPGAとは、Field Programable Gate Array(フィールド・プログラマブル・ゲート・アレイ)の頭字語です。訳すと、現場で動作を変更することが出来るIC(Integrated Circuit:集積回路)という意味です。ICは、現代社会においてなくてはならない物で、みなさんが使っているほぼすべての物に使われている部品です。

LSI

 

ICは、半導体工場で製造されます。そして、製造時にはどのような動作をするのかあらかじめ決まっていて、工場出荷後に動作を変更することはできません。スマホやパソコンの心臓部であるCPU(中央演算処理装置)もICです。CPUのあらかじめ決められた動作は、プログラムを実行することです。そのため、CPUは、ICでありながら、実行するプログラムの内容を変えることで、ゲームや、メール等、様々な複雑な処理を行うことができます。

CPU

 

FPGAは、ICですが、工場出荷後でも動作を変えることができます。どうやって動作を変えているのかは、後程説明したいと思います。また、ICの開発には、個人で払うことがきないくらいの莫大なお金が必要です。FPGAは、個人で購入することができる価格で入手可能で、FPGAを使うことによって、オリジナルICを個人で実現することが可能になります。



動作を変えることができるICであるFPGAとCPUのとの違いは、処理スピードです。例えば、学校のクラスの平均点を求めるという処理を行う場合、必要な処理は、クラス全員の点数を足し合わせ、人数で割るになります。CPUでは、この処理を行うために、人数分の点数を足し、人数で割るというプログラムを実行します。CPUは、1回の足し算を人数回、割り算を1回、処理する時間が必要になります。一方、FPGAでは、CPUと同じように、人数分の足し算と割り算という処理も可能ですが、同時に人数分の足し算を行い、割り算を行うという処理も実現できませn。50人のクラスであれば、FPGAは、CPUに対して約50倍速く処理することが可能になります。

 

魔法のようなFPGAですが、なんでも出来るわけではありません。FPGAで、実現できることは、デジタル回路です。デジタル回路については、後程詳しく説明したいと思います。

 

現在、FPGAを製造販売している主要メーカーは、以下になります。

 

まとめ

FPGAとは、オリジナルICを実現することができる半導体部品です。

プライバシポリシー

プライバシーポリシー・免責事を、次の通り記載します。

個人情報の利用目的


当ブログでは、お問い合わせの際、名前やメールアドレス等の個人情報を入力していただきます。
取得した個人情報は、お問い合わせに対する回答や必要な情報を電子メールなどでご連絡する場合にのみ利用させていただくものであり、これらの目的以外では利用いたしません。

当ブログに掲載されている広告について

当ブログでは、第三者配信の広告サービスを利用しています。
このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するためにCookieを使用することがあります。

免責事項

当ブログに掲載された内容によって生じた損害に対する一切の責任を負いません。
当ブログのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤った情報が入り込んだり、情報が古くなっている可能性があります。
当ブログのリンクやバナーなどによって移動した移動先のサイトで提供される情報、サービス等について一切の責任を負いません。

著作権

当サイトで掲載している画像の著作権・肖像権等は各権利所有者に帰属しています。権利を侵害する目的ではございません。記事の内容や掲載画像等に問題がございましたら、各権利所有者様本人が直接メールでご連絡下さい。確認後、対応させて頂きます。

プライバシーポリシーの変更について

当ブログは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。

運営者:FPGA-hobbyist