問題タブ [asic]

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.

0 投票する
3 に答える
973 参照

verilog - 同じソース、異なるクロック周波数 (マルチクロック設計)

同じソースから生成されたクロックでマルチクロック デザイン信号を処理する方法を教えてください。たとえば、1 つのクロック ドメインが 25Mhz で、もう 1 つのクロック ドメインが 100Mhz の場合、25Mhz から 100Mhz および 100Mhz から 25Hz のデータ バスを処理するにはどうすればよいですか?

それを処理するための他の簡単なCDC方法でAFIFOを使用したくないですか?

0 投票する
2 に答える
1685 参照

vhdl - std_logic_vector [vhdl] での VHDL バイナリ検索の実装

standard_logic_vector の最初の '1' を検索し、'1' がどのベクトル位置にあったかを出力する ASIC (ASIC の一部である必要があります) 用の合成可能な VHDL (関数またはプロシージャ) を作成しようとしています。たとえば、「10001000」の 8 ビット slv があります (位置 3 と 7 の「1」)。この slv を使用すると、出力は 4 になります (出力は 1 ベースです)。

実際の VHDL は、長さが最大 ​​512 ビットの大きな slv を検索します。二分探索関数を実装しようとしましたが、「定数でない範囲の値を合成できませんでした。[CDFG-231] [精巧な] 定数でない範囲の値がファイル '...' の 61 行目にあります」という合成エラーが発生します。以下のコードで、不平を言う場所を示しました。非定数範囲値を使用せずにバイナリ検索アルゴリズムを実装する方法がわかりません。このコードを合成できるように変更するにはどうすればよいですか?

HDL のバイナリ検索アルゴリズムを検索して、潜在的なコードを確認し、エラーを検索しようとしましたが、何も見つかりませんでした。

入力が「1」でインクリメントされる単純なテスト ベンチを次に示します。addr_o は、'1' を持つ入力 lsb の位置 (1 ベース) である必要があります。

ご協力ありがとうございます。-ジェイソン

コードを編集し、テストベンチを追加しました