New Boneless-v3 and the Gizmotron
Working Boneless-v3
Aug 2019
Working Boneless v3
Finally managed to get the new version of the processor running on my TinyBx this is in concert with nmigen , nmigen-boards and Boneless v3. I have wrapped all this into my workbench for the project in Gizmotron
Gizmos
from .gizmo import Gizmo, IO
from nmigen import *
class _warmboot(Elaboratable):
def __init__(self):
self.image = Signal(2)
self.boot = Signal()
def elaborate(self, platform):
m = Module()
m.submodules.wb = Instance("SB_WARMBOOT",
i_S1 = self.image[0],
i_S0 = self.image[1],
i_BOOT = self.boot
)
return m
class WarmBoot(Gizmo):
def build(self, **kwargs):
w = _warmboot()
self.add_device(w)
a = IO(sig_out=w.image, name="image")
self.add_reg(a)
s = IO(sig_out=w.boot, name="boot")
self.add_reg(s)
This then can be used from inside the processor
warmboot:
MOVI R0,0 ; set boot image to 0
STXA R0,image ; write to the image external register
MOVI R0,1 ; write one into register
STXA R0,boot ; reboot the FPGA into the boot loader