30 |
BSVによるUARTの設計 (3) |
Posts Issued in April, 2021
29 |
BSVによるUARTの設計 (2) |
28 |
BSVによるUARTの設計 |
27 |
BSVの階層生成とシミュレーション (4) |
Verilogシミュレーション
これにより、モジュールにクロックとリセットが最上位に自動的に生成され、モジュールとのI/Fが正しく接続されたので、iverilgにより全体のverilogシミュレーションモデルを作成し、verilogシミュレーションを実行します。
これを実行すると以下の表示が得られ、正しくFSMが動作したことが分かります。
同時にダンプファイルtestFSM.vcdが得られるので、GTKWave波形ビュワーにより以下のようにVCDを開き、波形を確認します。

設定を^sにより同名のtestFSM.gtkwに入れておくと、上記"-A"フラグにより起動と同時に波形まで開くことができます。
26 |
BSVの階層生成とシミュレーション (3) |
Verilog階層生成
まずソースファイルをコンパイルしてverilogコードを生成します。
このようにtestFSM.vが生成されます。
次に最上位ファイルから正しくモジュールが呼び出されるように、最上位ファイルtop.vを修正します。emacsでtop.vを開き、C-c C-aをするだけで(過去記事参照)、自動的にインタフェースが生成されます。最上位には以下の2行を記述します。
- /*AUTOREGINPUT*/及び/*AUTOWIRE*/
以下に最上位top.vにおいて、C-c C-a実行で変化する前とした後のコードを示します。
top.v(実行前)
top.v(実行後)
上記はコメントも含め全て、emacs verilog modeにより自動生成されたものです。
23 |
BSVの階層生成とシミュレーション (2) |
22 |
BSVの階層生成とシミュレーション |
21 |
EOTTIの考え直し (3) |
前稿において、ようやくSM1にEOTTI制約がある場合についての$M_\text{PMHF}$が求められたので、今回は以前のブログ記事にならい、非冗長におけるEOTTIの制約を求めます。ただし、MPFDIを定めないとEOTTIが定まらないという制約があるので、MPFDIを100H, 10H, 1Hのように振ってみます。
さて、非冗長であることから(385.1)に$K_\text{IF,det}=1$を代入し、 $$ \begin{eqnarray} M_\text{PMHF}&=&(1-\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF})\lambda_\text{IF}+\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}\alpha \end{eqnarray}\tag{386.1} $$ ただし、 $$ \alpha:=\frac{1}{2}\lambda_\mathrm{IF}\lambda_\mathrm{SM}[(1-K_\mathrm{SM,MPF})T_\text{lifetime}+K_\mathrm{SM,MPF}T_\text{mpfdi}] $$ となります。よって、EOTTIの最大値は、 $$ \frac{M_\text{PMHF}-\lambda_\text{IF}}{\alpha-\lambda_\text{IF}}\cdot\frac{T_\text{mpfdi}}{K_\text{IF,RF}}\\ =\frac{M_\text{PMHF}-\lambda_\text{IF}}{\frac{1}{2}\lambda_\mathrm{IF}\lambda_\mathrm{SM}[(1-K_\mathrm{SM,MPF})T_\text{lifetime}+K_\mathrm{SM,MPF}T_\text{mpfdi}]-\lambda_\text{IF}}\cdot\frac{T_\text{mpfdi}}{K_\text{IF,RF}}\\ =\img[-1.35em]{/images/withinseminar.png} \tag{386.2} $$ で求められます。
規格に記述されている数値を入れてみたところ、矛盾が起きました。その理由は規格が誤ったPMHF方程式に基づいているためのようです。従ってEOTTIの最大値を具体的な数値について議論することは断念しました。
なお、本稿はRAMS 2027に投稿予定のため一部を秘匿していますが、論文公開後の2027年2月頃に開示予定です。
20 |
EOTTIの考え直し (2) |
引き続き(b)~(d)の平均PUD計算
前稿において、
(a) OPR$\rightarrow$SPF
が求められましたが、結果として$K_\text{IF,RF}$に対して$\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}$を代入した形となりました。よって、
(b) LAT2$\rightarrow$SPF
(c) LAT2$\rightarrow$DPF
(d) LAT1$\rightarrow$DPF
残りの(b), (c), (d)を同様に求めます。過去記事のPMHF結果式(373.1)において、上記を代入し、 $$ \begin{eqnarray} M_\text{PMHF}&=&\left(1-\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}\right)\lambda_\text{IF}+\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}\color{red}{K_\text{IF,det}}\alpha+2\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\text{IF,RF}\color{red}{(1-K_\text{IF,det})}\beta\\ &=&\img[-1.35em]{/images/withinseminar.png}\\ \end{eqnarray}\tag{385.1} $$ ただし、 $$ \begin{cases} \begin{eqnarray} \alpha&:=&\frac{1}{2}\lambda_\mathrm{IF}\lambda_\mathrm{SM}[(1-K_\mathrm{SM,MPF})T_\text{lifetime}+K_\mathrm{SM,MPF}T_\text{mpfdi}],\\ \beta&:=&\frac{1}{2}\lambda_{\mathrm{IF}}\lambda_{\mathrm{SM}}[(1-K_{\mathrm{MPF}})T_\text{lifetime}+K_{\mathrm{MPF}}T_\text{mpfdi}],\\ K_{\mathrm{MPF}}&:=&K_{\mathrm{IF,MPF}}+K_{\mathrm{SM,MPF}}-K_{\mathrm{IF,MPF}}K_{\mathrm{SM,MPF}} \end{eqnarray} \end{cases} $$ となります。
EOTTIの詳細なタイミング
以上の議論は、EOTTI時間間隔とMPFDI時間間隔の比に依存すると単純化してきましたが、実際にはIFのフォールトは図385.1のように生起します。

