トラ技の持ち歩き術の紹介
そういう時ちょっとでも楽するためのテクニックの紹介です。
手順は
・必要な記事だけ切り取る
・テープ等で補強
・クリアファイルに収める
これだけです
写真参考
人によって考え方がことなるところなので、いろんなアイデアがあるかと思います。
読みおった後は、内容によったは取っておいたり破棄したりします。
初めて記事を切り取るときは、傷つけることに抵抗感がありましたが、利便性を体感してからは遠慮なくやってます。
切り取る時のポイントは紙を切らずに接着剤を切るようにすることです。
雑誌を思いっきり開いてカッターを使って切れば簡単にできます。
怪我には十分気を付けてください。
私はCircuit cellarという海外のエレクトロニクス紙を定期講読してますがあちらの雑誌は初めから薄いので、切り取る必要がないので嬉しいですねー

使いながら覚える!CPLD Part 1 ~第2部第4章~
トランジスタ技術2008年12月号とMAX II Micro Kitを実際に使ってCPLDとVerilog HDLを習得していこうという企画です。
ことの始まりは
日記『CPLD始めます! 02月20日 』からです。
『使いながら覚える! CPLD』の最終ゴールはMAX IIとVerilog HDLの習得です。
トラ技2008年12月号の特集にしたがって進めて行きます。
注意! 普通の会社員ですので仕事の都合によって、間が開いたり場合によってはやむを得ず中断する場合があります。温かい目で見守ってください^^;
さてさてでは早速本題に。
第2部第3章までは読めばいいだけのないようですのでここでは割愛します。
今回は第2部第4章を実際にやってみます。
第4章の流れは以下の通り
1.ブロック図を確認する。
2.PICテストプログラムをコーディングする
3.PICテストプログラムのビルド
4.MIFの作成
5.FlashMemモジュールの作成
6.自前フラッシュモジュール(ブロック図と同じもの)の作成
この章からいきなりMAX IIとQuartus IIそしてVerilogの世界へどっぷりと入します。
初心者の私は4と6に嵌りました(汗
4と6はかなり説明が省略されている感じですので、じっくり読んでその意味をかみ締めないとはまってしまいます。
4についてはMPLABとQuartus II の仕様の違いのため致し方ないですが、MPLAB出力のHEXファイルをQuartus IIへ簡単に読み込ませることが出来ないらしいです。
記事中ではLstファイルをMIFへ手修正するとありますが、実際やろうとしてあきらめました。
というのも分岐の絶対アドレスはLstファイル中では??となっているためMIFにするためには絶対アドレスを確認して手打ちしなければいけないからです。
とりあえずは、トラ技のDLサービス(http://toragi.cqpub.co.jp/tabid/128/Default.aspx )から落としたMIFを使用することにしました。
また実際にQuartus II 8.1でHEXファイルを読んでMIFを読んだときとFlashMem.vの中身を見ましたが確かにHEXファイルの場合は読み込めていないようでした。
今回の目的はHEXファイルの読み込みではないので、今後必要時に対応できればと思います。
とりあえず今回は参考リンクを残す程度にして、時間のあるときにじっくり考えたいと思います。
http://plaza.rakuten.co.jp/pressgreenbutton/diary/200708020000/
http://www.neo-tech-lab.com/QuartusII.htm
http://www.pastelmagic.com/tips/hexform/hexform.html
http://www40.atwiki.jp/system-ed/pages/14.html
http://www2.neweb.ne.jp/wc/pastelmagic/hexform.htm
続いて6について
6は『製作したモジュールをリスト3に示します』という説明だけで自前フラッシュモジュールのソースが記載されているだけで、初心者の私にとっては少々というかかなり戸惑いました。
まぁとりあえずこれを書けということなんでしょうが^^;
Verilogソースコードの記述の仕方は関連Webサイトや書籍を参考にして解読したいと思います。
参考までにVerilogの構文で簡単なところだけ用語解説しておきます。
(トランジスタ技術SPECIAL 改訂版わkるVerilog HDL入門 木村真也著 を参考にしました)
・コメントの記述 //以降 もしくは/* */の間 (C/C++と同じですね)
・モジュールの定義 modele endmoduleで定義
・module構文
module モジュール名( ポート・リスト);
endmodule
・入出力ピン定義 input output
・内部信号名 wire (ローカル信号) reg (レジスタ型信号)
符号ありの場合 reg signed [7:0] bus;
・バス信号
input [7:0] i_bus;
・組み合わせ回路機能の定義 assign文
assign文で使用できる式
算術演算> + - * / % **(べき乗)
関係演算> < <= > >=
等号> == !=
シフト演算> << >> <<<(算術左シフト) >>>(算術右シフト)
論理演算> ! && ||
ビット演算> ~(NOT) &(AND) |(OR) ^(EXOR) ~^(EXNOR)
リダクション演算> &(AND) ~&(NND) |(OR) ~|(NOR) ^(EXOR) ~^(EXNOR)
そのほか> ?:(条件式) { }(連結演算)
数の表現
1'b0 ・・・ 1ビット2進数で0
4'b1100 ・・・ 4ビット2進数で1100
4'sb1100 ・・・ 4ビット2進数で1100(符合付き扱い)
8'bZZZZ_ZZZ ・・・ 8ビット2進数でハイ・インピーダンス
4'bXXXX ・・・ 4ビット不定値
16'h12AB ・・・ 16ビット16進数で12AB
123 ・・・ 32ビット10進数で123
・always@
記憶素子を持つモジュール(フリップフロップ)などの記述
posedge クロック信号のポジティブエッジで動作
・if文
else省略は非推奨
if ( 式 )
ステートメント;
else bigin;
ステートメント;
end
他にも構文はありますが、とりあえずこれで128ページのリスト3を読むことが出来そうです。
今日はこのくらいまで。
NANDやNOR演算子はPLDならではですね^^
Quartus IIの場合Verilogソースからブロック図をRTL Viewerといので見れるみたいなんですが、まだ使い方がよくわかっていないのでどうやってみるかが分かりません。
次回までの宿題ですね。
それではまた次回!
トースター・リフローに挑戦しよう!
そこでトースターでリフローを作るネタをご紹介頂いきました。
感謝(^^)
R&Dや製品開発というのはスピードが勝負ですので、1日でも1時間でも早く試作機を完成させたいですよね。
さらに資本力のない会社に勤務している場合は、時間短縮の為の費用を払えなかったりして何とも辛い思いをします。
今回のテーマは製品開発サイクルにおけるクリティカルパス改善の一貫(いわゆるプロセス改善)で、電子部品をプリント基板へ実装する工程におけるBGAパッケージなどのソルダリング工程の改善を図ります
通常BGAパッケージを使う場合は例え試作であっても
・メタルマスクの作成
・ハンダペーストの塗布
・温度プロファイル対応のリフロー炉の使用
を必要とします。
そこで今回の試みは
・如何にメタルマスクを使わないで作れるか
・如何に安価にリフロー炉を作れるか
といった課題に挑戦して見たいと思います。
といいましてもトースター・リフローを作っておられる方はググってみるとそこそこいるようで、その方々の苦労を踏み台(言い方が悪いですが)にしてより楽により実用的なものを作れたらいなと思います
とりあえずトースターを買う前に設計とその検証と妥当性の確認をしてみたいと思います。
今回の場合は要求定義から必要ですかね。
ゆっくりやっていくつもりなので次回はいつになるやら。
ではまた。