トラ技12月号はAlteraのMAX II マイクロキット上でPICを実装しています。DesignWave 2007年7月号付録のSpartan-3E基板で動かしてみます。
プログラミングケーブルは、Spartan-3 starter kitについてきたものを変換基板を自作してつないでいます(奥に見える黒いのがケーブル)。
自作の変換基板とdigilentのパラレルケーブル
以前、ケーブルも作ったんですが、どこにしまったのか見当たりません><
名前がマイクロキットなだけあって、mmkは小さいです。秋月のブレッドボードとそんなに変わらない大きさです。
ISEは10.1.03です。アップデートにやたら時間がかかりました。
ソースはTR0812T/第3部/MAXII/MaskROMの中にあるものを使いました。
主な変更点はM508Emu.vの(1)入力に外部リセットをつけたことと(2)mResetモジュールを呼ばないようにしたことと、外側にmain.vを作ったことです。
サイズは297 / 2448 slice (12%)で、最大動作周波数は59.291MHzです。オプションはいじっていません。
論理合成のオプションをAREA HIGHにすると、228 / 2448 slice (9%)、39.131MHzになります。DWM付録基板には33MHzのクロックをつけているので、これでもよさそうです。
main.vはリセットとLEDを反転しているだけです。LEDをwireにすると4 slice減ります。
ちなみに、AlteraのQuartus II 8.1で合成したときの結果は728 / 2210 Logic Elementで52.19MHzです。XilinxのsliceとAlteraのLEで数え方がずいぶん違います。
ブロックRAMを使えるように改造できないかといじっていましたが、なかなかうまくいきません。
プログラミングケーブルは、Spartan-3 starter kitについてきたものを変換基板を自作してつないでいます(奥に見える黒いのがケーブル)。
自作の変換基板とdigilentのパラレルケーブル
以前、ケーブルも作ったんですが、どこにしまったのか見当たりません><
名前がマイクロキットなだけあって、mmkは小さいです。秋月のブレッドボードとそんなに変わらない大きさです。
ISEは10.1.03です。アップデートにやたら時間がかかりました。
ソースはTR0812T/第3部/MAXII/MaskROMの中にあるものを使いました。
主な変更点はM508Emu.vの(1)入力に外部リセットをつけたことと(2)mResetモジュールを呼ばないようにしたことと、外側にmain.vを作ったことです。
module M508Emu( input EXTCLK, input EXTRST, // 追加 ・・・ assign reset = EXTRST; // 追加 //Power On Reset ============================================== // mReset Rst(reset); // コメントアウト ・・・ endmodule module main( output reg [3:0] led, input rst_x, clk); wire [7:0] led8; M508Emu cpu( .EXTCLK(clk), .EXTRST(~rst_x), .GPIO(), // inout[7:0] .LED(led8), // output [7:0] .KEY(4'hf)); // input [3:0] always @(posedge clk) led <= ~led8[3:0];
endmodule
サイズは297 / 2448 slice (12%)で、最大動作周波数は59.291MHzです。オプションはいじっていません。
論理合成のオプションをAREA HIGHにすると、228 / 2448 slice (9%)、39.131MHzになります。DWM付録基板には33MHzのクロックをつけているので、これでもよさそうです。
main.vはリセットとLEDを反転しているだけです。LEDをwireにすると4 slice減ります。
ちなみに、AlteraのQuartus II 8.1で合成したときの結果は728 / 2210 Logic Elementで52.19MHzです。XilinxのsliceとAlteraのLEで数え方がずいぶん違います。
ブロックRAMを使えるように改造できないかといじっていましたが、なかなかうまくいきません。