FC2カウンター FPGAの部屋 2011年03月

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

FPGAの部屋

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

MicroBlazeクロスコンパイラを試す2(VMware上のFedora14でコンパイル)

さて、VMware上のFedora14は時計が狂うことを除いて、問題なく動作している。

目的のMicroBlazeクロスコンパイラを試してみようと思う。
MicroBlazeクロスコンパイラを使用したアプリケーションのコンパイル方法”を見ながら、HelloWorld.cをMicroBlazeクロスコンパイラでコンパイルする。

1.まずは、HelloWorld.tar.lzmaをダウンロードして、解凍する。

2.PATHの設定を行う。

3.HelloWorldフォルダの下に行く。

4.コマンドラインで microblaze-gcc -o HelloWorld.elf HelloWorld.c を実行した。HelloWorld.elf ができた。
MB_CCompiler_6_110330.png

あっけなく成功。
次は自分で作ったSimple MicroBlazeのコードをコンパイルしてみる。
  1. 2011年03月30日 05:46 |
  2. MicroBlazeクロスコンパイラ
  3. | トラックバック:0
  4. | コメント:0

VMware上のFedora14で時計が進む

依然としてVMware上のFedora14で時計が進む状態が続いています。

twitterで教えてもらったadjtimexのパッケージをインストールして、やってみましたが、--adjustで調整できないと言われてしまいました。
Fedora14_5_110329.png

hwclockの値は問題なく取れています。
Fedora14_6_110329.png

やはり、adjtimex --compareでの値がばらついているのは、AMDのCool'n'Quietテクノロジのせいなんでしょうか?
AMD Processor Driver 1.3.2.0053 for Windows XP and Windows Server 2003をインストールして、boot.ini に/usepmtimer スイッチを追加したのが悪かったのでしょうか?VMware Serverの時は時計は問題なかったんですけど?

とりあえず、adjtimex --compare でsuggestedされた値、tickを10099にしてみましたが、やはりずれますね。。。
Fedora14_7_110329.png

1分ごとにNTPで時刻合わせするわけにも行かないので、これは置いてといて、次のステップに進むことにします。
  1. 2011年03月30日 05:15 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:0

Fedora14での設定の覚書

Fedora14でMicroBlazeクロスコンパイラ試したいのだが、色々設定をする必要があるので、その覚書を書いておく。

まずは日本語入力から、Fedora14のシステムメニューから設定 -> Input Method Selectorを選ぶ。
IBusを使用するをクリックする。
Fedora14_1_110329.png

これで、CTRL+SPACEで日本語変換とアルファベットが切り替わる。

MicroBlazeクロスコンパイラを使用したアプリケーションのコンパイル方法”ページから、HelloWorld.tar.lzmaをダウンロードするが、そのままでは.lzmaを解凍することが出来ない。システムメニューの管理 -> ソフトウェアの追加/削除を選択する。
テキストボックスにlzmaと入れて検索する。LZMA Utilsが見つかるので、それにチェックを入れて、適用ボタンをクリックして、インストールする。
Fedora14_2_110329.png

こうしておくと、ダウンロード時に書庫マネージャーで開くと、解凍されている。
Fedora14_4_110329.png

  1. 2011年03月29日 22:21 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

Fedora14でMicroBlazeクロスコンパイラをmakeした

Fedora14でMicroBlazeクロスコンパイラをmakeした。

MicroBlaze Cross Compiler環境生成スクリプトのページからスクリプトをダウンロードする。
Fedora14の自分のホームにダウンロードして、make_microblaze_gcc を実行する。
MB_CCompiler_3_110327.png

makeが始まった。最初にパッケージファイルをダウンロードしている。
MB_CCompiler_4_110327.png

途中でなんどもカーネルクラッシュが表示されて気になるが、構わずmakeする。時刻もずれるが、そのままにしないと時刻がおかしいとエラーになってしまう。makeを3回やってしまった。(時刻ずれの対策の1つを”VMware Playerを使用してFedora14をインストールする3”の(もう1つ追加)と(更に追加)に示す)
一応成功したのだろうか?MicroBlazeのコンパイルを試してみることにする。(makeに何時間もかかりました)
MB_CCompiler_5_110328.png
  1. 2011年03月29日 06:01 |
  2. MicroBlazeクロスコンパイラ
  3. | トラックバック:0
  4. | コメント:0

VMware Playerを使用してFedora14をインストールする3

VMWare Playerを使用してFedora14をインストールする2”の続き。

Welcome to Fedora for i386が表示され、Disc Foundダイアログが出た。OKボタンを選択してリターンキーを押した。
VMWare_Player_24_110326.png

Media Checkダイアログが表示された。Testボタンを選択してリターンキーを押した。
VMWare_Player_25_110326.png

Media Checkが終了して、Errorが出てしまった。OKボタンを選択してリターンキーを押した。
VMWare_Player_26_110326.png

Media Checkダイアログに戻り、今度はContinueボタンを選択してリターンキーを押した。
VMWare_Player_27_110326.png

やはりだめでした。どうしてかとなんども仮想マシンを作りなおしてやってみたのですが、だめです。よくよくFedora-14-i386-DVD.isoを見たら、3.3GBのはずが1.69GBでした。ダウンロード失敗していたようです。
もう一度ダウンロードし直しましたが、またファイルの大きさが足りません。どうやらGoogle Chromeでダウンロードすると途中でダウンロードに失敗しても成功したように見えてしまうようです。
今度は、Firefox4.0でダウンロードすることにしました。Firefox4.0だとFedora-14-i386-DVD.isoの容量は3.31GBと表示され、完全にダウンロードできたようです。

色々検索していたら、OSマニアの部屋さんの”Fedora 14 のインストール [Fedora]”を発見。とても良く書いてあるので、このブログをまるごと参照することにしました。このブログには、”Fedora 14 のインストール [Fedora]”と同じことをしている間は省略することにしました。

今度はMedia CheckでSuccessしました。
VMWare_Player_28_110327.png

ですが、OKボタンをクリックし、次のMedia CheckをContinueするとまたエラーです。
Fedora 14 のインストール [Fedora]を良く読むと、一度DVDの接続が切れてしまうので、再接続が必要なようです。
仮想マシンメニューkら取り外し可能デバイス -> CD/DVD(IDE) -> 接続を選択して、Fedora-14-i386-DVD.isoを再接続します。
それからContinueを選択すると、うまくいきました。
VMWare_Player_30_110327.png

カスタマイズで開発環境にFedora Eclipseを追加しました。
VMWare_Player_31_110327.png

手順に従ってインストールしたら、Fedora14が起動しました。現在Updateを実行中です。VMware Toolsを自分でインストールしなくても、Windowsと仮想マシンを自由に行き来できました。とりあえず、VMware Toolsはインストールしないで様子をみることにします。
VMWare_Player_32_110327.jpg

(追加)
VMware Toolsをインストールしました。インストールすると、Windowsとの間でコピー&ペーストが使えます。インストールしたほうが便利です。

さらに、AMD Processor Driver 1.3.2.0053 for Windows XP and Windows Server 2003をインストールして、boot.ini に/usepmtimer スイッチを追加しました(私のパソコンのCPUは、AMD Athlon(TM) 64 X2 Dual Core Processor 5200+)。
下がboot.iniの内容です。

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer


これで再起動したところ、仮想マシン起動時に下のようなダイアログは出なくなりました。
VMWare_Player_9_110324.png

(もう1つ追加)
VMware Player上のFedora14の時計がずれるという現象が起きています。対策を検索したら、”VMware上のLinuxの時計が遅れる(2)”を見て、仮想マシンフォルダにあるFedora14.vmxを開いて、tools.syncTime = "FALSE"をtools.syncTime = "TRUE"に変更しました。
これで少し様子を見ます。

(更に追加)
tools.syncTime = "TRUE"に変更してから、もう一度VMware Toolsをインストールしました。
  1. 2011年03月27日 07:46 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:0

XUPV5-LX110T Development SystemのFPGAの放熱

前回、”XUPV5-LX110T Development SystemでMIGを試す”でXUPV5-LX110T Development SystemでMIGを試してみた。
その際に、FPGAののダイ温度がヒートシンク付きで83度を超えてしまった。

