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

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

FPGAの部屋

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

Altium DesignerのVHDL Simulationサンプルをやってみた

Altium DesignerのExamples と Reference Designs のダウンロードページの内のVHDL Simulationの内のBCD Counterサンプルをやってみた。

1.Altium Designerを立ち上げて、ファイルメニューから”プロジェクトを開く”を選択する。

2.VHDL Simultionファルダの下のBCD Counterフォルダの下のBCD8.PrjFpgを選択する。

3.左のProjectタブでBCD8.schdocを開いた。4ビットのBCDカウンタユニットを2つ連結した構造だった。
Altium_Designer_16_111130.png

4.BCD.VHDを開くと、先ほどの4ビットのBCDカウンタユニットはVHDLで書いてあるようだ。
Altium_Designer_17_111130.png

5.TestBCD.VHDTESTを開くと、BCD8用のテストベンチだった。
Altium_Designer_18_111130.png

役者が揃ったので、シミュレーションを行う。

6.シミュレータメニューからSimulate with Aldec OEM Simulator -> Stimulus of TestBCD in TestBCD.VHDTSTを選択する。
Altium_Designer_19_111130.png

7.波形ウインドウが開く。シミュレーション シグナル編集ダイアログも開くので、/DUT/H1のNEXT_COUNTと/DUT/H2のNEXT_COUNTの波形表示をクリックして、波形ウインドウに追加した。
Altium_Designer_20_111130.png

8.シミュレーション シグナル編集ダイアログの完了ボタンをクリックして、終了させた。

9.シミュレーション ウインドウが表示された。

10.シミュレータメニューから指定時間まで実行...を選択する。
Altium_Designer_21_111130.png

11.Enter time to run to..ダイアログが開く。タイムステップを1.00usに設定してOKボタンをクリックした。
Altium_Designer_22_111130.png

12.シミュレーションが始まって、結果のタイムチャートが表示された。LOWERの値は、9の次は0になっていて、その時にUPPERが+1されているので、BCDカウンタになっている。
Altium_Designer_23_111130.png

これでシミュレーションは終了だが、回路図を表示して、ライブラリを表示すると、FPGA 32-Bit Processors.IntLibにMICROBLAZEやNIOS2があった。
Altium_Designer_24_111130.png

FPGA Peripherals (Wishbone).IntLibには、WishboneバスのIPがあるようだ。
Altium_Designer_25_111130.png

FPGA設計のチュートリアルをやってみたくなった。

(2011/12/01:追記)
BCD Counter\Outフォルダに、回路図のトップファイルを変換したVHDLファイルと思われるBCD8.VHDがありました。これで、多分ISimやModelSimなどの他のシミュレータでシミュレーションが出来ると思います。やってみたいと思います。
  1. 2011年11月30日 05:41 |
  2. Altium Designer
  3. | トラックバック:0
  4. | コメント:0

MTM07用のPOP

MTM07用のPOPを作りました。

下の部屋の様子を青赤メガネで見ると立体に見えますよ。MTM07に見に来てください。
Make: Tokyo Meeting 07プログラムガイド”の2ページ目の百年記念館のFPGA-CAFE/Fablab Tsukubaのブースで出ます。
MTM7_POP_111129.jpg

  1. 2011年11月29日 20:11 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

Altium DesignerのSignal Integrityサンプルをやってみた

Altium DesignerのExamples と Reference Designs のダウンロードページの内のSignal Integrityの内のDifferential Pairをやってみた。

1.Altium Designerを立ち上げて、ファイルメニューから”プロジェクトを開く”を選択する。

2.Signal Integrityフォルダの下のDifferential Pairフォルダを開いて、DifferentialPair.PrjPCBを選択する。

3.Source Documentsの下の DifferentialPair.SchDoc をダブルクリックして開いた。
下の図は回路図を開いたところだ。2つのFPGA、XC2S200E-6PQ208Cが2つ配置されていた。
Altium_Designer_9_111129.png

4.DifferentialPair.PCBDOCをダブルクリックして開いた。DifferentialPairだけ配線されていた。
Altium_Designer_10_111129.png

5.回路図のDifferential Pair部分を拡大する。左のU1の123,122番ピンと右のU2の33,34番ピンがDifferential Pairとして接続されている。
Altium_Designer_11_111129.png

6.ツールメニューからシグナル インテグリティを選択する。

7.シグナル インテグリティ ダイアログが開く。REC_Pをダブルクリックした。
Altium_Designer_12_111129.png

8.Reflections...ボタンをクリックすると、シミュレーション波形が表示された。
Altium_Designer_13_111129.png

波形入力はどこでやるんだろう?まだ良く分からない?

(2011/11/30:追記)
くりさんに波形入力をどこで設定するかを教えて頂きました。ありがとうございました。

・デザインメニューからデザインルールを選択する。

・PCB ルールと制約条件編集ダイアログが開く。Signal Integrityを展開して、その下のSignal Simulusを開く。

・SinalStimulus_NとSinalStimulus_POSを編集する。

・クロック波形(Periodic Pulse)、ストップ タイム20ns、周期タイム20nsに変更した。つまり、50MHzのクロックとした。
Altium_Designer_14_111130.png

・これで、シグナル インテグリティ解析を実行した。その後の波形を下に示す。
Altium_Designer_15_111130.png

なんか、大分波形が乱れている気がする。

後で、HDMIの基板を作る予定だが、安い基板でどのくらい波形が乱れるかをシミュレーションしたいと思っている。モデルの精度が心配だが、大体の波形を見たいと思っている。

  1. 2011年11月29日 05:44 |
  2. Altium Designer
  3. | トラックバック:0
  4. | コメント:2

MTM07での頒布物品

MTM07には、OV7670用、OV9655用のステレオカメラ基板が付いたSpartan-3A Starter Kitを展示します。展示場所は百年記念館で、FPGA-CAFE/Fablab Tsukubaのブースで出ます。
その時に、Spartan-3A Starter Kitの拡張コネクタに接続できるステレオカメラ基板を頒布します。価格は1,000円です。(原価割れです。もうけはありません)
どちらもカメラモジュールはついていません。aitendoさんでお求めください。

なお、表面実装用コンデンサの1608パッケージがはんだ付けできる上級者の方に限ります。基板はE-test済みのものです。なお何か障害があっても自分で修理できる方に限らせていだきます。

OV7670ステレオカメラ基板(VGA解像度)

OV7670ステレオカメラ基板 1枚
ヒロセ100Pコネクタ,FX2-100S-1.27DS(71) 1個
16ピン、ピンソケット 2個
チップ積層セラミック電解コンデンサ 47uF,16V 2個
チップ積層セラミックコンデンサー 0.1uF,50V[1608] 2個


MTM07_5_111128.jpg

OV7670ステレオカメラ基板の回路図

OV9655ステレオカメラ基板(SXGA解像度)

OV9655ステレオカメラ基板 1枚
ヒロセ100Pコネクタ,FX2-100S-1.27DS(71) 1個
20ピン、ピンソケット 2個
チップ積層セラミック電解コンデンサ 47uF,16V 2個
チップ積層セラミックコンデンサー 0.1uF,50V[1608] 2個


MTM07_6_111128.jpg

OV9655ステレオカメラ基板回路図

こんな形でビニール袋に入れて頒布します。
MTM07_7_111128.jpg

