問題タブ [system-verilog]
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.
arrays - 優先度付きキューの実装にVerilogを使用して、数値の配列から最小値を見つけます
私はVerilogの初心者ですが、16要素の配列(各要素は16ビット長)があり、配列の最小エントリを見つけて最小値を返し、すべてのエントリを再配置したいと考えています。配列がエントリの1つの連続したブロックになるように、最小値の後に来る配列。コンパレータを使用する必要があることはわかっていますが、多数の数値を比較して最小値を決定することに関して、どこから始めればよいのか本当にわかりません。
編集:私が実際に作っているのは優先キューです。キュー機能を実装しましたが、キューの先頭にあるものを返す代わりに、最小値のエントリを返し、ストレージを連続させたいと考えています。
vhdl - fpga 実装のパイプライン スループットを最適化するためのベスト プラクティスは何ですか?
たとえば、特定のパイプラインを最大限に活用するために、リタイミングや c-slow を最大限に活用するにはどうすればよいでしょうか。
リタイミングを使用すると、入力にシフト レジスタを配置することでより良い結果が得られるモジュール (フォワード レジスタ バランシング) と、出力にシフト レジスタを配置することでより良い結果が得られるモジュール (バックワード レジスタ バランシング) があります。
今のところ、次の方法を使用します。
- コード hdl (Verilog)
- 特定のモジュールのタイミング制約を作成する
- 合成、マップ、配置、配線 (ISE 13.1 を使用)
- 改善するモジュールの配置配線後のタイミングと、ロジック レベルの最大数を調べます。
- この数のロジック レベルを使用して、挿入するフリップフロップの数を推測してください。
- フリップフロップを挿入し、レジスタのバランスを有効にし、最善を尽くします
現状では、この方法はヒット&ミスです。かなり良い結果が得られることもあれば、がらくたになることもあります。では、そのようなリタイミングの成功率を向上させるにはどうすればよいでしょうか?
これを支援できるツールはありますか?また、リンク、論文、書籍の推奨事項も大歓迎です。
constants - verilogでconstを使用する方法
使用する代わりに
使いたい
または同じこと
その願いをVerilogで行うことはできますか?
verilog - 仕事をする前にポーズのclkを待っていますか? - どのように
(i)でマークされた行は、出力ポートにoutpを送信する前に、ポーズclkだけ待機したいのですが、;のように試した場合。
エラーが発生します
それはabsurb回答/シミュレーション出力を提供します。 出力を送信する前にposedgeclkを待つために、その行に何を置く必要がありますか?
verilog - always@*を使用| 意味と欠点
その意味は何ですか?
- いつも @ *
そのステートメントを使用した後に起こりうる副作用はありますか?
c++ - System Verilog 関数を C または C++ にコンパイルすることはできますか?
私は、System Verilog で記述された一部のハードウェア用に C++ で記述された高レベルのシミュレーターに取り組んでいます。
System Verilog コードには、ロジックのみを含む (つまり、時間のかかるものやフリップフロップを含まない) 多数の関数が含まれています。このコードを C++ シミュレーターで再利用したいと考えています。
これらの関数を C++ (または C++ に簡単にリンクできる C) で再利用する方法はありますか?
- コンパイル前に System Verilog を C/C++ に変換しますか?
- System Verilog を C/C++ で呼び出し可能な関数にコンパイルしますか?
- その他の方法で?
arrays - Verilog の乱数配列
Verilog モジュールへの入力のすべての可能な組み合わせをテストしたいと考えています。ネストされた for ループを使用して配列を作成することで、これらの入力を生成することができました。ただし、配列をランダムな順序で処理したいと考えています。これはどのように行うことができますか、またはすでにランダムな順序になっているすべての可能な入力の配列を生成する方法はありますか?
verilog - always_comb コンストラクトに関する Systemverilog の問題
この SystemVerilog コードに問題があります。コードは次のとおりです。
ブースのアルゴリズムを使用して、32 ビットの入力と 64 ビットの積を持つ乗算器を作成しようとしています。このエラーが発生します:
always_comb コンストラクトは、純粋な組み合わせロジックを推論しません
なぜこれが起こるのですか?
bash - 名前付きパイプを使用して読み取り/書き込み環境を作成する
RedHat EL 4 を使用しています。Bash 3.00.15 を使用しています。
私は SystemVerilog を書いていて、stdin と stdout をエミュレートしたいと思っています。環境では通常の stdin と stdout がサポートされていないため、ファイルのみを使用できます。名前付きパイプを使用して stdin と stdout をエミュレートしたいと考えています。
mkpipe を使用して to_sv および from_sv ファイルを作成する方法と、それらを開いて SystemVerilog で使用する方法を理解しています。
「cat > to_sv」を使用すると、文字列を SystemVerilog シミュレーションに出力できます。しかし、それは私がシェルに入力しているものも出力します。
可能であれば、ほとんど UART 端末のように動作する単一のシェルが欲しいです。入力したものはすべて「to_sv」に直接送信され、「from_sv」に書き込まれたものはすべて印刷されます。
私がこれについて完全に間違っている場合は、必ず正しい方法を提案してください! どうもありがとう、
ナチュム・カノフスキー
hardware - forループを使用してVerilogで変数範囲を指定する
私はこのコードを書き込もうとしています:
基本的に、()に書き込もうとしているビットの位置は、にen
応じて、話しているアドレスに応じて変わりますi
。i
は定数ではないため、このコードは合成できません。
これに対する他の回避策はありますか?私が知っている唯一の回避策は、これら3つのステートメントをCONST回書き出すことです。私は最終的にそれをする必要がないことを望んでいます。他に解決策はありますか?