下が標準で付いていたFPGAのヒートシンクをみることが出来るボード写真だ。
fr_436_size580.jpg

真ん中にある銀色のアルミ加工物がヒートシンクで、大きさは35mm X 35mm X 10mm。
これだと、MIG3.6のサンプル回路を動作させると、FPGAののダイ温度がヒートシンク付きで83度を超えてしまう。
ML509_MIG_2_110204.png

個のヒートシンクでは役不足なので、チップセットクーラーを付けることにした。選択したチップセットクーラーのファンは+12V動作だった。このボードの電源は最大+5Vだった。ファンを+5Vで駆動できるか試してみたが、回り始めなかった。そこで、RSで+5Vのファンを購入して付け替えた。熱伝導性の高いヒートシンク貼りつけ用の両面テープを使用している。
ボードにファン付きのごついヒートシンクを付けたところ。
fr_476_size580.jpg

付け替えたら、FPGAのダイ温度が40度程度で安定した。やはり、ファン付きのヒートシンクが必要のようだ。
ML509_MIG_6_110325.png

  1. 2011年03月25日 20:59 |
  2. XUPV5-LX110T
  3. | トラックバック:0
  4. | コメント:0

VMware Playerを使用してFedora14をインストールする2

VMWare Playerを使用してFedora14をインストールする1”の続き。

前回は、思いもかけないワーニングが出たが、とりあえずVMWare Player上にFedora14をインストールしていくことにする。

取り外し可能デバイスの仮想マシンへの接続仕方を表示している。仮想マシン - 取り外し可能デバイスで仮想マシンへ接続できるそうだ。
VMWare_Player_11_110324.png

ソフトウェアの更新ダイアログがでる。ダウンロードしてインストールボタンをクリックした。
VMWare_Player_12_110324.png

ダウンロードが始まって、VMware Toolsが更新されたようだ。
VMWare_Player_13_110324.png

どうやらkickstart configuration fileの65行目にエラーがあると言っている。VMWare Playerのウインドウに行って、システムを再起動するためにCtrl-Cを入力した。
VMWare_Player_14_110325.png

やはり同様にダメだ。やはりどうしてもトラブルは発生する。
解決策を探すと、”Re: Trouble Installing Fedora 14 on VMware 7.1.3”が引っかかった。それによると簡易インストールはやめて、後でFedora14をインストールするようだ。
早速、Fedora14の仮想マシンを右クリックメニューから削除して、再度新規仮想マシンの作成をクリックして仮想マシンを作成することにする。
後でOSをインストールを選択して、次へ>ボタンをクリックした。
VMWare_Player_15_110325.png

ゲストOSの選択でLinuxラジオボタンを選択して、バージョンからFedoraを選択する。
VMWare_Player_16_110325.png

仮想マシンの名前と格納場所を指定する。
VMWare_Player_17_110325.png

ディスク容量の指定はデフォルト値の20GBとした。
VMWare_Player_18_110325.png

仮想マシンを作成する準備完了で、完了ボタンをクリックした。
VMWare_Player_19_110325.png

Fedora14の仮想マシンがパワーオフの状態でできた。仮想マシンの再生をクリックした。
VMWare_Player_20_110325.png

他のCPUにわたる同期されたTSCを保証しないというダイアログが出た。OKボタンをクリックした。
VMWare_Player_9_110324.png

下は以前の画面を使用しているが、取り外し可能デバイスの仮想マシンへの接続仕方を表示するダイアログが出た。背景のウインドウは違っている。
VMWare_Player_11_110324.png

起動して、Fedoraは仮想マシンにインストールされていないから、インストールしろという画面が出た。CD/DVDの接待を変更ボタンをクリックした。
VMWare_Player_21_110325.png

CD/DVD(IDE)ダイアログが開く。Fedora14のISOイメージファイルを指定した(Fedora-14-i386-DVD.iso)。
VMWare_Player_22_110325.png

Fedora14の仮想マシンのウインドウに戻った。仮想マシンの再起動ボタンをクリックした。
VMWare_Player_21_110325.png

ヤッター。ようやくFedora14のインストール画面が来ました。
VMWare_Player_23_110325.png

しばらくたったら自動的にインストールが開始した。

VMware Playerを使用してFedora14をインストールする3”に続く。
  1. 2011年03月25日 05:35 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:3

Spartan-3A Starter Kit用DVI出力拡張ボード(シンボル作成2)

現在、VMWare Playerのインストールをしていますが、DesignSpark PCBで設計しているSpartan-3A Starter Kit用DVI出力拡張ボードもちまちまと進めています。

4種類のシンボルを作りました。まだまだ作るシンボルがありますね。とりあえずはシンボルを作ります。
Sp3AKit_ExtBoard_2_110324.png

  1. 2011年03月24日 21:02 |
  2. プリント基板作成
  3. | トラックバック:0
  4. | コメント:0

VMware Playerを使用してFedora14をインストールする1

VMWare Server2.0を使っていたのだが、メンテナンスが終了しているようだし、Ubuntu8.04から10.04にアップグレードしたらネットワークが使えなくなっていたので、アンインストールして、VMWare Player3.13をインストールすることにした。VMWare Player上にFedora14をインストールする。使用しているOSはWindows XP SP3。使用しているプロセッサはAMD Athlon(TM) 64 X2 Dual Core Processor 5200+。

まずは、ネットを検索したら、サーバエンジニアの知恵袋さんの”VMware Player 3.0 + Fedora 12”が引っかかったので、これを参考にやってみることにした。

VMware Player 3.1のページに行って、ダウンロードページに移り、名前とメールアドレスを記入して登録した。
送られてきたメールでアクティベーションすると、ダウンロードのページが開いたので、Windows版のVMware Player 3.1をダウンロードした。
ダウンロードしてきたVMware-player-3.1.3-324285.exeをダブルクリックしてインストールした。最初のインストール画面を下に示す。
VMWare_Player_1_110323.png

インストールが終了すると再起動となった。
VMWare_Player_2_110323.png

インストールが終了したので、VMWare Playerを起動した。使用許諾契約のダイアログが出て同意すると、VMWare Playerのウインドウが出てきた。
VMWare_Player_3_110324.png

FedoraをFedoraのダウンロードサイトからダウンロードした。直接ダウンロードのi386インストールDVDを選択した。Fedora-14-i386-DVD.isoがダウンロードできた。

VMWare Playerのウインドウから、新規仮想マシンの作成をクリックして、新しい仮想マシン ウィザードでFedora-14-i386-DVD.isoを選択した。
VMWare_Player_4_110324.png

簡易インストール情報を入力した。
VMWare_Player_5_110324.png

仮想マシンの名前と格納場所を入力した。
VMWare_Player_6_110324.png

ディスクの容量をデフォルト値の20.0GBとした。
VMWare_Player_7_110324.png

仮想マシンを作成する準備完了ダイアログが出た。完了ボタンをクリックした。
VMWare_Player_8_110324.png

私のシステムでは、他のCPUにわたる同期されたTSCを保証しないというダイアログが出た。Windows Boot.iniファイルの/usepmtimerオプションを設定する必要があるそうだ。
VMWare_Player_9_110324.png

MicroSoftナレッジデータベースの”QueryPerformanceCounter 関数を使用するプログラムが不十分な Windows Server 2000 は、Windows Server 2003 および Windows XP 実行可能性があります。”によると、新しい AMD CPU ドライバーをインストールする必要あるそうだが、リンクはすでに有効ではなかった。AMDのCool'n'Quietテクノロジに特有の設定なのかな?
この辺のリンクAMD Processor Driver 1.3.2.0053 for Windows XP and Windows Server 2003をインストールすれば良いのかな?(ダウンロードしてみるとAMD_Processor_Driver_1320053.zipという名前だった。中にはSetup.exeが1つだけ入っていた)
そして、boot.ini に/usepmtimer スイッチを追加すれば良いのか?
機械語翻訳が読みにくいので、英文併記のこっちの方が良いかも?でも、文章が異なる、AMDドライバのインストールは書いていない。原題は "Programs that use the QueryPerformanceCounter function may perform poorly in Windows Server 2000, in Windows Server 2003, and in Windows XP"。英語で読んだほうが良いかも?

