FC2カウンター FPGAの部屋 2010年11月
fc2ブログ

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

FPGAの部屋

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

The Simple MicroBlaze Microcontroller 5(デバック機能)

今度はSMMのデバック機能を使ってみることにした。
The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)のSMMはUARTなし、Debugなしだったが、今回は、SMM_S3\SMM_DBG_noUARTの下のhwフォルダのsmm.bmm, smm.ngcをコピーしてISEで再度インプリメントを行った。
次に、MM_S3\SMM_DBG_noUARTの下のswフォルダのsmm.xmlファイルをコピーして、同様にEmpty Application を作成した。
SMM_23_101128.png

今度は、SMM_DEG_noUART_hw_platform と表示されていた。

次にDebugを行う。最初に、Xilinx ToolsメニューからProgram FPGAを選択して、Spartan-3A Starter Kitをコンフィグして置かないとだめみみたいだ。LCDに文字が表示されている。
SMM_23_101127.jpg

RunメニューのDebug Configurationを選択する。Debug Configurations ダイアログが起動する。Xilinx C/C++ ELFを展開して、empty_application_0 Debugを選択する。Debugボタンをクリックする。
SMM_24_101128.png

Error opening JTAG UARTと表示されて、心配になったが、Confirm Perspective Switchダイアログが出てきたので、Yesボタンをクリックした。
SMM_25_101128.png

Debug用のウインドウになった。main関数の最初のmicroblaze_register_handlerがポイントされている。button_push関数は値が入っていないので、Xになっている。
SMM_26_101128.png

lcd_init();の左をクリックして、ブレークポイントを設定し、RunメニューからResumeを選んだら、ブレークポイントまで実行された。
SMM_27_101128.png

その後、Step IntoやStep Overも試したが、意図どおり実行された。
main関数の中のbutton_push変数が初期化された後にブレークポイントを設定して、実行したら、button_push変数に値が表示された。
SMM_28_101128.png

South Pushbuttonをおしながら、Step Intoすると、button_push変数が-128になった。
SMM_29_101128.png

Step Overしていく。lcd_clear();を実行すると、LCDがクリアされた。
lcd_print(1, "Thank You!");を実行すると、Thank You!がLCDに表示された。
SMM_24_101127.jpg

デバック機能はうまく行ったようだが、元の表示に戻すのはどうやれば良いだろうか?
いろいろ試してみよう。

(追加)
Windows メニューからOpen Perspective -> C/C++を選択すると、元のプロジェクトの表示に戻りました。
SMM_30_101128.png

(2010/12/20追加)
Debug を終了する方法。Debug モードからC/C++モードに戻るのに、Debug を終了する必要がある。それは、Debug
ウインドウのTerminateアイコンをクリックする。
SMM_59_101220.png
  1. 2010年11月28日 05:47 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)

The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)”の続き。

FileメニューからNew -> Xilinx C Project を選択する。
SMM_16_101126.png

New Project ダイアログでEmpty Application を選択して、Next>ボタンをクリックする。
SMM_17_101126.png

Target an existing Board Support Package のラジオボタンをチェックして、standalone_bsp_0 を選択する。Finishボタンをクリックする。
SMM_18_101126.png

sdk\lcd_ref\srcフォルダのled_ref.c をProject Explorer のempty_application_0のsrc フォルダにドラック & ドロップする。
SMM_19_101126.png

そうすると、自動でビルドしてしまったようだ。
SMM_20_101126.png

Xilinx ToolsメニューからProgram FPGAを選択する。
SMM_21_101126.png

Program FPGAダイアログが開く。Hardware Configuration内のBitstreamにiseフォルダのled_ref.bitを指定する。BMM Fileに同じiseフォルダのbmm_bd.bmm を指定する。Software Configuration内のELF File to Initialize in Block RAMにsdk\empty_application_0\Debug\empty_application_0.elf を下向き三角をクリックして指定する。
SMM_22_101127.png

ここで、Spartan-3A Starter Kitの電源を入れて、コンフィギュレーション用のUSBケーブルを接続し、上のダイアログのProgramボタンをクリックする。(ここでは、DATA2MEMが起動して、.elfと.bmmを参照して、.elfのソフトウェアを.bitのBRAMの初期化データにロードする。そうしてできた.bitファイルをSpartan-3A Starter Kitにダウンロードする訳だ)
そうすると、LCDに”MicroBlaze on S3 Reference Design”と表示された。
SMM_23_101127.jpg

次に、South Pushbuttonをクリックすると、その表示が消えて、”Thank You!”と表示された。
SMM_24_101127.jpg

これでリファレンスデザインはできた。これからは、内容を解析して、LCDの制御を勉強したい。その後は、もう一度ロータリーエンコーダを制御してみたい。
  1. 2010年11月27日 05:05 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)

