2024年6月21日金曜日

spartan3をCPUから「slave serial mode」でconfigする(2)

spartan3をCPUから「slave serial mode」でconfigしてみます.
前回の続報です.

まずは全体像の説明から.

2つの手順から成ります.

手順1:FLASHに焼く
PCのISEでlogic開発は済ませておきます.
xxx.binがFPGAのconfig dataです.
不揮発性のSerial FLASHにxxx.binを焼く.
手順2:FPGAをconfigする
FLASH→FPGAへserialでトロトロとconfig dataを流し込んでやります.
FPGAのinterfaceがxilinx独自なのでやってみなくちゃわからない.

CPUにはArduino nanoを使います.
Serial FLASHはW25Q32というもので32Mbit品だったかな.つまり4MBです.
xxx.binは55kBぐらいですから4MBも要りませんが手持ちがこれなんで.
FPGAは中華通販で入手したXC3S50-4VQ100Cです.
以上がやりたいことの全体像です.

ーーーー
「手順1:FLASHに焼く」はこの投稿ではスルーします.

以下では「手順2:FPGAをconfigする」の動作確認を行います.

ーーーー
slave serial modeのconfigに使われるFPGAのpinについてdata sheetから抜き出します.
こんな結線になるんだそうです.

HSWAP in
あらゆるpinを内部pullupする役割
config中は0にすること
通常使用時はdon't careと書かれているのでハンダで0固定にする

M[2:0] in
slave serial modeにするには111にする
ハンダで111固定にする

CCLK in
slave serial modeではserial clock入力になる

DIN in
serial data入力
やってみたところでは.binのLSB 1stで入れるのが正解

PROG_B in (外部pullup)
config開始のゴング
0にしたらconfig開始.すぐ1に戻す必要がある
open drainで駆動するのがオススメだってさ

DOUT out
serial data出力
マルチFPGAの際のディジーチェイン用かな、ここでは使わない

INIT_B inout (外部pullup)
PROG_Bを受けてFPGAが内部初期化してる間0が出力される
内部初期化が終わると1になる
通常使用時は1か0に固定するべきと書かれている

DONE inout (外部pullup)
config中0が出力される
config終了したら1が出力される

pinは以上.CPUが制御するのはCCLK,DIN,PROG_B,INIT_B,DONEの5本です.

ーーーー
これらをどのように制御すればいいのか?
ポエム風に語ります.

①半田付けで固定してしまうpin
 M[2:0]=0b111
 HSWAP=0

②CPU起動時初期設定
 PROG_B=1
 CCLK=1

③開始のゴング
 PROG_B=0 → 1mSec wait → PROG_B=1

④INIT_B=1になるまでpoling wait

⑤FLASHの先頭から順にbit serialで1byteずつLSB 1stで出す(DIN,CCLKへ)
 ただし、FLASH上のconfig data(54kB)よりも256byte多めに出す
 (この理由は、FPGAがconfig後に余分なCCLKを要するため)

⑥ ⑤のbyte送出毎にDONEをpolingする.DONE=0なら⑤へ

⑦ DONE=1につき終了

動きました.Lチカですけどね.

次回は設計資料を公開します.
Xilinx ISEで.bin fileを生成するやり方とか回路とかfirmwareとか.

1へ   3へ

かしこ

6 件のコメント:

  1. ブロック図しかわかりませんでした
    電源修理を秋葉原でかいました部品取り替えしてみます
    千○は 顔面偏差値採用なのかと思う 販売なので 正解例

    返信削除
    返信
    1. 明日は秋葉原へいきます
      アメ横→末広町→アキバ のいつもの巡回ルート

      削除
    2. すてきなスパルタン3を見て ボーっとしていたら声をかけてください
      簡単にみつかると思います
      ベストアンサー
      アルテラを見ていて はっときづいたら 家の玄関でした
      手に荷物を持っていました 

      削除
    3. 今日天気悪いですよね、行く気が徐々に失われつつあります

      削除
    4. さじはなげられた

      ベストアンサー
      さいはなげられた

      ルビコン川を渡る  川口浩探検隊 

      削除
    5. しぶや〜 これから晴れますかね

      削除