良く考えると、IFの1点フォールトでレイテントとなり、定期検査で修理されて正常に戻る図385.1の動作は、以前のMPF detectedがレイテントであった頃と変わりません。IFでのフォールト生起から検査・修理までの時間間隔においてSM1にフォールトが発生するとDPFとなるためです。従って、この条件でPMHFを求めると、元に戻って(LFMとは矛盾を起こすようにはなるものの)求められたPMHF式に、EOTTIの効果を入れれば良いことになります。
なお、本稿はRAMS 2027に投稿予定のため一部を秘匿していますが、論文公開後の2027年2月頃に開示予定です。
19 |
EOTTIの考え直し |
OPR⇒SPFの平均PUDの計算
従来はMPF detectedはnon faultyでしたが、今回EOTTIの導入に伴い、SM1の時間制約としてのEOTTI後に、VSG抑止の時間切れとなることからSPFとするように変更しました。従って、MPF detectedといえどもSPF計算に関係してきます。 前稿#369を参照し、OPRからSPFへの平均PUD(66.13)を計算します。

OPRからSPFへの平均PUDは、 $$ \overline{q_{\mathrm{SPF(a),IFU}}}=\frac{1}{T_\text{lifetime}}\Pr\{\mathrm{SPF\ via\ (a)\ at\ }T_\text{lifetime}\}\tag{384.1} $$ ここで、表368.1より、IF non preventableのupは(2)及び(4)のうちEOTTIでカバーされない分=miss分=(383.1)、の2排他条件であるため、 $$ \begin{eqnarray} (384.1)&=&\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\left(\mathrm{OPR_\overline{prev}\ at\ }t\cup\mathrm{OPR_\text{prev}\ at\ }t\cap miss\right)\cap\mathrm{IF\ down\ in\ }(t, t+dt]\}\\ &=&\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\mathrm{OPR_\overline{prev}\ at\ }t\cap\mathrm{IF\ down\ in\ }(t, t+dt]\}\\ & &+\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\left(\mathrm{OPR_\overline{prev}\ at\ }t\cap miss\right)\cap\mathrm{IF\ down\ in\ }(t, t+dt]\}\\ &=&\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\mathrm{IF\ down\ in\ }(t, t+dt]\ |\ \mathrm{OPR_\overline{prev}\ at\ }t\}\Pr\{\mathrm{OPR_\overline{prev}\ at\ }t\}\\ & &+\frac{\Pr\{miss\}}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\mathrm{IF\ down\ in\ }(t, t+dt]\ |\ \mathrm{OPR_\text{prev}\ at\ }t\}\Pr\{\mathrm{OPR_\text{prev}\ at\ }t\}\\ \end{eqnarray} \tag{384.2} $$ 前稿#369の(369.5)より、 $$ \frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\mathrm{IF\ down\ in\ }(t, t+dt]\ |\ \mathrm{OPR_\overline{prev}\ at\ }t\}\Pr\{\mathrm{OPR_\overline{prev}\ at\ }t\}\\ =\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}(1-K_\mathrm{IF,RF})R_\mathrm{IF}(t)A_\mathrm{SM}(t)\lambda_\mathrm{IF}dt \tag{384.3} $$ さらに、 $$ \frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\Pr\{\mathrm{IF\ down\ in\ }(t, t+dt]\ |\ \mathrm{OPR_{prev}\ at\ }t\}\Pr\{\mathrm{OPR_{prev}\ at\ }t\}\\ =\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}K_\mathrm{IF,RF}R_\mathrm{IF}(t)A_\mathrm{SM}(t)\lambda_\mathrm{IF}dt \tag{384.4} $$ は明らかであるから、これらを(384.2)に代入して、 $$ \require{cancel} (384.2)=\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\left[(1-\bcancel{K_\text{IF,RF}})+K_\text{IF,RF}\left(\bcancel{1}-\frac{T_\text{eotti}}{T_\text{mpfdi}}\right)\right]R_\mathrm{IF}(t)A_\mathrm{SM}(t)\lambda_\mathrm{IF}dt\\ =\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\left(1-\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\text{IF,RF}\right)R_\mathrm{IF}(t)A_\mathrm{SM}(t)\lambda_\mathrm{IF}dt \tag{384.5} $$ よって、(103.6)の結果を用い、$\tau=T_\text{mpfdi}$であるから、 $$ \begin{eqnarray} (384.5)&\approx&\left(1-\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}\right)\lambda_\mathrm{IF}-\left(1-\frac{T_\text{eotti}}{T_\text{mpfdi}}K_\mathrm{IF,RF}\right)\alpha\\ &=&\img[-1.35em]{/images/withinseminar.png}\\ & &\text{ただし、} \alpha:=\frac{1}{2}\lambda_\mathrm{IF}\lambda_\mathrm{SM}\left[(1-K_\mathrm{SM,MPF})T_\text{lifetime}+K_\mathrm{SM,MPF}T_\text{mpfdi}\right] \end{eqnarray} \tag{384.6} $$
MPFDIに対してEOTTI分だけSM1のカバレージが減少すると解釈すると、SM1のEOTTIの制約に対して理屈に合っています。
なお、本稿はRAMS 2027に投稿予定のため一部を秘匿していますが、論文公開後の2027年2月頃に開示予定です。
ページ: