問題タブ [myhdl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
87 参照

python - マルチティック操作に推奨される MyHDL デザイン パターンは何ですか?

ほんの一握りの命令と操作で非常に単純なマシンを作成することにより、MyHDL を学習しようとしています。私が苦労しているのは、解決するのに複数のクロックサイクルがかかる操作を処理するようにマシンを設計するための最良の方法です。現在、私が書いたすべてのハードウェア コンポーネントは、解決するのにたった 1 つのティックしか必要としないため、問題を抱えているのはコントロール ユニットです。

たとえば、マシンのすべての操作が完了するまでに 1 ~ 3 クロック サイクルかかるとします。これは、すべての命令に 3 サイクルが必要であることを意味します (現在、並列処理を行っていないため)。

これは、マシンに 3 つのステージが必要であることを意味します。つまり、HDL 用語では、3 つのクロック センシティブなロジック ブロックが必要です。マシンの 1 つの完全な反復は次のようになります。

  • コントロールA
    • ティック :: コンポーネント
  • コントロール B
    • ティック :: コンポーネント
  • コントロール C
    • ティック :: コンポーネント
  • Aに戻る

並列処理がなく、各ステージが共有ハードウェアを使用しているため、制御ブロックを順番に順番にトリガーする必要があります。これを行うには、複数のクロックが必要ですか? コンポーネント用の1つのクロックと、各制御フェーズの最後にコンポーネントクロックのティックが行われる制御用の1つのクロック? ただし、コントロール A、B、および C はすべて、各クロック ティックによって一緒に実行されます。次に、コンポーネント用に 1 つ、各制御フェーズの最後にコンポーネント クロックと次のフェーズのクロックが進められる各制御フェーズ用に 1 つずつ、計 4 つのクロックが必要ですか? または、1 つのクロックと、各フェーズがいつ進むべきかを伝えるブール信号が必要ですか (すべての制御フェーズがフラグをチェックし、設定されている場合は実行して次のフェーズのフラグを設定します)。