マルチプレクサ版KITE-1マイクロプロセッサコアの実験ボードへの適用


KITEの実験ではKITE Microprocessor PLUS+ボードを使用していますが、FPGA の実装規模が小さいこと、周辺装置用のインタフェースを別途開発する必要が あることから、今回は実装ボードとして DIGILENT社製 NEXYS Vedio ボードを用います。

作成しようとしているシステムは、KITE-1プロセッサをコアプロセッサとして、メモリもジュールとVGAモジュールを含む、簡易なマイクロプロセッサシステムです。

以下の、システムブロック図を参考にして、各モジュールの接続関係を作成します。




全体を統合する kite_top.v 階層は、以下のようにしておきます。
  module kite_top(
		  clk,		 // Clock
		  cpu_resetn,	 // Reset (Negative)
		  hdmi_tx_clk_p, // HDMI out clock (P)
		  hdmi_tx_clk_n, // HDMI out clock (N)
		  hdmi_tx_p,	 // HDMI out data (P)
		  hdmi_tx_n,	 // HDMI out data (N)
		  );

   input         clk;
   input         cpu_resetn;
   output        hdmi_tx_clk_p, hdmi_tx_clk_n;
   output [ 2:0] hdmi_tx_p, hdmi_tx_n;

   wire 	 CLK75;
   wire          RST;   // internal reset (positive)
   wire 	 LOCKED;
   wire          ACK;   // acknowledge
   wire [15:0] 	 DATAI; // internal data bus

   ...           ...
   
   assign DATAI = ( ... ) ? ... : ...;
   assign RST   = ... | ...;
   assign ACK   = ... | ...;

   //
   // Clock module
   //
   clk_wiz_0 clk_module (
       .clk_in1( clk ),
       .clk_out1( CLK75 ),
       .reset( ~cpu_resetn ),
       .locked( LOCKED )
   );
       
   //
   // KITE-1 processor core
   //
  kite kite( .DATAI(DATAI),     // in  DATA Bus
             .DATAO(DATAO),     // out DATA Bus
             .ADDR(ADR),        // Address Bus
             .HALT(HALT),       // HALT Signal
             .MREQ(MREQ),       // Memory Request
             .IORQ(IORQ),       // I/O Request
             .ACK(ACK),         // Acknowledge
             .RW(RW),           // Read/Write
             .CLK(CLK75),       // Clock
             .RST(RST),         // Reset (positive)
             .ICS(ICS)          // Instruction Complete Signal
	);

   //
   // Memory & Video RAM
   //
   ...
   ...
   ...

   //
   // DVI encoder
   //
   ...
   ...
   ...

endmodule



クロックモジュール

NEXYS Video上のFPGAには100MHzのクロックが供給されている.VGA表示用のドッ トクロックには75MHzの周波数が必要であるため,FPGA上のMMCM(Mixed Mode Clock Manager)を使用して75MHzのクロックを作成する.クロックモジュール を作成する際には設計ツールであるVovado上でクロック生成ウィザードを使用 して作成する.作成方法について後述するが,この段階ではモジュールインスタンス 記述のみ書いておく。

KITE-1マイクロプロセッサ

KITE-1プロセッサをIPコアとして使用する場合、 KITE-1から出ているほとんどの観測用信号は使用しない。
kite.v 階層の入出力信号は以下の信号のみ使用する。
※未使用配線は、未結線としておけば実装処理の際に最適化により削除される。 なお、クロックモジュールから供給されるクロックによりプロセッサが動作するが、 クロックモジュールからのクロックが安定するまでには時間がかかる。
クロックモジュールからのクロックが安定しているかについては、LOCKED信号が HIGHであることを確認すれば良い。
したがってプロセッサのリセットは、 時にかかる必要がある。


クロックモジュール、メモリモジュール、VGAモジュール、DVIエンコーダモジュールの詳細については次ページ以降で解説する。

次は、 メモリモジュールの作成 を行います。


| Back |