FC2カウンター FPGAの部屋 2007年04月

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

FPGAの部屋

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

田植えの手伝い

今日は午前中、田植えの手伝いに行った。今は何条植えの田植え機でやってしまう。その際に田んぼを行き来して苗を植えていくのだ。その植える様子を見ていると、なかなか凄い。よく苗をつかんで植えるように作ったものだなと感心してしまう。
また田んぼの端に行って方向転換するときも、すばやく転回できるように、右車輪をロックしてまわっている。私の仕事はその転回する時に田んぼの泥が相当掘れてしまうので、そのところをとんぼで均すことだった。とんぼとはTの字型の田んぼを均す道具だ。これで田んぼを均すのだが、田んぼは入ると足が10cm位もぐる。歩くのも結構大変なのだ。
均すのも結構難しい。左官屋さんの要領で平らにするのだがなかなか平にならない。どうして高い低いが出てくる。あまり高低差があると稲の苗がもぐってしまったり、根本に水がなかったりしてしまうのだ。
今日は田植え機に日本の技術水準の高さを感じた一日だった。

FPGAや組み込み機器はこの連休中は出来なかった。わずかにCygwinをインストールしただけだった。残念。。。
  1. 2007年04月30日 21:04 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

親子タッグデュエル

今日はTXの研究学園駅から北千住で千代田線に乗り換え、表参道で銀座線に乗り換えて渋谷に着いた。11時すぎだったので、途中のマクドナルドで腹ごしらえ。渋谷のコナミカードゲームセンターに着いた。
まずは、親子タッグデュエルとフリー対戦(小中学生限定)の申し込み。どきどきだった。
午後1時から、どきどきしながらも親子対戦がスタート。初めてなんでよろしくおねがいします ということでスタート。いろいろなれないことはあったが親子でのアドバイスはOKなので、息子に怒られながらもアドバイス通りにやったので勝利。やはり勝つとうれしいもんだな。
2回目はおかあさんが相手でかなり強かったが、息子のおかげで勝利。3回目はやはりおかあさんだったが、勝負にこだわりがあるのか、威嚇されてしまいびびる。女の人のほうが怖い!!!今回は敗れた。 ドキドキだったが2勝1敗。良かった。。。

午後3時からはフリー対戦(小中学生限定)だった。息子の戦績は6勝2敗だった。この前からでは勝率が格段に上がっている。(お金もかかっているけどね。。。)
  1. 2007年04月29日 20:04 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

次期主力戦闘機(奥さんの車)

今日は、午前中は奥さんの職場に行って、パソコンにインデックスプリント用のフリーソフトをインストールする。グループホームなのだが、入所しているお年寄りの写真をA4に8枚ずつ印刷したいそうだ。
行ってみて、ノートパソコンをいじってみたら、Windows XPでメモリが256Mbyteしか入っていない。しかもグラフィックのフレームバッファに32Mbyte取られてしまっている。インデックスプリントをしてみたら、500Mbyteくらいメモリを使用している。案の定、ものすごく遅い。
メモリをたしてあげてもいいかなと思ったが、富士通のパソコンでキーボードの下にメモリスロットがあるタイプだったので、止めた。パソコンショップで付けてもらうように言った。
ノートンアンチウィルスも1年以上更新期限がすぎている。こっちも更新したほうが良いと言っておいた。こっちはインストールしてあげても良いか。。。

