問題タブ [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.
vhdl - VHDL - 合成結果がビヘイビアと同じではない
Newton 法を使用して sqrt を計算する VHDL でプログラムを作成する必要があります。大丈夫だと思われるコードを書きましたが、機能しません。ビヘイビアー シミュレーションでは適切な出力値が得られますが、合成後 (およびハードウェアで起動) では得られません。プログラムはステートマシンとして実装されました。入力値は整数 (使用される形式は std_logic_vector) で、出力は固定小数点です (計算目的で入力値に 64^2 を掛けたので、出力値の LSB ビットは小数部になります)。
関数を使用して、vhdlguru blogspot から vhdl を分割しました。ビヘイビア シミュレーションでは、sqrt の計算に約 350 ns (Tclk=10 ns) かかりますが、合成後は 50 ns しかかかりません。
使用コード:
以下のビヘイビアおよび合成後のシミュレーション結果のスクリーンショット:
私は VHDL の経験がほとんどなく、問題を解決するために何ができるかわかりません。計算用の他のプロセスを除外しようとしましたが、うまくいきませんでした。
あなたが私を助けてくれることを願っています。プラットフォーム: Zynq ZedBoard IDE: Vivado 2014.4
よろしく、ミハル
git - ソースファイルの違いだけを表示する方法
現在、git で Xilinx Vivado プロジェクトをセットアップしようとしています。問題は、Vivado が使用する、ファイル差分で見たくない厄介なファイルが大量にあることです。プロジェクトを別の場所に複製して、それを機能させたいと思っています。したがって、ソースファイルを追跡するだけではなく、ファイル diff でソースファイルを表示したいだけです。これはどのように行うことができますか?
vhdl - 1.001 us は VHDL の 1001 ns に等しいでしょうか?
time
現在、さまざまな FPGA ベンダー ツールで型が適切に合成/シミュレーションされているかどうかを確認するテストを作成しています。コーナー ケースの 1 つは、時間値の抽象リテラルとして実際のリテラルを使用することです1.001 us
。
IEEE 規格。1076-2008、セクション 5.2.4.1 または IEEE Std. 1076-1993、セクション 3.1.3、パラ 8 は次のように述べています。
物理タイプの各値に対応する位置番号があります。ユニット名に対応する値の位置番号は、そのユニット名が表すプライマリ ユニットの数です。抽象リテラル部分を持つ物理リテラルに対応する値の位置番号は、抽象リテラルの値と付随するユニット名の位置番号の積を超えない最大の整数です。
の定義TIME
(セクション 16.2 または 14.2 を参照) に従って、基本単位はフェムト秒であるため、位置番号1 us
は 1,000,000,000 です。したがって、 の位置番号は、 の位置番号で1.001 us
もある 1,001,000,000 になり1001 ns
ます。したがって、両方の値は等しくなければなりません。
しかし、次の簡素化されたユニットを合成またはシミュレートしようとすると、異なる結果が得られます。最小時間分解能が 1 fs または 1 ps であることを確認しました。
QuestaSim (ModelSim) は、期待される結果を報告した唯一のツールでした。
ただし、Quartus 15.0 または ISE 14.7 で合成した場合の実際の結果は次のとおりです。
したがって、 の値はC2
期待どおりではありません。引用されたテキストを方程式として書き留めると、定数 で期待される結果が得られC3
ます。ISE 14.7 または Vivado 2015.4 の統合シミュレーターを使用すると、同様の結果が得られます。
では、Quartus / ISE / Vivado の動作はバグと見なすべきでしょうか? または、VHDL 規格で1.001 us
は、等しくないことが許可されてい1001 ns
ますか?
編集:と比較した場合と同様に、 と比較1.001 ps
した場合にもバグが発生します。との手計算も正しかったので、実物の精度には問題ないはずです。1001 fs
1.001 ns
1001 ps
C3
Vivado のシンセサイザーで奇妙な結果が報告されることに注意してください。