Xilinx社製のARM内蔵FPGA・Zynqを搭載したZYBOボードで遊ぶ日記。Lチカから始まって、最近はRTLだけでレトロゲーム機を作ったりDCモータを回したりしてます。基本的には上の記事ほど新しい内容になってます。
ZyboでDCモータを回す(2021~)
ZyboでDCモータを回してみた軌跡。以下の記事でまとめてます。
Zyboでレトロゲーム機をつくる(2020~)
こちらは長くなりそうなので、以下で別途まとめています。
Vivado HLS 高位合成体験記(2019)
Xilinx社のVivado HLSというツールで高位合成にチャレンジする日記(継続中)。具体的にはC++からVerilogのコードを生成し、生成したVerilogのコードをZyboのPLブロックに組み込んで、LEDを点滅させてみる
- 1日目:プロジェクトの作成
- 2日目:C++のソースコードの作成
- 3日目:C++のテストベンチの作成
- 4日目:C++からHDLのコードを生成
- 5日目:Directiveを指定してHDLのコードを最適化する
Microblaze MCSを使ってLチカ(2019)
小規模ソフトコアプロセッサであるMicroblaze MCSを使い、ソフトウェアを使いつつLチカさせてみる日記。MicroblazeはPLブロックのロジックで構成されているため、PSブロックは使用しない。Microblazeに関してはZynq以外のCPUを搭載していないXilinx FPGAでも使用可能。
- 1日目:Vivado更新と現状動作確認
- 2日目:Microblaze MCS のIP Coreの組み込み
- 3日目:ハードウェアエクスポートとBSPプロジェクトの作成
- 4日目:アプリケーションプロジェクトの作成とソフトウェアコーディング
- 5日目:デバッグ機能を有効にしてハードウェアエクスポートをやり直す
FPGAのロジックブロック(PL)だけを使ってLチカ(2016)
まずは小手調べで、ARMのプロセッサを含むブロック(PS)は使わず、FPGAのロジックブロック(PL)だけを使ってLチカさせてみた。
- 1日目:Vivado 2016.2 でZYBOのPLブロック用のプロジェクトを作成
- 2日目:Vivado 2016.2 でZYBOのトップモジュール(LED点滅)を作成
- 3日目:ZYBOにJTAG経由でbitファイル書き込んでLED点滅
ちなみに、このプロジェクトはGithubに上げています。
プロジェクトをそのまま上げると容量がデカかったりIPの著作権などの面で問題があるので、tclからプロジェクトを展開する形式にしています。Vivadoのプロジェクトをtclで書きだす方法、逆にVivadoのプロジェクトをtclから生成する方法は以下を読んでください。(Githubのプロジェクトを展開するなら、下の「Vivadoのプロジェクトをtclから生成する」を読んでください)
最終的にこんな感じになった↓