午後からは新しい次期主力戦闘機(奥さんの車)を選びにディーラーへ。最初にキューブキュービックを見に日産へ。
この車どうも姿かたちが気に食わない。見慣れればそうでもないかな?とも思うが。。。
うちの道は1.8m幅の道路なので、キューブキュービックは最小回転半径が4.7mと小さいため、この点ではとてもよいのである。更に自転車がつめると良いし、いざという時には7人載れると良い。そう言う選択肢はキューブキュービックしかないのだ。
見るとなかなか良かったが、ラクティスみたいに座席をたたんだ時に、継ぎ目のないフラット空間というわけには行かなかった。でもシートは良さそう。見積もりをしてもらうが、ラッシュ、ビーゴより値段が高かった。やはり、この車は条件には最適なのだが、うちの奥さんはRVタイプの車が乗りたいとのことなので却下となった。
次に本命の1つのラッシュをトヨペットに見に行く。そうしたら凄い風、雨、寒冷前線の通過だろうか?真っ暗になって、凄かった。竜巻になるのか?と思ったほどだった。
やはりこの車が気に入っているみたい。ラッシュとビーゴは兄弟車なのだが、ラッシュの後ろのタイヤカバーにエンブレムがないのが気に入らないらしい。やはり女性はこんなところが気になるものなのか?私としてはどうでもいい!!!
値引きも渋い。(さすがトヨタ???)
その後、私だけで(今までは奥さんも一緒)夕方にダイハツのビーゴを見に行く。こっちのほうが車体横にステッカーが入るので好みだそうだ。黄色の車にステッカーを入れて見積もりしてもらう。かなりまけてくれたので、これで決まりそうだ。時間がないので、また後で契約することにする。
家に帰って、奥さんにカタログを見せながら報告したら、やはり黄色より緑が良いかなとのたまった。あれほどこだわっていたステッカーもいらない!!!とのこと。なんだよ。。。とむかついたが、緑は私も好きなので良いか。。。更に趣味の悪いステッカーもなくなって良かったかも???
これでほぼ決まりであろう?
ちなみにラッシュ、ビーゴの最小回転半径は4.9m。

明日は遊戯王カードデュエルのために渋谷のコナミカードゲームセンターへ行く。息子に親子タッグデュエルに出てくれといわれているので、戦々恐々。。。私が恥をかかずに遊戯王カードデュエルが出来るのだろうか??? 気が重い。
  1. 2007年04月28日 20:57 |
  2. 日記
  3. | トラックバック:1
  4. | コメント:4

組み込み速習キットセットアップ

やっと日経エレクトロニクスの組み込み速習キットのセットアップを行った。
大変な仕事で、かなり時間がかかってしまった。ISEインストール、アップデートより面倒くさい。ツールも全部インストールできたので、付いてきたチュートリアルをやってみた。
LED1とLED2をそれぞれ1秒、2秒間隔で点滅させるプログラムだ。
これで組み込みアカデミーOnlineが出来るが、最初の頃は目新しいことはないようだ。パラレルポートの入出力をレジスタで決めて、出力値を違うレジスタにセットする。こういう手順は8080~8086プロセッサの頃のパラレルポート用IC 8255の頃から変わっていない。(違っている機能もあるが。。。)
nikkei_mcon_1_070427.jpg

  1. 2007年04月27日 22:50 |
  2. マイコン関連
  3. | トラックバック:0
  4. | コメント:0

Spartan3 Starter KitでMIPSプロセッサ

そういえば、電子系自営業者の開発日誌さんのOpenCore MPUメモで知ったのだがMIPSプロセッサをSpartan3 Starter Kitに載せるているらしい。リアルタイムOSが動いているようだ。
やってみようとしてVHDLソースをダウンロードしてISEでインプリメントしてみたが、出来なかった。もう少し修正しなくちゃだめなのかな? ALTERAでも動くようになってるので、その部分をコメントアウトしなくてはいけないようだ。調整中で、まだインプリメントできていない。
Spartan3 Starter KitのMIPSでLinuxが動作すればよいのだが。。。
(へこんでいると言っていたんだけど、こう言う事はするんです。気まぐれですね。。。)

2007/04/27: 書き換えないでインプリメントできました。問題はmlite_cpu.vhdのサブモジュールのreg_bank.vhdのreg_file_dp_ram_xc4000xlaコンポーネントだったのだが、上の階層のdpram.vhdがそうだった。これをプロジェクトに加えたところ Spartan-3 Plasma Kit HOWTO ページで書かれているようにVGAにランダムパターンが出た。(ランダムパターンと入ってもストライプだったけど。初期化していないSRAMのデータだそうだ)
できれば休み中にシリアルからGDBで動作させてみたい。詳しい情報は Spartan-3 Plasma Kit にあるようだ。
動作周波数は25MHzだったけど、UCFを書き直したら50MHzでもOKだった。動作周波数を変えるとシリアルのボーレートも書き換えなくてはいけないので、とりあえず25MHzのままテストすることにする。
  1. 2007年04月25日 05:48 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2

組み込みアカデミーOnline

