FC2カウンター FPGAの部屋 カテゴリ別の目次
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

”カテゴリの目次”の目次

カテゴリの目次は便利だが、後ろのほうのカテゴリは、何度もページをめくらないと目次が出てこない。そこで目次の目次を作ることにした。いわばポインタへのポインタ、ハンドルですね。

”カテゴリの目次”の目次、 FPGAリテラシーおよびチュートリアル、 プリント板の作成過程、 StateCADの使い方、 Spartan3E Starter Kit

Virtex4のお勉強、 PSoC、 FPGAからクロック出力、 Xilinx ISEについて、 CADツール

QuartusⅡ、 Virtex5のお勉強、 VGAコントローラ、 Chipscope、 UCFの書き方

Floorplannerの使い方、 シミュレーション、 PCI、 Timing Analyzerの使い方、 FPGAチップ内の配線方法

その他のXilinxツールについて、 入門Verilog、 DDR SDRAMコントローラ、 VHDLの書き方、 FPGA Editorの使い方


PACEの使い方、アサーション事始め
  1. 2007年10月03日 20:18 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”FPGAリテラシーおよびチュートリアル”の目次

やはり、ブログなので、新しい順に記事が並んでしまう。
そこで、FPGAリテラシーおよびチュートリアル・カテゴリの主なコンテンツの目次を作ることにした。
FPGAリテラシーおよびチュートリアルはISE8.1iだが、今のISE9.2iと大体同じなので使えると思う。(iMPACTの統合などの細かい違いはあるのだが。。。)
結構、このチュートリアルシリーズ使えると自分では思っています。特にシミュレーション編などはお気に入りです。サンプルプロジェクトを用意して、図を豊富に使って、丁寧に説明していると思っています。

スパルタン3スタータキットでのISE8.1iのチュートリアル1(導入編)

スパルタン3スタータキットでのISE8.1iのチュートリアル2(プロジェクト作成)
スパルタン3スタータキットでのISE8.1iのチュートリアル3(シミュレーション準備編)
スパルタン3スタータキットでのISE8.1iのチュートリアル4(シミュレーション編)
スパルタン3スタータキットでのISE8.1iのチュートリアル5(インプリメンテーション編)
スパルタン3スタータキットでのISE8.1iのチュートリアル6(インプリメンテーション編続き)
スパルタン3スタータキットでのISE8.1iのチュートリアル7(コンフィギュレーション編)
スパルタン3スタータキットでのISE8.1iのチュートリアル8(コンフィギュレーション編続き)
シリアルインターフェース(RS-232C)の説明

その他のこのカテゴリの記事

7セグメントLEDを何個ダイナミック点灯できるか?(7セグメントLEDを何個ダイナミック点灯できるかを実際にプロジェクトを作ってやってみた。自分的には限界は8個くらいかな?以前からどのくらい大丈夫なのか疑問だったのだ)
7セグメントLEDを何個ダイナミック点灯できるか?2(スパルタン3スタータキット用のプロジェクトをダウンロードして試せます(リンクがわかりにくいので注意)。電圧波形をオシロで測定しました)
スイッチのチャタリング(スイッチのチャタリングをスパルタン3スタータキットで実際に確かめてみた。スパルタン3スタータキット用のプロジェクトをダウンロードして試せます(リンクがわかりにくいので注意))
  1. 2007年09月29日 05:48 |
  2. カテゴリ別の目次
  3. | トラックバック:1
  4. | コメント:0

”プリント板の作成過程”の目次

このカテゴリを見直してみて、いろいろな人のアドバイスに助けられているということを痛感した。皆様本当にありがとうございます。

