マルチプレクサ版のKITE-1マイクロプロセッサの実験ボードへの適用
KITEの実験ではKITE Microprocessor PLUS+ボードを使用していますが、FPGAの
実装規模が小さいこと、周辺装置用のインタフェースを別途開発する必要がある
ことから、今回は実装ボードとして Xilinx社製 Spartan3e Starter Kit を用い
ます。
Spartan3e Starter Kit を用いるにあたり、KITEプロセッサから出ている観測用
信号はすべて排除する必要があります。kite.v 階層の入出力信号は以下の信号
のみにします。
module kite ( DATAI, // in DATA Bus
DATAO, // out DATA Bus
ADDR, // Address Bus
MREQ, IORQ, ACK, RW, // Memory/IO Interface
CLOCK, RST // System Interface
);
作成しようとしているシステムは、KITE-1プロセッサをコアプロセッサとして、
メモリもジュールとVGAモジュールを含む、簡易なマイクロプロセッサシステム
です。
以下の、システムブロック図を参考にして、各モジュールの接続関係を作成しま
す。
例えば、メモリモジュールおよびVGAモジュールの入出力変数は以下のようにな
ります。
module memory (CLK, ADDR, DATAI, DATAO, MREQ, RW, ACK );
module vga (CLK, RST, ADDR, DATAI, DATAO, MREQ, RW, ACK, R, G, B, HS_L, VS_L );
全体を統合する kite_top.v 階層は、以下のようにしておきます。
module kite_top(
CLOCK, // Clock
RESET, // Reset
R, // Red
G, // Green
B, // Blue
HS_L, // Horizontal Sync. (Negative)
VS_L // Virtical Sync. (Negative)
);
実装ボードは、Xilinx社製Spartan3E Starter Kit を使用しますが、
その際のピン割り当てについては以下のように設定します。
kite_top.ucf の内容。
NET "CLOCK" LOC = "C9" | IOSTANDARD = LVCMOS33 ;
NET "R" LOC = "H14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
NET "B" LOC = "G15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
NET "G" LOC = "H15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
NET "HS" LOC = "F15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
NET "VS" LOC = "F14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
Net "RESET" LOC = "K17" | IOSTANDARD = LVCMOS33 | PULLDOWN;
NET "CLOCK" TNM_NET = "CLOCK";
TIMESPEC "TS_CLOCK" = PERIOD "CLOCK" 20 ns HIGH 50 %;
| Back |