Vivadoではtypeでstd_logic_vectorをarrayをまとめたようなカスタムの定義をentityのportに設定できないようだ。stsd_logicかstd_logic_vectorのみ。
その一方で、あらかじめInterfaceを定義しておくと線でつなぐ時にまとめて1本でつなぐ事が出来て便利になっている。このやり方は
[Tools]->[Create Interface Design]
適当に名前を付ける
画面が出てきたらPortを追加していく
Name = 名前(大文字である必要がある)
Presence = required(必須)かoptional(なくても良い)
Default Value = 未接続の時に割り当てられる値(0でも良い)
IP化せずにRTLモジュールで作業していくと簡単で早いのだが、入出力ポートを変更した時にDiagramでアップデートされずにとても困っていた(Vivado 2016.2 の場合)。で、手っ取り早く更新を反映させるには、
IP CatalogでUserIPの所で右クリックして[Refresh All Repositories]
IP Catalogで編集したUserIPをダブルクリックして新しく配置
または、Diagram上にすでに配置されたRTLモジュールを右クリックして[Refresh Module] する
これの1. をやらないで3.だけやっても昔のまま。wrapperは自動生成で自分で編集できないので困っていたが、1.をやればアップデートされることを発見した。新しいVivadoだともっと簡単にいくのかしら?
Vivadoでタイミング制約に引っ掛かった場合、ImplementationのStrategyを変える事でクリアできる事もあるみたい。
Strategyの種類が沢山あるので、手当たり次第に試してみる。
[Run Implementation]を右クリックして、[Create New Runs]を選ぶ。
[Configure Implementation Runs]の画面になるので、そこで[+]ぼたんで、どんどんRunを追加していく。(Strategyは勝手に次々違うのを入れてくれるようだ)。Launch Optionsは特に変えずに、Finish。
そうすると、下画面のようにどんどんImplementationを進めてくれる。最終的にクリアできるのが見つかると幸い。使うStrategyのところで右クリックして、[Make Active]すれば良い。
SmartLynqのファームウェアが2017.2以前だとVivado 2018.3からつながらない。
SmartLynq update failed. You must use the TCL command to connect and debug your SmartLynq cable"
と言われる。で、しょうがないので、一旦2017.4~2018.2までのVivadoを使ってSmartLynqをアップデートする。
ここでは2017.4のLabToolをインストール。Hardware Mangerから接続。
TCLで
update_hw_firmware -reset
と入れて、2017.4 のHardware Manger終了。
次に、2018.3のHardware Mangerから接続すると、自動的にアップデートが始まる。
これでつかえるようになる。
edit in ip packagerでシミュレーションしようとした時、正しいVHDLを書いても、「ERROR: [Common 17-39] 'export_hardware' failed due to earlier errors.」と言われてどうしてもシミュレーションができない。
どうやら、ソースファイルのpropertiesのLibraryが空欄になっているのが問題のようだ。
該当するファイルのLibraryを以下のようにすればシミュレーション出来るようになる。