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. ポート転送を避ける
- 2. モジュール間のデータ転送 - Verilog
- 3. 避ける実行オーバーラップ
- 4. ファイル転送にmultipart/form-dataを避ける
- 5. fsmを使用してfrequecny dividerのラッチを避ける - Verilog
- 6. 実行を避けるソース設定ファイル
- 7. `IllegalThreadStateException`を避けるexec-maven-pluginでデーモンを実行する
- 8. Pythonでリストを利用する際の新しい行を避ける方法
- 9. 国際SMS転送
- 10. グリッドの内容を整列する際に複数の行を避ける
- 11. ASP.NETで埋め込みコードブロックの実行を避ける
- 12. 実行中の迷惑メールボックスにポートを転送する方法
- 13. Javaでシーケンシャルデータを保存
- 14. PHPExcelを使用して実際のデータの後で空の行を避ける方法
- 15. Meteor.user()をMeteor.user()で実行してMeteor.user()を実行する際の回避方法Meteor.userの変更
- 16. Verilogの実行順序
- 17. クラシファイドでの自動転記を避けるには?
- 18. デバッグウィンドウで実行時にasm__dyld__dyld_startを避ける
- 19. SSIS - 実行中にファイルを開くのを避ける
- 20. 実際のデバイスでアプリを実行する際の問題
- 21. NodeJS - シェルコマンドを実行し、終了してシェルコマンドに転送する
- 22. Verilogのワイヤに実際の値を割り当てます
- 23. カーネル実行中のCUDA転送メモリ
- 24. 実行ファイル間のデータ転送
- 25. C++ - 実行可能ファイルの転送
- 26. バッチ転送用の自動実行スクリプト
- 27. ループでこれを実行する際に助けが必要
- 28. php経由でjsonファイルにデータを送信する際の重複を避けるには?
- 29. ユニットテスト中に実行するコードブロックを避けてください。
- 30. Pythonで長いコード行を避ける
verilogは並行言語です。シーケンシャルに実行されるのは、** always **ブロック内のステートメント**だけです。 'always'ブロック自体は自由に実行されます。生成ブロックの内部でも同じです。あなたは間違った言語を選ぶ。 Verilogでは、* sequential *アクションを行うためにすべてをフロップと同期させる必要があります。 – Serge
私はこれについてはわかりませんが、あなたの説明に基づいて、あなたはソフトウェアではなくハードウェアについて話しているようには見えません。それが本当であれば、Verilogは理想的な言語ではないかもしれません。 –