今回はXAPP1141 Ver.3.0の25ページのリファレンスデザインをやってみる。ISE,SDKとも12.3を使用した。このリファレンスデザインは、Spartan-3A Starter Kitを使用して、そのLCDに”MicroBlaze on S3 Reference Design”と表示して、South Pushbuttonを押すと、その表示が消えて、”Thank You!”と表示する。今のやりたい事に近い、魅力的なリファレンスデザインだ。
さて、それでは、SMM FPGA Design Flowからやってみたいと思う。ISE12.3を立ち上げて、FileメニューからOpen Project...を選んで出てきたOpen Projectダイアログからiseフォルダの下のlcd_ref.xiseを選択する。
SMM_4_101126.png

すると、プロジェクトがロードされて、もうすでにプロジェクトが出来上がっているので、ProcessesウインドウのGenerate Programming Fileをダブルクリックして、.bitファイルを生成する。
SMM_5_101126.png

インプリメントできあました。
SMM_6_101126.png

iseフォルダを見ると、smm_db.bmm とlcd_ref.bit が出来ています。
SMM_7_101126.png

これでISEでのフローはお終い。

次に、SDKでのフロー。SDKを起動する。
SMM_3_101125.png

sdkフォルダをWorkspaceに指定して、Okボタンをクリックする。
SMM_8_101126.png

SDKが立ち上がる。
SMM_9_101126.png

FileメニューのNew -> Xilinx Board Support Package を選択する。
SMM_10_101126.png

No Hardware Platform in the Workspaceダイアログがでるので、Specifyボタンをクリックする。
SMM_11_101126.png

New Hardware Projectダイアログが開く。Target Hardware SpecificationのBrowse...ボタンをクリックすると、ダイアログが出る。sdkフォルダのsmm.xmlファイルを選択して”開く”ボタンをクリックする。
SMM_12_101126.png

Finishボタンをクリックする。
すると、New Board Support Package Projectダイアログが出る。Board Support Package OSでstandalone が選択されているので、そのままFinishボタンをクリックする。
SMM_13_101126.png

Board Support Package Settingsダイアログが出る。OKボタンをクリックする。(ここでは、TCP/IPスタック、フラッシュ、メモリのファイルシステムのライブラリとかも選べるみたいだ)
SMM_14_101126.png

これで、ハードウェアの仕様をロードすることができた。いろいろ選ぶところがあって面倒だが、それだけ機能があるということなんだろう?
SMM_15_101126.png

さて、XAPP1141 Ver.3.0は次にプロジェクトをインポートするようになっているが、それでは、インクルードファイルがリンクできずにエラーになってしまった。
ここからは独自の方法(というか、適当にやってみた方法)でプロジェクトを構築する。

このへんでお時間となってしまったので、続きます。

The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)”に続く。
  1. 2010年11月26日 05:47 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

The Simple MicroBlaze Microcontroller 2 (概要)

前回の”The Simple MicroBlaze Microcontroller”の時はアプリケーションノートのバージョンが1.0だったが、今度見たときにはVer3.0になっていて、ISE12に対応していた。XAPP1141のデザインファイルはここ(登録とライセンスの承認が必要)。
The Simple MicroBlaze Microcontroller(以下SMM)は、Xilinx Platform Studio (XPS) を使わないで使えるMicroBlazeだ。もともと、IPの形になっているので、ISEからインスタンスして手軽に使うことができる。EDKでやると、MicroBlazeが主で、もっと大きい他の回路が従となってしまって、どうも納得がいかないのだが(ISEからEDKをIPとして使う方法があったので削除します。でもいちいちジェネレートする面倒くさいさはありますね)、これならばハードウェアはISEで全部行うことができる。ただし、ソフトウェアをつくるのに、SDKが必要なので、EDKのライセンスは必要だ。(WebPACKで使えたら良かったのだが、残念。。。)XPSはカスタマイズするのに必要となる。
SMM Ver3.0は、Spartan-6、Spartan-3A 、Virtex-6、Virtex-5で使用することができる。
主な特徴を下に示す。

・32ビットMicroBlaze
・8KB内部ROM/RAM
・ソフトウェアはコンフィギュレーション時にBRAMにロード
・32ビット幅のIO
・64KBのユーザースペース
・割り込み入力
・オプションでUART
・フルC, C++サポート
・オプションでデバック・サポート


SMMには、4つのネットリストがある。

・SMM + UART + Debug Support
・SMM + UART
・SMM + Debug Support
・SMM