とりあえず、この処理は後回しとして、他のCPUにわたる同期されたTSCを保証しないというダイアログのOKボタンをクリックして終了させた。

VMWare Playerを使用してFedora14をインストールする2”へ続く。
  1. 2011年03月24日 05:46 |
  2. VMware
  3. | トラックバック:0
  4. | コメント:3

MicroBlazeクロスコンパイラを試す1(Cygwinでスクリプトを起動するが失敗)

AQUAXIS TECHNOLOGYからMicroBlaze クロスコンパイラ環境生成スクリプトがダウンロードできる。MicroBlazeクロスコンパイラがあれば、SDKが無くても(つまりISE WebPACKでも)Simple MicroBlaze用のコードがコンパイルできるはず。。。ということでMicroBlaze クロスコンパイラ環境生成スクリプトをダウンロードしてやってみた。
ひでみさんのブログも毎日拝見しているが、とてもすごい方だと思う。)

Fedora14で確かめたということだったが、私の環境では、VMWare ServerにUbuntu8.04がインストールされていた。これを10.04にアップグレードしたら、ネットワークがつながらなくなってしまった。もうすでにVMWare Serverは古いようなので、見限って、自分のパソコンにインストールされているCygwinでMicroBlaze クロスコンパイラ環境生成スクリプトを走らせてみた。

Cygwinを起動して、./make_microblaze_gcc を起動した。wgetでパッケージをダウンロードしていた。
MB_CCompiler_1_110322.png

1時間くらいコンパイルしていたが、予想通りにエラーで停止した。
MB_CCompiler_2_110322.png

この時点で、Windows XP 32ビット版の使用メモリは4GB近い。搭載メモリは3GBなので、1GBは仮想メモリに鳴っているはず。とてもWindows XPの動作が鈍い。アプリをすべて落としてもメモリは解放されなかった。仕方が無いので、再起動した。

Cygwinでうまく行かなかったので、すでにインストールされているVMWare Serverでやってみようと思い、インストールされているUbuntu8.04を10.04にアップグレードしたらネットワークがつながらなくなってしまった。もう、VMWare Serverはメンテされていないようのでこの機会に消去して、VMWare PlayerをインストールしてFedora14をインストールしてやってみることにする。
  1. 2011年03月23日 05:35 |
  2. MicroBlazeクロスコンパイラ
  3. | トラックバック:0
  4. | コメント:2

FPGAの部屋のまとめサイトを更新(2011/03/21)

FPGAの部屋のまとめサイトを更新しました。
XUPV5-110TボードOV9655プリント基板の作成NSLのページを追加して、3月20日までの記事を既存のページに追加しました。
  1. 2011年03月21日 16:21 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

DesignSpark PCBでシンボルを作成する場合の円弧の書き方

DesignSpark PCBで円弧を書く方法がわからなくて悩んでいたが、DesignSpark PCBのLibrary Creation Tutrial の12~13ページに書いてあったので紹介する。
現在はインダクタの回路図シンボルを書いている。

1.Library ManagerのNew Item...ボタンをクックして、回路図シンボルを作成した。
DesignSpark_PCB_81_110306.png

2.SettingsメニューのUnits...を選択して、Unitsダイアログを表示する。Units:からmilを選択した。
DesignSpark_PCB_82_110306.png

3.SettingsメニューのGrids...を選択して、Gridsダイアログを開く。Working Gridを25milにした。

4.左のダイアログのAdd Shape Single Lineアイコンを選択した。

5.Sキーを押して、出てきたLine StyleダイアログでNormalを選択した。
DesignSpark_PCB_85_110306.png

6.線を書いた。(下図がその状態)
DesignSpark_PCB_124_110320.png

7.その下に線を書いた。
DesignSpark_PCB_125_110320.png

8.その線を選択して、右クリックし、右クリックメニューからArc -> Angle 180を選択する。
DesignSpark_PCB_126_110320.png

9.下向きの円弧に変換される。これを上向きの円弧に変換する。円弧を選択して、右クリックし、右クリックメニューからArc -> Flip Arcを選択する。
DesignSpark_PCB_127_110320.png

10.上向きの円弧に変換された。
DesignSpark_PCB_128_110320.png

11.上向きの円弧をコピーして、ペーストして、線を追加した。
DesignSpark_PCB_129_110320.png

ここまで出来れば、後は、”DesignSpark PCB 1.0.3 のチュートリアルを試してみる7(回路図ライブラリ1)”の12.以降を参照に回路図シンボルを作ることができる。

(2011/03/21:追加)
インダクタの回路図シンボルとPCBシンボルが出来ました。
DesignSpark_PCB_130_110321.png

まだまだシンボルをつくりまくる必要があります。
  1. 2011年03月20日 06:04 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:0

ISE13.1でVirtex-7をインプリメントしてみた

前回はISE13.1でKintex-7をインプリメントしてみたが、今度はVirtex-7をインプリメントしてみた。Virtex-7はWebPACKではインプリメントすることができない。
xc4v285t-1ffg484の一番小さいVirtex-7でインプリメントしてみた。
Virtex-7も下のワーニングが出て、ビットファイルを生成することができない。

WARNING:Bitgen:26 - Bitgen only supports DRC but not bitstream generation on this device. This condition can occur if there are problems obtaining a license to run bitgen or if the design targets a device which is Early Access.


A7_K7_V7_7_110319.png

次にFPGA Editorで見てみるが、やはり一番小さいとはいえVirtex-7。大きい。44,700スライスあって、前回のKintex-7の約10倍だ。
A7_K7_V7_8_110319.png

右はじに、600Mbps~12.5GbpsのGTXトランシーバが並んでいる。PCI Express(PCIe)も2個実装されている。左はじは普通のIOのようだ。
Virtex-7もKintex-7と内部のスライスやIO、CMTなどの内部ブロックは同様みたいだ。Airtex-7はまだISE13.1ではインプリメント出来ないが、全シリーズ同じ構造だと移行するのが簡単でとても良いと思う。

従来、SpartanからVirtexに移行するのは、プリミティブを使ってあると特に難しく、全面書き直しになることもあったが、今回はスムーズに上下のシリーズに移行できそうだ。これはとても良いと思う。
  1. 2011年03月19日 05:22 |
  2. Artix-7, Kintex-7, Virtex-7
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter Kit用DVI出力拡張ボード(シンボル作成1)

Spartan-3A Starter Kit用DVI出力拡張ボードをつくろうとしている。使用するCADはDesignSpark PCBを使おうと思っている。そこで、DesignSpark PCB用の部品のシンボルを作成している。
まずは、DVIコネクタへの出力部分に付ける直列接続のショットキーダイオードで、DIODES製のBAS40-04-7-Fだ。
回路図シンボルを作って、PCBシンボル(SOT-23パッケージ)をウイザードで作成した。データシートに書いていないパラメータがあったが推測で入れた。
Sp3AKit_ExtBoard_1_110317.png

回路図シンボルを作って、PCBシンボルを作って、それらを組み合わせて、その部品型番のシンボルペアを作るとうのは合理的だと思った。
  1. 2011年03月17日 21:51 |
  2. プリント基板作成
  3. | トラックバック:0
  4. | コメント:0

ISE13.1でKintex-7をインプリメントしてみた

どうも地震でやる気がなくなっていたが、そろそろ始めようと思う。基板も作成中だが、ISE13.1からインプリメント可能になった。Kintex-7のインプリメントをしながら、Airtex-7, Kintex-7, Virtex-7シリーズに付いて学んでみたいと思う。

まずはしょぼくて申し訳ないが、キャラクタ・ディプレイ・コントローラをKintex-7、xc7k30t-1fbg484でインプリメントしてみた。
xc7k30t-1fbg484は、4,750スライス(1スライスは4個のLUT、8個のFFを持つ)、Block RAMの容量は、18Kb換算で130個、3CMT、PCI Expressインターフェース1個、GTXトランシーバー4個を持っている。
キャラクタ・ディプレイ・コントローラをインプリメントするに当たって、IOピンの配置制約LOCをすべてコメントアウトして、PERIOD制約だけにしている。

NET "clk" TNM_NET = "clk";
TIMESPEC "TS_clk" = PERIOD "clk" 20 ns HIGH 50 %;


