問題タブ [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.
algorithm - ビットいじりによるラウンドロビン スケジューリングで次を見つける
次の問題を考えてみましょう。ワンホット エンコーディングで現在スケジュールされているスレーブを表すビット文字列があります。たとえば、「00000100」(左端のビットが #7、右端のビットが #0) は、スレーブ #2 がスケジュールされていることを意味します。
ここで、ひねりを加えて、ラウンド ロビン スケジューリング スキームで次にスケジュールされたスレーブを選択したいと思います。どのスレーブが実際にスケジュールされたいかを示す「リクエストマスク」があります。次の奴隷は希望者からのみ選ばれます。
いくつかの例 (左にローテーションすることでラウンドロビン スケジューリングが行われると仮定します)。例1:
- 現在:「00000100」
- マスク:「01100000」
- 次のスケジュール: "00100000" - 通常のラウンドロビンでは、#2 の後に #3、次に #4 が来るはずですが、要求がないため、#5 が選択されます。
例 2:
- 現在:「01000000」
- マスク:「00001010」
- 次: "00000010" - スケジューリングは左に循環することによって行われ、#1 はその順序で最初に要求しているスレーブです。
さて、これはループで簡単にコーディングできます。しかし、実際には、ループなしで少しいじる操作で結果を取得したいと考えています。動機: これを VHDL/Verilog のハードウェア (FPGA) に実装したい。
ボーナスは、任意の量のスレーブ N に対して汎用的なアルゴリズムを構成することです。
ところで、これは宿題の問題ではありません。何らかの方法でスレーブをスケジュールし、スレーブの要求によってスケジュールを調整したい場合はいつでも、これは重要な問題です。私の現在の解決策はやや「重い」ものであり、明らかな何かが欠けているかどうか知りたいと思っていました。
logic - このデジタル ロジックを Verilog または VHDL でどのように実装しますか?
FPGA にプログラムできるように、いくつかのデジタル ロジックを Verilog または VHDL で実装する必要がある別の stackoverflow の質問への回答を投稿しました。
次のロジック ダイアグラムを Verilog、VHDL、またはその他のハードウェア記述言語でどのように実装しますか?
番号付きのボックスは、フィールド内のビットを表します。各フィールドにはKビットがあり、現在のビットとマスクのビットはコンピュータ システムによって提供されます (ラッチ レジスタまたは同等のものを使用)。次のビットは、同じコンピューター システムに読み戻されます。
代替テキスト http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg
verilog - Verilog の $readmemh と $writememh の機能は何ですか?
$readmemh
とを多用するいくつかの Verilog テストベンチ コードを見てきました$writememh
。
これらの関数は基本的にメモリの読み取りと書き込みを行うという漠然とした理解があります。それらの特定の機能は何ですか、またどのように機能しますか?
verilog - テストベンチ用の verilog または systemc
Verilog ベースの RTL コードを検証するタスクが割り当てられています。現在、verilog を使用して RTL テストベンチをコーディングするのは非常に難しいようです (私にとっては)。そこで、次のいずれかを試してみたいと思います。- RTL への PLI インターフェイスを提供してみて、それによってテスト用の 'C 関数を呼び出す - 'C 関数とのインターフェイスにシステム 'C を使用する
PS: ビヘイビア モデルのテストに使用された広範な 'C コードが既にあります。ハードウェア プログラミングの世界は初めてです。任意のポインタをいただければ幸いです。
hardware - FPGAベースのRTL評価
現在、いくつかのRTLをテストしており、ncverilogを使用していますが、非常に遅いです。ある種のFPGAボードを使用すると、処理が速くなると聞いています。本当ですか?
verilog - DPI を使用してタスクを 'C にエクスポートする
DPI を使用して C ソースに接続された Verilog ベースのテストベンチがあります。現在、DPI を使用して、ファームウェア全体を作成する予定です。これを行うには、3つのことが必要です
- レジスタ読み取り
- レジスタ書き込み
- 割り込みハンドラ 理解したとおり、レジスタの読み取りと書き込みは、RTL テストベンチからエクスポートする必要があるタスクです。そして、割り込みハンドラー ('C から関数をインポートして実装しました)。
ほとんどのケイデンス ドキュメントを確認しましたが、有用なヒントは見つかりませんでした。ケイデンスユーザーコミュニティにも登録しましたが、登録が承認されるまで質問できないようです。
誰かがこれを知っている場合に備えて、助けていただければ幸いです。
task - Verilog でのタスク
変数 paddr diffrent 値を与えるタスクを作成しようとしています:
テストベンチからこのタスクを呼び出そうとしましたが、次のように書きました: paddr1 (paddr,clock);
コンパイルはパスしますが、シミュレーションを実行しようとすると、「paddr1」への未解決の参照というエラー メッセージが表示されます。回答ありがとうございます。タスクは別のファイルにあり、テスト ベンチにあります。
ありがとうヤニフ
hardware - Spartan-3Eでの乱数生成
Spartan-3E FPGAで遺伝的アルゴリズムの疑似乱数を生成する必要があり、それをVerilogに実装したいと思います。これに関するポインタを教えてください。
embedded - XSTがレジスタを最適化するのはなぜですか?それを停止するにはどうすればよいですか?
32ビットカウンターをインクリメントし、$ sformatを使用して数値をASCII文字列に変換し、FTDIFT245RLを使用して文字列を一度に1バイトずつホストマシンにプッシュする単純なVerilogプログラムがあります。
残念ながら、ザイリンクスXSTは文字列レジスタベクトルを最適化し続けています。さまざまな初期化およびアクセスルーチンをいじってみましたが、成功しませんでした。最適化をオフにできないようです。オンラインで見つけたすべての例は、初期化ルーチンとほとんど変わりません。私は何が間違っているのですか?
環境/opt/Xilinx/10.1/ISEのファイル「3s100e.nph」からアプリケーションRf_Deviceのデバイスをロードしています。警告:Xst:1293-FF /ラッチstr_0のブロックでは、定数値が0です。このFF/ラッチは、最適化プロセス中にトリミングされます。
警告:Xst:1896-他のFF /ラッチトリミングのため、FF/ラッチstr_1のブロックでは定数値が0になります。このFF/ラッチは、最適化プロセス中にトリミングされます。
警告:Xst:1896-他のFF /ラッチトリミングのため、FF/ラッチstr_2のブロックでは定数値が0になります。このFF/ラッチは、最適化プロセス中にトリミングされます。
verilog - カスタムモジュールの配列を作成できますか?
カスタムモジュールのインスタンスの配列を作成できますか?
例:次のようにすることができますinput [15:0] a;
-これによりバスが作成されます。カスタムモジュールに対して同じことを行うことができますか?つまりDFF [15:0] d;
、DFFはカスタムモジュールです。ここでは、DFFモジュールのインスタンスを16個作成する予定です。