今日はうちの奥さんが介護福祉士に合格したので、ささやかながらパーティーをした。
セブンイレブンのケーキとコーラだったが、セブンイレブンのチーズケーキがとてもおいしかった。
今年合格して本当に良かった。来年からは受験勉強もなくなると思うので、勉強しながらコタツで寝ていて布団で寝ないとか、勉強しているので相当気を使わなければならないということがなくなるのがうれしい。
でも、また何か取りたい資格を見つけてきて勉強し始めるかも? 周りのものには資格のための勉強は迷惑なものである。
そうは言っても、おととし取ったケアマネージャーの資格で仕事しているので、役には立っているのですが、もうこの辺で良いじゃないかなという気持ちです。
2006年03月31日 21:04 |
日記
| トラックバック:0
| コメント:0
クロックの信号品質はなかなか問題が多い。
FPGAに水晶発信器からクロックを入力して、そのクロックをFPGAのほかのピンから出力してSDRAM4個とPowerPCにクロックを供給している。クロック周波数は133MHzだ。
クロック供給のトポロジーはFPGA→SDRAM→PowerPCという順で一筆書きで供給することにした。おまけにPowePCのセットアップ時間の関係で、SDRAM→PowerPC間をデータバスより7cm程度(400ps)わざと長くしてもらった。これで伝送線路シミュレーションをしてもらったところ、まったく波形が乱れてだめだった。
トポロジーをいろいろ変えてやってもらったが満足できない。
そこでFPGA→PowerPCをFPGAの別のピンにしたところ、だいぶ良くなった。つまりFPGA→SDRAM4個とFPGA→PowerPCにクロックを分けた。
これでだいぶ良くなったが、まだSDRAMの仕様に波形が入らないので条件を変えてシミュレーションをお願いした。
まあこれで大丈夫だと思う。しかし、これでDCMを1個余計に使うことになった。
FPGA→SDRAM4個のクロックが予定よりもだいぶ遅れるようなので、133MHzではFPGAの0度の内部動作クロックではSDRAMのデータがサンプルできそうもない。
もう1つDCMを使ってフェーズシフトしたクロックでデータをサンプルしなくてはいけないようである。かなり厳しい状況になってきた。動作周波数が高いといろいろ難しいようだ。
2006年03月30日 19:33 |
プリント基板の作成過程
| トラックバック:0
| コメント:2
インフルエンザも治りまして、今日から仕事にいけそうです。まだ少し気持ちが悪いのですが大丈夫だと思います。ご心配いただいた皆様ありがとうございます。
熱が出た次の日に医者に行ってきまして、検査をしてA型インフルエンザ確定しました。
前日の熱が出たときに、奥さんのタミフル(インフルエンザの薬)をもらって飲んでいたのが良かったのかどうか知りませんが、医者に行った午後には平熱になりました。それでも頭が少し痛かったのですが、頼んでおいた笹本祐一の小娘オーバードライブ1,2(本です)が来たので読んでいました。
医者でもらった薬を飲んでいた所、副作用がでまして水が苦く感じられるようになってしまいました。ひどくなるとつばを飲み込む時も苦くなります。今回はそこまで行かずに薬を止めました。どうもクラリス(抗生剤)あたりがだめなようです。
2006年03月30日 06:35 |
日記
| トラックバック:0
| コメント:0
今の体温37度8分、どうやらインフルエンザにかかってしまったようだ。
先週、一番下の子供が風邪を引いた。たいしたことが無いようだったが、インフルエンザだったようだ。
先週の土曜日に奥さんが39度2分でA型インフルエンザと診断されたが、日曜日には真ん中の子が38度以上、月曜日には一番上の子が39度以上の熱が出た。
ついに私の順番が来たようだ。明日から仕事も休まないといけない。
2006年03月27日 20:42 |
日記
| トラックバック:0
| コメント:0
金曜日に基板設計を担当していただく基板やさんに来ていただいて打ち合わせをした。
事前にネット、指示書、希望の部品配置図をおくってあったのだが、 2つの基板どちらも希望の部品配置では線がクロスして配線しづらいとのこと。
パターン配線していないネットの図面を見せてもらったが、大きい基板はFPGAのピンが1本しか余っていない状況なので、希望の部品配置ではかなり難しそう。仕方が無いのでコネクタの位置をFPGAのピン配置にあわせることにした。これでだいぶ配線は楽になりそうだが、ポートの送信、受信コネクタが離れてしまった。
小さい基板はポートの送信、受信コネクタの位置を反対にした。これでだいぶクロスがなくなった。こっちのFPGAはだいぶ余裕があるのでピンの配置をうまく配線できるように変更。これで大丈夫なようだ。
スピードの速い信号はインピーダンスコントロールをしてくれるようだ。表面の配線はマイクロストリップライン、内層はストリップラインになるはずなのでインピーダンスは合いますかと質問した所、絶縁層の厚さとパターン幅を調整してインピーダンスをあわせるようだ。近くの層はGND層なので切れ目もないしインピーダンスが乱れることも無いそうだ。
今回はPowerPCとSDRAMの出力時間とセットアップ時間の違いからクロックをその間の配線で400ps遅らせてもらうことになった。7cm程度になってかなり長い。クロックはかなりの負荷だしうまく行くかどうか不安である。伝送線路シミュレーションで波形を検討してどうするか決めることになった。
伝送線路シミュレーションは前々回の教訓からしっかりやっていただくことになった。もう、たまにデータが間違ってトラブルシュートするのはごめんである。
2006年03月26日 05:55 |
プリント基板の作成過程
| トラックバック:0
| コメント:5
UCFファイルをPeggyで色分けするためのKWDファイルを作ったので、よろしければどうぞ。
私は動いてますが、保証はありません。
まだ抜けているかもしれませんが、とりあえずは使えそうです。
ここにあります。 これをac_ucf.kwdという名前でProgram File\Anchor\shareフォルダの中にセーブしてください。
2006年03月23日 20:15 |
その他のFPGAの話題
| トラックバック:0
| コメント:0
"FPGA Editorの使い方3" の続き。もうわかっているかも知れませんが一応説明します。
追加したProbe(テスト用の出力ピン)の削除の仕方です。
まずはFPGA Editorを立ち上げます。
FPGA EditorをRead/Writeモードに設定します。
"File" - "Main Properties..."を選択する。
Main Propertiesダイアログが立ち上がる。
"General"タブが選択されていて、その中の"Edit Mode"が"No Logic Changes"が選択されていると思うが、ここのプルダウンメニューから"Read Write"を選ぶ。これでFPGA Editorで編集が出来るようになった。
List1ウインドウの"Name Filter"に"*Inst_ssgdisp_FreqDivi_lcnt<7>_out*"と入力するとInst_ssgdisp_FreqDivi_lcnt<7>_outが表示されるのでそれを選択する。
World1を見るとInst_ssgdisp_FreqDivi_lcnt<7>_outが赤く表示される。
この状態で右の並んでいるボタンから"delete"ボタンをクリックする。
そうすると"Inst_ssgdisp_FreqDivi_lcnt<7>_out"(D6ピン)が削除されます。
以前のウインドを示します。
ピンクの矢印 のネットが削除されているのがわかると思います。
"File" - "Save"を選択してセーブします。
FPGA Editorを終了します。
ISEの"Processes"ペインを見ると"Generate Programming File"に
オレンジ? になっているので、ここをダブルクリックしてもう一度実行する。
これで元に戻りました。
2006年03月20日 19:04 |
FPGA Editorの使い方
| トラックバック:0
| コメント:0
今日は、一番下の子供と奥さんとナルニア国物語を見てきました。
お姉ちゃんとお兄ちゃんは行かないと言ってうちにいました。
映画はというと子供が主役という意味でハリーポッターと戦争シーンという意味でロード・オブ・ザ・リングを足して2で割ったような感じでした。
私的にはハリーポッターの炎のゴブレットの方が面白かったです。
2006年03月19日 19:57 |
日記
| トラックバック:0
| コメント:0
FPGA Editorの使い方3だ。まだChipscopeの配線をつなぎなおす機会が無いのでFPGAの内部配線をテストピンに出してオシロスコープで観察するやり方をやってみようと思う。
使用するのは以前同様
ここにあるサンプル をISE8.1iに変換して使うことにする。
”FPGA Editorの使い方1” を参照してFPGA Editorを立ち上げる。
今回はfreqdiv.vhdのlcntカウンタの一部のネットを見てみよう。lcnt(15 downto 0)のうちのlcnt(7)を見てみよう。lcntは50MHzクロックを分周しているので、7番目だと1/256になっているはずである。195KHz、周期は5.12usだ。
最初にFPGA EditorをRead/Writeモードに設定しよう。
"File" - "Main Properties..."を選択する。
Main Propertiesダイアログが立ち上がる。
"General"タブが選択されていて、その中の"Edit Mode"が"No Logic Changes"が選択されていると思うが、ここのプルダウンメニューから"Read Write"を選ぶ。これでFPGA Editorで編集が出来るようになった。
これで編集できるので、ネットを出力用のピンにつなごう。
FPGA EditorのList1ウインドウの一番上のプルダウンメニューから"All Nets"を選択する。下のペインにネット名が表示されるので"Inst_ssegdisp_FreqDivi_lcnt<7>"をクリックして選択する。選択したネットを表示するためにZoom Selectionのアイコンをクリックする。そうするとArray1ウインドウに選択されたネットが表示される。
このネットをオシロで見るためにSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力してみよう。
"Tools" - "Probes"を選択する。
Probesウインドウが開く。"Add"ボタンをクリックする。
"Define Probe"ウインドウが開く
"Pin Name"にInst_ssgdisp_FreqDivi_lcnt<7>_outと入れる。(この名前は自分の好きな名前でよい)
"Select Net"に"*FreqDivi_lcnt<7>*"と入れてFilterボタンを押す。
下のペインにInst_ssgdisp_FreqDivi_lcnt<7>が表示されるので、それをクリック。
"Select Pin Numbers"の"Method"をプルダウンメニューから"Manual"にする
"Available Pins"でD6を選択する
">"ボタンをクリックして"Selected Pins"ペインにD6を入れる。
"OK"ボタンをクリック
"Probes"ウインドウにInst_ssgdisp_FreqDivi_lcnt<7>_outピン(D6)が追加される。そこまでのDelayは3.484nsだそうだ。
"Close"ボタンをクリックして、ウインドウを閉じる。
"List1"ウインドウのプルダウンメニューから"All Components"を選択し、Typeの列をクリックするとIOBが上に来る。
Inst_ssgdisp_FreqDivi_lcnt<7>_outがD6ピンにつながっているのが確認できる。
"File" - "Save"を選んでセーブする。
probeスクリプトファイルをセーブするかどうか聞いてくるダイアログが出る。
”はい”ボタンをクリックしてセーブしてみよう。
セーブダイアログが出るので、”保存”ボタンをクリックする。
セーブしておくと"Probes"ウインドウで"Open Probes..."からprobes.scrを選ぶと"Probes"ウインドウにInst_ssgdisp_FreqDivi_lcnt<7>_outピン(D6)が自動的に追加される様だ。
FPGA Editorを終了する。
ISEの"Processes"ペインを見ると"Generate Programming File"に
オレンジ? になっているので、ここをダブルクリックしてもう一度実行する。
これで普通にSpartan-3 Starter Kitにダウンロードすれば195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるはずだ。ただし、時々長いかもしれない。50000分周ということは最後は80カウントで0クリアなので、最後の0の区間は次の0の区間に続くので80+128=208カウントになる。
最後に、この記事が本当に195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるかどうかは確認していない。確認できる方は確認して教えてほしい。 今日は無理だが私も近いうちに確認する。3月20日:195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるのを確認した。
なお、上で
ISEの"Processes"ペインを見ると"Generate Programming File"にオレンジ? になっているので、ここをダブルクリックしてもう一度実行する。
という文があるが、一回bitファイルを作らないとこうならない。ISE7.1iのプロジェクトをISE8.1iのプロジェクトに変換した直後ではチェックはついていないはずなので訂正します。
2006年03月18日 10:27 |
FPGA Editorの使い方
| トラックバック:0
| コメント:1
今日、セブンイレブンに寄ったらポーション プレミアムボトルが売っていたので、すかさず買いました。630円でした。
帰ってきて飲んでみたらスタミナドリンクでした。青色です。
子供らも喜んで一緒に飲みました。
2006年03月16日 20:30 |
日記
| トラックバック:0
| コメント:0
今日は技術発表会だった。170人の参加があり盛況だった。
私のポスター発表は余りFPGAに関係がある方はあまり来なかったが、〇エネの方が来てFPGAを使う予定だが良くわからないとのこと。わからないことがあったら連絡してくださいと言っておいた。
ポスター発表が終わったあとFPGA界の有名人の方がいらして、楽しくお話をさせてもらった。
懇親会(飲み会)では〇田先生とお話できて楽しかった。ブログのこともお話してみてくださいと言っておいたので見ていただけるかもしれない?
今日は院生の〇木くんに紹介してもらってmixiに入った。結構FPGA関連のスレッド(というのかな?)もあるみたい。楽しみ。
2006年03月15日 23:09 |
日記
| トラックバック:0
| コメント:2
今日は
”今日のお仕事” で使用したDC-DCコンバータに電流を流して放射温度計で温度を測定してみた。
測定回路はDC-DCコンバータに5Vをスイッチングレギュレータ(5A)から入れて、1.3V出力に0.1Ωの抵抗をつけて13A流して定常状態の時の温度を測定する。
回路を組んでやってみたが、ためしに抵抗の両端の電圧を測ってみたら1Vしかなかった。DC-DCコンバータの出力の根本で計ったら1.31Vあったので、0.3Vも電線で電圧降下しているようだ。やはり電線が0.75mm2ではこれが限界だ。0.03Ωも抵抗があるようだ。
従って実際に流れている電流は10Aになってしまった。
最初は室温の20℃だったが30分後には45℃になった。25℃あがっている。これでは20A程度流すと心配だ。なるべく空気の流れのあるところで使うか、ヒートシンクをつけることにする。
しかし、放射温度計便利だ。測定する所をレーザーで知らせてくれるので、レーザーの点を合わせればそこの温度を非接触で測ってくれる。25cmから100cm間で大丈夫なそうである。チップセットやCPUの温度を測るのに便利だ。
秋月にも6,000円くらいで売っている ので1つ買ってもらうことにしようと思う。
2006年03月14日 23:36 |
その他のFPGAの話題
| トラックバック:0
| コメント:0
現在使用中のSDRAMコントローラの仕様は動作周波数66MHz、バースト長が1だ。
これでも256バーストすることができる。
DMA転送でデータをバースト転送する場合に、ACTコマンドを入力してバンクをアクティブにしたら、列アドレスを増やしながらREADコマンドやWRITEコマンドを連続して入れるとバーストが出来る。バーストの途中でリフレッシュの時間になったらバースト転送をいったん終了し、プリチャージしてリフレッシュを行う。リフレッシュが終了したら、ACTコマンドを入れなおして続きからバーストを行う。
この方式のメリットはプロセッサのキャッシュOFF領域にアクセスする場合は単一転送となる。その場合は1つだけ列アドレスを入力してシングル転送ですむので無駄な読み書きが無いというメリットがある。バーストストップで対応する方法もあるが、私はSDRAMをバースト長1にしてアドレスをパイプライン化して入れることで対応している。プロセッサがキャッシュを書き出したりする場合は列アドレスを4回入れて、4バーストにすればよいわけだ。
2006年03月13日 21:24 |
その他のFPGAの話題
| トラックバック:0
| コメント:0
明後日は技術発表会だ。
ポスター発表で発表はないはずなのだが、概要だけ説明しろということで練習をする。
基板を持ってきて見せながら説明するつもりだ。
去年はPCIバスのカードだったので、今年はスイッチの発表だ。
2つあわせてイーサネットのような通信用のボードである。
PCIバスのカードは自作のPCI 66MHz,64ビットにPowerPC、SDRAM、ナショセミのLVDSチップ、Virex2-1000, CPLD, FLASH ROMが載っている。
このPCIカードはブート時にCPLDがFLASH ROMを制御して、FPGAをSlave Select MAPでコンフィギュレーションする。コンフィギュレーションが終了するとCPLDが切り離されてFPGAからFLASH ROMへ読み書きできるようになる。よってPCIバス経由でコンフィギュレーションデータをFLASH ROMへ書く事が出来る。この機能は便利だ。JTAGつながなくても書き換えが出来る。
スイッチはPowerPC、SDRAM、ナショセミのLVDSチップ、Virex2-3000が載っている。
根があがり症なので発表するとなると緊張する。練習をつんでおかなければいけない。。。
2006年03月13日 18:33 |
その他のFPGAの話題
| トラックバック:0
| コメント:0
今日はDC-DCコンバータの
ATH30T05 をバラックで作ってテストをした。本当は低ESRのパスコンつけなくてはいけないのだが、普通の電解コンしかなかったのでセラミックコンデンサを並列に抱かせて代用した。
出力電圧の立ち上がりは5msで思ったより早かった。使えそう。ただ
11A 8.6A(1.3V出力で0.15Ωのメタルクラッド抵抗をつけました)くらい流すとリップルが増える。使い物にならないじゃないかと思うくらい。まあバラックなのでしょうがないのか?
評価ボードが探したけど無かったのである。ちゃんとしたパスコンをつけて基板にちゃんとつければ大丈夫なのであろう。テクニカルノートではリップルはpeak to peakで40mVだった。
パソコンのディスクドライブコネクタから電源を取るのだが最大6.8A位になるので電線は大丈夫であろうか?
でもGPUの電力は最大120W位だそうなので12Vとすると10Aくらい電流流せるはずなので大丈夫か。。。
電源やGNDはパターンが大きいので下のDC-DCのピンを止めているハンダまで溶けなかったのだが、信号線をハンダ付けしたところ、DC-DCの基板にピンを止めている半田まで溶けてぐらぐらになってびっくりした。考えてみれば当たり前のことだった。
それでその後はICクリップを使って接続した。(下の写真)
見たとおり本当にバラックである。写真で見えるプリント基板はDC-DCコンバータの基板である。裏側だが結構たくさん部品が乗っている。
でもこれでフロー(ハンダ槽)で半田付けすればピンは抜けないで大丈夫なのだろうか? そうなっているのだろう。。。
2006年03月10日 20:43 |
その他のFPGAの話題
| トラックバック:0
| コメント:4
先週の金曜日から花粉症の症状が出てきた。
午前中に鼻が詰まってきた。
先週の土曜日に葬式お手伝いに行ったがマスクをしてきた人がいたので、どうしたのか聞いたがやはり金曜日から花粉症だそうだ。もう一人の人もやはり金曜日からだそうだ。みんな同じなんだと納得した。
この時期はユウツだ。鼻はあまり出ないのだが鼻は詰まるし、目は痒い。私は秋もヨモギなどの花粉症があるので、春、秋だめ。
一番いい季節がどこにも出かけられないので残念だ。
2006年03月10日 20:41 |
日記
| トラックバック:0
| コメント:0
やっと2枚の基板ともネットのチェックが終了した。
順番が前後してしまうが、電源を試作してちゃんと電圧が出るかどうかをチェックする。
〇Sコンポーネンツとかで買うと、買いやすいのは良いのだがサポートが無いのと一緒なので、データシートに書いてあることだけしかわからない。それで実際にやってみることにした。
もう1つエンピリオンのPGNDのアースの取り方が問題になっている。
http://www.enpirion.com/products/pdf/EN5360%20Datasheet%20Rev%201.01.pdf 物はこれなのだが、アプリケーションノートで一点アースしろといっているのだが、エンピリオンに入力する電圧もICで使う時にはどうしてもサーマルパッドのGNDと出力のGNDをつながなければいけないはず?
今日販売代理店にもう一度聞いてみることにする。
後は基板やさんに指示書を書かなければ、PowerPCとSDRAMのデータホールド時間が合わないので、配線遅延で辻褄を合わせる予定なのだ。SDRAMとPowerPCは少なくとも300psの配線遅延分は離してもらわなくては。。。(データバスがつながっているので)
基板やさんにはその他等長配線などでご苦労をかけると思いますが、よろしくお願いします。(ここで言っても仕方ないか。。。)
2006年03月09日 06:10 |
プリント基板の作成過程
| トラックバック:0
| コメント:2
最近のお仕事は基板の回路図のネットリストを元に回路図の間違い探しという、面白くも無い大変なお仕事。
専用ピン1本でも間違ったら基板パーというプレッシャーと戦いながら、小さい基板は終わったが、大きい基板が残っている。回路図が階層構造になっていて、部品として使っている回路図は確かめなくてもいいはずなので、その辺は楽になるはず。
回路図を書く時に抵抗の型番は抵抗値で変えずに最初の型番だけ書いてあり、コメントで抵抗値を入れてあった。
つまりMCR05シリーズという抵抗があったら100オームの抵抗はMCR05-101の部品を使い(10×10の1乗だから)500オームの抵抗はMCR05-501の部品を使って本当は書くのだろうが、全部抵抗はMCR05の部品を使って、抵抗値はコメントで入れてあった。
これじゃだめだそうだ。ネットを作ってもパーツリストがそれだけじゃ使えないということはわかっていた。以前はそれで基板を作ってくれたのだが、これを作り変えると大変だ。
OrCADに部品のインスタンスを入れ替える機能があればよいのだが。探してみようと思う。
そろそろ技術発表会のほうも大詰めなのでポスターを作った。B1の大きさのポスターを2枚とした。後はポスター発表の時に何を説明するかを考えないと。
2006年03月07日 06:06 |
プリント基板の作成過程
| トラックバック:0
| コメント:4
昨日はお葬式のお手伝いだった。
この辺では組合といって10軒ほどが組織を作っていてお葬式の時には助け合うようになっている。
昔は葬式の段取り、香典を受け取った時にお返し物の手配、来た人には弁当を渡すのだがその手配など、亡くなってから葬式までの手配をやっていた。それなので2,3日夫婦とも仕事を休まなければならない。うちはまだ親父、お袋が健在なので葬式以外はやってもらっているが。
昔は家で葬式をやっていたので、葬式ともなると大人数が出入りするため、家財道具一式も片付けられてしまい、後で何がどこにあるのかわからなくなってしまった。
今は葬儀屋さんに頼んで、葬式もメモリアルホールで行うのでずいぶん楽になった。忌ちょう払い(酒や飲み食い)もそこの部屋でやるので組合の人が料理を作ってもてなすことも無くなった。家のバーちゃんが亡くなった10数年前は一旦忌ちょう払いをやってから、もう一度組合の人を忌ちょう払いをしたので凄く大変だった。
今は簡単になってとてもよいことだと思う。葬儀や任せなので仕事が少なくなったようだ。うちでも葬式をするときはぜひメモリアルホールでやることにしようと思う。もう物がどこにあるのかわからなくなるのはいやだ。
2006年03月05日 05:59 |
日記
| トラックバック:0
| コメント:0
今日はアマゾンから2冊本が届いた。
劇団ひとりが書いた
陰日向に咲く と笹本祐一の
家出艦長の里帰り だ。
陰日向に咲く は少し読んだが、なかなか面白そう。短編がオムニバス方式?で書いてあるが、短編と短編が関連がある。
家出艦長の里帰り はある方面には有名なARIELの番外編2だ。
私はARIEL全巻、宇宙へのパスポート1、2巻、その他、笹本祐一の本は大体持っている。軽妙な明るい語り口とメカへのこだわりが好きだ。
若い頃は本屋に行って自分に合いそうな小説を見つけるのに時間をかけていたが、最近は面倒でしていない。最近買う本は以前から買っているシリーズ物やどっかの書評で面白そうだと思ったものだ。
仕事というかHDLやPCI Express、PCI-Xの本は買っているが、こっちはなかなか日本語のいい本が無い。PCI Express、PCI-Xの本は日本語ではないし。。。
SystemVerilogの2冊は日本語だったが。。。こっちも買う本は少ない。本になるのがすくなくPDFファイルが多いという事情もあるが。
SystemVerilog LRMなど。
2006年03月03日 22:14 |
日記
| トラックバック:0
| コメント:0
皆さんはHDLを編集するためにISEやQurtas以外のエディタを使っていますか?
わたしは別のエディタで編集しています。
今使っているのは
Peggy です。これをなぜ使っているかというと補完してくれるからです。
補完というのはpcix_frame_b_active_signalsと言う信号名をpcix_fと押してCTRL-SPACEを押すとpcix_fを使った信号名の候補が出てきて選べるようになる機能です。pcix_fを使ったのがそれしかなければpcix_frame_b_active_signalsと全部入力できます。
最初はK2EditorやMKEditorといったキーワードを色分けしてくれる無料のエディタを使っていました。便利に使わせていただいていたのですが、補完してくれないのが不満だったので乗り換えることにしました。
Emacs系のMeadowやxyzzyも使おうとしたがEmacs系のコントロールキーを使うのに違和感があってあまり使いたくなかった。機能は申し分ないんだけど。
Windowsらしくて補完してくれてプロジェクトも作れる(使ってないけど)となると
Peggy ぐらいしかないみたいだった。しかもVHDLもVerilog-HDLもディフォルトでキーワードを色分けできる。たまにPHPやRubyを書いても対応している。
いろいろオプションも豊富だし、起動も早い、今のところ満足している。(宣伝ではありません)
ちなみに有料です。私のはPeggyなので2,500円でした。
2006年03月02日 10:47 |
その他のFPGAの話題
| トラックバック:0
| コメント:6
初めにFPGA(その頃はアルテラだったのでCPLD)を使用したのは7,8年前なのだろうか?
アルテラのMAX+PULS2というツールでFLEX10K50等を使っていた。その頃は回路図入力が多く、AHDLというアルテラ独自のHDL言語も使用していた。
回路図は視覚性が高く便利なのだが、下位モジュールの入力、出力ポートを増やすとシンボルを作り直しなので、下位モジュールの配線をしてある状況ではシンボルの作り直しは大変だった。(入力、出力ポートの位置がずれてしまうことがあるためいちいち確認しなければいけない)
(QurtausのBDFだっけ?ブロック図として回路を書けるのには魅力を感じたがXilinxに移行してしまった後だった)
その後、全てAHDLに移行していった。AHDLではプリミティブや
LPMというIP を使用した。これはいろいろなパラメータを入れることによって、いろいろな場面で使えるようした汎用のモジュールだった。
例えばLPM_DFFはDフリップフロップのLPMだが、DFFのビット幅、イネーブル信号を入れるかどうか、1への非同期クリア、0への非同期クリア、0への同期クリアなどのポートが使っても使わなくても良いようにしてあった。
しばらくこれでFPGAの回路を書いていたが、その頃のアルテラは小さい回路ならば早く動くが、FPGAのリソースを使い切るようになると、うちらのテクニックでは極端に遅くなるという現象があった。次のプロジェクトの時に、それでXilinxに乗り換えることにした。(現在はアルテラも魅力的だと思っている)
Xilinxに乗り換えるとAHDLが使えなくなり、VHDLかVerilog-HDLの2択しかないようだった。(いまさら回路図入力はいやだった)どちらを勉強するか迷ったが、その頃はFPGAの回路を書くのにVHDLの人口比率のほうが多いという資料を見てVHDLに決めて勉強することにした。
VHDLをどうやって書いていけば良いかわからなかったので、本を買って勉強したが良くわからなかった。とりあえずAHDLと同様にLPMがあれば書きやすい。というかそのほかの書き方を知らずにLPMと同様のものをVHDLで書こうと思った。(MAX+PULS2でもVHDLで書くことが出来てLPMを使うことが出来た。でも当然ながらソースは無い)
昔はedif.orgというサイトがあって、そこにアルテラのLPMのVHDLソースがあったので、それを参考にLPMの一部を自分で書いてみた。
初期のVHDLの書き方はそのLPMもどきを使って書いていくスタイルだった。
そのうちに、この書き方は効率が悪いことに気が付いた。DFFなどVHDL数行で書く事が出来た。しかも普通に書いたほうが可読性も良い。カウンタなども同じだ。
それでLPMを使うのを止めることになった。今では自分だけのライブラリなども作らずに、以前作ったソースを参考にしながら書き直している。それが一番私にあっているようだ。だから以前書いたVHDLソースは大切ということだ。考え方、その時に調べて使ったVHDL書式が詰まっている。
VHDLも書きなれて便利に使ってるが、世の中はSystemVerilogに行くとすると、これからサポートが減ってくる可能性もあるので勉強することにした。特にテストベンチはVerilog-HDLでもVHDLより書きやすいようだ。
しかし、論理合成用のVHDLをVerilog-HDLにしていると、いろいろ出来ないことがある。Verilog2001フルサポートならばいいのだろうが一部サポートとかになると不便なこともある。
今の所、テストベンチだけSystemVerilogにしたいと思っている。(まだ余り勉強していないが。。。)
上の説明。 LPMもどき(dffena)で書くと8ビット幅イネーブル付きのDFFはこうなる
tbuf : dffena generic map(width=>8) port map(clk=>clk, aclr=>reset, enable=>tbuf_ena, data=>td, q=>tbuf_q);
これよりは直接VHDLで
process(clk, reset) begin if reset='1' then tbuf_q <= (others => '0'); elsif clk'event and clk='1' then if tbuf_ena='1' then tbuf_q <= td; end if; end if; end process;
と書いたほうがわかりやすいと思っている。
2006年03月01日 06:05 |
その他のFPGAの話題
| トラックバック:0
| コメント:0