@eleで組み込みアカデミーOnlineがあるのを知った。
VGAコントローラは作る途中でだいぶ出来ているのだが、大分へこんでいるため、一度リセットするためにもC++をやり直そうかと思っている。
日経エレクトロニクスは定期購読しているので、基板もあるし、USB ミニBケーブルもすでにあるので、いつでも始められる。
1つ疑問なのだが、基板は足が付いているのだろうか?付いていなければスペーサを買ってつけようと思う。
(いつも思いつきで行動しています。やり遂げるのはモチベーションがあがった時です。途中で止めてしまうほうが多いでしょう。。。)
  1. 2007年04月25日 05:47 |
  2. マイコン関連
  3. | トラックバック:0
  4. | コメント:2

最近のお仕事

最近のお仕事は、LVDSとSDRAMの間のバンド幅を倍にするために、LVDSとSDRAMのDMAの時だけSDRAMを倍のクロック133MHzにしようとしている。(つまりBUFMUXでクロックを切り替えるということ。LVDSは133MHz)
LVDSと内部デバイスは非同期FIFOで結ばれているので、どのような周波数でも良いのだが、最大スループットを確保するためだ。
しかし、この作業をしているとへこんでしまうのだ。
まず、自分の書いたVHDLコードの汚さにへこんでしまう。(レイテンシを最小にするためでもあったのだが。。。)
これを見ていると、どうしても最初から書き直したくなる。あまりやる気を持てなくなってしまうのだ。。。
初期コンセプトの悪さ、仕様変更による機能後付の影響で訳がわからなくなってきている。
どうしても、最初から書き直したい衝動に駆られる。。。小変更だったら大丈夫なのだが、大きな変更になるとタイミングを完璧に把握しなくてはいけないし。。。もう忘れてしまっているorz。
もうそんなことはするまいとUMLを勉強中。今度こそ、完璧でなくても、それなりに、全体構成やモジュール内部構造をグラフィカルなドキュメントに残しておくことにしたい。。。
  1. 2007年04月24日 05:17 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2

今日の夕方は寒かった

今朝は暖かいので、ワイシャツの上にベストで出かけた。そうしたら夕方から、とても寒くて震えてしまった。やはり、春は寒暖の差が激しいので気を付けなければ。。。
皆さんもお気をつけください。

夕方から一番下の娘が、腹痛と吐き気でうなりながら寝込んでいる。熱はないので季節外れのインフルエンザではないだろうが、やはり春は風邪やその他の病気にかかりやすいようだ。

息子は、何はともあれ中学校に行けるようになって来た。まだ自動車で送り迎えしているが、このまま行けば、自分で自転車でいける日も近いのではないかと思う。相変わらず、遊戯王カードに夢中で、休みになるとカードショップに行ってデュエルしている。今度は、渋谷のコナミカードゲームセンターの小中学生自由対戦に4月29日に行く予定だ。

私は、いろいろやる気力に乏しくなっている。時々そんな時があるが、思い切り小説などを読んで気分をリフレッシュしたい。
  1. 2007年04月23日 21:52 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

目がおかしい

最近、目やにが出て、しょぼしょぼする。(これ方言?)
パソコンを見ていても目が疲れて困る。そのくらいだから肩こり発生。昨日、マッサージに行ってマッサージしてもらった。
昨日はだいぶ良かったが、やはり今日も目がおかしいし、肩がこっている。
ちょっと、体調が悪いので、いろいろなお勉強はお休み。やはり花粉症なのだろうか? あまりひどければ眼科に行くことにする。
  1. 2007年04月22日 17:07 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:2

シリアル切り替え器(プリンタ出力変換用パラレルポート付き)のCPUカード回路図

@eleに投稿しようとして出来なかった回路図です。

23年くらい前に作ったシリアル切り替え器(プリンタ出力変換用パラレルポート付き)のCPUボードです。
これがCPUボードでして、そのほかにもう一枚I/Oボードがありました。
I/0ボードの方は8259カスケード、8255が1個、8251が4個ついていました。プリンタポートが2、シリアルポートが4ついていて、その間をボーレート変換、シリアルーパラレル変換しながら接続しました。
インタラプトハンドラを実装して、それぞれのポート間を接続していたと思います。(ソフトは私が作ったのではないのでうろ覚え)
今回は自分で設計したCPUボードだけの公開です。I/Oボードは違う人の設計ですので非公開とさせていただきます。
一応、CPUボードとI/Oボードを重ねて、ケースに入れて実際にシリアル切り替え器、シリアルーパラレル変換器として使っていました。(昔々)
これがその表面基板の図面です。改版が書いてありませんが、表の表示部(スイッチの横)には、LEDが付いていて、どこに何がつながっているかが表示されていました。パソコン(PC-9801)と68010プロセッサを搭載したUNIXのワークステーション(VME10)、電話のカプラ、ROMライタ、プリンタがつながっていました。
8086_panel_070420.png

