Artix-7評価ボード>MicroBlazeを使う>ISEにXPSの回路を取り込む

ISEにXPSの回路を取り込む

42. ISEに戻ってきたら、先ほど作ったcpuというモジュールがあるので、Generate Top HDL Sourceを実行します。

 

 


 

43. 作ったCPUモジュールをインスタンシエートするだけの回路が出来上がります。

これは参考程度にして、自分でmain.vhdを作り、この回路を丸ごとコピー&ペーストします。

 

 

SPIのクロック信号は、システム・コンフィギュレーション用のCCLKピンと共有されているので、そのまま信号を出すことはできません。CCLKピンから出力するには、STARTUPE2というプリミティブを通じて行います。

 

先ほど苦労してSPIのピンを細工した理由はここにあります。STARTUPE2に渡すためには、inoutの属性だと都合が悪いのです。

それから、clock_generator_0_CLKIN_pinには、水晶発振器からの50MHzの信号入力を通しておきます。

 


・・・
signal SCK : std_logic;

begin

cpu_i : cpu
port map (
RS232_Uart_1_sout   => uart_tx_op,
RS232_Uart_1_sin    => uart_rx_ip,
RESET               => pushsw_ip,
・・・
clock_generator_0_CLKIN_pin  => xtalclk_ip,
axi_spi_0_SCK_I_pin => '0',
axi_spi_0_SCK_T_pin => open,
axi_spi_0_SCK_O_pin  => SCK,
axi_spi_0_MISO => MISO_bp,
axi_spi_0_MOSI => MOSI_bp,
axi_spi_0_SS   => SS_bp
);

STARTUPE2_inst : STARTUPE2
port map (
CFGCLK => open,
CFGMCLK => open,
EOS => open,
PREQ => open,
CLK => '0',
GSR => '0',
GTS => '0',
KEYCLEARB => '0',
PACK => '0',
USRCCLKO => SCK,
USRCCLKTS => '0',
USRDONEO => '0',
USRDONETS => '0
);

 


 

44. ここで一度論理合成(Synthesize)をしてみて、エラーが出ないか確認します。

axi_spi_0_SSという信号でエラーが出るかもしれません。それは、このSSという信号がXPSではデフォルトで[0:0]のバスになっているためです。

XPSとISEを何度か往復して整合性をとっているうちに直ります。

また、手順31で削除したはずのCLK_PとCLK_Nが残ってしまっているかもしれません。そういうときはXPSからcpu.mhsを直接編集してしまってください。

 

 


 

45. エラーなくSynthesizeが通れば成功です。

 

 


© 2015 TokushuDenshiKairo Inc. All rights reserved