ボード作製初期のデバック(前に作った基板の作成過程)
プリント基板の設計(Virtex2proのRocketIOやDDR SDRAMを使うと、電源が沢山必要になるという話題)
Virtex2proの3.3VのIO電圧(見たマニュアルが古いためにあたふたしてしまった。教訓:日本語のマニュアルだけでは危ない。必ず英語版も見ること。)
回路図入力大詰め
近頃のお仕事(最近のお仕事は基板の回路図のネットリストを元に回路図の間違い探しという、面白くも無い大変なお仕事)
基板設計(基板やさんに、いろいろお願いしたこと)
クロックの信号品質(FPGAに水晶発信器からクロックを入力して、そのクロックをFPGAのほかのピンから出力してSDRAM4個とPowerPCにクロックを供給している。クロック周波数は133MHzだ)
高速?(133MHz)クロックの配線について(FPGAから外部デバイスへのクロックを接続するためのトポロジを図を描いて検討した。出力が1本にすると反射やドライブ能力の点でだめ。結局、PPC、SDRAM2こずつに分けた。皆様貴重なご意見ありがとうございます)
伝送線路シミュレーションの解析に苦戦中(伝送線路シミュレータの出力波形が乱れているので、どうしたものか悩んでいる)
プリント基板のデータバスの信号品質(今度はSDRAMからの出力信号も信号の変化点で乱れるようになってしまった。基板を作るのも大変ですね)
SDRAM動作不良(どうやら、SDRAMの根本かダンピング抵抗当たりでとなりのデータビットとショートしているようだ)
続:SDRAM動作不良(送って調べてもらったところダンピング抵抗用の抵抗アレイで隣同士がショートしていた。半田付けの不良も注意しなければ、20枚中2枚ショートしていた)
うちのボードのリセット回路とFPGAのコンフィギュレーション(うちのボードのリセット回路とFPGAのコンフィギュレーションの状況をブロック図を用いて詳述した)
  1. 2007年09月29日 05:35 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”StateCADの使い方”の目次

StateCADの使い方1(StateCADの立ち上げ方とステートの配置、遷移を表す→を入力、リセット時の動作を入力)
StateCADの使い方2(ステートの名前とステートでの出力を入力、→の遷移条件を入力、Random Logicボタンでアップ・カウンタを記述、メニューの"Options"から"Configuration..."を選択してConfigurationを変更)
StateCADの使い方3(ステートの色の変え方を説明)
  1. 2007年09月28日 19:02 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”Spartan3E Starter Kit”の目次

Spartan3E Starter Kitは、DDR SDRAM コントローラを作りたいがために、最初に出力のためのLCDの表示回路を作成、次にデータを入力するためにロータリーエンコーダー回路を作成して、最後にDDR SDRAM コントローラを作って、ロータリーエンコーダー回路、LCDの表示回路に接続してテストした。
いまややりたいと思っているのはSPIコンフィグのテストです。

Spartan3E Starter KitのLCD(Spartan3E Starter KitのLCDをXilinxのプロセッサIP、PicoBlazeを使用して表示してみることにした)
Spartan3E Starter KitのLCD2(Spartan3E Starter KitのLCDの使い方をSpartan3E Starter Kitの初めからコンフィグROMに入っているプロジェクトs3esk_startupのマニュアルを見てお勉強した)
スパルタン3EスターターキットのLCD表示回路1(スパルタン3EスターターキットのLCD表示回路を作っているところだ。 LCDの上の列と下の列に右端から4つの16進数を表示する回路だ。ステートマシンを図示)
スパルタン3EスターターキットのLCD表示回路2(PicoBlazeの入出力ポートの仕様)
スパルタン3EスターターキットのLCD表示回路3(LCD表示回路も大分できて来た。アセンブラも書いて、シミュレーションをしてみた。シミュレーション波形を表示)
スパルタン3EスターターキットのLCD表示回路4(結構PicoBlazeのアセンブラにバグがありましたが、LCDに表示できるようになりました)
スパルタン3EスターターキットのLCD表示回路5(試せる様にスパルタン3EスターターキットのLCD表示回路のプロジェクトあり。足りないファイルを付加して、プロジェクトをインプリメントする方法)
スパルタン3EスターターキットのLCD表示回路まとめ(仕様を示した。スパルタン3EスタータキットのLCDの初期化方法。PicoBlaze用の入出力ポートの仕様。PicoBlazeのプログラムの説明)
スパルタン3EスターターキットのLCD表示回路その後(スタータキットのユーザーズマニュアルに書いてあるLCD操作タイミングとST7066Uのタイミングが違うのではないかというコメントをSimさんからいただいた。
確かにスタータキットのユーザーズマニュアルを見るとST7066Uを使っていると書いてある。ためしにST7066Uをターゲットにタイミングを書き換えてみた)

スパルタン3Eスタータキットのロータリーエンコーダ1(スパルタン3Eのロータリーエンコーダの回路ができた。ロータリーエンコーダの回路の仕様を説明)
スパルタン3Eスタータキットのロータリーエンコーダ2(スパルタン3Eスタータキットのロータリーエンコーダの回路の説明。スパルタン3Eスターターキットのロータリーエンコーダの回路のプロジェクトあり。)