家ではAcrobat持っていないので、Acrobat Readerで右90度回転してご覧ください。
回路図はここにあります。
  1. 2007年04月19日 22:10 |
  2. 回顧録
  3. | トラックバック:0
  4. | コメント:2

ChipScopeの波形保存とModelSimでの表示方法

ChipScopeでFPGAの内部および入出力の波形を見ることができるが、ChipScopeからの波形保存の方法とその波形をModelSimで見る方法を書いておこうと思う。
最初にChipScopeから波形をエクスポートする。File -> Export... を選択する。
ChipScope_wave_1_070417.png

Export Signalsダイアログが開く。FormatはVCDを選択。出力する Coreを選択し、Signals to Export は Waveform Signals/Buses を選択。Exportボタンをクリック。
ChipScope_wave_2_070417.png

Exportするフォルダとファイル名を指定するダイアログが開くので、名前をつけてExportする。ここではtest.vcd。保存ボタンをクリックする。
ChipScope_wave_3_070417.png

そうすると、test.vcdファイルができている。
ChipScope_wave_4_070417.png

これを vcd2wlf.exe でwlfファイルに変換してModelSimで表示することができる。 vcd2wlf.exe はModelSimインストールフォルダの下の win32xoem フォルダの中にある。インストール時にここのフォルダへのパスを設定している場合はパスを設定していなくても起動する。起動しない場合はフルパスで起動すればよいだろう。
コマンドプロンプトを起動して、VCDファイルがあるフォルダにチェンジディレクトリする。
vcd2wlf vcdファイル名 wlfファイル名
上の様に実行してwlfファイルを作成する。そうすると test.wlf ができる。
ChipScope_wave_5_070417.png

次にModelSimを立ち上げる。File -> Open... を選ぶ。
ChipScope_wave_6_070417.png

Open File ダイアログのファイルの種類から Log File (*.wlf) を選択して、test.wlf のあるフォルダに移動して、test.wlfファイルを選択して、オープンする。
ChipScope_wave_7_070417.png

そうすると、波形が表示される。
ChipScope_wave_8_070417.png

波形を拡大するとこうなる。
ChipScope_wave_9_070417.png

元のChipScope波形の全景(でもないけど)はこれ。
ChipScope_wave_10_070417.png

  1. 2007年04月18日 05:48 |
  2. Chipscope
  3. | トラックバック:0
  4. | コメント:2

ChipscopeのXカーソル、Oカーソルの移動

今日は、大学院生にChipScopeのXカーソル、Oカーソルの移動の仕方を教えてもらったので書き留めておこうと思う。
いつもChipScopeの波形を拡大するとカーソルを持ってくるのに大変だったが、右クリックからできたのだった。
Waveform画面で右クリックして"Place X cursor"を選ぶとXカーソルを呼んでくることができる。
ChipScope_Tips_1_o070417.png

Xカーソルが来た。
ChipScope_Tips_2_o070417.png

Oカーソルも同様に、Waveform画面で右クリックして"Place O cursor"を選ぶと呼んでくることができる。
ChipScope_Tips_3_o070417.png

ちょっとしたことなんだけど、今まで知らなかったので、カーソルを移動するのがとても大変だった。
なんか、こんなことも知らなかったのかと恥ずかしいが、備忘録として書いておく。
  1. 2007年04月17日 20:46 |
  2. Chipscope
  3. | トラックバック:0
  4. | コメント:0

UML

DWM5月号にUMLの小冊子が付いて来た。前々からUMLには興味があって、Webで勉強したりしていたが、ものにならずに来ている。
この機会に、UMLを勉強してVGAコントローラなどのハードウェアの仕様をUMLでまとめてからコーディングしようかとも思っている。
UMLエディタはArgoUMLを使うことにしようと思う。これはJAVAベースなので、JAVAのランタイム環境が入っていれば、どれでも動くはずだ。英語だが、やってみたら日本語も通るようだ。
やはり、UMLの本がほしかったので、どれがいいかアマゾンで選んだが、一番トップに来たダイアグラム別 UML徹底活用を注文した。水曜日辺りには来るだろうから、読もうと思う。
やはり、VGAコントローラくらいならば良いが、大規模なものでは、仕様をかっちり決めて、モジュールを整理し、ドキュメントを残さないと、後で見てもわからなくなることが多い。
  1. 2007年04月16日 23:06 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