SMMのフローは、SMM FPGA Design FlowとThe SMM Softwar Flowに分かれている。SMM FPGA Design FlowはISEで、The SMM Softwar FlowはSDKで行う。
SMM FPGA Design Flowの説明用に、XAPP1141 Ver.3.0の7ページのFigure 6: ISE Design Flowを引用させていただく。
SMM_1_101124.png

SMMはVerilogやVHDLでインスタンスを作って使用する。XSTで論理合成後に、Traslateで、SMMのIPのsmm.ngcと8KB内部ROM/RAMに対するBRAMの割り当てファイルのsmm.bmm と連結される。MAP,P&Rを経て、BitGenで.bitファイルとsmm_bd.bmm が生成される。smm_bd.bmm には、DATA2MEMが必要とする実際の配置が書き加えられている。

The SMM Softwar Flowの説明用に、XAPP1141 Ver.3.0の12ページのFigure 12: SDK Design Flowを引用させていただく。
SMM_2_101124.png

smm.xmlを読み込んで、プロジェクトに必要な情報を設定して、CやC++ソースをコンパイル、リンクして、.elfファイルを生成する。先ほどの.bitファイルとsmm_bd.bmmを使って、.bitファイルに.elfファイルのソフトウェアをロードして、新しい.bitファイルを作る。その.bitファイルをFPGA基板にロードして、動作させる。

こんなフローでSMMは動作する。次回は、リファレンスデザインをやってみることにする。XAPP1141 Ver.3.0の通りにやってもできなかったが、工夫してうまく行ったのだ。。。

SMMは、CMOSカメラの設定レジスタを設定するために、LCDとロータリーエンコーダ、スイッチを制御するのに使用する予定です。
  1. 2010年11月24日 17:05 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

引き戸完成

前回は、”引き戸の制作3(組み立て)”で、引き戸を組み立てたが、オイルフィニッシュを使用して塗装を3回行って、昨日設置した。
塗料がオイルなので、厳重にマスキングしたつもりだったが、アクリル板についてしまったところがあった。やはり、オイルフィニッシュ塗装は、組み立てる前にやらないとダメそうだ。それと、戸車用の穴を掘る時に5mm掘ってから穴を掘った。これは戸車の枠を見せないためだった。これが掘りすぎたようだ。戸車の調整ねじをいっぱいにしてOKだったが、ここは2mmか3mmで良さそうだ。次の教訓にしよう。
下が実際に使っているところの写真です。
hikido_9_101124.jpg

アクリル板の透明度は抜群です。みえすぎちゃって困るくらい。。。

#すすたわりさんのつぶやきを見ると、火事の時が怖いかな?燃えやすい?
  1. 2010年11月24日 04:42 |
  2. 木工
  3. | トラックバック:0
  4. | コメント:0

ハリーポッターと死の秘宝(前編)を見てきました(映画)

昨日奥さんとイーアスでハリーポッターと死の秘宝(PART1)を見てきました。子どもがいなかったので、字幕版で見てきました。
面白かったです。PART2もぜひ見たいです。前編の最後は杖に関係する場面です。(これだけでネタバレかな?)
土曜日にも子供と吹替版を見る予定です。
  1. 2010年11月24日 04:30 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Make Tokyo Meeting 06

今日はMake Tokyo Meeting 06の初日です。初めての出展でわくわく、どきどきです。どのくらいお客さんが来てくれるかわかりません?が、疲れないようにさぼりながら頑張ろうと思います。皆さん、よろしくお願いします。

2日間の展示が終りました。見に来ていただいた方、ありがとうございました。FPGAとは無関係の方も見に来ていただきました。体育館で自宅と全く照明の色合いが違っていたためもあって、うまく行かなかったことをお詫び致します。今度展示するときは、黒、白をコンペアして、設定値をアジャストしたいと思います。カメラの設定値を振るために、MicroBlazeを入れたと思っています。ですが、まずは、やりかけのDE0というかAlteraのFPGAを触ってみようと思っています。やはり、悔しいので、カメラの設定をもう少しやってみようか?とも思っています。

#やはり、2日間展示すると疲れました。24日には人間ドックがあるんだけど、大丈夫かな?
  1. 2010年11月20日 04:56 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4

東京エレクトロン・デバイス社の初級DSPコース

明日、東京エレクトロン・デバイス社の初級DSPコースに行ってきます。MATLAB、SIMLINKからFPGAの生成の流れを勉強してこようと思っています。行ってきたら、様子を書き足そうと思います。初めて使うので、わくわくです。どんな感じでインプリできるんだろう?シミュレーションはどうするのか?

