Verilogでコードを逐次実行する必要があります 問題は、forループ/ forループを使用してループを実行しようとしたことです。 forループでは、ループアンローリングが起こり、すべてのことが並行して起こると強く信じています。繰り返しのプロセスを実行するために同じ概念を適用できるように、forループの順次実行を実装する方法を教えてください。あるいは、逐次的手順を実施するために使用できる他の技術はありますか?私は、UARTを使用して複数バイトのデータを転送するためのプロセスを使用しています。Verilogでシーケンシャルデータ転送を実行する際のループアンローリングを避ける
0
A
答えて
0
ハードウェアで順次プロシージャを実装する通常の方法は、caseステートメントを使用してステートマシンを構築することです。
integer state, next_state;
parameter S0 = 0, S1 = 1, S2 = 2;
always @(posedge clock) state <= next_state;
always @(*)
case(state)
S0: begin
// ... code for sequence 0
next_state = S1;
end
S1: begin
// ... code for sequence 1
next_state = S2;
end
S2: begin
// ... code for sequence 2
next_state = S0;
end
endcase
しかし、データ転送の場合、これはハードウェアの使用が非常に非効率的です。あなたのデータは、工場の組立ラインにある車と考えることができます。自動車は製造段階で段階的な段階を経ていますが、工場の各段階では、各段階が並行して動作するように、異なる段階で同じ手順を繰り返し実行しています。それはあなたのハードウェアを合成ツールに記述する方法です。シーケンシャルな記述を取り、それを並列化するようになってきたばかりのツールがいくつか登場していますが、現在利用可能な一般的なツールとはかけ離れています。
関連する問題
- 1. モジュール間のデータ転送 - Verilog
- 2. 避ける実行オーバーラップ
- 3. ファイル転送にmultipart/form-dataを避ける
- 4. `IllegalThreadStateException`を避けるexec-maven-pluginでデーモンを実行する
- 5. 国際SMS転送
- 6. 実行中の迷惑メールボックスにポートを転送する方法
- 7. Verilogの実行順序
- 8. Javaでシーケンシャルデータを保存
- 9. Meteor.user()をMeteor.user()で実行してMeteor.user()を実行する際の回避方法Meteor.userの変更
- 10. デバッグウィンドウで実行時にasm__dyld__dyld_startを避ける
- 11. クラシファイドでの自動転記を避けるには?
- 12. SSIS - 実行中にファイルを開くのを避ける
- 13. ループアンローリング&最適化
- 14. Verilogのワイヤに実際の値を割り当てます
- 15. NodeJS - シェルコマンドを実行し、終了してシェルコマンドに転送する
- 16. バッチ転送用の自動実行スクリプト
- 17. 実行ファイル間のデータ転送
- 18. カーネル実行中のCUDA転送メモリ
- 19. C++ - 実行可能ファイルの転送
- 20. ユニットテスト中に実行するコードブロックを避けてください。
- 21. ISE Xilinx14.7でトップモジュールを実装するVerilog
- 22. バッチファイルで長いコード行を避ける
- 23. Pythonで長いコード行を避ける
- 24. HTMLプログラミングで改行を避ける
- 25. 配列をループする際にeval()を避けるには?
- 26. NSUserDefaults(Xcode)を保存する際に重複を避ける
- 27. keyupイベントのダブル実行を避けるjavascript
- 28. X11転送を使用してDockerで複数のGUIを実行する
- 29. 実行時にすべてのコントローラをロードするのを避ける方法
- 30. タイマーティック機能を実行中にポストバックを避ける
verilogは並行言語です。シーケンシャルに実行されるのは、** always **ブロック内のステートメント**だけです。 'always'ブロック自体は自由に実行されます。生成ブロックの内部でも同じです。あなたは間違った言語を選ぶ。 Verilogでは、* sequential *アクションを行うためにすべてをフロップと同期させる必要があります。 – Serge
私はこれについてはわかりませんが、あなたの説明に基づいて、あなたはソフトウェアではなくハードウェアについて話しているようには見えません。それが本当であれば、Verilogは理想的な言語ではないかもしれません。 –