はじめに
NSLについて勉強する機会があり、
そこで得た知見について今後まとめていく。
ハードウェアに関しては初学者なので、
多少至らぬ点があるだろうが、ご理解いただきたい。
NSLとは
正式名称: Next Synthesis Language
- つまり、次世代を担うHDL
特徴
- C言語みたいに書ける
- 関数を組合わせた構造化プログラミングが簡単に回路になる!
- 可読性が高い
- 信号ベースじゃなくて機能ベースに書ける
- 記述量が少ない
-
always
とRST
に追われる日々から脱却
-
- 単相クロック同期回路に強い
- クロック・リセットはインフラという考えで、言語側で用意してくれる
今後の流れ
今後の流れとして以下の点を説明していく
- 参考テキスト
- 作成環境
- 作る予定の回路
- 作成する記事の内容
参考テキスト
【改訂2版】FPGAボードで学ぶ 組込みシステム開発入門[Intel FPGA編]を参考に回路等を色々と作っていく。
- この本の中では、Verilog HDLを使った回路の設計から、Platform Designer(旧 QSyS)を使ったCPU組込み回路の作り方まで紹介されている。
作成環境
以下で示す環境で回路を作っていく
- FPGAボード: Terasic社 DE1-SoC
- テキストで対象になっているボードの一つ
- コーディング: Visual Studio Code
- NSLのコンパイル: NSL CORE
- Verilogに変換してFPGAに実装する
- CPUの組込み、FPGAに実装等: Quartus Prime 18.1
- 回路のシミュレーション: ModelSim - INTEL FPGA STARTER EDITION 10.5b
作る予定の回路
作る予定の回路としては以下のようになっている。
- 24時間時計
- 1秒を計ってカウントアップしていき、時分秒を7セグメントLEDで表示、ボタン入力で時刻調整も実装する
- CPUを組合わせた回路
- 上記と同様に24時間時計を作っていくのだがPlatform Designerを使ってCPUを組込み、ハードウェア側では7セグメントLEDの表示、ソフトウェア側では表示する回路の制御等と、ソフトとハードを両方を組み合わせていく。
- マウスやキーボード入力を受取る回路
- マウスやキーボードを接続して、入力を7セグメントLED等に表示する。
- ディスプレイに文字を表示してみる
- ディスプレイを接続して画面上に文字を表示する
- 外部メモリを使ったグラフィック表示
- FPGAボード上にあるにあるRAMを使って画像データをディスプレイに表示する
- CMOSカメラを使った画像キャプチャ
- カメラでキャプチャした映像をRAMに保存する回路を作ってディスプレイに表示する
記事の中では以下の順で実装を進めていく
- どんな回路を作るのか機能分割
- 分割していった各機能をNSLで作ってみる
- 作った回路でシミュレーションをしてみる
まとめ
初回ということでこれからやることについて説明した。
次回は24時間時計を作っていく。