行ってきました。
System Generatorは、FIRフィルタとかを作るには最適の環境だと思いました。ブロックをドラックアンドドロップして、できちゃいます。
MATLAB/SIMLINKのSIMLINK Library Browser上から、XilinxのBlocksetの中のブロックを置いていきます。ブロックの中に浮動小数点ー固定小数点変換、固定小数点ー浮動小数点変換のブロックがあって、それをおくと変換されます。System Generator上では固定小数点で演算が行われて、SIMLINK上では浮動小数点演算だからです。固定小数点のビット幅も小数点の位置も自由に変更できるんはとても良いと思いました。
SIMLINK上から、Black Boxに割り当てたVHDLをISimでシミュレーションして、強調HDLシミュレーションもできます。更に実機とJTAGやPCIなどでつないで、実機との強調シミュレーションもできます。(これはあまり意味があるのかな?とは思いましたが。。。)
やはり、自分の作ったVHDLソースを使うとか、自分の回路の一部として、System Generatorで生成したフィルタを使うのが、面倒なのかな?と思いました。決まったことをやるのに便利なツールは、規定外の事をやるときには、決まりを覚える必要があります。(MFCでは覚えるが大変でした。。。)まだ、初級者コースを受けたばかりなのでわかりませんが。。。ただ、ツールが高価なのは確かだと思います。問題はそれに見合った価値があるか?ですね。
フィルタは一瞬でできて、シミュレーションも簡単で、とても良いツールです。もう少し調べてみようと思います。

  1. 2010年11月17日 22:17 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2

ISE12.3のISimの使い方のヒント(Project Navigatorから使用するとき)

大体、原稿も娘のイラストを除いて準備が済んだ。Makeの出展関係の準備も大体済んだ。もうちょっとパラメータをいじって良い気がするが、やはり会場がよくわかないので、このままにしよう。

AlteraのFPGAのお勉強が途中だが、とりあえず、ISimをどうやってProject Navigatorから使っているかを書いてみたい。大きいなプロジェクトはISim単体で動かしているが、お手軽にProject Navigatorから使うのも良いと思う。ISE12.3を使用する。
使うのはSpartan-6のSP605ボード用のキャラクタ・ディスプレイ・コントローラとする。このテストベンチは約20ms後にSTOPする。
DesignのViewからSimulationのラジオボタンをクリックして、Project Navigatorをシミュレーションモードにする。Hierarchyからテストベンチ・ファイルCharDispCtrlerTest_SP605_tb.vを選択すると、ProcessesウインドウにISim Simulatorが出てくるので、それを展開して、Simulate Behavioral Modelをダブルクリックする。
ISim_Hint_1_101117.png

このまま、ISimを起動するとテストベンチの信号をwaveウインドウに入れて、1000nsecシミュレーションする。
ISim_Hint_2_101117.png
(Radixを16進数にしてある)

Project NavigatorのSimulate Behavioral Modelを右クリックしたときの右クリック・メニューから選べるプロセス・プロパティがある。
ISim_Hint_3_101117.png

プロセス・プロパティのSimulatin Run Timeが1000 nsになっているので、これを21 msに修正する。そうすると21 msまで、シミュレーションすることができる。実際はその前にテストベンチの$STOPでストップする。
ISim_Hint_4_101117.png

更に、次には、21msecもシミュレーションするのだから、自分の見たい波形を入れたいと思う。その時は、ISimで見たい波形を構成する。(信号の追加の仕方は、”ISE11.1iのチュートリアル5(シミュレーション)”参照のこと)
自分の見たい信号をISimのWaveウインドウに入れたら、FileメニューからSave As...で自分の好きな名前でWaveウインドウの信号名をセーブする。ここでは、CharDispCtrlerTest_SP605.wcfgとしてセーブした。
ISim_Hint_5_101117.png

次に、Project NavigatorのSimulate Behavioral Modelを右クリックしたときの右クリック・メニューから選べるプロセス・プロパティをもう一度開く。
Use Custom Waveform Configuration Fileをチェックして、Custom Waveform Configuration Fileで、先ほどセーブしたCharDispCtrlerTest_SP605.wcfgを選択する。
ISim_Hint_6_101117.png

そして、ISimを落として、もう一度、Simulate Behavioral Modelをダブルクリックすると、今度は、デフォルトのテントベンチの信号ではなく、自分で定義したharDispCtrlerTest_SP605.wcfgがISimに表示される。シミュレーション時間も最後にSTOPするまでシミュレーションされる。
ISim_Hint_7_101117.png

Project Navigatorからお手軽にISimを使うときのヒントをブログに書いた。プロセス・プロパティでは、もっといろいろと設定できるが、プロジェクトによって書き換えて使用している。ISim単体で使うときもある。

なお、残念ながら、HDLソースを書き換えたときに、ISimを落としてもう一度起動する必要はあると思う。HDLソースをコンパイルして、実行形式を作り、それを起動しているからだ。

