Sim's blog

電子工作はじめてみました

DWM付録FPGA基板でトラ技PIC

2008-12-01 21:46:23 | FPGA
トラ技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を作ったことです。
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を使えるように改造できないかといじっていましたが、なかなかうまくいきません。