タグ付けされた質問 「fpga」

フィールドプログラマブルゲートアレイ(FPGA)は、製造後にお客様が構成するロジックチップであり、「フィールドプログラマブル」です。

4
バス同期回路のタイミング制約
クロックドメイン間でワイドレジスタを渡すためのバスシンクロナイザー回路があります。 非同期リセットロジックを省略して、簡単な説明を提供します。 データは1クロックで生成されます。更新には多くの(少なくとも1ダース)クロックエッジがあります。 PROCESS (src_clk) BEGIN IF RISING_EDGE(clock) THEN IF computation_done THEN data <= computation; ready_spin <= NOT ready_spin; END IF; END IF; END PROCESS; NRZIエンコードされた新しいデータの制御信号(バス上の有効なワードは制御信号の遷移に対応します)。制御信号は、シンクロナイザーとして機能するDFFチェーンを通過します。 PROCESS (dest_clk) BEGIN IF RISING_EDGE(dest_clk) THEN ready_spin_q3 <= ready_spin_q2; ready_spin_q2 <= ready_spin_q1; ready_spin_q1 <= ready_spin; END IF; END PROCESS; シンクロナイザ回路は短い遅延を導入し、データバスが安定するのに十分な時間を提供します。データバスは、準安定性のリスクなしに直接サンプリングされます。 PROCESS (dest_clk) BEGIN IF …
10 fpga  clock  timing  sdc 

