Regular Visitor
Posts: 5
Registered: ‎02-09-2016

soft cores - coreI2C and coreSPI

Hi guys,

I have been trying to implement the soft cores SPI and I2C.

The coreSPI works seamlessly as expected with minor software changes vs the hard SPI core.


How ever, when I try to implement the coreI2C I'm hitting issues that I'm stuck at...  Basically I'm able to start the module and it pull down the SDA line and then starts toggling the SCL line infinitly.  Not toggling address or anything on the SDA line, just holding it down...

I'm suppose to get a interrupt from the core when I start, but that is never generated (I did pull the interrupt line out to a pin.)

I was expecting the softcore to work as the hard core, but there seems to be quite some differences...  expecially a quite large interrupt service routine ISR.

Has anyone experience with using the coreI2C with the smartFusion2 and perhaps a simple example for me to get it going?


I have attached my example project that triggers the hard SPI interface, then the softcore coreSPI interface.  Then it run the hard I2C and then the softcore coreI2c.  The pins are routed to PMOD2 and PMOD3.


Best regards





Avnet Employee (Regular Contributor)
Posts: 21
Registered: ‎04-21-2015

Re: soft cores - coreI2C and coreSPI

Hello, are you still having this problem?

Also, did you try the simulator?  Is your problem that the COREI2C_0 is not generating an interrupt when you expect one?  Are you monitoring its inputs on the PMOD test pins also?  I have your project opened and I can look into it if you still have this issue, so please let me know.


Regular Visitor
Posts: 5
Registered: ‎02-09-2016

Re: soft cores - coreI2C and coreSPI

Yea I still have not solved this...


Mainly supprised by different implementations soft/hard cores.  This should have been seamless switch from the software stand point..


I will check to morrow if I find a example on the Microsemi page ...

Posts: 1
Registered: ‎10-18-2016

Re: soft cores - coreI2C and coreSPI



Have you got the solution to your problem, I am also facing the same proble, if issue is resolved pls let me know whats the cause and share the working code, it will be helpful for me.