(追加)
この場合は、CharDispCtrlerTest_SP605.prj にISimのプロジェクトが出来ているので、一旦ISimのプロジェクトを作らせておいて、後はバッチコマンドをつくって、ISimを起動するのも良いかもしれない。その際にfuse コマンドに、 -incremental オプションをつけておくと、毎回コンパイルしなくて済むと思う。ただ、これはプロジェクトに書かれているHDLが変化したかどうかを見ているので、例えばCoreGenで生成したROMなどの初期化ファイル(COE)などを書き換えたときには、再コンパイルをしないので、注意が必要だ。いつも再コンパイルしたほうが安全かもしれない。
ISimプロジェクトを使ったバッチファイルでのシミュレーションは、”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路のSCCB回路追加時のシミュレーション”を参照のこと。
最後に、CharDispCtrlerTest_SP605.prj の内容を下に示す。

verilog work "ipcore_dir/DCM_CLKGEN_S6.v"
verilog work "../frame_buffer.v"
verilog work "../disp_timing.v"
verilog work "../char_gen_rom.v"
verilog work "../CharDispCtrler.v"
verilog work "../CharDispCtrlerTest.v"
verilog work "../CharDispCtrlerTest_SP605.v"

  1. 2010年11月17日 06:15 |
  2. ISim
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter Kitによる画像演奏装置3(手で演奏モード)

”Spartan-3A Starter Kitによる画像演奏装置2(MTM06出品)”で手で演奏するモード(モード3)で演奏している動画を取ったので、貼っておく。自分で、やりながら自分自身を取ったので、自分の指が入ってしまったが、ご愛嬌ということで、よろしくお願いしたい。また、場所が良く解らなくてやっているので、ミスっている。


画像には、下の図のように白い枠線が出ていて、ここに手をかざすとそれぞれの音階の音がでる。とりあえず、手のパラメータと蛍光オレンジポップタグのパラメータを両方できるようにした。今回の動画は、手入力モードになっている。
MTM06_2_101113.jpg

まだ、スレッショルドが低いかもしれない。鳴り止まない時がある。パラメータを変更する必要があるかも?2日で作ったので、簡易的な方式でやっているが、もうちょっと本格的な方式でやってみようか?と思った。しかし、本番は明るい場所だと思うので、これでも大丈夫だと思う。
AGCとオートホワイトバランスの関係で、真っ黒な背景、服では手が明るすぎてしまい(白飛びすると)、うまく入力できないこともある。AGCやオートホワイトバランスを禁止したほうが良いかもしれないが、遊びなので、とりあえずこのまま行くことにする。

#初日にうまくいかない場合は、2日目にはパラメータを変更しよう。。。
  1. 2010年11月16日 12:16 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

Make Tokyo Meeting 06のプログラム

Make Tokyo Meeting 06のプログラムが発表されました
いよいよ今週末です。ポップを作ったり、いろいろ見せ方をかんがえたり、忙しいです。
  1. 2010年11月16日 06:22 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter Kitによる画像演奏装置2(MTM06出品)

Make Tokyo Meeting 06に参加します。その展示物として、Spartan-3A Starter Kitによる画像演奏装置を作りました。
モードが3つありまして、モード1は画面の中の特定の領域のRGBを元に音階(ドレミファソラシド)の音を出します。
モード2はテルミンモードで、画面の中の特定の領域のRGBを元に連続的な周波数の音を出します。RGBの値を直接分周器の分周値として使っています。下の画面の真ん中の白い縦線の間がRGBを積分する領域です。
MTM06_1_101113.jpg

次は、手で演奏するモード(モード3)で、手を下の写真のそれぞれの領域にかざすと、それぞれの音階の音が出ます。手をかざすことによって演奏ができます。
MTM06_2_101113.jpg

皆さん、お暇がありましたら、MTM06に見に来てください。その時にうまく動くかはわかりませんが???

(追加)
FPGA-CAFEでやってみたら、暗い空間?もしくは電球?では、感度が鈍いみたいです。派手な色の板を持ってそれを認識するように変更しました。顔がエリアに入ってもおかしくなってしまうので、たくさん人が来るであろう空間で、その人の手を認識するのは難しいと思いました。
真ん中の枠はモード3の時に、音を止めるのに使うことにしました。トリガーがかかったら、ある程度の長さ音を出しますが、それでは、連続的に同じ音を出すときに都合が悪いので、音を止める領域を用意しました。

(追加2)
つくば産官学連帯ネットワークという名前でMTM06に出ます。
  1. 2010年11月13日 21:11 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

ISEでのVHDL、Verilog混在シミュレーション(ISim使用、ISE11.5はX、ISE12.3は◯)