両方共3セットのみです。どのくらい欲しい方がいるか?知りたいので、このブログのコメント欄に欲しい方は書きこんでもらえますか?
あくまで購入したい人数を把握したいためですが、予約も受け付けます。それ以外は会場で先着順とします。
予約した方は、必ずMTM07会場に取りに来てください。よろしくお願いします。
コメント欄に書き込みがない場合は、それぞれ1セットだけMTM07の会場に持って行きます。

OV7670ステレオカメラ用、OV9655ステレオカメラ用のアナグリフ(赤青メガネによる立体視)のSpartan-3A Starter KitのプロジェクトはMTM07後に公開します。

  1. 2011年11月28日 05:37 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:5

1911を見てきました(映画)、MTM07準備

1911(音声注意)を見てきました。ジャッキーチェンの出ている辛亥革命の映画です。なかなか良かったですよ。戦闘のシーンが多くて、最初大丈夫かな?と思いましたが、孫文がかっこよかったです。

午後はFPGA-CAFEに行って、MTM07展示用のアクリル板を切ってきました。大体うまくできたと思います。写真は取るのを忘れたので、MTM07会場で見てください。赤青メガネ使用するステレオカメラを使った立体視です。結構簡単にできるのが味噌です。OV7670用、OV9655用2台を展示します。展示場所は百年記念館で、FPGA-CAFE/Fablab Tsukubaのブースで出ます。
MTM07でお会いしましょう。

  1. 2011年11月27日 22:53 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

DE0でuClinux 6(デバイスドライバの組み込み)

DE0でuClinux 5(アプリケーションの作成)”の続き。

今回は本の通りにuClinuxに7セグメントLEDのデバイスドライバを組み込んでみる。
(追加:カーネルのmoduleを選べないのは、Kernel ConfigurationでEnable loadable module supportに*を入れてなかったのが原因でした。もう一度ブログを書きなおします。)

