問題タブ [synthesis]
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.
audio - 音響加算合成 - 任意の倍音振幅
C#で書かれた音楽合成の実用的なソリューションがあります。振幅スペクトルの収集に基づいて別の機器を実装すると、問題に直面しています。ピアノ、声、管、ヴァイオリンのすべてのハーモニカルパート (1-10) http://elektronicka-hudba.telotone.cz/clanky/metody-zvukove-syntezy/を見ることができるこの Web を見つけましたが、ドラム、ギターなど、さまざまな楽器を追加したい。私はインターネット上の何百ものページを調べましたが、成功しませんでした. 他の楽器の倍音の振幅を知っていますか?
編集:
楽器のハーモニクス (振幅スペクトル 1 ~ 10) を知っている人はいませんか?
どうもありがとう
ヒミザク
verilog - Basys2 での 7 セグメントの多重化
これは私の最初の投稿なので、これが正しく行われていることを願っています。BASYS2 ボードの 4 桁の 7 セグメント ディスプレイに「4 3 2 1」を出力しようとしています。0 が信号を有効にし、ポートが正しくマッピングされていることを確認しました。1 桁しか表示できないため、エラーは多重化ロジック内にあると考えられます。私は Verilog が初めてで (C に慣れています)、何か提案をいただければ幸いです。ありがとう
verilog - 常に@(posedge clk)のイベント制御
alwaysブロック内のイベント制御ステートメントの動作について疑問に思う:
イベント信号が着信するまでプロセスは「スタック」しますか、それともclkエッジが着信するたびに再開しますか?
また、これは合成可能ですか(Quartus IIは「はい」と言っていますが、まだシミュレートされていません...)?これは良い習慣ですか、それともこの問題に対する別のより良いアプローチがありますか?
process - VHDLシフト演算子?
私はまだ VHDL のいくつかの癖に慣れようとしていますが、少し問題があります。まず、rol、ror、ssl、srl などのシフト演算子は合成できないことを理解しています。このラボの目的は、ゴールデン モデルを使用して、テストベンチで同じものの合成可能なバージョンと照合することです。
このプログラムの目的は、温度計コードを 3 ビットの 2 進数に変換することです。つまり、温度計コード「00000001」=「001」、「00000011」=「010」、「00000111」=「011」など、基本的に文字列の1の数を右から数えようとしています左へ。1 のストリングの間に '0' が配置されることはありません。そのため、ベクトル "00011101" は無効であり、決して発生しません。
私は、どのように機能させるかを理解できない、合成不可能な (そしてこれまでのところ、コンパイル不可能な) アルゴリズムを考案しました。基本的には、温度計コードを読み取り、それを右にシフトして、温度計コードがゼロになるまでカウンターをインクリメントし、そのカウンター値を 3 ビットの std_logic_vector に割り当てるという考え方です。以下は、これまでに行ったコードです。
vhdl - HDL の組み合わせ除算
純粋な組み合わせの 64 ビット除算を実装する場合、ゲート数を見積もる方法を考え出そうとしています。
合成ツールで 64 ビット/64 ビット整数除算の組み合わせを生成できません。
verilog - 非ブロッキング割り当ての Verilog シーケンス
次のコード セクション (同じブロック) を言います。
変数 A には常に 2 が割り当てられますか? または、競合状態が発生し、1 つまたは 2 つが割り当てられますか?
ノンブロッキング代入についての私の理解では、将来的に変数 A を代入するのはハードウェア次第なので、ランダムな結果になる可能性があります。ただし、これは直感的ではありません。シミュレーションでは常に 2 が割り当てられることが示されていますが、これがハードウェア合成の場合に確実に当てはまるかどうかを知りたいです。
vhdl - HDL 合成は、感度リストに欠落しているシグナルについて不平を言う
こんにちは、この単純な VHDL プロセスがあります (MyHDL コードから生成):
元の MyHDL コード:
シミュレーションでは (ISIM および MyHDL シミュレーターの両方で) 完全に動作しますが、Spartan 6 に合成しようとすると、次の警告が表示されます。
これは、このプロセスが clkEn および sclIdleValue 信号に敏感であるべきであるとどういうわけか推測したことを理解しています。しかしもちろん、これは私が意図したものではありません。clkEn または sclIdleValue がそれぞれの状態を変更したときではなく、delayedClock が状態を変更したときにのみ出力を変更したい。
Spartan 6 アーキテクチャではできなかったことですか? それとも、意図した動作をさせるためにプロセスを別の方法で説明する必要がありますか?
vhdl - ホールド タイム違反の解消 (ザイリンクス HDL)
FPGA に DSO コントローラーを実装していますが、ホールド タイム違反が多すぎて問題があります (これまでのところ、最高の P&R 結果は 3 つのホールド タイム エラーで、スラックは -2ns 程度でした)。
私の問題の核心は、ADC サンプル デシメータからの入力と同期 FT245 (60MHz) への出力を備えた FIFO バッファがあることです。入力デシメータは、2 の累乗 (例: 1、2、4、8、16...) でデシメートするように設定できます。これにより、ADC サンプルのクロック周波数 (150MHz) も分周されます。
そして、私のアプローチは、データをキャプチャしているときに分周された (デシメータ比が 0 の場合は直接) クロック周波数をバッファに供給し、サンプルを PC にプッシュしているときに FT245 から 60MHz クロックを供給するように切り替えることです。シミュレーションでは問題なく動作していますが、問題は配置と配線にあり、そのルーターは次のエラーを吐き出します。
次に、すべてのセットアップ時間の制約が満たされ、150MHz クロックのホールド タイム違反が 3 つある (60MHz クロックは OK) というタイミング レポートが表示されるまで、10 ~ 15 分間クランチします。
FPGAがクロックを適切に分配できなかったゲーテッドクロックの使用に問題がある可能性があることを読みましたが、FIFOのクロックをゲーティングする代わりに、150MHzクロックをFIFOに直接接続し、dataReadyでFIFOのデータをゲーティングしていました(それ実際には、以前にゲートされたクロックと同じ信号になってしまいました)、現在よりもはるかに多くの (50-60) ホールド タイム違反が発生しました。
複数クロック FIFO に対する既知の適切なアプローチはありますか? 2 つだけではありません (ザイリンクス ISE の例でも十分です)。それとも、FPGA で ADC サンプルをデシメートするという考えはありませんか?
ターゲット FPGA は Spartan 6 LX25 スピード グレード -2 です (残念ながら -3 スピード グレードは入手できませんでした)。
これが私に与えているたるみの例です:
言及されたソースは、頻繁に変更されることのないシグナル (およびそれが提供するすべての違反) であり、実際には GUI によって制御されるため、ホールド タイム違反が発生する可能性があるかどうかはわかりません。これは、デシメータの比率からトリガー バッファー (または他の違反の FIFO バッファー) へのパスです。
基本的に私の質問は、これらの違反を気にする必要があるかということです。
デシメータの比率を変更した後、トリガーでデシメータの結果を実際に使用し始める前に、何千ものクロック サイクルが存在する可能性があるためです。
ルーターは、非同期信号を変更する頻度(60MHzクロックドメインから設定しているため非同期です)と、モジュールの結果を使用するのにかかる時間を知ることができませんでした。問題は、PAR の完了後にこれらの 3 つの違反が表示されたときに、これらの 3 つの違反によって隠されている他の違反がないことが最終的なものであるかどうかがわからないことです。
PAR シミュレーションを投稿して、ボード上で動作するかどうかを確認できますか? ボード上で試してみますが、BGA のはんだ付けに 2 週間待たなければならず、論文を完成させるのに 4 週間しか残っていないので、自分の設計が機能することを確認したいと考えています。