ISE13.1でインプリメントしてみるとGenerate Programming Fileでエラーとなった。
A7_K7_V7_1_110316.png

エラー内容と言うかワーニングを下に示す。

WARNING:Bitgen:26 - Bitgen only supports DRC but not bitstream generation on this device. This condition can occur if there are problems obtaining a license to run bitgen or if the design targets a device which is Early Access.


どうやら、まだビットファイルは生成できないようだ。

次に、例によって、FPGA Editorで見てみよう。
A7_K7_V7_2_110316.png

左からI/Oパッドがあって、FIFO、BRAM、BRAM、PCIe、BRAM、GTX、FIFO、I/Oピンが並んでいるのがわかる。

DCMがどうインプリメントされているか見てみると、MMCM (mixed-mode clock manager)に割り当てられている。
A7_K7_V7_3_110316.png

MMCMは、7 Series FPGAs Overviewによると、11.2psごとに位相シフトできるPLLのようだ(まだ、細かい違いがあるのかもしれないが。。。)CMTの中にMMCMが1個、PLLが1個入っている。使用したMMCME2_ADVを下に示す。
A7_K7_V7_4_110316.png

(追記)
Kintex-7のSLICELを下に示す。
A7_K7_V7_5_110317.png

4個の6入力LUTと8個のFFがある。
次にSLICEMを下に示す。
A7_K7_V7_6_110317.png

LUTが分散RAMになることを除けば、SLICELと同様だ。
これはVirtex-6と同様のSLICE構造に見える。(”Virtex-6とSpartan-6のスライス構造とパスの比較”参照)
  1. 2011年03月16日 21:30 |
  2. Artix-7, Kintex-7, Virtex-7
  3. | トラックバック:0
  4. | コメント:0

FPGAの部屋190万ヒット達成

いつの間にか、FPGAの部屋が190万ヒット達成しました。皆さん、見ていただいてありがとうございます。

ですが、世の中は大地震、原発事故の問題、また、計画停電と暗い話題がいっぱいです。私も茨城で被災しました。家も多少損傷して、2日ほど電気と水が止まりましたが、東北の被災者の方に比べたら問題になりません。一日も早い復興を祈っています。多少ですが、募金もさせていただきました。また、募金しようと思っています。
なかなか、FPGAのことや基板の作成などをする気になれませんでしたが、いろいろ考えても仕方がないので、そろそろ始動しようかと思います。とりあえずは、基板をつくろうと思っています。基板作成の事はよくわかりませんので、ご存じの方はよろしくお願いします。

FPGAnoHeya_190.png
  1. 2011年03月15日 06:32 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

東北地方太平洋沖地震

おはようございます。皆さん。
ご無事でしょうか?
私の家では、地震後に電気と水道が止まってしまいました。電気は昨日の夕方に来ました。水道もまわりの家にはきていますが、自分の家は、水道管が破裂してしまったため、止めてあります。水道が無いとトイレにも行けず、とても不便です。ですが、東北地方で被災された方や原発事故周辺の方のことを思うと、このくらいは序の口といったところだと思います。
家は外側は何でもなく、サッシの開け閉めにも問題はないですが、プレハブ工法で1階と2階がボルト締めなので、連結部分のクロスが切れてしまいました。地震で動いたのでしょう。軟弱地盤なので揺れが大きいみたいです。
家具や本棚の本などは、めちゃくちゃでした。最初の日は停電でしたし、まだ余震があるかな?ということで、ちゃんと片付けず、本などは下に平積みしてありますが、余震も治まって来たので、今日あたり片付けようと思います。

地震の時は職場にいまして、ちょうど引越しがだいたい完了した時でした。なので、書庫などの耐震補強工事前でした。書庫が凄い揺れで倒れそうなので、必死に押さえてました。(本当はそれもほっといて、避難すべきなのか?と思いましたが。。。)なんとか書庫は倒れずにすみましたが、自分のパソコンが倒れていました。電気は地震時に止まってUPSが効いて、それでもパソコンは生きていました。地震が止まったら、パソコンを休止状態に移行して、UPSの電源も切りました。自動停止しないと思ったら、引越しの時にUPSのUSBドライバがうまく入っていなかったのです。パソコンはこけましたが、なんとかハードディスクの中身は大丈夫なのではないか?と思います。バックアップはパソコンの上に置いたUSBハードディスクで取っていました。これは、パソコンが転倒したときに投げ出されたので、こっちはだめかもしれません。(いままでの全データは、命、家族の次に大切な物です)
職場の建物も水漏れしていて、電気が通せないそうで心配です。月曜日からは復旧が始まりますが、大変そうです。さらにガソリンが売り切れで買えないのが痛いです。ちょうど、ガソリンが切れる時だったので、車に入っていません。(田舎なので、車通勤です)その時は、11Kmくらいなので、自転車で通勤しようと思います。
  1. 2011年03月13日 05:54 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:7

DesignSpark PCB 2.0を試してみる

DesignSpark PCB 2.0 が出ていたので、インストールして試してみた。
メニューに3Dという項目が増えていて、3Dメニューから3D Viewを選択した。
DesignSpark_PCB_121_110311.png

すると、基板の3D画像が見られた。グリグリ動かせる。
DesignSpark_PCB_122_110311.png

自分で作った基板も3Dでグリグリ動かせる。これは良い。
DesignSpark_PCB_69_110228.png

DesignSpark_PCB_123_110311.png

でも、Hole32が見えないのはなぜだろう?
  1. 2011年03月11日 05:12 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:0

DesignSpark PCB 1.0.3 のチュートリアルを試してみる9(PCBシンボル2)

DesignSpark PCB 1.0.3 のチュートリアルを試してみる8(PCBシンボル1)”の続き。

30.チュートリアルでは、PCBシンボルに色々な図形を付加する方法が書いてる。基本的には左のツールバーの四角形やいろいろな多角形を書く。アイコンを選択して、書く前に、Sキー (Change Style) を押して線のスタイルを決定する(Line Styteダイアログ)。Lキーを押すとChange Layerダイアログが出て、選択した図形のレイヤーを変更することができる。

31.表面実装用のパッドはデフォルト値でTopレイヤーになっているそうだ。多分、表面実装用のパッドはPCBデザイン上でレイヤーをBottomに移動することができるんだと思う。現在のCH7301C-Tのパッドのプロパティを下に示す。Topレイヤーの配置されれている。
DesignSpark_PCB_106_110308.png

32.PCBシンボルには、Reference origin(Rマーク)とSymbol origin (Sマーク)がある。Reference Originは、コンポーネント名の位置を示す。Symbol originはPCBシンボルの位置を示す。たぶん、PCBシンボルを回転するときには、Symbol originを中心に回転するんだと思う。
DesignSpark_PCB_107_110308.png

次にコンポーネントを作成して、回路図シンボルとPCBシンボルをリンクするみたいだ。つまり、汎用のOPアンプだったら、OPアンプの回路図シンボルを作っておいて、PCBシンボルもSOPの18ピンとか汎用のものを作っておき、それらをコンポーネントで統合してパーツ番号(AD8592RM)を付けるという合理的な仕組みになっている。Kicadは自分で回路図シンボルを選んで、その後、PCBシンボルを自分で選ぶので、コンポーネントで統合されているDesignSpark PCBの方がこの点では使いやすいと思う。
そういう事だと、PCBシンボルは専用のものを作らなくても、汎用のQFP64ピンで良かったのかもしれない。しかし、すべてのPCBシンボルリストが無いと、調べるのが面倒で自分で作ってしまうな。。。作るの簡単だし。。。


33.さて、コンポーネントを作成する。今まで同様、上のツールバーのLibrariesアイコンをクリックして、Library Managerダイアログを出す。Componentsタブをクリックする。New Lib...ボタンをクリックする。
DesignSpark_PCB_108_110308.png

34.Select New Library Fileダイアログが開く。ライブラリを作成するため、Chrontelと入力して、保存ボタンをクックする。
DesignSpark_PCB_109_110309.png

35.Chrontel.cmlが作成される。Library Managerダイアログから、New Item...ボタンをクリックする。
DesignSpark_PCB_110_110309.png

