Tech Village|編集部ブログ

『E検定』レベル2の問題例(ディジタル)

2012年1月31日

 

 Verilog HDLでステート・マシンを設計してシミュレーションで確認すると仕様どおりに動作していない(ステート2からステート0へ状態が遷移しない現象).RTL,テストベンチ,シミュレーション結果,状態遷移図を参考にして,原因を選びなさい.

 

ア RTLのステート・マシン記述で,ステート2からステート0への移行条件が記述されていないため,ステート・マシンが動作しない.

イ RTLの組み合わせ回路always記述で,センシティビティ・リストが不完全なため,ステート・マシンが動作しない.

ウ テストベンチの記述(initial文)にあるB=1の入力時にA=1も成立しているため,ステート・マシンが動作しない.

エ テストベンチの記述にある設計対象のインスタンス化で,接続される信号が間違っているため,ステート・マシンが動作しない.

 

 


【答】 イ

 

【解説】

 問題で「シミュレーションで確認すると仕様どおりに動作していない」と問われていることから,「シミュレーション結果」の見るべきポイントはYと仕様Yの部分と,「状態遷移図」のSTATE2の部分です.「シミュレーション結果」が示すAやBの入力信号の状態を見ても,入力の仕様的に問題無いことから「テストベンチ」に問題が無いことがわかります.この時点で選択肢ア~エで問われているウとエに関しては選択対象外になります.よって「RTL」のステート・マシン記述に原因があることになります.

 ステート・マシンの状態遷移条件が揃っているのにもかかわらず,変化するべきポイントで変化しない原因は,always文で記述されたステート・マシンの信号定義です.always文はセンシティビティ・リストに定義する信号の変化を常に見ることを行っています.よってセンシティビティ・リストが不完全であると,STATE2の状態遷移条件である入力信号Bの信号をalways文の中に記述してあっても,その信号の変化を見つけることができないので,シミュレーション結果のような動作になってしまいます.

 

カテゴリ
アーカイブ