Spartan3E Starter KitでのDDR SDRAMコントローラのテスト(Spartan3E Starter KitでDDR SDRAMコントローラを作成中。トップのDDRtest.vhdのport map)
DDR SDRAMコントローラ回路の途中経過(DDR SDRAMコントローラ回路は、以前Virtex2で作ってあったものをSpartan3Eに変更しているので、Spartan3Eには存在しないプリミティブを使用していた。Spartan3EではDCMの可変位相シフトが変更になった件)
Spartan3E Starter KitのDDR SDRAMコントローラについての疑問(Spartan3E Starter KitのDDR SDRAMコントローラがISEでインプリメントできるところまで来たが、どうしてもMAPでエラーが出てしまう。Spartan3ではインプリメントできたが、Spartan3Eでインプリメントできない)
Spartan3E Starter KitのDDR SDRAMコントローラについての疑問2(Spartan3Eのライブラリの説明書にFDDRCPE(ASYNC set/reset)とFDDRRSE(SYNC set/reset)がないことがわかった。ODDR2を使ってgeneric mapでSYNCとASYNCを切り替えるのだそうだ。さらに入力もIDDR2があるようなのでこれを使うことにした。 これでも最初と同様にエラーが出てしまった)
Spratan3E Starter KitのDDR SDRAMコントローラまとめ(Spratan3E Starter KitのDDR SDRAMコントローラがとりあえず動いてきた。Spartan3EでもFDDRCPE,FDDRRSEも使用できた。ODDR2でもどっちでも良いようだが、Internal Errorの危険があるので、今のところFDDRCPE,FDDRRSEを使うことにした。DDR SDRAMコントローラのタイミングチャートあり。IOB内のIFD_DELAYを使用して、DDRデータをちょうど良いところまで遅延して、FPGA内のクロックで受けることにした)
Spratan3E Starter KitのDDR SDRAMコントローラまとめ2(DDR SDRAMの論理シミュレーション波形から動作を説明している)
Spratan3E Starter KitのDDR SDRAMコントローラまとめ3(”Spratan3E Starter KitのDDR SDRAMコントローラまとめ”を良く見てみると、リード時のデータを3/4クロックずらすより、1/4クロックずらせて立下りエッジからデータをサンプルした方が受けられるIFD_DELAY_VALUEの値の幅が広くてよいと思った。シミュレーション波形で説明)
Spratan3E Starter KitのDDR SDRAMコントローラ(プロジェクト)(Spratan3E Starter KitのDDR SDRAMコントローラのプロジェクト(VHDL)あり。DDR SDRAMコントローラの中のcontrollerはNGCファイルである。(つまりソースはない))
Spratan3E Starter KitのDDR SDRAMコントローラの説明(Spratan3E Starter KitのDDR SDRAMコントローラの仕様の説明。シミュレーション波形で説明)
Verilog2001版DDR SDRAMコントローラーのインプリメント(Verilog2001版DDR SDRAMコントローラーのインプリメントの仕方をキャプチャ図を使って詳しく説明。プロジェクトを作って、VHDLファイルを追加するところまで)
Verilog2001版DDR SDRAMコントローラーのインプリメント2(Verilog2001版DDR SDRAMコントローラーのインプリメントの続き。使い方を説明)
  1. 2007年09月28日 18:43 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”Virtex4のお勉強”の目次