タイヤ交換、中学校授業参観、墓参り

今日は、やっとエスティマをスタッドレスタイヤからノーマルタイヤに履き替えた。今回から、この前購入した電動インパクトレンチを使ってみたら、簡単にナットを締められて感激。緩めるのも簡単。早く買えばよかった。5000円の価値は十分にある。

13時から中学校の授業参観。息子も入学式で腰が痛くなってから、授業を休んでいたが、今日から行くことが出来た。授業参観(自己紹介をやっていたようだ)に行ったら楽しそうに授業を受けていた。一安心。これで中学校に毎日行ければと願っている。

夕方から13年前に骨肉腫で亡くなった高校時代の友人の墓参りに、高校時代の友人と4人で行く。冥福を祈る。毎年、命日辺りに墓参りに行っている。
その後、飲みに行く。今回はうちの家族(息子が中学校に行けたお祝いも兼ねて)と、そのほか一家族も一緒に行くということなので、お好み焼きやに行って宴会となった。家族連れということになり、のん兵衛には申し訳なかった。
夏にはバーベキューをしようという話になって解散した。
  1. 2007年04月14日 23:44 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

ISEのTest Bench Waveformでの複数クロックを使用するISEシミュレーション

ISEでTest Bench Waveformをウイザードで生成する際に、複数のクロックを使用したい場合があるが、ISE9.1iではMultiple Clocksを使用出来るので、それを使用してISEシミュレーションをしてみた。
やってみたのはCore Generatorで作成したFWFTモードのデータ入力64bit幅、データ出力が128bit幅のDual ClockのFIFOである。このFIFOは非同期FIFOで書き込みクロックと読み出しクロックが異なっている。この上のテストベンチ(FIFO_test_tb)をウイザードで作成して、ISEシミュレータでシミュレーションを試みる。
今回はテスト用のFIFOのVHDLファイルにテストベンチを右クリックで出てくる"Now Source..."で追加するところから始める。
Dual_clk_sim_1_070412.png

例によって、"Test Bench WaveForm"を選択して、"File Name"テキストボックスに名前を入れて、"Next"ボタンをクリック。
Dual_clk_sim_2_070412.png

次のダイアログは、どのHDLファイルのテストベンチを作るかを選択するものだ。"Next"ボタンをクリック。
Dual_clk_sim_3_070412.png

これで設定は終了したので、"Finish"ボタンをクリック。
Dual_clk_sim_4_070412.png

クロックやタイミングを設定するダイアログが開く。ここで2つクロックを使用するので、"Multiple Clocks"をクリックする。
Dual_clk_sim_5_070412.png

すると、ダイアログが下のように変化する。"Time Scale"を ps にして、"Initial Length of Test Bench"も ps 単位の値に変更する。
Dual_clk_sim_6_070412.png

次にクロックを指定する。クロックとして使用する信号を全部選択する。複数選択する場合は、"Ctrl"キー+クリックで選択する。選択したのは"rd_clk"と"wr_clk"。非同期リセットの"rst"があるので、"Add Asynchronous Signal Support"をチェックする。
Dual_clk_sim_7_070412.png

次に、そのクロックでどの入出力信号を扱うかを指定する。
クロックから"rd_clk"を選んで、下の右側の"Unassigned Signals"内の信号から"rd_en","dout","empty"を選択して、"<-- Add"ボタンをクリックする。
Dual_clk_sim_8_070412.png

そうすると、下の右側の"Assigned Signals"に入る。
Dual_clk_sim_9_070412.png

今度は、"wr_clk"に関連する信号を選択する。同様に"din","wr_en","full"を選択して、"<-- Add"ボタンをクリックする。
Dual_clk_sim_10_070412.png

同様に、下の右側の"Assigned Signals"に入る。
Dual_clk_sim_11_070412.png

最後に、上の"Asynchronous Signals"をクリックしてから、下のウインドウの右側の"rst"をクリックし、"<-- Add"ボタンをクリックする。(下の写真はその結果を示す)
Dual_clk_sim_12_070412.png

"Next >"ボタンをクリックして、"rd_clk"と"wr_clk"を設定する。
最初に"rd_clk"を設定する。"rd_clk"をクリックして、下の写真のように設定した。このクロックは周期15ns、周波数66.667MHzのクロックだ。
Dual_clk_sim_13_070412.png

