LoginSignup
2
0

NSLで回路を作ろう#00: はじめに

Last updated at Posted at 2023-12-19

はじめに

NSLについて勉強する機会があり、
そこで得た知見について今後まとめていく。
ハードウェアに関しては初学者なので、
多少至らぬ点があるだろうが、ご理解いただきたい。

NSLとは

正式名称: Next Synthesis Language

  • つまり、次世代を担うHDL

特徴

  • C言語みたいに書ける
    • 関数を組合わせた構造化プログラミングが簡単に回路になる!
  • 可読性が高い
    • 信号ベースじゃなくて機能ベースに書ける
  • 記述量が少ない
    • alwaysRSTに追われる日々から脱却
  • 単相クロック同期回路に強い
    • クロック・リセットはインフラという考えで、言語側で用意してくれる

今後の流れ

今後の流れとして以下の点を説明していく

  • 参考テキスト
  • 作成環境
  • 作る予定の回路
  • 作成する記事の内容

参考テキスト

【改訂2版】FPGAボードで学ぶ 組込みシステム開発入門[Intel FPGA編]を参考に回路等を色々と作っていく。

  • この本の中では、Verilog HDLを使った回路の設計から、Platform Designer(旧 QSyS)を使ったCPU組込み回路の作り方まで紹介されている。

作成環境

以下で示す環境で回路を作っていく

  • FPGAボード: Terasic社 DE1-SoC
  • コーディング: Visual Studio Code
  • NSLのコンパイル: NSL CORE
  • 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時間時計を作っていく。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0