36.New Componentダイアログが開く。Component:にCH7301C-Tと入力し、PackageでQFPを選択する。Default Reference:で U を指定する。Schematic Symbolで、LibraryからChrontel.sslを指定して、下に示されたCH7301C-Tをクリックすると、Pins:が64に指定され、Name:の項にCH7301C-Tが入力された。
次に、PCB Symbolで、同様に、LibraryからChrontel.pslを指定して、下に示されたCH7301C-Tをクリックすると、Pins:が64に指定され、Name:の項にCH7301C-Tが入力された。OKボタンをクリックする。
DesignSpark_PCB_111_110309.png

37. Component Editorが表示された。
DesignSpark_PCB_112_110309.png

38.シンボルの色を変更する。回路図シンボルのところで、右クリックメニューからDisplay...を選択し、Displayダイアログを表示させる。表示させた現在の色を下に示す。
DesignSpark_PCB_113_110309.png

次に、変更した色を下に示す。(チュートリアルの通りの色に変更した)
DesignSpark_PCB_114_110309.png

表示結果を下に示す。
DesignSpark_PCB_115_110309.png

39.上の画面の右クリックメニューからEdit Gatesを選ぶと、Gatesダイアログが表示されて、その他の回路図シンボルを選んで追加することもできるようだ。これは複数の機能が1つのICパッケージに入っている場合に便利だ。今回は必要がないので、この機能は使用しない。DessinSparkLibraryTurtorial.pdfの32ページ参照。

40.次は右のツールバーの下から2番目のAssign Pinsアイコンをクリックして、回路図シンボルとPCBシンボルを対応付ける。Sch SymbolのTerminal Nameを入力して、Pcb SymbolのPad Numberを入力する。完成したのが下の図だ。ショートカットはZキー(ズームイン)、Uキー(ズームアウト)、Aキー(フィット)が使用できる。いずれも小文字。
(追加:回路図シンボルのXのピンをクリックすると上のピン番号表が黄色くハイライトされる。PCBシンボルのパッドをクリックするとピン番号が表示される)
DesignSpark_PCB_116_110310.png

41.Saveアイコンをクリックすると、Save To Libraryダイアログが表示されてOKボタンをクリックするとセーブされる。
DesignSpark_PCB_117_110310.png

42.回路図を新規作成して、ChrontelライブラリのCH7301C-Tを呼び出すと下のようなシンボルになった。少しずれてしまった。
DesignSpark_PCB_118_110310.png

43.回路図シンボルを書くときに、上の辺と右の辺は、ピン名だけを180度回転させる必要があるようだ。
DesignSpark_PCB_119_110310.png

44.回路図を新規作成して、ChrontelライブラリのCH7301C-Tを呼び出したときの、回路図シンボルは下のようになった。
DesignSpark_PCB_120_110310.png

これでも、ピン番号は桁が1桁の番号が2桁目の場所に寄ってしまっている。これを防ぐには回路図シンボルの時に予めPCBシンボルのピン番号と合わせる必要があるだろう。今回はこれでOKとする。
  1. 2011年03月09日 05:58 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:0

ISE Design Suite 13 の新機能

ISE Design Suite 13 の新機能が書いてありました。
やはりメインは

1.Kintex-7とVirtex-7のサポート
2.PlanAheadの改良


の様です。EDKは良く知りませんが。。。
気になったのが、ChipScope機能で、

ChipScope 機能

HDL デバッグ プローブを使用して RTL ネットにタグを設定する機能を追加しました。HDL デバッグ プローブでは、次の HDL デバッグ フローがサポートされます。

PlanAhead と XST

PlanAhead と Synopsys 社 Synplify/Synplify Pro

PlanAhead と Mentor Graphics 社 Precision RTL Synthesis

詳細は、『PlanAhead ユーザー ガイド』 (UG632) の第 12 章「デザインのプログラムとデバッグ」を参照してください。


だそうです。
PlanAhead User Guideの333ページを見てみたら、mark_debugの使い方が載っていました。これでHDLでデバックポイントを指定できるのかな?あとで試してみたいと思います。
  1. 2011年03月08日 06:00 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

DesignSpark PCB 1.0.3 のチュートリアルを試してみる8(PCBシンボル1)

DesignSpark PCB 1.0.3 のチュートリアルを試してみる7(回路図ライブラリ1)”で回路図シンボルを作成した。
今度は、PCBシンボルを作成しよう。

18.Librariesアイコンをクリックする。
DesignSpark_PCB_78_110305.png

19.PCB Symbolsタブをクリックしてから、右のNew Lib...ボタンをクックする。
DesignSpark_PCB_95_110307.png

20.Select New Library Fileダイアログが開く。ライブラリを作成するため、Chrontelと入力して、保存ボタンをクックする。
DesignSpark_PCB_96_110308.png

21.Library Managerダイアログから、Wizard...ボタンをクリックする。
DesignSpark_PCB_97_110308.png

22.ウイザードが始まる。次へ>ボタンをクリックする。
DesignSpark_PCB_98_110308.png

23.Technologyダイアログで、UnitsのMetricをmm、Precisionを2に設定する。
DesignSpark_PCB_99_110308.png

24.Footprint Typeダイアログで、パッケージからQFPを選択して、Component NameのPositonを右下に変更する。
DesignSpark_PCB_100_110308.png

25.Padsダイアログが開く。StyleにPS1を選択した。他はデフォルト値で問題ない。
DesignSpark_PCB_101_110308.png

26.Silkscreenダイアログが開く。デフォルト値で問題ないようだ。
DesignSpark_PCB_102_110308.png

27.Placemaentダイアログが開く。とりあえずLayrerをToo Assemblyに変更する。ところでplacement shapeというのは何なんだろう?知っている方がいらしたら教えてください。DRCの時に外形が他の部品と干渉しないか?チェックするための枠だろう、ということでした。@sonson1919さん、@osamu_takeuchiさん、ありがとうございました。
DesignSpark_PCB_103_110308.png

28.Finishダイアログが開く。Footprint Nameを入力して、Save the footprint to the libraryにチェックを入れ、完了ボタンをクリックする。
DesignSpark_PCB_104_110308.png

29.CH7301C-TのPCBシンボルが生成された。
DesignSpark_PCB_105_110308.png
  1. 2011年03月08日 05:30 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:0

DesignSpark PCB 1.0.3 のチュートリアルを試してみる7(回路図ライブラリ1)

今度は、ライブラリを作成する。今回はDesignSpark PCBのライブラリのチュートリアルをそのままやらずに、ライブラリを作成したいChrontelのCH7301Cをつくってみようと思う。

まずは回路図のシンボルを作成する。

1.Librariesアイコンをクリックする。
DesignSpark_PCB_78_110305.png

2.Library Managerダイアログが表示される。右のNew Lib...ボタンをクックする。
DesignSpark_PCB_79_110306.png

3.Select New Library Fileダイアログが開く。Chrontelライブラリを作成するため、Chrontelと入力して、保存ボタンをクックする。
DesignSpark_PCB_80_110306.png

4.Chrontel.sslが作られる。New Item...ボタンをクックして、回路図シンボルを作成する。
DesignSpark_PCB_81_110306.png

5.SettingsメニューのUnits...を選択して、Unitsダイアログを表示する。Units:からmilを選択する。
DesignSpark_PCB_82_110306.png

6.SettingsメニューのGrids...を選択して、Gridsダイアログを開く。Working Gridを50milにする。
DesignSpark_PCB_83_110306.png

7.左のアイコンからAdd Shape Rectangleを選択する。
DesignSpark_PCB_84_110306.png

8.Sキーを押して、出てきたLine StyleダイアログでNormalを選択する。
DesignSpark_PCB_85_110306.png

9.CH7301Cの回路図シンボルの四角形を書いた。
DesignSpark_PCB_86_110306.png

10.次に、左のAdd Open Single Line アイコンを選択する。
DesignSpark_PCB_87_110306.png

11.ピン用の線を書いていく。1本書いたら後はコピーしてペーストしたほうが楽だ。
DesignSpark_PCB_88_110306.png

12.すべての線を書き終わったら、Add Padアイコンをクリックして、入出力ピンを定義する。
DesignSpark_PCB_89_110306.png