Virtex4の入力用DDRレジスタ(IDDR)1(Virtex4のお勉強をするに当たって入力用DDRレジスタ(IDDR)からやってみたいと思う。IDDRをみると、3つのモードがあるようだ。そのうちのOPPOSITE_EDGEモードからやってみようと思う。FPGA Editorで確認。シミュレーション波形を確認。Timing Analyzerでセットアップ時間を確認。Virtex2の入力DDRと同じ波形)
Virtex4の入力用DDRレジスタ(IDDR)2(今度はIDDRをSAME_EDGEモードにしてみた。FPGA Editorで確認。シミュレーション波形を確認。クロックの立ち上がりで出力が変化するようになった)
Virtex4の入力用DDRレジスタ(IDDR)3(今度はIDDRをSAME_EDGE_PIPELINEDモードにしてみた。FPGA Editorで確認。シミュレーション波形を確認。更にFFが入って遅れたが、立ち上がりエッジでサンプルされたデータがq1に、次の立下りエッジでサンプルされたデータがq2に整列されて出力されるようになった)
Virtex4のIDELAY(FIXEDモード)(Virtex4のIDELAYのお勉強をしようとおもう。IDELAYはILOGICブロック(IOブロック)のプログラマブル遅延エレメントで0から63までの遅延タップがある。 固定遅延モード(FIXEDモード)をやってみた。FPGA Editorで確認。Timing Analyzerでタップの遅延時間を確認した)
Virtex4のIDELAY(VARIABLEモード)(Virtex4のIDELAY(VARIABLEモード)についてお勉強した。今度はCEとINCがあるので外部ポートから入力することにした。CEが1でINCが1の時に遅延が増えて、CEが1でINCが0の時に遅延が減る。2クロックに1回増減するようだ。FPGA Editorで確認。シミュレーション波形を確認。Timing Analyzerでセットアップ時間を確認。CEの値によって、遅延が増減する。全ソースも表示)
Virtex4のリージョナルバッファ(BUFIO、BUFR)(Virtex4のリージョナルバッファのBUFIO、BUFRをテスト。リージョナルバッファは部分的な領域のクロックバッファのようなものだ。部分的なクロック領域はVitex2シリーズとは違ってCLB16個(IOB32個分)の高さ、チップの1/2の幅に固定されているそうです。ソースを表示。PACEで配置を決定。BUFRを使用してインプリメント。FPGA EdirotでVirtex2にインプリメントと比較。Timing Analyzerで遅延を見てみた。最後にBUFIO,BUFRの部分をFPGA Editorで見てみた)
Virtex4のFIFO(FWFTモード)(Virtex4のFIFOのFWFT(First Word Fall Through)モードについて考察した。FWFTモードはemptyが0になった時にdo(data out)に最初のデータが出ているモードだ。FPGA Editorで見るとVirtex4ではFIFO16というプリミティブが入っていた。シミュレーション波形を確認した。コアジェネレータのFIFOジェネレータでもFWFTモードを指定できることがわかった)
Virtex4のISERDESのお勉強(Virtex4のISERDESのお勉強をしてみたが今のところTranslateで原因不明で止まってしまっている。OSERDESの方を先にやってみることにする。)
Virtex4のOSERDESのお勉強(今度はVirtex4のOSERDESをインスタンスしてみたがやはりISERDESと同じだった。やはりTranslateで原因不明で停止してしまう)
ISERDES,OSERDESのその後(ISERDES,OSERDESはこの前のファイルではうまく行っていないが、面白いことがわかった。もうすでに皆さんご存知かもしれないが、 Virtex4の入力用DDRレジスタが入っているILOGIC、出力用DDRレジスタが入っているOLOGICはそのままISERDES, OSERDESのようだ。FPGA Editorで確認)
ISERDESのお勉強の続き1(DDR2-SDRAMを使うために、もう一度ISERDESのお勉強。ユーザーズマニュアルのサンプルをインプリしてみたが、うまくいかない。自分で修正したところうまくインプリできた。ついでに新しいTiming Analyzerの使い方)
ISERDESのお勉強の続き2(ISERDESのお勉強の続き1の続き。Floorplan Editorを立ち上げ、配線や配線遅延を確認する。任意パス間の遅延を見る機能で、clk_inとDinの遅延の差を解析)
  1. 2007年09月27日 20:54 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”PSoC”の目次

PSoC、興味はすごくあるんだけど、やりたいことが見つからないといった状況です。

PSoCを試してみようと思った(アナログもプログラミングできるPSoCを試してみようと思った)
PSoCのデモボードを買ってみた(旧バージョンのMINIPROG1+Designer4.0限定版コンパイラセット(PS-MINIPROG1-C)をパステルマジックで買いました)
PSoCのデモボードが一応動いた(この前パステルマジックから購入したMiniProg1を動かしてみた。課題はセクション1のLEDの点滅。1HzでLED4をデューティ25%、LED1をデューティ50%で駆動する。PSoCのディジタルブロックを使ってPWMで波形を出力する)
サイプレスPSoC Expressセミナー(サイプレスPSoC Expressセミナーを申し込んだ)
サイプレス PSoC Express セミナー 2007(サイプレス PSoC Express セミナー 2007に行ってきた。PSoCの概要やPSoC Expressの使い方について説明を受けた。次にもらったボードを使った演習をした。ノートパソコンを持っていったので、PSoC Expressを立ち上げてサンプルを4つやった。 )
  1. 2007年09月27日 18:29 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0
»