Bug fix: arbLost should be asserted when bitState =/= s_bit_idle (#49)
authorsolomatnikov <solomatnikov@users.noreply.github.com>
Fri, 23 Feb 2018 20:09:18 +0000 (12:09 -0800)
committerGitHub <noreply@github.com>
Fri, 23 Feb 2018 20:09:18 +0000 (12:09 -0800)
src/main/scala/devices/i2c/I2C.scala

index be7ff4a..b3e2db5 100644 (file)
@@ -202,7 +202,7 @@ trait HasI2CModuleContents extends MultiIOModule with HasRegMap {
        s_bit_wr_a    :: s_bit_wr_b    :: s_bit_wr_c    :: s_bit_wr_d    :: Nil) = Enum(UInt(), 18)
   val bitState    = Reg(init = s_bit_idle)
 
-  val arbLost     = Reg(init = false.B, next = (sdaChk && !sSDA && sdaOen) | ((bitState === s_bit_idle) && stopCond && !bitCmdStop))
+  val arbLost     = Reg(init = false.B, next = (sdaChk && !sSDA && sdaOen) | ((bitState =/= s_bit_idle) && stopCond && !bitCmdStop))
 
   // bit FSM
   when (arbLost) {