ISE11.5のVHDLプロジェクトで1つのVHDLファイルをVerilogファイルに取り替えたら、ISimのシミュレーションがフェイルしてしまった。前に、これはやらなかったっけ?
以前、”ISimでOVLのVHDL, Verilog混在シミュレーション(ISimでシミュレーション)”でやったのだが、これはVHDLのプロジェクトでVerilogのライブラリを使用してISimでシミュレーションをしたのだった。実際にVHDL、Verilog混在シミュレーションはしたことがない。。。(実は、”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路のSCCB回路追加時のシミュレーション”でISim単体でVerilog 、VHDL混在シミュレーションしたことがあった。しかしこれはISE12だと思う)
下の図のようにISE11.5のVHDLプロジェクトの一部のファイル(dispseg.v)をVerilogファイルに交換した。これでもインプリメントは通っている。これをISimでシミュレーションすると、フェイル。
ISim_VHDL_Verilog_1_101112.png

ログを下に示す。

Started : "Simulate Behavioral Model".
Starting fuse...
fuse -intstyle ise -incremental -lib unisims_ver -lib unimacro_ver -lib xilinxcorelib_ver -o C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top_tb_isim_beh.exe -prj C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top_tb_beh.prj top_tb glbl
Running: C:\HDL\Xilinx\11.1\ISE\bin\nt\unwrapped\fuse.exe -ise C:/HDL/FndISEWork/K-5/2010/work/k5_q1/k5_q1.ise -intstyle ise -incremental -lib unisims_ver -lib unimacro_ver -lib xilinxcorelib_ver -o C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top_tb_isim_beh.exe -prj C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top_tb_beh.prj top_tb glbl
Number of CPUs detected in this system: 2
Turning on mult-threading, number of parallel sub-compilation jobs: 4
Determining compilation order of HDL files
Parsing Verilog file "C:/HDL/FndISEWork/K-5/2010/work/k5_q1/dispseg.v" into library verilog
Parsing Verilog file "C:/HDL/Xilinx/11.1/ISE/verilog/src/glbl.v" into library work
Parsing VHDL file "C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top.vhd" into library work
Parsing VHDL file "C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top_tb.vhd" into library work
Starting static elaboration
WARNING:HDLCompiler:89 - "C:/HDL/FndISEWork/K-5/2010/work/k5_q1/top.vhd" Line 42: remains a black-box since it has no binding entity.
Completed static elaboration
Fuse Memory Usage: 125792 KB
Fuse CPU Usage: 202 ms
Using precompiled package standard from library std
Using precompiled package std_logic_1164 from library ieee
Using precompiled package std_logic_arith from library ieee
Using precompiled package std_logic_unsigned from library ieee
Using precompiled package numeric_std from library ieee
ERROR:Simulator:793 - Unable to elaborate instantiated module dispseg

Process "Simulate Behavioral Model" failed


Verilogのファイルがブラックボックスと言われて、そして、インスタンスをエラボレートできないと言われてファイルしてしまう。
top_tb_beh.prjのファイルの中身を下に示す。

verilog verilog "dispseg.v"
vhdl work "top.vhd"
vhdl work "top_tb.vhd"
verilog work "C:/HDL/Xilinx/11.1/ISE/verilog/src/glbl.v"


次に、ISE12.3で同じプロジェクト(いや、プロジェクトはISE12.3に変換したもの)をやってみた。ISimでシミュレーションすると、問題なくシミュレーションが終了した。
ISim_VHDL_Verilog_2_101112.png

ISim_VHDL_Verilog_3_101112.png

ISE12.3だと問題ないようだ。
ISE12.3のログを下に示す。

Started : "Simulate Behavioral Model".