4
MicroblazeソフトCPUは、Cortex M3ソフトCPUより優れていますか?[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 MicroblazeソフトCPUは、機能の面でCortex M3ソフトCPUより優れていますか? ARMベースのプロセッサに関するすべての話題から、ARMプロセッサをFPGAに実装するのか、それとも付属するMicroblazeを使用する必要があるのか​​と思いました。 考慮すべきパフォーマンスや機能の点で大きな違いはありますか?
10 fpga  microblaze 

5
XMOSシリーズとは何ですか?
わかりました、それで私は最近、XMOSの名前が場所に現れるのを見ました。私は彼らのウェブサイトを見て、オンラインで検索しましたが、それが何であるのかよくわかりませんか?それは何ですか?マイクロコントローラーとFPGAのクロスのように見えますか? 私も彼らのサイトを調べましたが、 XMOSとは何か、他のマイクロコントローラーラインとの違いについて理解できることは何もありませんでした(サンプルデザインとその他の参照ドキュメントのみ)。

4
複雑さの異なるプログラマブルロジックICは何に使用されますか?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 プログラマブルロジックは、数個のゲートの書き込みやMUXの使用から、マイクロコントローラーとIOペリフェラルが組み込まれた最新のFPGAまで、さまざまなスペクトルでウィジェットに実装できます。もちろん、ARMのPrimeCell GPIOなど、より具体的な例もあります。どのようなアプリケーションで、プログラマブルロジックデバイスのさまざまなレベルの複雑さが使用されていますか?グループ化はそれらの極端な定義の近くで混ざり合っているように見えますが、これは許容できるリストだと思います: PAL / PLA / GAL:プログラマブルロジックアレイ; Digikeyで'Embedded-PLDs'としてリストされているように見え、50MHzまでの非同期10/8 I / O(ATF16V8C)、192マクロセル(CY7C341B)をカバーしており、ほとんどが再プログラム可能です。 CPLD:複雑なプログラマブルロジックデバイス。Digikeyは、それらを7.5ns 10 I / O(ATF750C)〜233MHz、428 I / O「FPGA密度のCPLD」(CY39100V484B)で利用できるものとしてリストしています。 FPGA:フィールドプログラマブルゲートアレイ; 58 I / O(XC2064)〜1023I / O BGAビースト(EP1S80F1508C7N)で利用可能。 ハードMCUを備えたFPGA:これは、MCUがエミュレートされておらず、FPGA ICに物理的に配置されている場合です。 ウィキペディアの引用: FPGAとCPLDの違いは、FPGAは内部的にルックアップテーブル(LUT)に基づいているのに対し、CPLDはゲートオブゲート(製品の合計など)を使用してロジック機能を形成することです。CPLDはより単純な設計向けであり、FPGAはより複雑な設計向けです。一般に、CPLDは幅広い組み合わせロジックアプリケーションに適しており、FPGAは大型のステートマシン(マイクロプロセッサ)に適しています。 これは、233 MHz、400 I / O CPLDと同等のFPGAの使用の違いを説明していません。または192マクロセルPLDと同等のCPLDの間。デザインオプションを絞り込むための信頼できるガイドラインを作成することはできません。現在、私は特定のアプリケーションを考えていませんが、「何をするために何を使うのですか?」 特定の要件に関して優れたアドバイスをオフサイトで受けましたが、この質問は、PLDの1つのファミリよりも他のファミリが同等またはより適切であると思われる場合に、いくつかの例が優先することから利益を得ることができると思います。

2
CPLDとFPGAの違いは何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 電気工学スタック交換のトピックになるように質問を更新します。 4年前休業。 CPLDとFPGAの違いは何ですか?

2
VHDL:ビットのカウント時に受信モジュールがランダムに失敗する
バックグラウンド これは個人的なプロジェクトです。FPGAをN64に接続すると、FPGAが受信したバイト値はUARTを介してコンピューターに送信されます。それは実際にはかなりうまく機能します!不幸にも不定期に、デバイスは失敗し、その後回復します。デバッグによって問題を見つけることができましたが、VHDLにはかなりの能力がないため、修正方法に困惑しています。 私は2日間VHDLをいじっていて、これを解決できないかもしれません。 問題 FPGAへのN64信号を測定するオシロスコープがあり、他のチャネルはFPGAの出力に接続しています。カウンター値を記録するデジタルピンもあります。 基本的に、N64はSTOPビットを含む9つのデータビットを送信します。カウンターは受信したデータビットをカウントし、9ビットに達すると、FPGAはUARTを介して送信を開始します。 正しい動作は次のとおりです。 FPGAは青色の波形で、オレンジ色の波形はN64の入力です。受信中、私のFPGAはデバッグの目的で入力の信号を "エコー"します。FPGAが9までカウントした後、UARTを介してデータの送信を開始します。N64が終了した直後にデジタルピンが9にカウントされ、FPGA出力がLOWになることに注意してください。 失敗の例を次に示します。 カウンターがビット2と7をスキップすることに注意してください!FPGAは最後まで到達し、N64からの次の開始ビットを待ちますが、何もしません。したがって、FPGAはタイムアウトして回復します。 これは、N64受信モジュールのVHDLです。次のカウンターが含まれています:s_bitCount。 library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity N64RX is port( N64RXD : in STD_LOGIC; --Data input clk25 : in STD_LOGIC; clr : in STD_LOGIC; tdre : in STD_LOGIC; --detects when UART is ready transmit : out STD_LOGIC; --Signal …
9 fpga  vhdl  protocol 

1
SPIモードのSDカードはチップセレクト/スレーブセレクトを尊重しますか?アプリケーションでリセットされているようです
16ビットSPIを介してFPGAに接続されているマイクロコントローラー(NXP LPC1343)があるアプリケーションがあります。同じSPIポート(MISO / MOSI)を使用しているが、CS / SSピンが異なるSDカードもあります(どちらもSPI仕様に従ってアクティブLOWです)。FAT32を使用して、FPGAからSDカードのファイルにデータを書き込む必要があります。これがマイクロコントローラーの仕事です。マイクロコントローラーはFatFSを実行しています。これは、自分で確実に動作するようになっています。 マイクロコントローラーには少量のRAMしかないため、一度にバッファーできるのは少量のデータだけです。したがって、マイクロはFPGAからバッファーを読み取り、SPIモードを8ビットに変更してから、そのデータをFATFSに書き込む必要があります。SDカードをSPIモードに構成するには、SPIバスが400 kHzで動作しているときにコマンドを送信する必要があり、ある程度の待機が発生することを思い出してください。したがって、初期化を1回だけ実行したいと思います。 ただし、SDカードでCSをHighに保持しながらFPGAでトランザクションを実行すると、SDカードが奇妙な状態になり、初期化をやり直す必要があるようです。もちろん、これは望ましくありません。4kB程度のデータを書き込むために、初期化には数ミリ秒かかる可能性があるためです(これも、私のマイクロの小さなRAM機能によって制限されます)。数メガバイトをできるだけ早く書き込む必要があるため、これによりパフォーマンスが約500 kB / sから100 kB / s未満に低下します。 SDカードは技術的に完全にSPIに準拠していないことは承知していますが、この問題を解決するにはどうすればよいですか?
9 fpga  spi  sd  nxp 

1
合成されたROMコアを使用した単純なテストベンチのシミュレーション
私はFPGAの世界にまったく新しいので、4ビットの7セグメントデコーダーという非常に単純なプロジェクトから始めようと思いました。私が純粋にVHDLで書いた最初のバージョン(それは基本的に単一の組み合わせselectであり、クロックは必要ありません)は機能しているようですが、ザイリンクスISEの「IPコア」の要素を試してみたいと思います。 今のところ、「ISE Project Explorer」GUIを使用しており、ROMコアを使用して新しいプロジェクトを作成しました。生成されるVHDLコードは次のとおりです。 LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : IN STD_LOGIC; addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0); douta : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END SSROM; ARCHITECTURE SSROM_a OF SSROM IS -- synthesis translate_off COMPONENT wrapped_SSROM …

4
80年代スタイルのコンピューターカセットをFPGAに接続する
私は1980年代のMicrobeeコンピュータをFPGAに再実装し(こちらを参照)、カセットポートの作り方を理解しようとしています。オリジナルのMicrobeeカセットインターフェースの回路図は次のとおりです。 (ソース:toptensoftware.com) また、この説明は技術マニュアルにも記載されています。 カセットデータ出力は、PIOのDB1、ピン28からの信号を受け入れるRCネットワークのみで構成されています。信号は減衰されてから分離されてから、カセットレコーダーのMIC入力に送信されます。この信号は、5ピンDINソケットのピン3に現れます。 カセットデータ入力回路はもう少し複雑です。DINソケットのピン5からの入力は、最初に減衰器-デカップラーに渡されます。これに続くのがCA3140オペアンプで、信号がPIO、DBOのピン27に渡される前に、広範囲の入力レベルを二乗することができます。オペアンプへの反転入力と非反転入力の両端にある2つのダイオードは、ダイオードの順方向電圧より大きい入力信号をいずれかの方向にクリップします。47pFコンデンサは、事前補償のためにCMOSオペアンプに必要です。 私の質問: 何をしてない「脱結合」の説明平均で? 同じ回路をザイリンクスSpartan 6 FPGAの2つのI / Oピンに接続した場合(Nexys3のPModコネクタを介して)機能し、機能しない場合は機能するように調整できますか? 回答のコメントに基づく最初の試みですが、出力抵抗を直列にしてはいけません。 コンテキストと説明の理由からここに残します。次の回路図を参照してください MicrobeeSchematic2 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic2.png 新しい質問: コンパレータの極性は正しいですか? MCP6546、Vssが3.3Vに地面とVddに行くのですか? 元の回路のテープ入力の両端にある「ドットアウト」の抵抗をどうするかわかりません。 オープンドレインであるコンパレータの出力に関するフィードバックの組み込み: MicrobeeSchematic3 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic3.png MCP6546にはどのような選択肢がありますか。オーストラリアの小売店では見つけることができませんでした。LM311またはLM393を入手できます。これらも同様に機能しますか?

2
JTAGを使用した複数のFPGAのプログラミング
ISE iMPACTを使用してプログラムする4つのSpartan 6 FPGAを接続するJTAGチェーンがあります。ソフトウェアは、4つのFPGAの厳密なサブセットを連続して、任意の順序で正常にプログラムできます。ただし、4つすべての FPGA をプログラムしようとすると、最後のFPGAのDONEピンがHighにならず、プログラミングが失敗します。 この奇妙な行動の原因は何でしょうか? ノート: 3つのFPGAをプログラミングした後、4番目のFPGAのステータスレジスタのINIT_Bビットは0ですが、INIT_Bピンはハイです。3番目のFPGAをプログラミングする直前は、そのビットは1でした。これは、4番目のFPGAがロックされていることを示しています。 SelectMapを使用してプログラミングする場合、4つのFPGAをすべて問題なくプログラムできます。 SelectMapを使用して3つのFPGAをプログラムしても、4番目のFPGAはJTAGを使用してプログラムできません。 4つの完了したピンのそれぞれは、4.7Kオームの抵抗を介して3V3にプルアップされ、その後一緒に接続されます。 私が試したこと: チェーンからFPGAの1つを切断しても、残りの3つのFPGAをプログラムすることができます。 最後のFPGAの4.7Kオームのプルアップ抵抗を330オームの抵抗に交換しても問題は解決しません。
9 fpga  jtag  spartan 

4
FPGA-DIYプログラミング
私は数年前からマイクロコントローラーをプログラミングしており、デジタルデザインクラスを受講した後、FPGAを発見しました。異なるFPGAや開発ボードなどについて調査を行った後、最終的な「製品」の独自のバージョンを作成する方法がわからないので、私はまだ購入をためらっています。私はPIC、SAM、AVRなどを問題なくカスタムPCBに配置したので、心配する必要はありません。主な関心事は、メーカーのボードなしでFPGAをプログラミングすることです。 私の特定の質問:Quartus、Vivado、iCEcubeなどによって生成されたビットマップファイルを取得し、アドレス0から始まるSPIフラッシュメモリチップに(たとえば、FT2232Hを介して)書き込み、フラッシュメモリをFPGAのSPIピン(MODE構成が適切に設定されている)? 部分的な仮説をお詫びします。ラティスのダイアモンドプログラマーがそれをすべて行うと確信していますが、そのアプローチがさまざまなメーカーのFPGAで機能するのか、それとも、Quartusが書き込み中に「ウィンドウドレッシング」またはヘッダーをメモリに追加したのかと思いました。 質問を改善または明確にするために私にできることがあるか、またはFPGAプログラミングプロセスの大きなポイントを見逃していないかどうかを知らせてください。ありがとう!
9 fpga  spi  programming 

2
このVHDLの行列-ベクトル乗算関数は並列化されていますか?
与えられたmxn行列aをnx1ベクトルで乗算する次のVHDL関数がありますb。 function matrix_multiply_by_vector(a: integer_matrix; b: integer_vector; m: integer; n: integer) return integer_vector is variable c : integer_vector(m-1 downto 0) := (others => 0); begin for i in 0 to m-1 loop for j in 0 to n-1 loop c(i) := c(i) + (a(i,j) * b(j)); end loop; end loop; return …
9 fpga  vhdl  matrix 

2
2-ffシンクロナイザーはどのようにして適切な同期を保証しますか?
2-ffシンクロナイザーの使用は、信号がクロック境界を越えるための標準でした。そして、このようなメカニズムを説明する多くの紙/図があります: bclkは、(bclkの 2番目の立ち上がりエッジで)adatのパルスを1回だけサンプリングできるようです。これにより、bq1_datで出力メタスタビリティが発生します。次のアクティブクロックエッジでbq1_datを「ハイ」にサンプリングするにはどうすればよいですか。 私の質問に加えて、信号が安全に通過するために私が思うことを別のクロックドメインに追加したいと思います(MTBF要件を満たすのに2 FFで十分だとします)。間違いがあれば訂正してください。 ps:メタステーブル状態では「さまよう」波形は表示されませんが、「1」でも「0」でもないレベルが表示されます。次の図は、メタステーブル出力の例を示しています。 元の図は、WJ DallyによるEE108Aの講義ノート、講義13:メタスタビリティと同期の失敗(適切なフリップフロップが不良になる場合)からのものです。

2
サンプル周波数でクロック供給されるFPGAでIIRフィルターを作成することは可能ですか?
この質問は、非常に具体的な基準を使用して、DSPスライスを備えたFPGAにIIRフィルターを実装することに関するものです。 次の式を使用して、順方向タップがなく、逆方向タップが1つだけのフィルターを作成するとします。 y[n]=y[n−1]⋅b1+x[n]y[n]=y[n−1]⋅b1+x[n]y[n] = y[n-1] \cdot b1 + x[n] (画像を参照) 例としてザイリンクスのDSP48A1スライスを取り上げます。ほとんどのハードIP DSPスライスは似ています。 クロックごとに1つのサンプルでアナログデータを受信するとします。サンプルクロックで同期的に実行されるIIRフィルターを設計したいと思います。 問題は、DSPスライスを最大レートで実行するために、同じサイクルで乗算と加算ができないことです。これらのコンポーネント間にはパイプラインレジスタが必要です。 したがって、クロックごとに1つの新しいサンプルがある場合、クロックごとに1つの出力を生成する必要があります。ただし、このデザインで新しいクロックを生成する前に、以前の出力2クロックが必要です。 明白な解決策は、データをダブルクロックレートで処理するか、パイプラインレジスタを無効にして、同じサイクルで乗算と加算ができるようにすることです。 残念ながら、完全にパイプライン化されたDSPスライスの最大クロックレートでサンプリングしている場合、これらのソリューションはどちらも不可能です。これを構築する他の方法はありますか? (任意の数のDSPスライスを使用して、サンプルレートの半分で動作するIIRフィルターを設計できる場合のボーナスポイント) 目標は、ザイリンクスArtix FPGAで1 GSPS ADCの補償フィルターを実行することです。DSPスライスは、完全にパイプライン化されている場合、500 MHzをわずかに超えて実行できます。クロックあたり1サンプルのソリューションがある場合は、クロックあたり2サンプルのソリューションをスケーリングしてみます。これは、FIRフィルターを使用すると非常に簡単です。
9 fpga  filter  dsp  iir 

2
FPGAによるPICプログラミング
FPGAカードを介して初めてPICをプログラムする方法(フラッシュに書き込む)があるかどうかを知りたいです。 PICはすでにFPGAにはんだ付けされており、削除できません。PICにはブートローダーはありません。したがって、FPGAからデータを受信できるように、ブートローダーを使用してUSART / SPI / I2Cモードでプログラムする必要があります。 通常、はんだを外してPICKitなどのハードウェアプログラマーに接続し、MPLABなどのコンピューター上のソフトウェアでプログラムする必要があることはわかっていますが、それを買う余裕はありません。 .hexファイルであるMPLABを使用してブートローダーを生成できますが、FPGAに転送してから、FPGAピンを介してPICに転送するにはどうすればよいですか。 使用されるPICはMicrochip PIC12F1822です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.