ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ARMコミュのご意見お寄せください(AHB Slave設計)

  • mixiチェック
  • このエントリーをはてなブックマークに追加
最終のトピックが5月て…
と、言うわけで今悩んでいるAHB Slaveマクロの設計に関して

あるブリッジの様な動きをするスレイブを設計します。
そのスレイブの先はスレイブの付いてるAHBバスと同等かそれ以上の高速動作をします。

[AHB Master]
↑↓
AHB BUS(100MHz)
↑↓
[AHB Slave]  ←<<<<こいつを設計>>>>
↑↓
なぞプロトコル(100MHz over)
(通信、メモリ、AXI、バス幅の広いAHBetc)

このときAHB Slaveはできるだけ高速な動作を行うためにINCR4、INCR8、INCR16、WRAP4、WRAP8、WRAP16をサポートします。
そこで問題となるのがEBT(早期バースト終了)です。
こいつはバスがスレーブに固定長のバースト転送を要求しながらそれを途中で止めるという、ある意味反則技ですがAHBで認められている規格です。
(発生原因はマスターが出した要求を止めてしまう場合と、多マスタのバスがアーバトレーションの為に発生させる場合があります)
そのとき考えられるAHB側の単純化したステートマシンが

?
[WRITE EBT処理]  [READ EBT処理]
 ↑↓       ×   ↑↓
[WRITE処理]   ⇔  [READ処理]

?
[WRITE処理]⇔[WAIT(Deault状態へ戻す)処理]⇔[READ処理]

という2つが考えられます。

?は考えられる遷移が8つ?は4つとなっています。
単純にファンクションが2倍になりますので検証の量が2倍になるとします。
それに伴い、バグの取り残しwwwの確立も2倍になります。

?は?よりもこのスレーブを使用するシステムにおいて平均10%高速です


さて、このとき設計者は?、?どちらを選択すべきでしょう?
それとも
?EBT禁止(もちろんスペックが落ちたり、多マスターのアービットレーション不具合が起きるかもです)
という選択肢を考えるべきでしょうか??

<条件>
??どちらも作成に5x1ヶ月かかります

検証(バグ)の収束は
?で5人x1ヶ月バグの取り残しの確率は4%とします。
5人x2ヶ月or10人x1ヶ月で2%
10人x2ヶ月or20人x1ヶ月で1%
のように推移するものとします。
取り残し確立=20÷人月
?では
取り残し確立=40÷人月

あなたならどう設計しますか??
どのように工数を投入しますか??
問題に不確定要素は多々ありますが実際に設計するときも不確定要素は多いものですので、一例としてご意見をお聞かせください。

コメント(2)

誰も書き込んでくれないので自己レスT_T
これは絶対?です。
スピードがかなり落ちたとしてもファンクションが2倍に増えるのはきついです。
実際、製品だと2倍ではすまないですし、高周波数で同期動作するよう適度ににFFで論理を切って作成すれば?のほうがいいと思います。

RTLマクロの製品品質は100-1=0だと痛感する日々が続いております。
1つのバグの取り残しがマクロ全体、引いては1chip、製品そのものを駄目にしてしまいます。
SoC開発にとってリワークは致命的であり、その後のソフトウェア開発、製品開発の日程に与える影響も計り知れないです。

そのためにもできる限り検証のしやすい設計がマクロ(特に多機能であればあるほど)には求められると思います。

仕事はかなり泣きたい状況ですよよよよ
やっぱりデフォルト状態のステートに戻るまで待つのが確実です。
そこがしっかり確認できればBURSTによる組み合わせ、タイミングによる組み合わせの確認しなくてもいいです。
?のBURSTの組み合わせやタイミング組み合わせ検証項目数は半端じゃないです。
優秀なチェッカーを作成しても一回は波形を目視確認はすべきですし(チェッカーにバグがあるかも)。
仕事がぜんぜん終わりません。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ARM 更新情報

ARMのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング