RTL作成が一応完了したのでMicronのデバイスモデルを使ってSimulationを始めた。
RTLはspi_reg と spi_io の2 モジュール構成に分けた。 spi_ioが実際の通信を行うモジュールで、
spi_reg はCPUが読み書きするレジスタモジュールだ。
そのレジスタ仕様と各モジュールのRTLを以下に示す。
以下はSimulationの様子
N25QモデルにRDID (Read Identification) Commandを発行してみたところ。
ターミナル画面にモデルが出力したログとspiモジュールが受信したデータ(波形のr_rxd)が
一致しており、転送はうまく行っている。
以下はReadコマンド(Standard SPI)の場合
以下はDOFR (Dual Output Fast Read)とDIOFR(Dual Input/Output Fast Read)の場合
DOFRはリードデータ転送のみがDual (2線)で行われるのに対して、
DIOFRはリードアドレス転送もDualで行われるので若干時間が短縮できる。
以下はQOFR(Quad Output Fast Read)とQIOFR(Quad Input/Output Fast Read)の場合
ターミナル画面のほうでERRORが出ているがこれは、QIOFRの場合はDummy clock cycleを10
以上の設定にしなければならないのだが8のままにしているためだ。
以下はStandard SPIからQOFRまでを通しで実行した場合
動作的には問題なさそうなので、実機検証に移行しようかな。
0 件のコメント:
コメントを投稿