13.すべての入出力ピンの定義を終了した。(追記: ピン番号は実際のピン番号に合わせたほうが良い。44.参照
DesignSpark_PCB_90_110306.png

14.ピン名やピン番号を移動する。位置はグリット配置になるので、うまく位置が合わない場合はCTRL-Gを押して、Half GridかQuarter Gridに設定する。四角の上下のピンは右クリックメニューからRotateする。現在はピン名はHalf Gridで、ピン番号はQuarter Gridに設定している。全部のピンの配置が終わったら、1番ピンにの所にSマーカー(Symbol Origin)を移動する。(追記: 上の辺と右の辺は、ピン名だけを180度回転させる必要がある。43.参照
DesignSpark_PCB_91_110306.png

15.AddメニューからReference Originを選択して、回路図シンボルの右下に付加する。
DesignSpark_PCB_92_110306.png

16.回路図シンボルをセーブする。
DesignSpark_PCB_93_110306.png

17.上のツールバーのLibrariesアイコンをクリックして、Library Managerで作った回路図シンボルを見てみた。
DesignSpark_PCB_94_110306.png

回路図シンボルは終了。
  1. 2011年03月07日 05:51 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:0

PlanAhead13.1を試してみた2(実機にダウンロード)

PlanAhead13.1を試してみた1(インプリメント、シミュレーション)”の続き。

PlanAheadでインプリメントとシミュレーションができたので、最後にSpartan-3A Starter Kitにダウンロードして実機動作を試してみた。

左のProgram and DebugをクリックしてGenerate Bitstream...を選択する。
ISE131_18_110305.png

Generate Bitstreamダイアログが開く。Optionsをクリックすると下に説明が表示される。でも、Project Navigatorの時は、もっと設定が多いはず。もっと設定できるOptionsを増やして欲しい。
ISE131_19_110305.png

Bitstream Generation Completedダイアログが出るので、OKボタンをクリックする。
ISE131_20_110305.png

左のProgram and DebugをクリックしてiMPACT...を選択する。
ISE131_21_110305.png

iMPACTが立ち上がるので、ビットファイルを設定して、Spartan-3A Starter Kitにダウンロードした。
ISE131_22_110305.png

カメラ表示回路が動作してカメラのデータがディスプレイに表示できた。

今回、PlanAheadを使ってみて、大分洗練されてきた印象を受けた。これならば、主流になると思われるISE14では問題なくなるのでは?と思う。ただ、スタティックタイミング解析の問題と、ビットファイル生成時のオプションが少ないという問題があると思う。(ただし、スタティックタイミング解析は私がなにかミスっているかもしれない?)
  1. 2011年03月05日 15:11 |
  2. PlanAheadについて
  3. | トラックバック:0
  4. | コメント:0

PlanAhead13.1を試してみた1(インプリメント、シミュレーション)

前回、”PlanAhead12.3でCreate New Projectしてみる1(プロジェクトを作るまで)”でやってみて、うまく行かずに諦めた自分のSpartan-3A Starter KitでCMOSカメラ・ディスプレイ回路で、どのようになるか試してみた。

PlanAhead13.1でNew Projectを作成して、Project Navigatorのプロジェクトをロードする。ロードするProject Navigatorのプロジェクトは現在比較しているプロジェクトとする。
プロジェクトをロードすることができた。少しワーニングがある。
ISE131_6_110303.png

インプリメントまで行ったが、問題なく終了したようだ。

Placement: Completed - No errors found.
Routing: Completed - No errors found.
Timing: Completed - No errors found.


ISE131_7_110304.png

ここで左のImplemented DesignからReport Timingをクリックすると、Report Timingダイアログが出てくるので、OKボタンをクリックするとタイミング解析が始まる。
ISE131_8_110304.png

そうすると、タイミングエラーがたくさん出ている。
ISE131_9_110304.png

これはなんでだろうか?タイミングはコンプリートしているはずなんだが?
同じファイルのProject NavigatorのプロジェクトでP&R後のスタティックタイミング解析してみたが、値が違っているし、タイミングエラーも出ていない。
ISE131_10_110304.png

特にddr2_dq0のfallingのデータパスが、PlanAhead、7.41nsに対して、Project Navigator、3.416nsで違いが大きすぎるのはなぜだろう?もう少しマニュアルを読んでみよう。

次に13.1からの新しい機能でPlanAheadプロジェクトからのシミュレーションをテストした。テストベンチとモデルをSimulation-Only SourcesとしてPlanAheadプロジェクトに入れて、Project NavigatorからBehavioral Simulationを行ったが、どうも、テストベンチのCamDispCntrler_DDR2_tb.vがトップとして認識されないようだ。
ISE131_11_110304.png

ISE131_12_110304.png

マニュアルを読んで勉強してみる必要がありそうだ。

(追記)
マニュアルを読んでいて、自分でテストベンチの名前を入れれば良いということに気が付きました。(気がつかないほうがおかしいですね?)
ISE131_13_110304.png

これでやるとfuseのエラーでした。

ERROR: [Runs-7] Fuse application returned error(s). Please see 'H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Synth131\CamDisp_Cntrler_DDR2_PA\CamDisp_Cntrler_DDR2_PA.sim\sim_1\fuse.log' file for more details.


結局、fuse.logを見ろということだったんですが、見たところ原因はOVLでした。そういえばISE13.1にしてからライブラリをコンパイルするのを忘れていました。ライブラリをコンパイル、リンクしてから再度PlanAheadプロジェクトからのISimシミュレーションに挑戦します。

(2010/03/05:追記)
まずは環境変数を13.1用に変更した。
次に、”ISimでOVLのVHDL, Verilog混在シミュレーション(OVLライブラリのコンパイルと登録)”を参考にOVLをISimでコンパイルしてライブラリに登録した。今回は環境変数を見て、そのバージョンのコンパイルコマンドを使用するようにバッチファイルを変更した。
Behavioral Simulationをクリックして、シミュレーションするが、その時に、Launch Behavioral SimulationダイアログのOptions...ボタンをクリックすると、Simulation Optionダイアログが出てくる。
ISE131_14_110305.png

Simulation OptionダイアログのLanguage Optionsタブをクリックして、Verilog Options:の脇の...ボタンをクックする。
ISE131_14_110305.png

Verilog Optionsダイアログが開くので、Verilog Search Paths とDefines を設定した。さらにUse Verilog 2001のチェックを入れた。
ISE131_15_110305.png

それでシミュレーションしても、やはりエラーだ。エラーの内容を下に示す。

ERROR:HDLCompiler:1654 - "H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Sources\VGA_Display_Controller.v" Line 454: Instantiating from unknown module
ERROR:HDLCompiler:1654 - "H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Sources\Arbiter.v" Line 173: Instantiating from unknown module
ERROR:Simulator:778 - Static elaboration of top level Verilog design unit(s) in library work failed


ovl_neverとovl_alwaysが見つからないというエラーだ。
そういえば、accellera_ovl_vlogライブラリへのリンクを指定していない。バッチファイルファイルに書いているのと同じ

-L accellera_ovl_vlog=%XILINX%\verilog\hdp\nt\accellera_ovl_vlog


をLaunch Behavioral SimulationダイアログのOptions...ボタンをクリックして出てきたSimulation OptionダイアログのMore Fuse Optionsに入れても同様にだめだった。
それじゃ、%XILINX%が展開できないのか?とう言うことで、

-L accellera_ovl_vlog=K:\HDL\Xilinx\13.1\ISE_DS\ISE\verilog\hdp\nt\accellera_ovl_vlog


ISE131_16_110305.png

を入れてみたら、ISimが起動した。やったー。やっと起動した。
ISE131_17_110305.png

これでPlanAheadからISimを起動することができた。

今回は、PlanAheadからISimを起動VerilogのincludeパスやDefine値、ライブラリの追加を試すことができた。ライブラリの追加は専用のコンボボックスが欲しい。
  1. 2011年03月04日 05:32 |
  2. PlanAheadについて
  3. | トラックバック:0
  4. | コメント:0

Coregenで作成したFIFOのバグ

ここ2日ほど、Coregenで作成したFIFOのバグで悩んだので、その顛末を書いておく。
結論から先に書くと、Project Navigator のプロジェクトを作り直したら正常になった。

使用したFPGAは、Spartan-3E xc3s500e-4pq208、ISE12.4とISE13.1を使用して、どっちも同じ状況だった。
いつものように、プロジェクトが入ったフォルダをコピーして、改変を開始した(最初はISE12.4)。今回は、方式を大幅に変更した。以前のゴミが残るが、とりあえず無視して非同期FIFOや同期FIFOを追加して、追加した。(ちなみに、そのフォルダの下にソースファイル用、シミュレーション用、インプリメント用(各ISEのバージョンごと)にフォルダを分けています)
全体をインプリメントすると、SLICEMがオーバーしてしまった。そんなはずは無いのだが?cam_afifoは、34ビット幅で16深度なので、こんなに使うはずはない?
Coregen_1_110303.png

とりあえず、cam_afifoを分散RAMからBlockRAMにしても、BlockRAMが使われずにSLICEMがオーバーしてしまう。Camera_Controller.vhdをトップにしてやってもオーバー。
Coregen_2_110303.png

どうも、分散RAMで深度1Kワード程度で固定されて、Coregen を起動してパラメータを変更しても、変更されない気がする。
そのうちにISE13.1が出たので、インプリメント用のフォルダだけコピーして、ISE13.1にプロジェクトを変換してやってみたが、同じ状況だった。ここからISE13.1で作業を継続した。

1.インプリメントフォルダの下のipcore_dirフォルダの下のcam_afifo関連のファイルをすべて削除して、FIFO IPを新規作成してみたが、やはりダメ。
2.Project Navigator のProjectメニューからCleanup Project Files...でプロジェクトファイルを消してみてもダメだった。

最後に、プロジェクトを新規作成して、FIFO IPを新規作成したら、問題なくなった。下にそのISE13.1のProject Navigator の画面を示す。
Coregen_3_110303.png

使用しているLUTが116で正常に戻った。

Coregen で生成したIPがおかしい時は、素直にプロジェクトを作り直した方が良さそうだ。
  1. 2011年03月03日 12:30 |
  2. Core Generator
  3. | トラックバック:0
  4. | コメント:4

ISE13.1(Project Navigator比較)

前回、Spartan-6ではインプリントの結果が異なったようだが、Spartan-3Aではどうかな?と思って、Spartan-3A Starter Kitのカメラ表示回路でテストしてみた。
結果はISE13.1とISE12.4でインプリント結果に変化はないようだ。

ISE12.4
ISE131_3_110303.png

ISE13.1(ISE12.4用のIPコアをUpdate Core to Latest Versionで最新のIPコアに変更した)
ISE131_4_110303.png

ISE13.1のProject NavigatorにはIPを最新のバージョンに変更できる機能が付いた。Update Core to Latest Versionだ。これをダブルクリックすると最新のIPコアに変更することができる。ただ、Manage Coreを起動したときのCoregenのプロジェクトはなくなってしまうようだ。
ISE131_5_110303.png

ISE13.1ではKintex7とVirtex7を選択することができた。なぜかArtex7は選択項目がなかった?リリースが後なのかな?

すみません。PlanAheadについては別記事に移動して、タイトルを変更しました。

  1. 2011年03月03日 05:57 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

ISE13.1が出ました。ダウンロード、インストール終了

昨日の3月1日にISE13.1が出ました。アプロさん、教えていただいてありがとうございました。
どうも昨日はISE13.1がダウンロード出来ないと思っていたら、普段使っているGoogle Chromeではエラーになってしまうようです。
Firefoxに替えたところ、Download Managerが起動して、順調にダウンロード出来ています。まだ終了していません。

PlanAheadはどうだろう?完成度が上がっているか?ISimは落とさないでも再コンパイルが出来るか?楽しみです。

4:57 ダウンロードが終了したので、インストールします。

5:02 ISE13.1インストール開始。

5:36 ISE13.1インストール終了。

ISE13.1のProject Navigatorを起動しました。これは余り変わっていないはず。多分、ISE14では、PlanAheadでのプロジェクトが主流になるそうな?
ISE131_1_110302.png

残念ながらタイムリミット。PlanAheadのプロジェクトとか、ISimの具合とかを、今日帰って来たらやってみようと思います。

(追記)
Spartan-6のキャラクタ・ジェネレータ・ディスプレイをやってみました。小さいのでよくわからないかもしれませんが、ISE12.4とISE13.1で結果が異なります。MAPの最初のほうを貼ります。

ISE12.4

Release 12.4 Map M.81d (nt)
Xilinx Mapping Report File for Design 'CharDispCtrlerTest_SP605'

Design Information
------------------
Command Line   : map -intstyle ise -p xc6slx45t-fgg484-3 -w -logic_opt off -ol high -t 1 -xt 0 -register_duplication off
-r 4 -global_opt off -mt off -ir off -pr off -lc off -power off -o CharDispCtrlerTest_SP605_map.ncd
CharDispCtrlerTest_SP605.ngd CharDispCtrlerTest_SP605.pcf 
Target Device  : xc6slx45t
Target Package : fgg484
Target Speed   : -3
Mapper Version : spartan6 -- $Revision: 1.52.76.2 $
Mapped Date    : WED 2 MAR 18:46:17 2011

Design Summary
--------------
Number of errors:      0
Number of warnings:    0
Slice Logic Utilization:
  Number of Slice Registers:                   129 out of  54,576    1%
    Number used as Flip Flops:                 129
    Number used as Latches:                      0
    Number used as Latch-thrus:                  0
    Number used as AND/OR logics:                0
  Number of Slice LUTs:                        142 out of  27,288    1%
    Number used as logic:                      140 out of  27,288    1%
      Number using O6 output only:              80
      Number using O5 output only:              39
      Number using O5 and O6:                   21
      Number used as ROM:                        0
    Number used as Memory:                       0 out of   6,408    0%
    Number used exclusively as route-thrus:      2
      Number with same-slice register load:      0
      Number with same-slice carry load:         2
      Number with other load:                    0

Slice Logic Distribution:
  Number of occupied Slices:                    55 out of   6,822    1%
  Number of LUT Flip Flop pairs used:          157
    Number with an unused Flip Flop:            30 out of     157   19%
    Number with an unused LUT:                  15 out of     157    9%
    Number of fully used LUT-FF pairs:         112 out of     157   71%
    Number of unique control sets:               9
    Number of slice register sites lost
      to control set restrictions:              39 out of  54,576    1%

  A LUT Flip Flop pair for this architecture represents one LUT paired with
  one Flip Flop within a slice.  A control set is a unique combination of
  clock, reset, set, and enable signals for a registered element.
  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

IO Utilization:
  Number of bonded IOBs:                        21 out of     296    7%
    Number of LOCed IOBs:                       21 out of      21  100%
    IOB Flip Flops:                             14

Specific Feature Utilization:
  Number of RAMB16BWERs:                         6 out of     116    5%
  Number of RAMB8BWERs:                          0 out of     232    0%
  Number of BUFIO2/BUFIO2_2CLKs:                 1 out of      32    3%
    Number used as BUFIO2s:                      1
    Number used as BUFIO2_2CLKs:                 0
  Number of BUFIO2FB/BUFIO2FB_2CLKs:             0 out of      32    0%
  Number of BUFG/BUFGMUXs:                       2 out of      16   12%
    Number used as BUFGs:                        2
    Number used as BUFGMUX:                      0
  Number of DCM/DCM_CLKGENs:                     0 out of       8    0%
  Number of ILOGIC2/ISERDES2s:                   0 out of     376    0%
  Number of IODELAY2/IODRP2/IODRP2_MCBs:         0 out of     376    0%
  Number of OLOGIC2/OSERDES2s:                  14 out of     376    3%
    Number used as OLOGIC2s:                    14
    Number used as OSERDES2s:                    0
  Number of BSCANs:                              0 out of       4    0%
  Number of BUFHs:                               0 out of     256    0%
  Number of BUFPLLs:                             0 out of       8    0%
  Number of BUFPLL_MCBs:                         0 out of       4    0%
  Number of DSP48A1s:                            0 out of      58    0%
  Number of GTPA1_DUALs:                         0 out of       2    0%
  Number of ICAPs:                               0 out of       1    0%
  Number of MCBs:                                0 out of       2    0%
  Number of PCIE_A1s:                            0 out of       1    0%
  Number of PCILOGICSEs:                         0 out of       2    0%
  Number of PLL_ADVs:                            1 out of       4   25%
  Number of PMVs:                                0 out of       1    0%
  Number of STARTUPs:                            0 out of       1    0%
  Number of SUSPEND_SYNCs:                       0 out of       1    0%

Average Fanout of Non-Clock Nets:                4.52

Peak Memory Usage:  264 MB
Total REAL time to MAP completion:  32 secs 
Total CPU time to MAP completion:   26 secs 


ISE13.1

Release 13.1 Map O.40d (nt)
Xilinx Mapping Report File for Design 'CharDispCtrlerTest_SP605'

Design Information
------------------
Command Line   : map -intstyle ise -p xc6slx45t-fgg484-3 -w -logic_opt off -ol high -t 1 -xt 0 -register_duplication off
-r 4 -global_opt off -mt off -ir off -pr off -lc off -power off -o CharDispCtrlerTest_SP605_map.ncd
CharDispCtrlerTest_SP605.ngd CharDispCtrlerTest_SP605.pcf 
Target Device  : xc6slx45t
Target Package : fgg484
Target Speed   : -3
Mapper Version : spartan6 -- $Revision: 1.55 $
Mapped Date    : WED 2 MAR 5:44:13 2011

Design Summary
--------------
Number of errors:      0
Number of warnings:    0
Slice Logic Utilization:
  Number of Slice Registers:                   128 out of  54,576    1%
    Number used as Flip Flops:                 128
    Number used as Latches:                      0
    Number used as Latch-thrus:                  0
    Number used as AND/OR logics:                0
  Number of Slice LUTs:                        142 out of  27,288    1%
    Number used as logic:                      140 out of  27,288    1%
      Number using O6 output only:              85
      Number using O5 output only:              37
      Number using O5 and O6:                   18
      Number used as ROM:                        0
    Number used as Memory:                       0 out of   6,408    0%
    Number used exclusively as route-thrus:      2
      Number with same-slice register load:      0
      Number with same-slice carry load:         2
      Number with other load:                    0

Slice Logic Distribution:
  Number of occupied Slices:                    59 out of   6,822    1%
  Number of LUT Flip Flop pairs used:          157
    Number with an unused Flip Flop:            31 out of     157   19%
    Number with an unused LUT:                  15 out of     157    9%
    Number of fully used LUT-FF pairs:         111 out of     157   70%
    Number of unique control sets:               9
    Number of slice register sites lost
      to control set restrictions:              40 out of  54,576    1%

  A LUT Flip Flop pair for this architecture represents one LUT paired with
  one Flip Flop within a slice.  A control set is a unique combination of
  clock, reset, set, and enable signals for a registered element.
  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

IO Utilization:
  Number of bonded IOBs:                        21 out of     296    7%
    Number of LOCed IOBs:                       21 out of      21  100%
    IOB Flip Flops:                             14

Specific Feature Utilization:
  Number of RAMB16BWERs:                         6 out of     116    5%
  Number of RAMB8BWERs:                          0 out of     232    0%
  Number of BUFIO2/BUFIO2_2CLKs:                 1 out of      32    3%
    Number used as BUFIO2s:                      1
    Number used as BUFIO2_2CLKs:                 0
  Number of BUFIO2FB/BUFIO2FB_2CLKs:             0 out of      32    0%
  Number of BUFG/BUFGMUXs:                       2 out of      16   12%
    Number used as BUFGs:                        2
    Number used as BUFGMUX:                      0
  Number of DCM/DCM_CLKGENs:                     0 out of       8    0%
  Number of ILOGIC2/ISERDES2s:                   0 out of     376    0%
  Number of IODELAY2/IODRP2/IODRP2_MCBs:         0 out of     376    0%
  Number of OLOGIC2/OSERDES2s:                  14 out of     376    3%
    Number used as OLOGIC2s:                    14
    Number used as OSERDES2s:                    0
  Number of BSCANs:                              0 out of       4    0%
  Number of BUFHs:                               0 out of     256    0%
  Number of BUFPLLs:                             0 out of       8    0%
  Number of BUFPLL_MCBs:                         0 out of       4    0%
  Number of DSP48A1s:                            0 out of      58    0%
  Number of GTPA1_DUALs:                         0 out of       2    0%
  Number of ICAPs:                               0 out of       1    0%
  Number of MCBs:                                0 out of       2    0%
  Number of PCIE_A1s:                            0 out of       1    0%
  Number of PCILOGICSEs:                         0 out of       2    0%
  Number of PLL_ADVs:                            1 out of       4   25%
  Number of PMVs:                                0 out of       1    0%
  Number of STARTUPs:                            0 out of       1    0%
  Number of SUSPEND_SYNCs:                       0 out of       1    0%

Average Fanout of Non-Clock Nets:                4.59

Peak Memory Usage:  267 MB
Total REAL time to MAP completion:  26 secs 
Total CPU time to MAP completion:   23 secs 


次に、ISimを起動してシミュレーションしてみた。
Re-lunchボタンが付いていて、これをクリックするとリコンパイル、エラボレートされた。さらに、Project Navigatorから起動して、wcfgファイルをロードして、21msシミュレーションするようになっていたので、そのとおりにシミュレーションがスタートした。右下にCompilation Logウインドウがあって、コンパイルのログをみることができるようだ。
ISE131_2_110302.png

今度は、HDLソースを修正しても、ISimを落とす必要がなくなったようだ。
  1. 2011年03月02日 04:42 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:2

DesignSpark PCB 1.0.3 のチュートリアルを試してみる6(PCB Design4)

DesignSpark PCB 1.0.3 のチュートリアルを試してみる5(PCB Design3)”の続き。

次は、パーツリストを出力しよう。
68.OutputメニューからReports...を選択する。ReportsダイアログでBill of Materialsを選択してRunボタンをルクックする。
DesignSpark_PCB_70_110228.png

69.Excelが立ち上がって、パーツリストが表示された。URLを表示すると、RSコンポーネンツのパーツのページが表示された。これは便利だ。自分でいろいろなレポートが作れるみたいだ。
DesignSpark_PCB_71_110228.png

70.ガーバーやドリルデータを出力させる。OutputメニューからManufacturing Plots...を選択すると、Output Manufacturing Plotsダイアログが出る。Plots:で、0V Plane(Powerplane)と+5V Plane(Powerplane)にチェックを入れて、Plot Previewにもチェックを入れた。Plots:で選んだ項目に対して、真ん中のタブで設定をする。下の図は、Positonタブで、PositonのCenter Plotボタンと、Fit Plotボタンをクリックした状態だ。
DesignSpark_PCB_72_110228.png

71.最初にOptions...ボタンをクリックし、Optionsダイアログを表示して、Warn if no plots include the board outlineのチェックを外す必要があった。(何か間違っているのかも?) (追記:PCBを作ってもらうには基板外形を追加する必要がありました。詳しくは、”DesignSpark PCBでガーバーファイルにBoard Outlinesを追加する”を参照)
DesignSpark_PCB_73_110301.png

72.Manufacturing PlotsダイアログでRunをクリックする。Design_Tutorialが表示された。
DesignSpark_PCB_74_110301.png

73.そのテキストファルに示されたH:\Documents and Settings\All Users\Documents\DesignSpark PCB\Examplesにガーバーファイルが作られていた。(全部作られるみたいだ。)
DesignSpark_PCB_75_110301.png

74.KicadのGerbViewでDesign_Tutorial - Bottom Copper.gbrを見てみた。
DesignSpark_PCB_76_110301.png

ドリルデータが上手くいっているかが良くわからない。Hole32は上手くいっているのだろうか?調査しようと思う。
次は、ライブラリのチュートリアルを見ながらパーツライブラリを作成してみたい。

(2010/3/2:追記)
ドリルデータはGerbViewで見えないそうなので、Gerbvをインストールしてみてみた。hazeziさん、ありがとうございました。
ドリルデータをGerbvで読み込んだら見えました。4隅の取付穴も3.2mmになっているようだった。大丈夫そうだ。
DesignSpark_PCB_77_110302.png
  1. 2011年03月01日 05:50 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:3