Determining files marked for global include in the design...
Running fuse...
Command Line: fuse -intstyle ise -incremental -lib unisims_ver -lib unimacro_ver -lib xilinxcorelib_ver -o C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_isim_beh.exe -prj C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_beh.prj top_tb work.glbl {}
Running: C:\HDL\Xilinx\12.3\ISE_DS\ISE\bin\nt\unwrapped\fuse.exe -intstyle ise -incremental -lib unisims_ver -lib unimacro_ver -lib xilinxcorelib_ver -o C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_isim_beh.exe -prj C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_beh.prj top_tb work.glbl
ISim M.70d (signature 0x36e8438f)
Number of CPUs detected in this system: 2
Turning on mult-threading, number of parallel sub-compilation jobs: 4
Determining compilation order of HDL files
Analyzing Verilog file \"C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/dispseg.v\" into library work
Analyzing Verilog file \"C:/HDL/Xilinx/12.3/ISE_DS/ISE//verilog/src/glbl.v\" into library work
Parsing VHDL file "C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top.vhd" into library work
Parsing VHDL file "C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb.vhd" into library work
Starting static elaboration
Completed static elaboration
Fuse Memory Usage: 95408 KB
Fuse CPU Usage: 124 ms
Using precompiled package standard from library std
Using precompiled package std_logic_1164 from library ieee
Using precompiled package std_logic_arith from library ieee
Using precompiled package std_logic_unsigned from library ieee
Using precompiled package numeric_std from library ieee
Using precompiled package vl_types from library vl
Compiling module glbl
Compiling module dispseg
Compiling architecture rtl of entity top [top_default]
Compiling architecture behavior of entity top_tb
Time Resolution for simulation is 1ps.
Waiting for 1 sub-compilation(s) to finish...
Compiled 9 VHDL Units
Compiled 2 Verilog Units
Built simulation executable C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_isim_beh.exe
Fuse Memory Usage: 104348 KB
Fuse CPU Usage: 155 ms
Launching ISim simulation engine GUI...
"C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_isim_beh.exe" -gui -tclbatch isim.cmd -wdb "C:/HDL/FndISEWork/K-5/2010/work/k5_q1_temp/top_tb_isim_beh.wdb"
ISim simulation engine GUI launched successfully

Process "Simulate Behavioral Model" completed successfully


top_tb_beh.prjのファイルの中身を下に示す。

verilog work "dispseg.v"
vhdl work "top.vhd"
vhdl work "top_tb.vhd"
verilog work "C:/HDL/Xilinx/12.3/ISE_DS/ISE//verilog/src/glbl.v"

  1. 2010年11月12日 18:30 |
  2. ISim
  3. | トラックバック:0
  4. | コメント:0

原稿が書き終わりました

原稿が書き終わりました。1次校正まで終了です。今のところA4で57ページです。後は、娘の書いたイラストを付けて終わりですが、まだ娘のイラストが書けていません。大丈夫かな?高校のイラスト部だったので、イラストを頼んだんですが。。。
後は、MTM06の出し物の修正をしようと思います。素敵な機能が付くと思う(まだ、実装していないので、うまく行くかどうかわわかりませんが。。。)ので、出来たらMTM06でお見せしたいと思います。
  1. 2010年11月12日 04:40 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Xilinx社のVirtex-6 HXT

Xilinx社からVirtex-6 HXTが出た様です。プレスリリース
Virtex-6 HXT FPGAのページ。11.18Gbps GTH トランシーバを24個持っているそうです。
これで、XilinxもAlteraと共に、10Gbps以上の高速シリアルを持ったFPGAをライナップに加えましたね。
  1. 2010年11月09日 08:26 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

引き戸の制作3(組み立て)

原稿書きのためFPGAのブログはお休みとなっている。夜や早朝は原稿書きに勤しんでいる。46ページ程度書けて、もう5,6ページくらいで終了だと思う。まだ、図を4つくらい書き直す必要があるし、校正もあるので、もう1週間程度かかりそうだ。ページ制限が無くて書くというのはいいもんだと思った。おもいっきり書ける。。。その代わりしんどい。。。

前回のブログ記事は、”引き戸の製作2(戸車の溝堀)
さて、あまり原稿書きばかりでも肩こり、首コリで病気になってしまうので、昨日は、奥さんから急がされている引き戸の組み立てを行った。引き戸の大きさは2080×768で、以前の引き戸と同じ大きさだ。今の引き戸は化粧板張りなので、廊下が暗くなっている。そこで光が廊下に漏れる明るい引き戸がほしいということで、製作することになった。引き戸は、基本的にアクリル板を入れて、向こうが見える引き戸とした。横桟は3本。これは、購入したアクリル板が1820X920だったため、横桟が2本ではアクリル板の長さが足りないためだ。横桟や枠の使用木材は、赤松集成材で、板厚25mm。本当は30mmの方が良かったのだが、なかなか売っていない。
アクリル板はすでに4枚ともすでに自分で切断したので、昨日は組み立てた。横桟を止めるのは、2本の120mmのコーススレッドを使用した。アクリル板が4mmなので、トリマーを使用して4mmのストレートビットで溝を掘ったが、アクリル板を入れてみると、きつすぎる。溝の幅は3.95mmくらいだったので、これを少し広げることにした。
広げるときは、もう一度溝をトリマーでなぞることにした。これくらいで十分だ。やり過ぎるとぶかぶかになってしまう。もう一度トリマーでなぞると丁度良くなった。入れやすい。。。
入れている途中の画像。
hikido_1_101107.jpg

反対側の縦板も試しに入れてみた。(止めていないです。うっかりしたら落としました)
hikido_2_101107.jpg