次に"wr_clk"を設定する。同様に、"wr_clk"をクリックして、下の写真のように設定した。このクロックは周期7.5ns、周波数133.333MHzのクロックだ。これで終了なので"Finish"ボタンをクリックする。
Dual_clk_sim_14_070412.png

"FIFO_test_tb.tbw"が表示されるので、テストパターンを設定する。下の写真のように設定した。ここで"rst"は非同期信号なので、どの位置でも信号値を変更できる。"rd_en"は"rd_clk"の間隔のセットアップ時間で、"wr_en"は"wr_clk"の間隔のセットアップ時間で設定ができる。
Dual_clk_sim_15_070412.png

ProcessesペインのProcessesタブに切り替えて、"Xilinx ISE Simulator"を展開して"Simulate Behavioral Model"をダブルクリックするとシミュレーション結果が表示される。
Dual_clk_sim_16_070412.png

  1. 2007年04月13日 12:15 |
  2. シミュレーション
  3. | トラックバック:0
  4. | コメント:0

VGAコントローラの仕様の一部

しばらく、車の修理や新車の購入調査、息子の入学など、もろもろで忙しく、VGAコントローラをやる暇がなかったが、仕様をいろいろ考えている。

まずはそれぞれの値のカウンタを作るためのvga_cont_parameters.vhは下のようだ。

// VGA Controllerのパラメータ

parameter H_DISPLAY_PIXELS = 10'd799; // 800-1
parameter H_DISPLAY_WIDTH = 10;

parameter H_FRONT_PORCH_PIXELS = 6'd56; // 56-1
parameter H_FRONT_PORCH_WIDTH = 6;

parameter H_BACK_PORCH_PIXELS = 6'd63; // 64-1
parameter H_BACK_PORCH_WIDTH = 6;

parameter H_SYNC_PIXELS = 7'd119; // 120-1
parameter H_SYNC_WIDTH = 7;

parameter V_FRONT_PORCH_LINES = 10'd599; // 600-1
parameter V_DISPLAY_WIDTH = 10;

parameter V_FRONT_PORCH_LINES = 6'd36; // 37-1
parameter V_FRONT_PORCH_WIDTH = 6;

parameter V_BACK_PORCH_LINES = 5'd22; // 23-1
parameter V_BACK_PORCH_WIDTH = 5;

parameter V_SYNC_LINES = 3'd5; // 6-1
parameter V_SYNC_WIDTH = 3;


後は、VGAコントローラの仕様なのだが、いつもVGAに出力するデータを切らしてはいけないので、32深度のvga_data_fifoというFIFOを用意する。

1.vga_data_fifoを32深度として16深度までフィルしたらVGA出力をスタート。そのままDDR SDRAMからデータを読み込んで、32深度まで行ったらDDR SDRAMからの読み出しをストップ。16深度まで戻ったらDDR SDRAMからの読み出しを再開する。VGAコントローラからの読み出しをアービタは最優先で処理する。
2.VGAコントローラは50MHz動作なので、16*20(ns)=320(ns)の余裕がある。つまり16深度まで戻ったらDDR SDRAMからの読み出しを再開する訳だが、320nsの間にDDR SDRAMからのフレームデータが来ればOKな訳だ。その場合に、16深度読むときに何バーストでDDR SDRAMから読むかというと、VGAコントローラはDDR SDRAMの半分のスピードならばFIFOがあふれないはずなのでDDR SDRAMから16+8=24回、読み出すことにする。
3.最悪条件は16深度まで戻った時に、リフレッシュ動作が起こることだ。リフレッシュ動作のレイテンシを計算すると、PALL(プリチャージ)=20ns, REF(リフレッシュ)=100ns, ACT(バンクアクティブ)=200nsで合計140nsだ。320-140=180ns、よって、DDR SDRAMコンローラの18クロック中、VGAコントローラの9クロック中にDDR SDRAMからデータをもらってくることが目標となる。
4.シミュレーション時にレイテンシが大きすぎる時には、FIFOを64深度に改めることにする。
  1. 2007年04月10日 21:30 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:0

中学校の入学式

今日は息子の中学校の入学式だった。
入学式に行けるかどうか不安だったが、とりあえず行くことができた。
入学式で入場してきたときに、ビッコを引いていたが、何とか入学式は乗り切った。
やはりその後、腰が痛くなってしまったようだ。今寝ている。明日は初授業なので行ければ良いのだが。。。明日以降しばらく車で送り迎えをする予定。自転車では行けそうもない。。。

