FC2カウンター FPGAの部屋 2006年10月04日
FC2ブログ

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

FPGAの部屋

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

基板のデバック(続き)

昨日書いた32ビットワード単位で言うと0番地には正しいデータが入ってるが、4番地のデータはC番地に、8番地のデータは10番地に入るというバグは解消した。SDRAMのアドレスはデータバスが64ビット幅なので8バイトごとに+1されるはずだ。以前は32ビット幅なので4バイトごとに+1だったのがそのままになっていた。それで飛び飛びに入ってしまったようだ。これは修正されてPowerPCは動作したが、他のところが動作していないようだ。シミュレーションを完璧にやっていないので、デバックは大体こんなもんだ。
2学期はいろいろ忙しいのでなかなか時間が取れない。今週中にはアスベスト工事のために部屋も引っ越さなくては。。。
  1. 2006年10月04日 20:33 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

基板のデバック

大きな基板は大体動作してきた。FPGA内のブロックRAMからPowerPCをブートしているのだが、ブートは出来るようになった。
そういえばブロックRAMはRAMBプリミティブを並べて作っている。そしてブートコードを入れる際にはBMMファイルを作成してDATA2BRAMでCコンパイラが吐いたELFファイルをブロックRAMにロードしている。今のところISE6.3iなのでこれでよいのだが、どうやらISE8.2iにはDATA2BRAMがなくなっているようだ。他のプログラムロードの手段があるだろうから調査が必要なようだ。
しかし、Xilinxのツールはいろいろ変わってしまうので、その都度苦労する気がする。
この辺は動作してXport経由でパソコン上のターミナルにブートメッセージを表示するようになったが、その先のXport経由でプログラムコードを流し込んでSDRAMで動作させる部分が動かない。チップスコープで確かめてみたところ32ビットワード単位で言うと0番地には正しいデータが入ってるが、4番地のデータはC番地に、8番地のデータは10番地に入ってしまっているようだ。これは以前デーバスが32ビット幅だったのを64ビット幅に修正したのだが、その辺がバグっているようだ。
PowerPCは命令フェッチのキャッシュフィル時に例えば8番地に飛ぶとすると8番地、10番地、18番地、0番地というようにぐるりと回ってアクセスする。(データバス64ビットの場合、キャッシュラインサイズ32バイト)これは4ビートだが、以前はデータバスが32ビットだったので8ビートだったのだ。修正後のアドレスアクセス機能がどこかバグっているらしい。
小さい基板は順調だと思ったが1枚は完動するが、2枚はSDRAMのあるビットがたまに間違ってしまう。原因は不明だ。SDRAMに供給するクロックの位相を変えても変化がないのでFPGAの出力が遅延しているせいではないと思うのだが。。。基板のパターンがおかしいのだろうか?でも必ず間違うわけじゃないし、となるとクロストーク?でも1枚は動いているし。。。
  1. 2006年10月04日 06:05 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4