« 2023年8月 | トップページ | 2023年10月 »

FPGA の練習 ~ 1ビットデータの加算器

「1ビットデータの加算器」 とは何のことかというと、画像左側のスイッチを押している個数を、右側の2個の LED で、2進数表示する機能である。

押してない →  off  off
1個押す  →  off    on 
2個押す  →   on   off
3個押す  →   on    on 

この処理は、論理式を使って、次のように表わされる。

3個のスイッチの状態変数(値が0 か 1)を A, B, C とすると
左 LED状態 = ( (A xor B) and C ) or ( A and B )  (※ xor は排他的論理和 )
右 LED状態 =    A xor B xor C

式の意味については 「加算器」 といった用語で検索して調べるとよい。 とにかく FPGA の中に、この論理式に相当する回路を作ると上記の機能を実現できる。

いわゆる 「電卓」 という道具は、このような機能を複雑に組み合わせた回路からできているわけだ。 ビット数を増やして四則演算に対応する必要があるので、相当に大変な作業だと思うが、もうずいぶん昔、パソコンなど全くない時代に、手書きの回路図から電卓を開発した先人の努力には、頭が下がる。

 

FPGA の練習 ~ 外部入出力

当たり前だが、こういう制御基板というのは、それだけではあまり意味がない。
(中身は極めて複雑な構造なので、それはそれで価値はあるけれど。)
やはり、何か外側につないで、人間が感じ取れるような動きをしてほしい。
というわけで、とてもシンプルな外部入出力の実験。

 1.スイッチを押す
 2.FPGA基板の入力電圧が変化
 3.FPGAの内部回路(ここは自分で設計)が動作
 4.FPGA基板の出力電圧が変化
 5.LED が点灯

たったこれだけやるにも、基板の説明書や、プログラム(Verilog)の説明書やらを色々読まないといけなくて、結構手間がかかる。

FPGA の練習 ~ LED 点滅

前回まで Zynqberry という基板用の ソフトウェア(OS 機能)のインストール作業を続けてきたが、諸事情で方針変更することになった。 Zynqberry 基板は FPGA と CPU の両方の機能を持っているが、今後は FPGA の機能だけを持つ ARTY S7 という基板を使うことにする。

FPGA を使うときは「電子回路の配線を自分で作る」のだけれど、実際にやることは、回路を表現するプログラム(Verilog 言語)を書いて、基板内のメモリに書き込む作業なので、結局、ソフトウェアを作るのと、ちっとも変わらない。 昔みたいに、ハンダごてを使って配線すると、ハンダの匂いとか部品の手触りとかが、回路の存在感と深く結びついていて、それが物を作る面白さでもあったと思う。 残念ながら、FPGA にはそれがない。 

とはいえ、何でもそうだけど便利さと性能の高さにはかなわないので、とにかく FPGAを使いこなせるようになるまで、練習をやっていこうと思う。 まずは基本動作の確認で、LED の点滅。

 

OS(Linux)のインストール ~ カメラ機能

Raspi_cameraZynqberry ボードに、カメラを接続し、写真撮影をできるようにした。

右図のカメラは、Raspberry Pi 基板 に接続するための製品なのだが、このボードでは、カメラとの通信仕様を Raspberry Pi と同じにしているため、このように流用することができる。

撮影をするために、下記のソフトを追加した。

・ カメラと通信を行って、露出や露光時間などの設定をするソフト 
・ カメラの撮影データを取り込んで、画像ファイルを生成するソフト
・ 画像ファイルを、ディスプレイ画面に表示するソフト

撮影結果は、下図のような感じ。 ちょっと、ピンぼけ気味なのが気になるが、カメラの性能なのか、ソフトの問題なのか、今の所は良く分からない。

Screen1

OS(Linux)のインストール ~ ウィンドウ画面

Zynqberry ボードにディスプレイを接続し、ウィンドウ画面操作をできるようにした。 ボードの写真下側の黒い大きなコネクタ( HDMI ケーブル )を介してディスプレイに画像を送信する仕組みだ。 ウィンドウ管理ソフトや、ブラウザソフトなど、大量のソフトウェアを SDカードに書き込む必要があるのだが、そのソフトの種類と組合わせの検討に、結構な手間がかかってしまった。

今回、画面の管理用に LXDE というソフトを使っていて、これは通常のパソコン(Windows など)に比べると簡易的な機能しかないのだが、それでも Zynqberry ボードの性能不足のため、動作がとても重い。 マウス操作が反映されるのに1秒以上かかってしまうので、あまり実用的とはいえない。

Img_20230908_031836

« 2023年8月 | トップページ | 2023年10月 »

カテゴリー

  • FLASH プログラミング
  • ジグソーパズルBBS
  • パズル
  • 手工
  • 数学的な話
  • 日記・コラム・つぶやき
  • 花・植物
  • 音楽
  • 風景
  • 1日1枚
無料ブログはココログ