私は4時頃からトレッドミル検査をしに病院に行った。5年前は心拍数が上がると心臓の期外収縮が増えてしまったが、今日やってみたら、1発もなかった。良かった。これはとてもうれしい。
  1. 2007年04月09日 17:59 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

エスティマルシーダの修理

今日はエスティマルシーダが修理から上がってきた。木曜日に修理に持っていって、代車だったのだ。
エスティマルシーダは平成7年車なので、もう丸11年は乗っているので故障が多い。
今回はスタート時にセルが回らないことがあるというのと、アイドリング時する異音の修理と、水漏れの修理だった。
結局、スタータ修理とイクイップメント ドライブシャフト アセンブリ交換、(ベアリングが悪いそうだ)ヒータウォータパイプ取替えで全部で15万5千円かかってしまった。とても痛い。これであと2年は乗るつもりになってきた。
奥さんの車のデミオも壊れてきているので、こっちは買い換える予定だ。車は金がかかる。。。
  1. 2007年04月07日 18:13 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

PACEのエラー回避方法

ISEのProcessesペインのAssign Package PinsをダブりクリックしてPACEを起動すると、いつも"ERROR:HDLParsers:3014"で落ちてしまう。
PACE_ERROR_1_070405.png

PACE_ERROR_2_070405.png

Xilinxのアンサーサーチを見たら、ありました。
アンサー #21457:8.1 PACE - 「ERROR:HDLParsers:3014 Library unit package_file is not available in library work」というエラー メッセージが表示される
それによると”この問題は、PACE に含まれる HDL Parser でプロジェクトのデフォルト作業ライブラリまたはユーザー定義ライブラリに含まれるパッケージ ファイルが見つからないために発生します。”だそうです。
問題のVHDLファイルはこのように最初にworkライブラリを宣言して、パッケージをuseしているのでERRORになるようです。

LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

library work;
use work.sdram_global_header.all;
-- pragma translate_off
library unisim;
use unisim.vcomponents.all;
-- pragma translate_on

