問題タブ [vivado]
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.
tcl - TCL バッチ モードでのビヘイビア シミュレーション
シミュレーション後に必要なすべての情報を .txt ファイルに保存するビヘイビアー シミュレーションがあります。MATLAB で生成されたさまざまなパラメーターを使用して、このシミュレーションを約 8000 回以上実行する必要があります。さまざまなパラメーターを指定して TCL スクリプトを実行したいと考えています。私がこれまでに持っているもの:
MATLAB から、次のパラメーターを使用してバッチ モードで Vivado を呼び出します。
TCL スクリプトは次のようになります。
ただし、Vivado では値が変更されないようです。常に 1000 ns (デフォルト設定) のシミュレーションを実行し、デフォルトで .vhd ファイルに設定されている汎用パラメーターを使用します。また、 http://www.xilinx.com/support/answers/64118.html (ここから TCL コマンドを取得した場所) に示すように、GUI を使用して汎用パラメーターを設定しようとしましたが、シミュレーション パラメーターは設定されません。変化する。原因は何ですか?私のスクリプトとバッチモードでシミュレーションを行う方法は正しいですか?
vhdl - zynq デバイスの RAM にデータを保存
現在、 Zynqの PS 部分で生成されたイメージをボードの DDR3 に格納する際に問題が発生し、そのイメージをボードの PL 側に読み込んで、そこで作成された VGA ドライバーができるようにします。
PS は、理想的にはドラムに保存したい 640x480 の画像を作成します。私はこれまで、DMA を使用してデータを前後に転送し、何らかの方法で (すべてのピクセルを保存するのではなく) システムのブロック RAM に保存していました。しかし、それは理想的な解決策ではなく、私もそう知っています..
私の質問は、zynq ボードの DDR RAM にアクセスする方法です。PS 側にあることはわかっていますが、インターフェイス方法を説明するドキュメントが見つからないようです。
verilog - if else 条件での Verilog パラメータの使用
次の Verilog コードを検討してください。
C_SUB_WIDTH、C_SUB_HEIGHT、BIT_DEPTH はすべてパラメーターなので、single_block_width もパラメーターになりますか?
そうでない場合、single_block_width をパラメーターにして、上記のパラメーターに基づいてその値を設定するにはどうすればよいですか?
Xilinx Vivado を使用して上記のコードを合成しています。(合成できる必要があります)
ありがとうございました。
c - レジスターへのアクセス
ソフトコアの Cortex-M0、Keil uvision 5、vivado 14.4 を使用しています。アクセラレータを ARM アーキテクチャに接続しました。
これを行うと、Vivado シミュレーターですべて問題なく動作しました。
しかし、私がこれを試すとき
シミュレーションが機能せず、レジスタにアクセスできません:0x59000000
verilog - 異なる周波数のLEDカウンタープログラム(0 - 15)
0 から 15 までカウントする Zybo ボード上の 4 つの LED でカウンターを作成したいと考えています。また、ボードの 4 つのボタンを、LED の変化の異なる周波数 (0.5Hz、1Hz、2Hz、 4Hz)。固定周波数の単純なカウンターは既に達成していますが、ボタン周波数が変化する2番目の部分は達成していません。
ブロック デザインには、Zynq プロセッシング システム、ボタン データを読み取る AXI GPIO、および LED のドライバー、クロック分周器、周波数チェンジャーとして機能するカスタム IP があります。
カスタム IP
クロック分周器モジュールコード。
レジスタ定数番号は、クロック周波数を変更するために対応する値を取ります。
カスタム IP ロジックの残りの部分。
ボタン データはカスタム IP (slv_reg0) の最初のレジスタに送信され、Clock_Divider モジュールの reg0 に送信されます。
メイン C プログラム
ボタン データが AXI GPIO によって正しく読み取られていることを確認できます。これは、ボタンを押すと正しい行がターミナルに出力されるためです。しかし、ボタンを押しても周波数は変わりません。また、ボタン データがカスタム IP に送信されなかった場合でも、デフォルトの 1 Hz よりもはるかに遅い、非常に遅い周波数で実行されます。
問題は、カスタム IP の reg0 ケース ロジック、または CPU からカスタム IP のレジスタへのボタン データの送信のいずれかにあるはずです。
encryption - Vivado で Modelsim のファイルを暗号化する方法
ベンダーは、一部のコードを生の VHDL にコンパイルするツールを使用しています。彼らは私が生のコードを見ることを望んでおらず、代わりに出力ファイルを暗号化したいと考えています。現時点では、Vivado を使用して EDIF ネットリストに暗号化しています。
これは、デザインを実装する際には問題ありません。これをブラック ボックスとして、I/O のラッパーを使用し、ビットストリームを書き込みます。彼らは、ブラックボックスのデザインが機能することを保証してくれます。リソースの使用率が予想どおりに上がっているのは確かですが、その結果をシミュレートして検証したいと思います。
modelsim でシミュレートしようとすると、もちろん、これらのファイルを復号化する方法がわかりません。ネットリストを VHDL に書き込むと、次のエラーが発生します。
これらのファイルを暗号化する際に、modelsim の暗号化キーを含めるように依頼しましたが、方法がわかりませんでした。
.tcl を使用した大まかなワークフローは次のとおりです。
私の質問は、Vivado で EDIF ファイルを生成するときに、modelsim 暗号化キーをどのように含めるのですか?
vhdl - ファイルへのVHD書き込みは何もしません
VHDLコードの画像操作部分を書きました。テストのために、Matlab と比較的単純なテストベンチ (ファイルから入力に値を入力するだけ) を使用して、ピクセル値のファイルを作成しました。結果を新しいファイルに書き込んで、結果を処理して結果の画像を確認したかったのです。
コードがコンパイルされ、テストベンチが実行されます。どこかで停止するかどうかを確認するために入力したすべてのレポートが表示されますが、結果を含むファイルは空のままです。print も writeline も何もしていないようです。ファイルが存在し、Vivado のプロジェクトに追加されるため、パス全体を記述する必要はありません。シミュレータ出力に警告やエラーはありません。
hereおよびhereからファイルへの書き込みコードを取得し、それを少し拡張して、クロックごとにファイルへの書き込みを行い、上部にキャプションを追加しました。
color_out(0) は出力の一部です。color_out_v は出力有効です。
何か案は?私は何が欠けていますか?
verilog - シミュレーション結果が合成回路図と一致しない
IP コアのレジスタを更新するための非常に単純な回路があります。
ここでの目標はruleCount
、最初のサイクルstart
がアサートされたときに登録することです (他のいくつかの伝統もこれに依存しています)。だから、私は に登録start
しlastStart
、条件を待ってから、適切に行動します。
Vivado 2015.4 とvSim XSim、および Kintex Ultrascale 060 を使用しています。エラボレート/合成の後、次の回路図が得られます。
私の機能/RTL シミュレーションは、私が期待したものと一致しています。しかし、ボード上でデザインが機能していなかったので、合成後のシミュレーションを試すことにしました。次のような
結果が得られました。 示されているように
start
、テストベンチによって発生し、Vivado によって挿入された IBUF からの出力は同じ値を生成します。 . ただし、理由は不明ですが、が High の場合 (t=35ns、t=45ns) lastStart
、2 つのクロック エッジのいずれかで値をキャプチャできません。start
また、start&&!lastStart
高いにも関わらずruleCountReg
更新されません。
比較のために、機能 RTL シミュレーションを次に示します
。Is this a bug in Vivado? Verilog は簡単で、回路の正しい回路図を生成しているように見えますが、正しくないネットリストを作成している可能性はありますか? 合成では、これらの信号に関連する警告は生成されません。
編集:シミュレーションの最初の 100ns の間、xSim がレジスタを更新していないように見えます。
vhdl - Vivado がテストベンチ ファイルの変更を認識しない
Vivado 2015.4 についてサポートが必要です。VHDL
プロジェクトにテストベンチ ファイルを追加しましたが、いくつかエラーがありました。これらのエラーを修正した後、シミュレーションを再実行すると、以前と同じエラーが原因で機能しません。
したがって、変更は認められませんでした。なぜか行方不明です。
ファイルを保存し、階層を上に移動してコンパイル順序を変更しようとしましたが、変更はありませんでした。ここで何が欠けていますか?Vivado を再起動しても解決しないため、まだ設定していない設定があるはずです。
vhdl - unsigned を使用した VHDL での複数の加算
4 つの値を取り、1 つの入力の値に応じて、いくつかの異なる方法を使用して 2 つの平均を作成し、その特定の方法の 8 つの最上位ビットを出力する VHDL の一種の奇妙なビットを記述しようとしています。
Xilinx Vivado と XSim を使用しています。
整数を使用していた以前のあまり複雑でないリビジョンでは、私のコードは正常に機能しました。ただし、プロジェクトの要件により、出力には std_logic_vectors を使用する必要があると言われました。
一度の割り当てで複数の追加を行おうとすると問題が発生しますが、これが不可能なのか、単に間違っているのかわかりません。
これが私のコードです:
私のテストベンチ:
4 つすべてを加算しようとする MODE = "00" を使用すると、シミュレーションが停止し、次のエラーが表示されます。
4 つの 13 ビット数の加算は 15 ビットである必要があるため、ここで何が問題なのかわかりません。誰かがこれについての洞察を共有できますか? unsigned を複数回加算することはできませんか? さらに情報が必要な場合はお知らせください。
ありがとう