|
AI学習禁止 |
|
●下位ブロックを呼び出す際の「未使用信号」の処理 [VHDL] ![]() |
|
●ベクトル信号の 0 RESET記述 [VHDL] ![]() |
|
●オープンドレイン出力ピンの記述 [VHDL][MODELSIM][VIVADO] ![]() |
|
●I2Cインターフェイスなどで、PULL-UPを使う場合の記述 [VHDL][MODELSIM][VIVADO] ![]() |
|
●XDCファイルで PULL-UP を指定している場合の VIVADOシミュレーションの注意 [VHDL][VIVADO] ![]() |
|
●複数ファイルで配列定義を共有する記述方法 [VHDL] ![]() |
|
●ModelSim/Vivadoシミュレーションのテストベンチ記述を共通化する方法 [VHDL][MODELSIM][VIVADO] ![]() |
|
●補足-1: Vivado のシミュレーションの違い ![]() この2つは、本来なら同じシミュレーション結果になる必要がある。 もし結果が異なる場合は、タイミングが間に合っていない可能性があり、対策を検討しなければならない。 なお、制約ファイル(xxxxx.XDC) にて、入力信号のタイミング記述を忘れていると、 クロックエッジよりも僅かに遅い入力信号をラッチしてしまい(論理シミュレーションでは次のクロックでラッチ) シミュレーション結果が異なる場合がある。 入力信号のラッチタイミングで食い違いが出た場合は、制約ファイルを確認するとよい。 また、まれにコンパイラの最適化時のバグなどで結果が異なる場合もある。 分周回路にて、分周比を1/2で動作させているにもかかわらず、分周カウンターが4bitで記述されているなど、 余分なビットの記述があると最適化時に不具合が出ることがある。 テストベンチにて、実行クロック数の期待値チェックを入れておくと不具合を検出できる可能性が上がる。 タイミングシミュレーションは実行に時間が掛かるため頻繁に行うと効率が悪いが、 ある程度作業が進んだら、2つが同じ結果になるか確認することを勧める。 |
![[picture:tips_0001]](tips_0001.png)
![[picture:tips_0002]](tips_0002.png)
![[picture:tips_0004]](tips_0004.png)
![[picture:tips_0003]](tips_0003.png)
![[picture:tips_0014]](tips_0014.jpg)
![[picture:tips_0007]](tips_0007.png)
![[picture:tips_0011]](tips_0011.png)
![[picture:tips_0012]](tips_0012.png)
![[picture:tips_0005]](tips_0005.png)
![[picture:tips_0009]](tips_0009.png)
![[picture:tips_0010]](tips_0010.png)
![[picture:tips_0013]](tips_0013.jpg)