FPGAプログラミング大全Xilinx編第2版 第６章1-2 #11

FPGAに再入門しようと思いたち[FPGAプログラミング大全Xilinx編第2版](https://www.amazon.co.jp/FPGA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%A4%A7%E5%85%A8-Xilinx%E7%B7%A8-%E7%AC%AC2%E7%89%88-%E5%B0%8F%E6%9E%97-%E5%84%AA/dp/4798063266/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1S5G3UKPB55O9&keywords=FPGA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%A4%A7%E5%85%A8Xilinx%E7%B7%A8%E7%AC%AC2%E7%89%88&qid=1669893715&qu=eyJxc2MiOiIwLjc2IiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=fpga%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%A4%A7%E5%85%A8xilinx%E7%B7%A8%E7%AC%AC2%E7%89%88%2Caps%2C151&sr=8-1)を頭からやっていく11日目

時期的にも良いので一人Advent Calendarで25日続ける

最終的に作ったCPUを使えるようにFPGAプログラミング大全Xilinx編第2版第6章をやってCPU+FPGAシステムに慣れる

### 25日終了時の目標
4004等の実CPUの実装

### 目次
| # | タイトル |
|:-:|:-:|
|   01|  [ツール導入](https://qiita.com/Gazyu/items/8f3797abf4ddc88ecacd) |
|  02 |  [実機テスト下準備](https://qiita.com/Gazyu/items/b59e0a1e023005bc02d5) |
|  03 |  [実機テスト](https://qiita.com/Gazyu/items/23ec4da6c241d95bfa8e) |
|04|[クロック利用](https://qiita.com/Gazyu/items/a653fe87023323f308de)|
|05|[シミュレーション検証](https://qiita.com/Gazyu/items/508370018465c164120b)|
|06|[TD4](https://qiita.com/Gazyu/items/08377deaa0413dd111cb)|
|07|[TD4とりあえず実装](https://qiita.com/Gazyu/items/721967444237a72f04e9)|
|07|[TD4メモリ実装](https://qiita.com/Gazyu/items/f18e19b48becbead6dd8)|
|09|TD4完成|
|10|第6章1|
|11|第6章1-2|
|12|未定|

### 環境
【実装ボード】 [Digilent Artix-7 35T Arty FPGA 評価キット](https://japan.xilinx.com/products/boards-and-kits/arty.html#resources)
【OS】 Windows10
【IDE】 Vivado 2022.2

### 今日のゴール


### 昨日の続き
昨日第6章1をやってきたが、ダイアグラムチェックは行ったがその後の
- 上位階層の作成
- 制約ファイルの読み込みとコンパイル
- プロットフォームファイルのエクスポート

は行っていなかったのでそれを行う

### 上位階層の作成
ダイアグラムは作成しただけだとbitファイル生成時の階層としてみなされないらしい。
そのため、もう1階層必要とのことなのでそれを作る
さっき作ったdesign_1を選択＆右クリック->Create HDL Wrapper...から作成
![スクリーンショット 2022-12-10 215839.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/8a9ca318-a10e-7170-89c8-bcc664f720db.png)

作成できると確かに1階層上の存在ができている
![スクリーンショット 2022-12-11 153052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/5b651153-b79b-e8a8-6408-d9e55ee0c0af.png)


### 制約ファイルの読み込みとコンパイル
制約ファイルは読み込み済みなので、画面左下のGenerate Bitstreamからコンパイルする
![スクリーンショット 2022-12-11 153236.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/e29c9033-536f-3306-b511-5769f68f870d.png)
時間がかかるので暫く待つ

### プロットフォームファイルのエクスポート
内蔵CPUを使うにはVibadoではなくVitisを使うのでVitisにHW情報を受け渡すための「プラットフォームファイル」なるものが必要らしい
作り方はメニュー->File->Export->Export Hardware....
![スクリーンショット 2022-12-10 220134.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/028edb8a-8e8d-3da6-1dad-9384c45b5520.png)

この後微妙に本とVivado2022.2の挙動が違うので実挙動をもとにやる
Next
![スクリーンショット 2022-12-11 154202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/2429b3b8-a27d-d078-9eca-d12607027e99.png)

Include bitstreamを選択
![スクリーンショット 2022-12-11 154255.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/7a6a9b98-3977-8504-b1bd-909feb7d638c.png)

あとは保存先を選んでFinish
.xsaファイルができていれば成功
![スクリーンショット 2022-12-11 154557.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45441/eeb564fb-eef2-1a31-2a29-4b9e007f5702.png)

:::note warn
途中、コンパイルが終わっていないのに次のプロットフォームファイルのエクスポートをやろうとするとまだBitファイルができていないのに作業できてしまう。作業はできるが最終的にはエラーになるので必ずWindow右上のステータスでwrite bitstream completeになっていることを確認してからやる
:::

今日はここまで