(追加の追加:デバイスドライバを動的モジュールにすると、uClinux起動時にbooting the kernel.で止まってしまって、uClinuxが起動しなかった。これは、起動時に動的モジュールを呼び出しているのが原因だった。menuconfigで明示的にmoduleをunloadする必要がある。参考文献、Build loadable module

1.nios2-linux/uClinux-dist/linux-2.6.x/source/driversディレクトリに行く。

2.Kconfigに7セグメントLEDの項目を追加した。
nois2_uClinux_32_111126.png

3.Makefileにも同様に追加した。
nois2_uClinux_33_111126.png

4.nios2-linux/uClinux-distディレクトリに戻って、make menuconfigを実行した。

4A.Linux Kernel ConfigurationでEnable loadable module support に*を入れた。更にリターンキーを押して設定を続ける。
nois2_uClinux_42_111126.png

4B.Module unloadingとForce module unloadingに*を入れる。これで起動時にデバイスドライバの動的モジュールは読まれない。(こうしないとuClinuxが起動しなかった)
nois2_uClinux_43_111126.png

5.設定を行って一旦Exitし、もう一度立ち上がった設定画面で、7 segment LED driver をスペースで選択してMを選択した。(追加:カーネルのmoduleを選べないのは、Kernel ConfigurationでEnable loadable module supportに*を入れてなかったのが原因でした。)

nois2_uClinux_34_111126.png

6.makeコマンドを実行して、makeした。

6A.nios2-linux/uClinux-dist/romfs/lib/modules/2.6.30/kernel/driversにleddev.ko ができていた。
nois2_uClinux_40_111126.png

7.今度は、nios2-linux/mywork/leddevに移動して、leddev_test.cをコンパイルする。nios2-linux/mywork/leddevに移動した。

8.MakefileのROOTDIRを自分のパスに変更した。

9.makeを実行して、leddev_test.cをコンパイルした。

10.make romfsを実行した。
nois2_uClinux_37_111126.png

11.nios2-linux/uClinux-dist/romfs/binを見るとleddev_testが出来ていた。
nois2_uClinux_38_111126.png

12.nios2-linux/uClinux-distに移動して、make imageを実行した。

13.nios2-linux/uClinux-dist/images にzImageができた。zImageをzImage_7segleddrv に変更した。
nois2_uClinux_35_111126.png

14.zImageをzImage_7segleddrvをUSBメモリ経由でWindowsに移した。

15.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
nios2_ucliunx_18_111124.png

16.Nios2 11.0 Command Shellを開いて、zImage_7segleddrvの置いてあるフォルダに移動した。

17.nios2-download -g zImage_7segleddrvを実行して、zImage_7segleddrvをダウンロードした。
nios2_ucliunx_36_111126.png

18.nios2-terminalでuClinuxを起動し、動的モジュールをロードした。
nios2_ucliunx_44_111126.png

19.leddev_testを起動して、7セグメントLEDのテストを行った。無事に動作した。
nios2_ucliunx_45_111126.png

いろいろミスって、動作するまでが大変だった。やっと動作して安心した。特にデバイスドライバの動的モジュールをunloadする設定を見つけるまでが大変だった。
  1. 2011年11月26日 06:36 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:5

DE0でuClinux 5(アプリケーションの作成)

DE0でuClinux 4(uClinuxの起動)”の続き。

今回は本にしたがって、アプリケーション作りを練習してみることにする。
まずは、hello worldから。
romfsの下に放り込むとイメージファイルにまとめられるそうだ。知らなかった。勉強になる。

1.WindowsからmyworkをUSBメモリ経由でUbuntu11.10のホームの下のnios2-linuxにコピーした。
nois2_uClinux_24_111124.png

2.myworkの下のhelloディレクトリでMakefileのROOTDIRを自分のパスに変更した。
nois2_uClinux_25_111125.png

3.makeを実行した。成功。

4.make romfsを実行した。エラーが出てしまった。
nois2_uClinux_26_111125.png

5.本にも書いてあるが、これで大丈夫だそうだ。nios2-linux/uClinux-dist/romfsを見ると、helloがあった。
nois2_uClinux_27_111125.png

6.nios2-linux/uClinux-distに移動して、make imageを実行した。
nios2-linux/uClinux-dist/imageに移動すると、zImageが出来ていた。これをzImage_helloに名前を変更した。
nois2_uClinux_28_111125.png

7.zImage_helloをUSBメモリ経由でWindowsにコピーした。

8.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
nios2_ucliunx_18_111124.png

9.Nios2 11.0 Command Shellを開いて、zImage_helloの置いてあるフォルダに移動した。

10.nios2-download -g zImage_helloを実行して、zImage_helloをダウンロードした。
nios2_ucliunx_19_111124.png

11.nios2-terminalでuClinuxを起動して、helloコマンドを入れたら、Hello Worldが表示された。成功。
nios2_ucliunx_29_111125.png

次に、pioを試したが、SWの操作(2進数)により、7セグメントLEDに値が16進数で表示された。
nios2_ucliunx_30_111125.png

nios2_ucliunx_31_111125.jpg
  1. 2011年11月25日 05:50 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0

DE0でuClinux 4(uClinuxの起動)

DE0でuClinux 3(カーネルのビルド)”の続き。

1.USBメモリ経由でUbuntuからWindowsへzImageをコピーした。
nios2_ucliunx_17_111124.png

2.Quartus II 11.0を立ち上げて、DE0にダウンロードした。
nios2_ucliunx_18_111124.png

3.Command Shellを起動。zImageをダウンロードした。
nios2_ucliunx_19_111124.png

4.nios2-terminalを立ち上げると、uClinuxが立ち上がった。linuxがFPGAボード上で立ち上がったのは始めてなので、嬉しいです。。。
nios2_ucliunx_20_111124.png

5.ルートディレクトリでlsすると、bin dev etc home init lib mnt proc sbin sys tmp usr var ディレクトリが見えた。
nios2_ucliunx_21_111124.png

6.PATHは /bin:/usr/bin:/etc:/sbin:/usr/sbin だった。確かに本に書いてあるとおり、大したコマンド入っていません。
nios2_ucliunx_22_111124.png

7.Ubuntuに戻ってvi, diff, find, grep, less, kill をbusyboxで追加した。下はviを起動した所です。
nios2_ucliunx_23_111124.png

やった。初めてFPGAボードでuClinuxとはいえlinuxが動いた。とっても嬉しいです。。。

FPGAボードで学ぶ組み込みシステム開発入門[Altera編]はとても良い本だと思った。初心者でもうまくいくように丁寧に書いてある。しかもデバイスドライバの作り方まで書いてあって、とてもお得だと思った。2冊買ったくらいの価値はあるね。
作者の方とお知り合いになったからというわけではなく、本当にそう思いました。
  1. 2011年11月24日 05:26 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0

DE0でuClinux 3(カーネルのビルド)

DE0でuClinux 2(Quartus IIとSOPC Builder)”の続き。

1.まずは、”DE0でuClinux 2(Quartus IIとSOPC Builder)”のuclinuxフォルダのuclinux_sopc.ptfファイルをUbuntuにUSBメモリ経由でコピーした.(UbuntuはVirtualBox上にインストールしてある)
nois2_uClinux_13_111123.png

2。nois2-linux/uClinux-distに移動して、make menuconfig を実行した.
nois2_uClinux_14_111123.png

3。カーネルのビルド方法はを参照のこと。

4。ptfファイルをカーネルのビルドに反映させた。
nois2_uClinux_15_111123.png

5。make を行った。nois2-linux/uClinux-dist/images にzImageができた。
nois2_uClinux_16_111123.png
  1. 2011年11月23日 09:16 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0

DE0でuClinux 2(Quartus IIとSOPC Builder)

DE0でuClinux 1(uClinxとツールチェーンのダウンロード)”の続き。

今回はQuartus IIを立ち上げて、uClinuxを動かすNois IIシステムを作成する。と言っても、FPGAボードで学ぶ組込みシステム開発入門 ~Altera編~のサポートページからダウンロードしたプロジェクトを使用する。

ファイルをダウンロードして、展開すると、DE0という名前のフォルダが出来る。DE0\dai9sho\uclinuxが目的のプロジェクトだ。
Quartus II 11.0を立ち上げて、FileメニューからOpen Project...を選択して、ucliunx.qpfを読み込む。そしてコンパイルしたのが、下の図の状態だ。
nios2_ucliunx_9_111123.png

トップファイルを見てみると、SDRAMとSW入力、7セグメントLED出力がある。
nios2_ucliunx_10_111123.png

Project Navigator のEntityウインドウのuclinx_sopc:instをダブルクリックしてSOPC Builderを立ち上げた。Nios IIプロセッサ、SDRAMコントローラ、SW用PIO、7セグメントLED用PIO、タイマーが入っていた。
nios2_ucliunx_11_111123.png

cpu_0をダブルクリックすると、Nois IIの設定が見える。Nois II/fを使用していた。uClinuxなので、MMUは入っていなかった。
nios2_ucliunx_12_111123.png

  1. 2011年11月23日 05:20 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:2

DE0でuClinux 1(uClinxとツールチェーンのダウンロード)

FPGAボードで学ぶ組み込みシステム開発入門[Altera編]”の”9-1 uClinuxと開発環境の構築”今回はDE0でuClinuxをやってみることにした。
VirtualBox上にUbuntu11.10をインストールして、その上でnios2のuClinuxのビルドやツールを使うことにした.
なお、今回はUbuntu 11.10のブラウザ上でブログを書いている。

1。本の296ページのコンパイルに必要なツールのアップデートとインストールから行った。Ubuntu11.10のSynapticパッケージマネージャを起動して、本に書いてあるgit-coreなどのツールをインストールした。
nois2_uClinux_1_111121.png

2。本の297ページのuClinuxディストリビューションのダウンロードを行ったが、エラーになった。wgetのコマンド中のファイル名の2009の後に0が抜けていた。
nois2_uClinux_2_111121.png

3。もう一度コマンドを実行して”nios2-linux-20090730.tar.1”として保存できた。これには74分32秒かかった。
nois2_uClinux_3_111121.png

4。”nios2-linux-20090730.tar”を削除して、”nios2-linux-20090730.tar.1”を”nios2-linux-20090730.tar”に変更した。
nois2_uClinux_4_111121.png

5。tarコマンドで解凍した。
nois2_uClinux_5_111121.png

6。nios2-linuxディレクトリに入って、チェックアウトコマンドを実行した。
nois2_uClinux_6_111121.png

7.ディレクトリを上に上がって、ツールチェーンのダウンロードを行った。1度、wgetを実行したが96%で停止したので、やり直した。

8.ツールチェーンの解凍と移動を行った。解凍はうまくいったが、mvするところで、/optディレクトリがあると言われてエラーになった./optディレクトリを見ると、VBoxGuestAdditions-4.1.6やor1用のディレクトリがあったので、ホームディレクトリのoptの下のnois2だけ/optディレクトリの下に移動した。
nois2_uClinux_7_111121.png

9。上に上がって、optディレクトリを削除した.

rm -r opt



10。/opt/nios2/binにパスを通した。exportコマンドも実行したが、.bashrcにexportコマンドを追加した。
nois2_uClinux_8_111121.png

  1. 2011年11月22日 05:14 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0

紅葉が綺麗でした

昨日は仙台の娘のところに奥さんと日帰りで行ってきました。今日は疲れ気味です。

主な業務はお買い物です。”ザ・モール(THE MALL)仙台長町は西友と161の専門店、10のシアターを備えたMOVIX仙台からなる、東北最大級のショッピングセンターです。”に行ってきました。
早く行ったので、駐車場に車を止められましたが、すごい人でした。その後もしまむらやダイエーに行って、お買い物を済ませました。

行く途中の東北道では紅葉が綺麗でした。仙台市内も紅葉がピークでした。
kouyou_1_111121.jpg

kouyou_2_111121.jpg

帰りは磐越道まわりで常磐道を通って帰ってきたのですが、常磐道の中郷PAのもみじの紅葉も綺麗でした。

ステレオカメラ基板作成9(OV9655ステレオカメラ基板をテスト)”でテストしたOV9655ステレオカメラ基板ですが、アナグリフも完成しました。MTM07ではスペースの様子を見ながら、どのように展示するかを考えます。
そうだ、アナグリフ用の赤青メガネを作る必要があるんだった。。。

それと11月27日にFPGA-CAFEでアクリルケースをもう1つ作らねば。。。
  1. 2011年11月21日 05:28 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

ガス台が新しくなりました

今日はガス台を交換してもらいました。

以前、家の奥さんがガス会社の料理教室に行って、ガス台が欲しくなったようです。まんまとガス会社の陰謀にはまってしまいました。とは言っても、前のガス台は17年使った年代物なので、そろそろ変えても良いかな?と思っていました。

3週間前くらいにガス展に行って、ガス台を購入したのですが、取り付けは今日になりました。
システムキッチンから古いガス台を取り外して、新しいガス台を付ける前に、50φのホールソーで穴を開けていたのですが、なかなか開きません。焦げ臭いにおいがしてきたので、心配になって見に行きましたが、なかなか切れないようでした。切れない工具を使うと下手すると煙が出て、燃えてきちゃうので、心配でしたが、なんとか開きました。後で見ると切り口が焦げています。お願いだから、切れるホールソーを使ってください。

買ったのは、ハーマンのC3WL2PWAです。
天ぷらの時の温度調整もあって、タイマーなどもありハイテクですね。100V電源ではなく、乾電池動作のものを購入しました。こうしておくと、家はプロパンガスですから、地震で停電しても調理が出来ます。
renji_111119.jpg

奥さんが喜んでいます。楽しく調理ができるのが何よりですね。買ってよかったかな?と思います。
今度は、鍋を買う必要がありそうですね。
  1. 2011年11月19日 19:43 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Altium DesignerのCircuit Simulation Examples1

Altium DesignerのCircuit Simulation Examplesをダウンロードしてやってみた。

555 Astable Multivibratorのプロジェクトを開いて、Projectタブから555 Astable Multivibrator.schdocをダブルクリックして開いた。
Altium_Designer_4_111119.png

デザインメニューからシミュレート -> Mixed Simを選択する。
Altium_Designer_5_111119.png

解析設定ダイアログが開く。Sim表示設定をShow active signalsに変更する。回路図シグナルからDCHGを解析シグナルに移動した。OKボタンを押す。
Altium_Designer_6_111119.png

シミュレーション波形が表示された。
Altium_Designer_7_111119.png

こんな感じでシミュレーションしていると面白い。

555 Monostable Multivibrator.schdocをシミュレーションすると、1発の波形になる。
Altium_Designer_8_111119.png

  1. 2011年11月19日 19:14 |
  2. Altium Designer
  3. | トラックバック:0
  4. | コメント:0

Altium Designerを購入した

FPGA-CAFEAltium Designerを個人的に共同購入した。

昨日ライセンスが届いたので、インストールしてみた。
Altium_Designer_1_111119.png

Altium Designerは、Altium Designer の環境ページによると、

Altium Designer は、エレクトロニクス製品設計の為の統一設計環境であり、下記設計機能を含む工程をサポートしています。

基板回路設計
プリント基板設計
FPGA ハードウェアデザイン
FPGA 論理の実装と実機検証 (Altium NanoBoard のような FPGA 開発ボードで動作)
FPGAベースの組込みソフト開発
デジタル/アナログ混在 回路シミュレーション
伝送線路解析
PCB 製造


基板だけでなく、FPGAのハード、ソフトと実機検証も出来るようだ。
FPGAのハード設計は基本的には回路図ベースのようだが、下位モジュールにHDLを使うことができそうだ。
C言語でハードウェア設計を行うことが出来る。これもぜひ使ってみたい機能だ。

更に”デバイスピンの状態をモニタします - ライブモニタリング!”というのがあって、”デザインが、いったんFPGAにダウンロードされると、Hard Devices のチェーンがFPGAピンの状態のモニタに使えるようになります。”という記述があるので、実際に動作しているFPGAの動作しているピンの様子が見えるようだ。

Virtex-4のサンプルプロジェクトを開いてみた。
Altium_Designer_2_111119.png

これが基板だ。
Altium_Designer_3_111119.png

しばらくは、Altium Designerで楽しめると思う。
  1. 2011年11月19日 06:11 |
  2. Altium Designer
  3. | トラックバック:0
  4. | コメント:0

ステレオカメラ基板作成9(OV9655ステレオカメラ基板をテスト)

ステレオカメラ基板作成8(OV9655基板3)”の続き。

OV9655ステレオカメラ基板に部品を実装して、Spartan-3A Starter Kitに実装して試してみた。
StereoCamBoard_32_111119.jpg

CAM1, CAM2ともちゃんと写った。ただ、以前使っていたCAM1の方が鮮明に写っている気がする。ロットの違いだろうか?(下の写真はCAM1)
StereoCamBoard_33_111119.jpg

さて、今まではRGBだったが、YUVに変更して、リアルタイムのアナグリフを表示するように変更する。
  1. 2011年11月19日 05:09 |
  2. プリント基板作成
  3. | トラックバック:0
  4. | コメント:0

ステレオカメラ基板作成8(OV9655基板3)

ステレオカメラ基板作成7(OV9655基板2)”の続き。

11月2日に頼んだOV9655のステレオカメラ基板が今日届きました。パッケージは前回と同じ箱でした。11月2日に注文したので、約半月で届いたことになります。
StereoCamBoard_28_111117.png

白い基板です。黄色よりもかっこいいです。配線は殆ど見えません。
StereoCamBoard_29_111117.png

ビアの周辺のレジストがかかっていない気がします。ビアの端の銅の色が見えています。大丈夫なのでしょうか?レジストの塗りが甘いのでしょうか?
StereoCamBoard_30_111117.jpg

Fusion PCBの注文データです。

1 ea. Fusion PCB Service
PCB Qty. - 10
Layer - 2
PCB Thickness - 1.6mm
PCB Dimension - 5cm Max*10cm Max $24.90
Surface Finish - Hasl
PCB Color - White         $10.00
E-Test - 50% E-test
       Sub-Total:     $34.90
 Registered Air Parcel
(Weight: 0.07 KG.        $3.52
 Delivery Time: 10-30 Days):
                 $38.42 Total:


Status History & Commentsです。11月2日に注文したのですが、受付は11月1日になっていました。

11/01/2011    Confirmed     
11/01/2011    Confirmed    PayPal status: Completed @ 13:04:52 Nov 01, 2011 PDT
11/01/2011    Processing     
11/02/2011    In production     
11/09/2011    Shipped     
11/09/2011    Traceable    please enter your order number at


次に、国際郵便物(国際通常書留)の軌跡です。
StereoCamBoard_31_111117.png
早くテストをしたいが、まずテスターチェックから始めよう。

電源-GND間のショートは1枚もありませんでした。
                                                   
  1. 2011年11月17日 21:24 |
  2. プリント基板作成
  3. | トラックバック:1
  4. | コメント:2

Xilinx Platform Studio 13.3(KC705プラットフォーム3)

Xilinx Platform Studio 13.3(KC705プラットフォーム2)”の続き。

XPSのGenerate BitStreamをクリックして、インプリメントを行った。
EDK13_3_14_111114.png

Generate BitStreamをクリックする前に、Run DRCsをクリックしたら、ConsoleにBD ?... のゴミが残ってしまったが、無事にインプリメントが終了した。(かなり時間がかかった)
EDK13_3_18_111116.png

プロジェクトフォルダの下にsynthesisフォルダができた。
implementationフォルダには、system.bitもできていた。
EDK13_3_19_111116.png

XPSでDesign Summaryタブをクリックすると、XPS Synthesis Summaryどのモジュールがどれくらいリソースを使用しているかが人目でわかる。便利。。。
EDK13_3_20_111116.png

Device Utilaization Summaryの一部。レジスタが407,600個、LUTが203,800個もある。
EDK13_3_21_111117.png

次にExport DesignをクリックしてSDKを立ち上げてみる。
EDK13_3_14_111114.png

Export to SDKダイアログが開く。Exprort & Launch SDKボタンをクリックした。
EDK13_3_22_111117.png

SDKが立ち上がったのだが、以前使用したワークスペースが表示されている。今のXPSからExportしたワークスペースを表示するわけではなかったのか?
EDK13_3_23_111117.png

今のXPSからExportしたワークスペースをBrowse...ボタンで指定して、SDKを起動した。
EDK13_3_24_111117.png

hello worldプロジェクトを作って見ました。コンパイルも問題ない。
EDK13_3_25_111117.png

KC705プラットフォームが無く確かめられないので、これにて終了です。
  1. 2011年11月17日 05:05 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

Xilinx Platform Studio 13.3(KC705プラットフォーム2)

Xilinx Platform Studio 13.3(KC705プラットフォーム)”の続き。

Simulation Flowを確かめてみることにした。Simulation FlowでGenerte HDL Files をクリックした。
EDK13_3_15_111116.png

プロジェクトフォルダの下にsimulationフォルダが出来て、シミュレーション用のVHDLファイルが生成された。
EDK13_3_16_111116.png

これからシミュレーションを行う。一番上の図でLaunch Simulatorをクリックする。

シミュレーション・スクリプトの途中で”ERROR:Simulator:754 - Signal EXCEPTION_ACCESS_VIOLATION received”で止まってしまった。
EDK13_3_17_111116.png

アンサーを見ると、”Spartan-6 FPGA コネクティビティ キット TRD - Windows で ISim を実行すると「ERROR:Simulator:754 - Signal EXCEPTION_ACCESS_VIOLATION received」というエラー メッセージが表示される”がそれっぽい。
アンサーによると、Windows NT (XP) でのみクラッシュが発生するそうで、メモリの少ないシステムで発生するとのこと、ISE13.3修正される予定ということだが、修正されていないようだ。というか、Windows XP 32ビット版ではメモリを使いすぎて無理なのかもしれない。

以前に”ISimでシミュレーション時にSimulation Terminatedダイアログが出る”でISE13.1のISimでシミュレーションしようとしたら、”Simulation Terminatedダイアログが出て、シミュレーションできない。OSはWindows7 32ビット版 SP1。使用言語はVHDL。”ということがあった。これは、Windows7 64ビット版、メモリ16GBのパソコンを使用することで、ISimでエラボレートが完了して、シミュレーションを行うことができた。

そろそろ家でもWindows 7 64ビット版を考えるべきかな?そうなるとISE11以前はインストールが出来ない恐れがあるが、ISE11以前は使っていないので、もう大丈夫かもしれない。
  1. 2011年11月16日 05:01 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

FPGA-CAFEでアクリルケースを作った

昨日はFPGA-CAFEでSpartan-3A Starter Kit用のアクリルケースを作りました。

若干寸法が待っ違っている所があったので、1mmほどヤスリがけしないと入りませんでした。orz
トップカバーも切り抜きが間違ってしまいました。もう1つ足の桟もナットの切り抜き幅が間違っていました。
再来週に修正したいと思います。

Spartan-3A Starter Kit用のアクリルケースがどんな感じになるかというと、下のような写真になります。まだ、足に桟が入っていませんが、こんなイメージになります。
MTM07_4_111114.jpg

すすたわりさん、FPGA-CAFEにいらした皆さん、大変お世話になりました。また、作りに行きますので、よろしくお願いします。

はざい屋さんで、アクリル板をまた買っちゃいました。修正でなく、作りなおそうかな?修正がうまくいかない場合は作り直します。
  1. 2011年11月14日 04:51 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:3

Xilinx Platform Studio 13.3(KC705プラットフォーム)

ISE Design Suite 13 : リリース ノート ガイドを見ると、Xilinx Platform Studio(XPS)に”PlanAheadと同様のWelcomeウィンドウとナビゲーションペインを使用したデザインフロー”と書いてあったので、XPS単体で立ち上げて見ることにした。

XPS単体を立ち上げると、PlanAheadと同じような起動画面が開いた。
EDK13_3_9_111113.png

Base System Builder (BSB)で”KintexベースのKC705プラットフォームを製品版前 (pre-production) でサポート”と書いてあったので、試して見ることにした。

・Create New Project Using Base System Builder をクリックして、BSBを起動する。

・Project FileのBrowse...ボタンをクリックして、プロジェクトを保存するフォルダとプロジェクト名を設定する。デフォルトではプロジェクト名はsystem.xmp。
EDK13_3_10_111113.png

・Kintex-7 KC705 Evaluation Platformを選択した所、ダイアログが出てきた。このボードは暫定版でAnswer Record 43967に情報があるそうだ。
EDK13_3_11_111113.png

Answer Record 43967によるとDDR3 SDRAMコントローラのキャリブレーションに数秒かかるそうで、400MHz動作だそうだ。”The KC705 Rev C is designed to support a 800 MHz memory clock (1600 Mbps data rate).”ということで、DDR3-1600対応だそうだ。凄い。。。

・その他の関連するAnswer Recordもちらっと見てみたが、まだ開発段階でのいろいろな問題があるようだ。ESなので仕方が無い。

・ここで、私が必要が情報が得られた。Kintex-7 KC705 Evaluation PlatformはKintex-7のxc7k325tを使っているという情報はいろいろなところに書いてあったが、パッケージが何か?スピードグレードが何かが書いてなかった。パッケージはffg900、スピードグレードは-1だった。クロック周波数は200MHz。たぶんこれは差動クロックジェネレータなんだろうと思う。
EDK13_3_12_111113.png

・次にProcessorやChache、周辺機器の選択だが、一般的なものだ。EthernetとDDR3 SDRAMなどが入っていた。Processorの動作周波数は100MHzだった。
EDK13_3_13_111114.png

・ここでFinishボタンをクリックして、BSBでシステムを生成した。XPSが立ち上げってきた。XPSはNavigatorバーが出来て、今までと異なったGUIになってた。
EDK13_3_14_111114.png

それで、”PlanAheadと同様のWelcomeウィンドウとナビゲーションペインを使用したデザインフロー”ということなんだ。納得が行った。格好が良くなった気がする。
  1. 2011年11月14日 04:40 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter Kitのアクリルケースの設計

今日は、Spartan-3A Starter Kitのアクリルケースを設計していました。

以前はDraftSightを使っていましたが、どうも使いにくいのでフリーのツールを調べたらSakraCadを見つけました。これでだいぶ書きやすくなりました。

最初にSpartan-3A Starter Kitの裏面カバーを書きました。それが下の図です。
Spa3ASKit_case_1_111112.png

次が表面カバーです。Power SWの穴とスライド・スイッチやロータリー・エンコーダー、押しボタンスイッチ用の穴を開けてあります。
Spa3ASKit_case_2_111112.png

次が表面、裏面カバーをスリットに入れて、直立させるためのスタンドです。これは2つ作ります。
Spa3ASKit_case_3_111112.png

上の2つのスタンドをつなぐ、桟用のアクリルです。これも2つ必要です。これでスタンドの強度を増します。
Spa3ASKit_case_4_111112.png

明日、FPGA-CAFEで切れれば、切ってこようと思います。うまく行ったら、DXFファイルを公開します。
  1. 2011年11月12日 22:00 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

EDK13.3のXPS(2)

Spartan-6を使用したSP605ボードのEDKサンプルプロジェクトをISE13.3で試して見ることにした。

ISE13.3を起動して、そこからXPSを起動した。IPのバージョン変換画面が出て、OKボタンをクリックして、IPのバージョンアップを行った。その後、XPS上でProjectメニューからClean All Generate Filesを行った。
EDK13_3_7_111110.png

XPSを閉じて、ISE13.3でインプリメントを行った。そうすると、エラーになってしまった。どうもクロックバッファ関連がおかしいようだ。
EDK13_3_6_111110.png

どうしたものかと思ったが、もう一度XPSに戻って、ProjectメニューからRescan User Repositoriesを実行してから、もう一度、ISEに戻ってインプリメントを行った所、うまくインプリメントができた。
EDK13_3_8_111110.png

EDK13.2からEDK13.3のプロジェクト変換は今のところ大丈夫のようだ。でも、元のプロジェクトを残しておいたほうが良いと思う。

  1. 2011年11月10日 21:49 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

EDK13.3のXPSが変わった

ISE13.3が出た時から使っている。ISEはあまり変化が無いようだなと思っていが、EDKを使ってみてびっくり。
13.3でXPSが変更されたようだ。まずアイコンが変わっている。

13.2のXPSの画面を下に示す。
EDK13_3_1_111109.png

13.3のXPSの画面を下に示す。下の図はCamDisp_EDK_LCDだが、ISE13.2からISE13.3へプロジェクト変換ができた。安心した。
EDK13_3_2_111109.png

13.3のXPSでは、Graphical Design Viewが追加されたようだ。内部接続の様子や外部ポートまでグラフィカルに見ることが出来る。
EDK13_3_3_111109.png

ステレオカメラ基板用にカメラ用のピンのUCFを書き換えた。CAM1を使用した。
EDK13_3_4_111109.png

ISE13.3にもどって、インプリメントした。ここでのXPSのアイコンはそのままみたいだ。
EDK13_3_4_111110.png

Project Navigator でExport Hardware Design To SDK with Bitstream をダブルクリックして、ハードウェア・デザインをSDKにエクスポートして、SDKを起動した。
SDKはあまり変わってないみたいだ。SDKでXilinx ToolsメニューからProgram FPGAを選択して、camera_control.elfを選択してSpartan-3A Starter Kitにダウンロードした。
EDK13_3_5_111110.png

今まで、EDKでは、マイナーバージョンアップでもプロジェクト変換に失敗したことがあって心配していたのだが、問題なくカメラ回路は動作した。
  1. 2011年11月09日 21:33 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

ステレオカメラでアナグリフをやってみた2

ステレオカメラでアナグリフをやってみた”の続き。

前回はあまり立体に見えなかったが、ステレオカメラの光軸を少し寄り目よりに振ってみると、より立体感が出てきた。これで、だいたい良いかもしれない。MTM07に出展しても良いのでは?と思う。後はアクリルケースの図面を完成させて、FPGA-CAFEでアクリルを切らせてもらえば、ケースが出来て、展示に耐えうるのではないか?と思う。
欲を言えばGreenも加えて、より色が見えるようにもしてみたいので、実験してみようと思う。
MTM07_2_111109.jpg

今回のMTM07では、今回のステレオカメラ基板の頒布も行おうと思っています。今回のOV7670ステレオカメラ基板とうまく行けば、OV9655ステレオカメラ基板(ただいまFusion PCBで製造中)です。どちらも3枚ずつくらいになると思います。ヒロセの100Pコネクタ、パスコン、コネクタ付きで原価ギリギリかキリの良い所で原価割れの値段にしようと思っています。(1,000円くらいかな?未定)生基板だけだったらもっと配れますね。どちらもカメラモジュールはついてないので、aitendoで購入してください。

なお、試して欲しいので、購入できるのは、Spartan-3A(AN) Starter Kitを持っている方か、買う予定の方のみとします。買った方はうまく行ったかどうか教えて下さい。このステレオカメラのアナグリフ回路も公開する予定です。(もう少しいじってみたいと思っています)現在のアナグリフ回路はOV7670用(VGA)だけです。OV9655も開発する予定です(XGA)。
Spartan-3E Starter Kitでもステレオカメラ基板は使えるかもしれません?LEDが共用になっているようなので、その辺の心配がありますが?
  1. 2011年11月09日 04:32 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

FPGA-CAFEのレーザー加工機の使い方(CorelDRAW編)

昨日、FPGA-CAFEに行って、レーザー加工機を使わせて頂いて、4mm厚のアクリル板を切らせて頂いた。FPGA-CAFEのiMACに入っているCorelDRAWを使用したレーザー加工機の使い方のチュートリアルを書いておこうと思う。写真を大分取り忘れたので、後で書き直すことにする。(2011/11/14修正)(2012/06/04修正)
なお、アドビのイラストレーターや、inkscapeからレーザー加工機を使うこともできるそうだ。
レーザー加工機に入る最大のサイズは610 x 305 mmだそうだ。

(注)レーザー加工中に、炎が上がった場合は直ちに加工を中止してください。レンズやベルトを破損する場合があります。部材の断面にレーザーが当たると燃えやすいので、2回加工は行わないでください。

0.今日はレーザー加工機の電源が入っていなかった。電源はレーザー加工機の左奥の電源コードが出ている位置にあった。(メードさんに教えてもらいました。ありがとうございました。)ピンクの矢印の位置。
FPGA-CAFE_Laser_26_111114.jpg

1.まずは、FPGA-CAFEのiMACに入っているCorelDRAWを立ち上げる。

2.FPGA-CAFEのWebページFabLab Serviceをクリックして、”ご利用可能なツール”の表の FPGACAFE_LASER.cdr (X5)をクリックしてダウンロードして、それを開く。
FPGA-CAFE_Laser_19_111106.jpg

2A.クリックするとFPGACAFE_LASER.cdrを開くダイアログが出る。それでOKボタンをクリックすると、CorelDrawが起動する。
FPGA-CAFE_Laser_25_111114.jpg

3.FPGA-CAFEのレーザー加工機用のテンプレートが開く。
FPGA-CAFE_Laser_2_111106.jpg

4.次に自分でDraftSightで作ったDXFファイルをインポートする。CorelDRAWのファイルメニューからインポートを選択する。
FPGA-CAFE_Laser_3_111106.jpg

5.自分で作ったDXFファイルを選択する。
FPGA-CAFE_Laser_4_111106.jpg

6.AutoCADファイルのインポートダイアログは、メートル法になっていることを確認する。
FPGA-CAFE_Laser_5_111106.jpg

7.下の写真のようになるので、適当な位置でクリックする。
FPGA-CAFE_Laser_6_111106.jpg

8.自分で作ったDXFファイルがインポートできた。
FPGA-CAFE_Laser_7_111106.jpg

9.複数作る場合はコピーして、切り取るパーツだけ選択して、ファイルから印刷を選択する。
FPGA-CAFE_Laser_20_111106.jpg

10.印刷のダイアログが出る。プリンタでEpilog Engraver Win32を選択する。印刷範囲を選択範囲にする。環境設定ボタンをクリックする。
FPGA-CAFE_Laser_27_111114.jpg

11.Epilog Engraver Win32のプロパティのダイアログが出る。
FPGA-CAFE_Laser_28_111114.jpg

12.Epilog Engraver Win32のプロパティでレーザー加工機のパラメータを変更する。FPGA-CAFEのWebページFabLab Serviceをクリックする。次に、”ご利用可能なツール”の表のparameter Tipsをクリックして、自分の加工パラメータを見て、印刷のパラメータに設定する。今回は、アクリルの4mm厚なので、スピード6%、パワー50%、周波数5KHzに設定した。
なお、周波数自動のチェックボックスを外さないと周波数の変更はできない。
FPGA-CAFE_Laser_21_111106.jpg

13.印刷ダイアログをOKで終わらせれば、印刷データがレーザー加工機に送られたので、今度はレーザー加工機で設定を行う。

14.まずは、マニュアル・フォーカスの設定を行う。レーザー加工機のX/Y Off ボタンを押す。
FPGA-CAFE_Laser_8_111106.jpg

15.レーザー加工機のGOボタンを押す。
FPGA-CAFE_Laser_10_111106.jpg

16.これで、レーザー加工機のレーザーヘッドの上下を操作できるモードになった。このモードの時には、手で水平方向 (xy方向)にレーザーヘッドの位置を移動することが出来る。
FPGA-CAFE_Laser_11_111106.jpg

17.レーザー加工機のフタを開け、フォーカスを合わせる治具(ピンクの矢印)をレーザーヘッドに付ける。磁石で吸い付くので、軽く突起と穴をあわせてかぶせる。
FPGA-CAFE_Laser_12_111106.jpg

18.レーザー加工機の上向き三角ボタンと下向き三角ボタンで加工対象物を上下させ、フォーカス合わせの治具が加工対象物に触れるところまで調整する。その際に、フォーカス合わせの治具は、磁力で固定されているので、上下の移動量にすごく気を使う必要はない。少し上に上がりすぎれば、治具も自然に上がる(緑の矢印の部分)。
FPGA-CAFE_Laser_22_111106.jpg

19.丁度良い位置に合わせたら、フォーカス合わせの治具を取り外し、レーザー加工機のフタを閉める。
FPGA-CAFE_Laser_29_111114.jpg

20.レーザー加工機のResetボタンを押して、レーザーヘッドを原点復帰させる。
FPGA-CAFE_Laser_24_111106.jpg

21.脇の吸煙器のスイッチを入れる。(緑のボタン)
FPGA-CAFE_Laser_13_111106.jpg

22.コンプレッサーのスイッチを入れる。
FPGA-CAFE_Laser_14_111106.jpg

23.レーザー加工機のGOボタンを押すと、レーザー加工がスタートする。
FPGA-CAFE_Laser_23_111106.jpg

24.レーザー加工が終了して、ピーという音がなったら終了だ。フタを開けて、加工対象物を取り出す。

25.終了後、脇の吸煙器のスイッチを切る。(赤のボタン)
FPGA-CAFE_Laser_16_111106.jpg

26.コンプレッサーのスイッチを切る。
FPGA-CAFE_Laser_17_111106.jpg

これで終了だ。
なお、他の方がレーザーのフォーカスをいじるまで、連続的に加工する場合はフォーカスがあっているので、フォーカス合わせの工程はいらない。

下の写真が出来上がったアクリル板のスペーサーだ。
FPGA-CAFE_Laser_18_111106.jpg

FPGA-CAFEのオープンソース規定によりアクリル板のスペーサーのDXFファイル置いておきます。ここからダウンロードして下さい。ただし、無保証となります。


追加。レーザー加工機の加工対象物の置き台には、ハニカム板と木枠がある。
ハニカム板は材料が落ちないがレーザーが反射して、アクリルの裏面が汚くなる可能性があるそうだ。木枠はすかすかなので、アクリルの裏面が汚くなる心配は無いが、材料が落ちる。

ハニカム板(ハニカム板の左上は黒く汚れている方だそうだ)(2014/07/08:追記 ハニカム板の側面に左上の表示があるので、それを左上にして下さい。)
FPGA-CAFE_Laser_30_111114.jpg

木枠(木枠にはorigin位置が書いてあるのでそれを左上に合わせる)
FPGA-CAFE_Laser_31_111114.jpg

木枠をつけると材料をおくと右下隅が浮いているので、下のようなスペーサーを入れる。
FPGA-CAFE_Laser_32_111114.jpg

ちなみにハニカム板と木枠と入れ替えるときは、3方の押さえを跳ね上げて行う。ハニカム板の写真は押さえが下がっている状態で、木枠の写真は押さえが跳ね上げてある写真だ。入れ替え作業は、レーザー加工機のX/Y Off を行い、十分に台を下げてから行う。

(注1)間違った印刷データで印刷してしまったとわかったら、STOPボタンを押してレーザー加工を中止してからレーザー加工機の電源を落としてしまうのが手っ取り早いそうだ。
レーザー加工を開始する前だったら、もう一度正しい印刷データをレーザー加工機に送ると印刷データが上書きされるそうだ。その場合には、レーザー加工機のLCDに表示される印刷番号が+1されているのを確認すること。

(注2)
紙をレーザー加工機で切断する場合は、紙用のプレートに変更して切ったほうが望ましい。ハニカムで切ると紙が浮き上がるので燃えやすいそうだ。下の写真に示す紙用のプレートに交換すると、紙を吸着して切ることができるので、燃えるのを防ぐことができる。
FPGA-CAFE_Laser_33_130622.jpg

(注3)
アクリルをレーザー加工機で切る場合はレーザーで溶かして切っている。よって、溶ける幅がある。大体 0.2mm 程度の溶けて飛んで行ってしまうので、細かい物を切断する場合はそれを計算しておくこと。例えば、ハニカムの壁を 0.7 mm で設計したところ、実際は 0.5mm になった。つまり両側で0.1mm ずつ溶けてしまった。(アクリル、押出 3mm 厚)
また、アクリルが材料の時にレーザー加工機で明けた穴にタップを切る場合に、3mm ねじ山だと、ドリルの下穴は 2.5mm 程度で開けるが、レーザーで穴を開ける場合は 2.2mm 程度が良かった。(アクリル、キャスト 10mm 厚)

(注4)
CorelDRAW にDXFファイルをインポートする場合は、線分がバラバラになってしまう。通常は外枠を最後に切ってくれるが、線分が閉じてないと外枠から切ってしまうことがある。ベースに木枠を使っていると抜け落ちてしまうので注意すること。なお、この前やった時にグループ化したら、外枠を認識してくれたよう?だ。
  1. 2011年11月07日 05:46 |
  2. FPGA-CAFE
  3. | トラックバック:0
  4. | コメント:0

DraftSightを使ってみた

Freeの2DCADツールDraftSightを使ってみた。今日は一日それで潰れてしまった。

2DCADは使うのは初めてなので、やり方が全く分からなかった。スタートアップガイドを見ながら1つずつやって至ったが線を引いたり、円や円弧を描くことはできた。
線をXY座標を入力することによって書いたのが、下の図面だ。これは、Spartan-3A Starter Kit用の表面アクリルパネルを支えるスペーサーとなる予定だ。
Spa3ASKit_Spacer_2_111105.png

上下の十字架の様な形の部分にネジを入れて上下のパネルをネジ止めして、横のスリットを基板に挿入する予定だ。この構造はFPGA-CAFEにあったあるものの構造を参考にさせていただいている。

明日は出来れば、FPGA-CAFEに行って、これを切ってみたい。寸法は原寸で書いたつもりなのだが、DXFで出力すれば、CorelDRAWに原寸でうまく移行できるのだろうか?
  1. 2011年11月05日 21:38 |
  2. CADツール
  3. | トラックバック:0
  4. | コメント:2

ステレオカメラでアナグリフをやってみた

ステレオカメラ基板ができたので、なにかやってみようと思って、アナグリフをやって見ようと思った。

OV7670用のステレオカメラ基板でOV7670を2つ実装して、カメラのFPGA-CAFEでオシロスコープを借用して測定した結果、PCLKの位相もHREF、VSYNCとも2つのカメラの波形がピッタリ一致した。
これで、OV76701個の時のU,Vのデータをもう1つのカメラのYデータで置き換えれば、白黒の2つのカメラのデータを得ることが出来る。これを右目用のY(輝度)データを赤に、左目用のYを青にすれば、赤青メガネで立体に見えると単純に考えていた。実際にやってみるとなかなか立体には見えかなった。
いろいろ調べてみると、カメラ位置を調整する必要があるらしい。今回はカメラを基板に直付けにしてしまった。ピンソケットを使った実装のほうが良かったようだ。カメラを2自由度で動かせればもっと良さそうだ。

現在のステレオカメラで取ったアナグリフ画像。
MTM07_1_111104.jpg

赤青メガネで見ても立体に見えない。もう少し、間隔を狭くすれば良いのだろうか?とりあえず、アナグリフは保留にしよう。
カメラをもう少し内側を向くように修正する必要があるのかもしれない。

皆さんもこの絵をみて、3Dに見えませんよね?
  1. 2011年11月04日 20:46 |
  2. Make出展
  3. | トラックバック:0
  4. | コメント:0

システム開発入門[Altera偏]を試してみる5(2.4アップダウン・カウンタのシミュレーション3)

システム開発入門[Altera偏]を試してみる4(2.4アップダウン・カウンタのシミュレーション2)”の続き。

前回はAlteraからダウンロードしたModelSimでシミュレーションを行ったが、Verilogソースなので、Veritak Basic版でもシミュレーションをすることが出来る。ひさしぶりにVeritakを使ってみることにした。

Veritakの詳しい使い方は、”FPGAリテラシー およびチュートリアル”を見て欲しい。

Veritakでプロジェクトを作成して、セーブした。
FPGA_Board_Dev_44_111103.png

プロジェクトをロードしてシミュレーションを行った。Waveform Viewerに波形を追加してudcntを符号なし10進数表示に変えたところだ。ModelSim同様のシミュレーション結果を得た。
FPGA_Board_Dev_45_111103.png

Veritakの良いところはNotepad++と連帯しているところだ(Veritakで設定が必要)。プラグインを入れると、Notepadd++起動時にダイアログが出てきて、ここからVeritakシミュレータを制御することが出来る。
更に、Notepad++上で信号名にカーソルを合わせると現在の時刻と信号の値が表示され、デバックの時に便利だ。
FPGA_Board_Dev_46_111103.png

更に、Notepad++上でブレークポイントを設定して、ブレークすることが出来る。
FPGA_Board_Dev_47_111103.png

FPGA_Board_Dev_48_111103.png

何と言っても、私のとって使い慣れたエディタであるNotepad++上でいろいろ出来るのが嬉しい。
  1. 2011年11月03日 04:56 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0

CyberWorkBenchのセミナに行ってきた

昨日、田町駅の近くの森永プラザビルで行われたCyberWorkBenchのセミナに参加してきました。(何か勘違い、間違いがありましたら、ご指摘ください)

FPGAで性能を追求すると、動作周波数とデータが出てくるまでのクロック・レイテンシの最適化にいつも悩みます。つまり、動作周波数を可能なかぎり速くしたい、しかし、データが出てくるまでのクロック・レイテンシは可能なかぎり下げたいという要求仕様があります。これはいつでも同じだと思います。

前に作ったネットワークの回路では、この要求がありました。ぎりぎりFF間に入りそうなロジックを詰め込んで、論理合成し、インプリメントする。すると、”しまった。FF間のロジックが多すぎてクリティカル・パスの遅延が動作周波数の周期を満足できない!”パイプライン段数を増やして作りなおしだ。。。というのが複数回発生して、大変な状況になってしまいました。一応まとまったから良いものの、かなり完成が遅くなってしまったことがあります。
それに、FPGAがどう論理合成されてインプリメントするか、概略しかわからないというジレンマもありました。つまり、FF間のロジックが完全には予測はできませんでした。これが、FF間のロジックの見積もりを甘くしていました。

その時から、パイプライン段数を簡単に可変出来て、試せたらものすごく良いのにと思っていました。
C言語ベースの合成環境は、うまく行けば、その苦労を解消してくれるはずです。Cソースから、いろいろなパイプライン段数や、回路方式を出力できて、それを試すことが出来ます。複数のパソコンとツールのライセンスがあれば、全部同時に論理合成、インプリメントすることが出来ます。という訳で、C言語ベース(Javaベースでも何ベースでも)の高位合成環境には期待しています。

前フリが長くなりましたが、印象に残ったところを書きます。(間違いや勘違いがある可能性があります。あくまで自分の感じた印象を書きます)

1.モデルの統一
アルゴリズムのCでの検証は、floatやintの変数を使って行います。それからハードウェアに落とす前に浮動小数点演算を固定小数点演算に落とします。その時にビット精度(途中も含めて)を決めるのですが、どのくらいの精度にするか悩むところです。オーバーフローを防ぐため飽和演算処理を行ったり、アンダーフローを丸めたりする処理が必要です。今までは、アルゴリズム検証用のCモデルとハードウェア精度のCモデルを別々に書いて、効果を比較していましたが、CyberWorkBenchにすると、ビット幅を定義できるそうなので、ifdefで分けて1つのファイルに書けるそうです。これは便利だと思いました。

2.ハードウェアの使用リソースの変更
パイプラインのレジスタの入れる位置を調節してくれる機能を想像していたのですが、最初の説明では、FSMと計算リソースを使用して、指定された計算リソースで回路を生成するようなイメージでした。後でパイプラインの段数も指定できるというような説明があったと思います。どっちでも出来るのでしょう?
レイテンシや回路規模を簡単に変更できると、前に書いたように、とても便利だと思います。

3.サイクル精度シミュレータ
サイクル精度シミュレータは便利だと思いました。RTLも合わせて、サイクル精度でシミュレーション出来るようです。ModelSimよりかなり速くシミュレーション出来ます。私も画像関係のシミュレーションには、1フレームとてもシミュレーションできないほど時間かかってましたので、魅力的です。ただ、何値の信号をシミュレーションしているかを聞いてくるのを忘れました。後、SecureIPはどうなのか?というのも聞いてくれば良かったです。

4.Cソースコードデバック
Cソースコードデバックでは、回路になって並列化されるので、複数行が選択されていました。これも便利そうです。

CyberWorkBenchは、とても便利なツールだと思いました。使い所は新たなアルゴリズムを生成する部分になると思います。それ以外は、どうしても検証済みのIPを使いたいところだと思います。それなので、出来れば、AXIバス・インターフェースを自動生成できて、EDKやQsysに簡単に接続できるようにウィザードなどを整備して頂ければ、より一層簡単に使えるものと、私は思います。

(なお、問題がある内容、表現がありましたら、お知らせ下さい。)

  1. 2011年11月02日 19:35 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0
»