entity Maestro2SB is
port(


アンサーにあるように、ユーザー ライブラリを定義しパッケージ ファイルを参照する行をコメントアウトすれば良いのでしょうが、portの宣言のところに
sdram_a : out std_logic_vector(SDRAM_DEV_ADDR_WIDTH downto 0);
のようにパッケージで宣言したconstant値を使っているのでコメントアウトはできない。
なので、アンサーの最後に書いてあるようにISEのProcessesペインの[Translate] プロセスを展開表示し、[Assign Package Pins Post-Translate] を実行することにした。
PACE_ERROR_3_070405.png

そうするとちゃんとPACEが起動してパッケージを表示することができた。
PACE_ERROR_4_070405.png

  1. 2007年04月05日 11:55 |
  2. PACEの使い方
  3. | トラックバック:0
  4. | コメント:0

【ザイリンクス PCI EXPRESS ソリューション & ISE 9.1i 解体新書】ウェブセミナ2

今回はSmartGuideについてだ。セミナではPartitionからSmartGuideを設定していたが、これだとFloorplannerで見た時に階層がなくなって一色になって見にくいのでXSTのオプションでKeep HierarchyをONにしてやってみた。
最初にSmartGuideをONにしないで、そのままインプリメントしてFloorplannerで見てみた。それが2つ下のFloorplanner図の左側だ。
次にSmartGuideをONにした。
SmartGuide_1_070404.png

bcd_cnt.vhdの"if COUNTER_H = 9 then"を"if COUNTER_H = 8 then"に変更してインプリメントして見てみた。それが下のFloorplanner図の右側だ。
SmartGuide_2_070404.png

水色のところが違っている。水色がbcd_cnt.vhdだ。
次にPlace & RouteのGuide Results Reportを見るとリポートが見える。最初のところを示す。

SmartGuide Results
------------------
This section describes the guide results after invoking the Router. This
report accurately reflects the differences between the input design
and the guide design.

Number of Components in the input design | 72
Number of guided Components | 64 out of 72 88.9%
Number of re-implemented Components | 4 out of 72 5.6%
Number of new/changed Components | 4 out of 72 5.6%
Number of Nets in the input design | 63
Number of guided Nets | 36 out of 63 57.1%
Number of re-routed Nets | 25 out of 63 39.7%
Number of new/changed Nets | 2 out of 63 3.2%


Componentでは 88.9% 維持されていて、Routeでは57.1%、以前のRouteが維持されているようだ。
  1. 2007年04月04日 21:13 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

【ザイリンクス PCI EXPRESS ソリューション & ISE 9.1i 解体新書】ウェブセミナ

【ザイリンクス PCI EXPRESS ソリューション & ISE 9.1i 解体新書】ウェブセミナの案内メールがXilinxから届いた。早速、ザイリンクス ウェブセミナから視聴した。
ザイリンクス PCI EXPRESS ソリューションは、Virtex5LXTに組み込まれたPCI EXPRESS ENDPOINTの紹介とSpartan3+PCI EXPRESS PHY CHIPの紹介だった。これはこんなもんだろうというところだった。大体知っていることが多かった。
次にISE 9.1i 解体新書を視聴した。こちらはISE 9.1iの新機能の説明を実際に例を用いて説明していた。とてもわかりやすかった。その新機能はSmartCompileで、3つの方法がある。それは、前にこのブログでも紹介したPartitionとSmartGuide、SmartPreviewだそうだ。
まずはPartitionをFrequency Meterというexample projectで試している。ここでFileメニューからOpen Example...という項目を選んでexample projectを選んでいるが、私がやったときはfreqm(Frequency Meter)を選んでもOKボタンがハイドされたままで選ぶことが出来なかった。なので、ISEのインストールフォルダの下のISEexamplesフォルダにexample projectの圧縮ファイルがあるので、その内のfreqm.zipを解凍して、その中のfreqmプロジェクトをOpen Project...してやってみた。
最初にテストランでPlace & Routeまでインプリメントしてみる。
その次にI1,I2,I3,I4インスタンスにPartitionを設定してPlace & Routeまでインプリメントする。
Partition_1_070403.png

(他人ねたなので詳しいやり方を知りたい方はXilinxのウェブセミナのページをご覧ください)
ここから、Partition属性を与えられていないbcd_cnt.vhdの"if COUNTER_H = 9 then"を"if COUNTER_H = 8 then"に変更してインプリメントしてみると、Partition属性が与えられているモジュールはインプリメント結果が保存されるそうだ。実際にやってみてFloorplannerで見てみた。
最初のbcd_cnt.vhdが修正前で"if COUNTER_H = 9 then"の時の結果は下のようだ。
Partition_COUNTER_H=9.png

次に、bcd_cnt.vhdが修正後で"if COUNTER_H = 8 then"の時の結果は下のようだ。
Partition_COUNTER_H=8.png

明らかにインスタンスI1,I2,I3,I4は双方とも同じ位置に配置されている。その他のPrimitivesは上の図と下の図で位置が異なっている。これでPartitionの意味が良くわかった。

息子が遊戯王カードをやりたいと言っているので、今日はこのくらいで。。。
  1. 2007年04月03日 20:07 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0

携帯を変えました

奥さんの携帯が壊れたので、昨日と今日と携帯ショップに通ってしまった。今までSOFTBANKで電波状況の良いAUにしようと思ったが、番号ポータビリティも1回り面倒なようだし、電波状況には不満があるが、孫社長の言葉を信じてもう一度SOFTBANKにした。
よくよく話を聞くとあと2年はSOFTBANKから抜けられない模様。携帯本体が分割払いになっているが、分割払いのお金が、使っているうちはソフトバンクから補てんがあって、安くなっているとのこと。つまり止める時は残りの携帯の代金を支払うことになり、かなり痛い。うまく考えているようだ。
私は一番スペックが良いと思われる911Tの白にした。ワンセグ、324万画素カメラ、GPS、Bluetooth、などなど。ワンセグは家でも見られる。びっくり。。。もっと見えないかと思っていた。
奥さんは707SCのやはり白。11.9mmの薄い携帯だ。
その後は息子の中学通学用の自転車を購入しにホームセンターへ。4軒まわってなかった。買いたいのは、ブリジストンのアルベルトというベルト駆動の自転車。チェーンより軽くこげるそうだ。その代わり高い。腰が痛い息子に少しでも軽いものをと思って選らんだが、もう時期が次期だけに物がない。在庫を確かめてもらうことにした。

という訳で、仕事も趣味もこの週末は出来なかった。。。残念。。。
  1. 2007年04月01日 23:07 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0