lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

Max II CPLDでQsysをつかってみた

QsysのProject SettingsメニューにCPLDもある

前回(JTAG to Avalon Master Bridgeを使ったバスコントロール - Lynx-EyEDの電音鍵盤 新館)でやってみた内容とほぼ同じ事を、CPLDでやってみました。
使用ボードはMax II Micro Kit (Terasic MMK)です。
具体的にはQsysで

  • JTAG to Avalon-MM bridge
  • PIO

のモジュールをMax II CPLD(EPM2210)向けにGenerateして、トップモジュールからインスタンスするだけです。
f:id:Lynx-EyED:20130302231340p:plain

トップモジュールはmaxII_avalon_trialという名前にして、生成されたモジュールをインスタンシエート。

module maxII_avalon_trial(
    output reg [7:0] LED = 8'h0,
    input [3:0] button,
    input clk
);

	 
	 avalon_module u0 (
		  .clk_clk                          (clk), // clk.clk
		  .pio_0_external_connection_export (LED)  // pio_0_external_connection.export
	 );

	 
endmodule

論理合成結果は
f:id:Lynx-EyED:20130302232110p:plain
1600LE近くを消費するという事態に

JTAG to Avalon MM Bridgeが64byteのFIFOを持つため、CPLDはLEを消費してしまうのが原因。(長船氏)
f:id:Lynx-EyED:20130302233010p:plain

ちなみに、SPI slave to Avalon MM Bridgeに入れ替えると、消費ロジックは約330LEまで減ります。
f:id:Lynx-EyED:20130302233410p:plain

動作確認

PIOの出力はLEDに接続されるようにしました。PIOのアドレスは今回は0x00000000にしてあります。
前回のDE0 nanoと変わらないので詳細は書きません。
f:id:Lynx-EyED:20130302234028p:plain

0xAAをライトした時
f:id:Lynx-EyED:20130302234230p:plain
0x55をライトした時
f:id:Lynx-EyED:20130302234419p:plain
※ 出力をLレベルにするとLEDが点灯します

Qsys使うならFPGA使えば良いじゃん

CPLDだとRAMなくて効率悪いしFPGAでいいじゃん。

…そうなんですが、
ビデオ・デモ: 音で楽しみながら知る低コスト低消費電力CPLD開発キットの活用方法

ここで使っている、評価キットはMAX V CPLD 570LEで、ビデオ中のデモでもJTAG to Avalon Bridgeを使っているように見えるのです。

ちなみに、MAX V 570LEで今回のモジュールをコンパイルすると、当たり前ですが以下のようになります
f:id:Lynx-EyED:20130302235241p:plain

はてさて、どうなってるのかしら。。

調べた結果はまた次回に。