« FPGA内へ信号を注入するデバッグ | トップページ | Spartan-3ANの内蔵フラッシュへの書き込み »

2010.07.05

FPGAへの信号注入でメモリのデバッグ

BLOGANAモジュールを使って、FPGA内部にJTAG経由で信号を送り込むデバッグ方法は、こんな場合にも使えます。

まず、BLOGANAモジュールをインスタンシエートします。


inst_blogana : blogana port map
(
clk => clk,
trig => blogana_trig,
din => blogana_din,
USER_OP => blogana_user,
SAMPLE_EN => '1',
samp_freq => 200000000,
width72 => '1',
length1024 => '1',
busy => blogana_busy
);

トリガ条件を、DDR2メモリコアの、メモリリードのACKとメモリライトのACKに仕掛けます。


blogana_trig <= (mem_rdack_a and blogana_user(19)) or
(mem_wrack_a and blogana_user(18));

BLOGANA_USER(19)が'1'になっていればリード、BLOGANA_USER(18)が'1'になっていればライトに応答したときにトリガがかかるようになります。

これを使って、開発中のSpartan-6LXT PCIeボードのDDR2メモリをテストしてみます。

まずはライト時。128MBytesの乱数データを書き込んでいます。
Ddr2_wr

次にリード時。書き込んだ乱数データを読みだしています。
Ddr2_rd

こういったトリガ条件の切り替えが、パソコンのGUI上からポチポチやってできます。

他には、ステートマシンの遷移条件の中に仕込めば、パソコンのGUI上からステートマシンの動作を変えられます。


case gen_state is
when "000" =>
if(pushsw = '1') then -- WR TEST
gen_state <= "100";
elsif(timer_pulse = '1') or (blogana_user(16) = '1') then
gen_state <= "001";
end if;
・・・

DIPスイッチを触らなくていいので便利です。

|

« FPGA内へ信号を注入するデバッグ | トップページ | Spartan-3ANの内蔵フラッシュへの書き込み »

コメント

コメントを書く



(ウェブ上には掲載しません)




« FPGA内へ信号を注入するデバッグ | トップページ | Spartan-3ANの内蔵フラッシュへの書き込み »