新たな教材となる「Tang Nano 9K」を使ってLEDマトリクスを制御するオリジナルCPUでバイナリコード入門(4)(3/3 ページ)

» 2023年05月25日 07時00分 公開
[今岡通博MONOist]
前のページへ 1|2|3       

IDEが出力したコード生成時のサマリー

 リスト1は、Tang Nano 9KのIDEが出力した生成時のサマリーです。なおプロジェクトファイルの場所は'*'でふせています。

General
Project File:	C:\************************\tangnano\fpga_project\fpga_project.gprj
Synthesis Tool:	GowinSynthesis
Target Device
Part Number:	GW1NR-LV9QN88PC6/I5
Series:	GW1NR
Device:	GW1NR-9C
Package:	QFN88P
Speed Grade:	C6/I5
Core Voltage:	LV
リスト1 「Tang Nano 9K」のIDEが出力した生成時のサマリー

Verilog-HDLのコード

 リスト2は、ここまで説明したLEDドットマトリクスを点灯するロジックをVerilog-HDLで記述したものです。前回の記事も参考になりますし、プログラミング経験があれば内容は大体分かると思います。ROW側はカソードですので全て0にしています。COL側はcounterの特定のビットを指定したCOL番号の値としています。これらはcounterがクロックごとに加算されますので、刻々とこれらの値は変わっていきます。

module matrix ( input clk, input rst,output [7:0] col,output [7:0] row);
reg [32:0] counter;
assign col[0]=counter[30];
assign col[1]=counter[29];
assign col[2]=counter[28];
assign col[3]=counter[27];
assign col[4]=counter[26];
assign col[5]=counter[25];
assign col[6]=counter[24];
assign col[7]=counter[23];
assign row[0]=0;
assign row[1]=0;
assign row[2]=0;
assign row[3]=0;
assign row[4]=0;
assign row[5]=0;
assign row[6]=0;
assign row[7]=0;
always @(posedge clk or negedge rst) begin
if (!rst)
counter <= 0;
else counter <= counter + 1;
end
endmodule
リスト2 LEDドットマトリクスを点灯するVerilog-HDLコード

ピンコネクション情報

 拡張子「.cst」のファイルにはリスト3の情報が収められています。Verilog-HDLのコードで使われているシンボル名とTang Nano 9Kのピン番号の関連付けを行っています。

IO_LOC "clk" 52;
IO_LOC "rst" 4;
IO_LOC "col[0]" 74;
IO_LOC "col[1]" 34;
IO_LOC "col[2]" 40;
IO_LOC "col[3]" 71;
IO_LOC "col[4]" 41;
IO_LOC "col[5]" 72;
IO_LOC "col[6]" 76;
IO_LOC "col[7]" 77;
IO_LOC "row[0]" 70;
IO_LOC "row[1]" 75;
IO_LOC "row[2]" 51;
IO_LOC "row[3]" 73;
IO_LOC "row[4]" 30;
IO_LOC "row[5]" 42;
IO_LOC "row[6]" 33;
IO_LOC "row[7]" 35;
リスト3 FPGAで使われているシンボル名と「Tang Nano 9K」のピン番号の関連付け

おわりに

 今回は演習教材の動作を確認するために、Tang Nano 9Kの基板上に直接LEDマトリクスをはんだ付けするというちょっとトリッキーな手段を取りました。もし、読者の皆さんが手元で実機を試してみたいのであれば、キットまたは完成品を用意することを検討したいと思います。また、自作する場合は、Arduinoで使われているようなピンが長めのソケットを使えばもっと簡単にLEDドットマトリクスをTang Nano 9Kにマウントできるでしょう。まだ、その長めのソケットは手元に届いてないのですが、今後の連載の中で紹介する機会もあるかと思います。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.