問題タブ [fpga]
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.
c - C-to-hardware コンパイラ (HLL 合成)
私は、すべての C-to-hardware コンパイラーの調査/履歴を作成しようとしています。
それらを知らないすべての人のために:彼らはCコードを取り、それをハードウェア記述言語(VHDLやVerilogなど)に変換し、それを使用してハードウェアを生成できます(通常、FPGAにマップされます-しかし、私はそれに限定されません、ターゲットとしての ASIC も問題ありません)。
私はすでにいくつかをかなり収集しています(+それらに関する情報)。だから私の質問は次のとおりです。他のコンパイラを知っていますか(もしそうなら、それらに関する参照、ポインタ、情報を持っていますか)?
これまでの私のリスト:
- AutoESL
- Bach-C (シャープ)
- C2H (アルテラ)
- C2R(セバテック)
- C2Verilog (CompiLogic / C レベル デザイン / Synposy)
- Carte / MAP (SRCコンピュータ)
- カスケード (クリティカルブルー)
- CASH (カーネギーメロン大学、ピッツバーグ)
- Catapult-C (メンター グラフィックス)
- CHC (アルティウム)
- CHiMPS (ワシントン大学 (シアトル) / ザイリンクス / 間もなく商用化?)
- C-to-Verilog (ハイファ)
- 同志 (TU ブラウンシュヴァイク EIS + TU ダルムシュタット ESA)
- CVC(日立)
- サイバー(NEC)
- Daedalus (ユニ アムステルダム、ユニ ライデン)
- DIME-C (ナラテック)
- エキサイト (YXI)
- FPコンパイラ(アルテラ)
- FpgaC (オープンソース)
- GarpCC (キャラハン、カリフォルニア大学バークレー校)
- GAUT (UBS-フランクライヒ大学)
- Handel-C (セロキシカ)
- Hthreads (カンザス大学)
- Impulse-C (Impulse Accelerated Technologies)
- Mitrion-C (ミトリオニクス)
- DWARV (デルフト工科大学)
- NIMBLE (シノプシス、EIS ブラウンシュヴァイク)
- NISC (カリフォルニア大学アーバイン校)
- PICO-Express (Synfora => Synopsys)
- PRISC (ハーバード大学、ケンブリッジ)
- ROCCC (カリフォルニア大学リバーサイド校)
- SPARK (カリフォルニア大学アーバイン校)
- SpecC (Gajski et al.)
- Trident (オープンソース、ロスアラモス国立研究所)
- うーん
- 子牛の肉
- vfTools (ベクター ファブリック)
- xPilot (カリフォルニア大学ロサンゼルス校)
(リストのすべてがCを持っているわけではなく、Cに似た方言を使用しているものもあり、ほとんどすべてがサブセットのみをサポートしていることも知っています。私はそのようなものにも興味があります)。
編集: Google の使用方法を知っているので、通常の容疑者を既に確認し、結果を含めました。したがって、誰かが紙またはエキゾチックなツールを本当に知っている場合にのみ、誰かがここで答えることができる可能性が非常に高いです (または、それほどエキゾチックではないかもしれませんが、何らかの形で機能を隠して実装し、コンパイラは宣伝されていません)。
fpga - コンフィギュレーション ビットストリームおよび Microblaze ソフトウェアを含むザイリンクス Spartan-6 用のブート可能な SPI フラッシュ (PROM ファイル) を作成するデザイン フロー
FPGA コンフィギュレーション ビットストリームと Microblaze プロセッサで使用されるソフトウェアの両方を含むシリアル SPI フラッシュ用の PROM ファイル (.MCS) を作成する適切な手順を知りたいです。これは、ハードウェアとソフトウェアの設計がすべて完了していることを前提としています。
ザイリンクスの Spartan-6 評価ボード SP605 を使用しています。このボードには複数の不揮発性メモリ デバイスが含まれており、シリアル SPI フラッシュを使用して、FPGA ビットストリームと、メモリにロードする必要がある Microblaze のソフトウェアの両方を保存したいと考えています。これは、Microblaze のコードが内部 BRAM にある場合にのみ実現できます。外部 DDR3 RAM にコードまたはデータ セクションを配置するようにリンク スクリプトを作成すると、失敗します。
- 編集 -
OK、私はいくつかの異なることを試しましたが、何をする必要があるかをよりよく理解していますが、まだ成功していません (ところで、Andy の返信に感謝します)。だから、私は2つの異なることを試しました。どちらの場合も、最初にシステム ビットストリームをブートローダー プログラムとマージして、問題なく動作する新しい .bit (download.bit) ファイルを生成します (SDK でプログラムを実行し、ブートローダーを選択して BRAM をロードすると、data2mem が呼び出されて、新しい download.bit ファイルを生成します)。
最初のアプローチ - BIN ファイル
メイン プログラムが完了したら (DDR RAM とすべてを対象とするリンカー スクリプトを使用)、mb-objcopy を呼び出して、.elf ファイルから bin ファイルを生成します。
次に、iMPACT を使用して作成し、download.bit と dummy.b を使用して MCS ファイルを作成します。download.bit を SPI フラッシュの開始アドレスに配置し、dummy.b をさらに下に配置します (ブートローダーは既にそのアドレスを指しています)。次に、MCS をシリアル SPI FLash に書き込み、再起動すると、ブートローダーが実行され、おそらくすべてが DDR RAM にコピーされますが、メイン プログラムが動作しません。ここで何か不足していますか?メイン プログラムを .elf から BIN に変更せずに iMPACT を使用しようとすると、PC が停止し (コンピューターを完全にリセットしなければならない場合もあります)、非常に高速でメモリを搭載した PC を使用しています。
私が使用したブートローダーは、Xilinx XAPP1146 ドキュメントにリンクされているものと同じです。
2 番目のアプローチ - SREC ファイル
手順はほぼ同じですが、同じ mb-objcopy コマンドを使用して BIN ファイルではなく SREC を生成する点が異なります (今回は、BIN ファイルに対して行う必要があったセクターを削除しません)。巨大なファイルが生成されます)。
私が使用したブートローダーは、SDK ソフトウェアに含まれているものです。
Microblaze 用のブートローダの作成に成功したかどうか、どなたか教えてください。
前もってありがとう、エリック
vhdl - quartus はどのようにブロック内の 4 つの入力を 2 つの入力に変換しますか?
4 つの入力を 2 つの入力に取る bloch のエンティティを変換するにはどうすればよいですか?
http://dl.dropbox.com/u/287
9760/sample.PNG A あなたがここで私が 3 つの同じマルチプレクサを使用するのを参照してください :( etykieta2 を 2 つの入力のみで取り込む方法は? コード:
パッケージ
matlab - 助けが必要: レシーバー デザイン クエリのフォーラム
プログラミング関連の質問についてはこのフォーラムが大好きですが、ここではほとんど、またはまったく助けが見つかりません。私はWLAN 用の受信機の設計に取り組んでおり、多くの質問があり、同じ分野で働いている人に質問できるフォーラムを探しています。
質問を投稿できる場所を教えていただければ幸いです。
ありがとう
vhdl - fpga 実装のパイプライン スループットを最適化するためのベスト プラクティスは何ですか?
たとえば、特定のパイプラインを最大限に活用するために、リタイミングや c-slow を最大限に活用するにはどうすればよいでしょうか。
リタイミングを使用すると、入力にシフト レジスタを配置することでより良い結果が得られるモジュール (フォワード レジスタ バランシング) と、出力にシフト レジスタを配置することでより良い結果が得られるモジュール (バックワード レジスタ バランシング) があります。
今のところ、次の方法を使用します。
- コード hdl (Verilog)
- 特定のモジュールのタイミング制約を作成する
- 合成、マップ、配置、配線 (ISE 13.1 を使用)
- 改善するモジュールの配置配線後のタイミングと、ロジック レベルの最大数を調べます。
- この数のロジック レベルを使用して、挿入するフリップフロップの数を推測してください。
- フリップフロップを挿入し、レジスタのバランスを有効にし、最善を尽くします
現状では、この方法はヒット&ミスです。かなり良い結果が得られることもあれば、がらくたになることもあります。では、そのようなリタイミングの成功率を向上させるにはどうすればよいでしょうか?
これを支援できるツールはありますか?また、リンク、論文、書籍の推奨事項も大歓迎です。
matlab - ザイリンクス ブロックセットを使用した Simulink での DBPSK 復調
Simulink とザイリンクス ブロックセットを使用して DBPSK 復調器を構築しようとしています。次のように連続サンプルの位相差を計算します。
したがって、位相差が 0 か pi かに応じて、これらの位相差をシンボル 0 または 1 にマッピングする必要があります。
Simulink (ザイリンクス) でフェーズからシンボルへのマッピングを行う方法がわかりません。ところで、ここにMatlabのバージョンがあります:
私のアプローチが正しいかどうか、さらに先に進む方法を教えてください
fpga - ザイリンクスSimulinkで絶対数を取得するにはどうすればよいですか?
ザイリンクスSimulinkで信号の絶対値を取得する必要があります。
mcodeブロックを使用して、matlabコードを記述してそれを実現できます。しかし、それを行うためのより良い方法があるかどうかだけ興味があります。
Simulink(ザイリンクス)を使用するのは初めてです。ザイリンクスライブラリのSimulinkのようなabsブロックはありますか?
ありがとう
matlab - ザイリンクス Simulink での信号のサイン
DQPSK 変調器と復調器を実装しています。Simulink で exp(1j*Phase) を計算したいと思います。
どうすればそのようなモデルを実現できますか?
フェーズを計算するモデルの一部を次に示します。
ちなみに、モデルの ROM3 ブロックには次の値が格納されます: 0、pi/2、pi、3*pi/2 ( Constellation points)
right-to-left - Mentor の FPGA からのクリティカル パス
モジュールウェアと vhdl を使用して RTL 設計を行う Mentor FPGA を使用しています。現在、Mentor Graphics の Precision RTL 合成 GUI を見ています。このツールを使用してクリティカル パスを取得する方法を知っている人はいますか?
fpga - Simulink での 2 つの複素ベクトルの行列乗算
本当に2つの質問ですが、もっと説明的にしたいと思います:
複雑なベクトルの行列乗算を含む変調器を実装しています:
例を挙げると:
基本的に、これを Simulink (Xilinx) で、最終的にハードウェアで実装する必要があります。
私の質問は、複雑なベクトルを使用して行列乗算をモデル化する方法です。私の理解は、Complex Multiplierを使用することです。しかし、それは2つの複素ベクトルのみを乗算することです
1 つのクロックで 2 つ以上の複素数ベクトルを乗算する必要がある場合、それは可能です。
モデル自体のような答えは期待していませんが、問題を解決するためのアプローチ/方向性があれば
読んでくれてありがとう、キラン