WBSPIS.vhd


概要

WISHBONE-I/FのSPI-Slave通信モジュール。
FPGA外部のSPIなデバイスとの通信用に使う。
SPIのクロックは同期式なので高速には動かない。
SlaveからMasterへのデータ転送については書き込みデータが直接バッファに書き込まれるので、転送中に書き込みをするとデータが化けます。
MasterからSlaveへのデータ転送にバッファが1段入っていますので、次の転送が開始されていてもデータ化けはしません。
SYSCLK=48MHzで1MHz位まで(シミュレーションは1MHzでCPU制御を想定)
※SPI設計の基本は、ATmega103のSPIブロック図を参考にしています。
※川島が趣味で設計したモジュール。自己責任で使用する事を許可します。(^^;


GENERIC

Namebit'sComment
REG_CTRL_INIT8コントロールレジスタの初期値設定
Bit7 Reserved '0'
Bit6 Reserved '0'
Bit5 Reserved '0'
Bit4 Reserved '0'
Bit3 Reserved '0'
Bit2 Reserved '0'
Bit1 IRQ_ENABLE (0/1=Disable/Enable)
Bit0 Enable (0/1=Disable/Enable)


PORT

WishBone-I/F

NameI/Obit'sComment
WB_CLK_Iin1SYSCLK (シミュレーション時は48MHz)
WB_RST_Iin1RESET
WB_ADR_Iin8アドレス
00 データレジスタ 書き込み値は次回SPI送信データ。読み込みはSPI受信データ。
01 制御レジスタ 読み書き可能。Bit情報はREG_CTRL_INITを参照。
02 状態レジスタ 読み出しのみ。Bit7:1は'0'。Bit0はWB_IRQ_Oの値。
WB_DAT_Iin8データIn
WB_WE_Iin10/1=Read/Write
WB_STB_Iin1Strobe 0/1=無効/WishBone-I/F有効
WB_ACK_Oout1Ack
WB_DAT_Oout8データOut
WB_IRQ_Oout1割り込み発生時に'1'。
制御レジスタのIRQ_ENABLE='1'の時に使える

SPI-I/F

NameI/Obit'sComment
SPI_SS_Nin1Active Low(負論理)
SPI_SCLKin1Serial Clock
SPI_MOSIin1Master-Out Slave-In
SPI_MISOout1Master-In Slave-Out

Other-I/F

NameI/Obit'sComment
SPI_SSout1SPI_SS_Nを同期処理した信号(正論理)
EVENT_STARTout1SPI_SSの立ち上がり時に1パルス出力
EVENT_STOPout1SPI_SSの立ち下がり時に1パルス出力
DONEout1SPI通信で1Byte送受信すると'1'。
送信値を書くと'0'


シミュレーション波形


File's


参考


履歴