MITOUJTAGがArtix UltraScale+のSPI ROM書き込みに対応しました
MITOUJTAGでArtix UltraScale+のSPI ROM書き込みができるようになりました。
7シリーズだとSPI ROMのMOSIとかMISOはdual purposeピンであるため、起動してしまえばユーザロジックとして使えますが、UltraScale+ではdedicatedピンであるためユーザーロジックからは操作できません。
そのため、
Command failed: "T8" is not a valid site or package pin name.
のようなエラーが出てしまい、配置配線で適当なピンに割り当てられBitGenでエラーとなってしまいました。
どうすればSPI ROMのMOSIやMISOを扱えるようになるかというと、STARTUPE3というプリミティブを使います。
STARTUPE3は7シリーズのSTARTUPE2とよく似ていますが、DI[3:0]とDO[3:0]というポートが増えています。
- D0 = MOSI
- D1 = DIN MISO
- D2,D3 = QSPIで使う
という割り当てです。
ですので、DO(0)にMOSIの信号を与え、DTS(0) <= '0'にして信号出力します。
DTS(3 downto 1) <= "111"にしてD[3:1]はトライステートにします。
MISOの値を読みたいときにはDI(1)から出てきます。
JTAGで受け取った信号をSPI ROMのコンフィグポートに出すという回路ですが、TOP階層のポート定義で何もポートがないという驚愕のデザインとなりました。
こんなんでもVivadoで論理合成通った!
私はArtix UltraScale+のボードを持っていないのでお客様にファイルをお送りしたところ、MITOUJTAGから書き込みができるようになったそうです。
W25Q128JWというSPI ROMはVivadoに対応していないのですが、MITOUJTAGを使って書き込んでArtix UltraScale+で使えるようになったということで喜んでいただけました。
STARTUPE3を使うとPROGRAMピンやDONEピンまでいろいろ操作できるので、マニアックなことができるかもしれませんね。
| 固定リンク
コメント