|
|
|
@ -201,8 +201,7 @@ class bfloat16NeuralNetworkCore(Module, AutoCSR, AutoDoc, ModuleDoc): |
|
|
|
|
NextValue(self.Loader_Delay, self.Loader_Delay + 1), # Increment |
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
""" |
|
|
|
|
fpu.fsqrt |
|
|
|
|
""" |
|
|
|
|
fpu.fmadd |
|
|
|
|
fpu.fmsub |
|
|
|
|
fpu.fnmadd |
|
|
|
@ -212,14 +211,14 @@ class bfloat16NeuralNetworkCore(Module, AutoCSR, AutoDoc, ModuleDoc): |
|
|
|
|
""" |
|
|
|
|
Loader_fsm.act("Loader_EXEC1", |
|
|
|
|
NextValue(self.b16Status.storage[5], True), # Current status added |
|
|
|
|
NextValue(fpu.fdiv, True), # This command requested |
|
|
|
|
NextValue(fpu.fsqrt, True), # This command requested |
|
|
|
|
NextValue(fpu.fready, False), # Engage trigger |
|
|
|
|
NextState("Loader_EXEC2") |
|
|
|
|
) |
|
|
|
|
Loader_fsm.act("Loader_EXEC2", |
|
|
|
|
NextValue(self.b16Status.storage[6], True), # Current status added |
|
|
|
|
If(fpu.fready, |
|
|
|
|
NextValue(fpu.fdiv, False), # Clear command request |
|
|
|
|
NextValue(fpu.fsqrt, False), # Clear command request |
|
|
|
|
NextValue(self.b16Result.storage, fpu.fresult[16:32]), # Pick result (little endian, high word!) |
|
|
|
|
NextValue(self.b16Status.storage[15], True), # Indicate readyness ... |
|
|
|
|
NextValue(self.bReady, True), # Indicate readyness (LED on!) |
|
|
|
|