【バイナリコーディング演習】FPGAボードでLチカとPWMによるLED点灯を試す:オリジナルCPUでバイナリコード入門(3)(2/3 ページ)
オリジナル4ビットCPUを用いてバイナリコードを学ぶ本連載。第3回は、オリジナル4ビットCPUを用いたバイナリコーディングの前段階の演習として、入手が容易なFPGAボードを使ってVerilog-HDLで簡単な回路プログラムを組んでみる。
「Tang Nano」でLチカを実行
図1はTang Nanoのピンアウト(Tang Nanoのピン配列)です。Tang NanoのUSBコネクターがない方の端から左右12ピンまでを示したものです。
図1の16番ピンに発光ダイオードのアノード、17番ピンにカソードを接続すればLEDが点滅します。
図2はBlinkのVerilog-HDLをシンセサイズして、cstファイルに基づき配置配線を行い、プログラマーでTang Nanoに書き込んだ結果を示しています。静止画なので分からないかもしれませんが、実際には一定間隔で点滅しています。
リスト3は開発ツールが出力するサマリーです。プロジェクト作成時にパーツ番号(Part Number)などかなり細かく指定する箇所がありますので初めてプロジェクトを作成する場合この情報は有益です。
General Synthesis Tool: GowinSynthesis Target Device Part Number: GW1NZ-LV1QN48C5/I4 Series: GW1NZ Device: GW1NZ-1 Package: QFN48 Speed Grade: C5/I4 Core Voltage: LV
リスト4はIDE(開発ツール)の製造元情報です。このメーカーがFPGAチップとIDEを製造しています。SipeedはこのメーカーのFPGAチップを使ってTang Nanoを製造販売しているわけです。
GOWIN SEMI GOWIN FPGA Designer (C) 2014-2023 GOWINSEMI
PWMでLEDの明るさを変える
次の事例は3つのLEDの明るさを変えて点灯させるものです。これには製作動機がありまして、抵抗を使わずにTang NanoでLEDを点灯させたいと思い、いろいろ調べていると以下の検索ワードである製品が見つかりました。
検索ワード:MAX7219 8*8 dot matrix module microcontroller module display module MCU LED Display Control Module For Arduino 5V
この製品は8×8のLEDマトリックスディスプレイをSPIで制御できるようにしたモジュールです。このモジュールを調べてみると、LEDと直列に抵抗が入っていないのです。そこで、PWMをLED制御に使えば抵抗なしでLEDを駆動できるのではないかと思いました。
Copyright © ITmedia, Inc. All Rights Reserved.