このくらいになると、立ててアクリル板を入れられない。横にしてもスムーズに入る硬さでないと駄目だ。
hikido_3_101107.jpg

これがすべてのアクリル板が入った状態。
hikido_4_101107.jpg

これに、反対側に縦板をはめて、120mmのコーススレッドで止めた。
hikido_5_101107.jpg

引手は掘り込み引手にした。少し失敗気味。。。
hikido_6_101107.jpg

できた引き戸をレールに入れてみた。台所側から撮った写真。
hikido_7_101107.jpg

廊下側から撮った写真。
hikido_8_101107.jpg

うまくできたのではないかと思う。腕が上がってきた気がするがまだまだだ。
この後は、コーススレッドの後をダボ埋めして、ワトコのオイルフィニッシュ、ミディアム・ウォールナットを塗装する。その前にマスキングだな?もう少しで完成だ。
  1. 2010年11月07日 06:12 |
  2. 木工
  3. | トラックバック:0
  4. | コメント:0

映画、桜田門外ノ変を見てきました

昨日、桜田門外ノ変を見てきました。
なかなか、首を落としたり、戦闘が真に迫っていたり、忠実につくろうとした映画の様です。珍しいのは、桜田門外で襲ったシーンは冒頭で、その後は襲った志士達の生き様、つまり捕まる過程を描いています。かなり見た後は暗くなりますが、その辺が新しいと言えると思います。桜田門外ノ変は明治維新につながる始まりの1歩だったのでしょうね?
  1. 2010年11月04日 04:43 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter Kitによる画像演奏装置1(きらきら星)

Spartan-3A Starter Kitによる画像演奏装置できらきら星を演奏することができました。取り敢えずこんな感じです。
下にYouTubeの埋め込みコードを貼っておきます。


かなり拙いですが、一応演奏することができました。画面で右がCMOSカメラを付けたSpartan-3A Starter Kitで、左の液晶ディスプレイにカメラの映像を写しています。パソコンの画面が写っていて、プレゼンソフトで、きらきら星に聞こえるように色を定期的に変えていきます。なかなか、パソコンのディスプレイが天井の照明を反射してしまってうまくいきません。いろいろ調整が難しものです。やはり8ビットの方がいいのかな?
とりあえず、こんな感じですが、音の入力方式も含めて、もう少し洗練しようと思っています。本当は、普通に見える動画でかっこい曲になればいいんですが、なかなか難しいですね。カメラの前で踊っていると面白い音にはなります。それが一番面白いかも?

注意:音が小さいのでボリュームを上げてみてください。iPhoneで撮ったのですが感度が悪いのかな?

  1. 2010年11月04日 04:30 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

Make Tokyo Meeting 06 に出展します

11月20日、21日のMake Tokyo Meeting 06に出させてもらうことになりました。FPGA-CAFE関連のブースの1角に出させていただくことになりました。よろしくお願いします。
出し物は、”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路”を出品することにしました。 

それだけではつまらないので、音を鳴らす機能を付けました。画像によって音階が変わります。初めはRGBの信号を直接アンプにつないでみました。音は鳴るのですが、垂直同期や水平同期で音が決まるみたいであまり面白くありませんでした。そこで画面のRGBの値で音階を変えるようにしました。ドレミファソラシドを鳴らすモードと連続的に周波数を変えるモード(テルミンモード)があります。
また、新しい演奏モードを付けたいと画策しております。(これが出来れば、とても面白いと思っています、まだ秘密です)

出来れば、ビデオや画像パターンで曲になればいいな?と思っているのですが、コンテンツを作るのが難しく、なかなか出来ていません。画像によって音は変わるので、激しく画面が変わるYouTubeの画像とかがあったら教えてください。
それを聞いていても面白いと思います。でも、興味ない方には面白くないか?。
カメラの前でいろんな色で染めてあるTシャツで踊ると、面白い音が出るとか良いですかね?(これも踊れないという難点がありますが。。。)

あと雑誌(というか同人誌)に原稿を書く予定です。CMOSカメラでディスプレイに表示するという内容です。紙面のサイズにもよりますが、20~30ページになるのではないか?と思います。

という訳で、忙しくなるので、ブログの更新間隔が長くなってしまうかもしれません。後で、YouTubeにアップロードするのを覚えたら、デモ映像を上げるかもしれません。静止画で音が入っていないとなんの意味もありませんから。。。
  1. 2010年11月01日 20:21 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:1

FPGAの部屋のアクセス数

FPGAの部屋の10月のアクセス数は44,410アクセスでした。皆さん見ていただいて、ありがとうございます。
1月から10月までのアクセス数は441,605アクセスでした。
FPGA_room_access_101101.png
  1. 2010年11月01日 19:34 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0