Motivation
Need simple serial interface for configuring registers and sending commands to an ASIC
Must allow for back pressure, so that ASIC can signal that it is done with a command or ready for new data.
Existing Standards not a good fit
SPI: No back pressure. Requires polling.
I2C: Back pressure possible through clock stretching, but complex protocol and implementation.
SACI Features
Master/Slave Serial Interface
4 Signals
- 3 shared: saciClk, saciCmd, saciRsp
- 1 dedicated select line per slave: saciSelL
- Allows multiple slaves on same SACI bus. (Similar to SPI.)
Serial data transmitted on rising edge of clock and sampled on falling edge. MSB first.
Toggling saciSelL resets Slave state machine in case of lockup.
Writes
- Master lowers saciSelL
- Master sends Start Bit, Write Bit, Command, Address and Data
- Slave responds with Start Bit, Write bit, Command and Address
- Master optionally raises saciSelL when done.
Reads
- Master lowers saciSelL
- Master sends Start Bit, Read Bit, Command and Address
- Slave responds with Start Bit, Write bit, Command, Address and Data
- Master optionally raises saciSelL when done.
Presentation
All of this information in PPT form: SACI.pptx
Ben Reese
bareese@slac.stanford.edu