While there has been much work on example boards and core logic over the past months, that work has exposed limitations and UI quirks that have impeded work. Now that the main features are done, it's time decompress and clean up some of that cruft, in particular to maintain development velocity going forward.
Some of that is pretty straightforward, for example now that KiCad 6 is out, it has a slightly different netlist format. It is also intolerant of the prior consistent identifiers that allow us to update a partial layout in place with a new netlist. But now that we've updated the netlister, KiCad 6 has a lot of nifty features, for example including good built-in support for hierarchy which our design tool revolves around.
Can you spot the differences in the IDE?
The IDE has also been slightly neglected, especially given how important a good IDE is for productivity.
One of two major changes is using the run configuration, and showing the run operation in the gutter (the green arrow next to the line numbers). Instead of needing to put the cursor in the right place in code and finding an option buried in the menu, this provides a more intuitive and obvious way to set the visualizer design. It also allows using an existing hotkey to (re)build a design, instead of needing to remember a custom hotkey.
The other change is showing compilation output in the run console. Previously... we didn't support any logging output while compiling. Part of this was that there was no UI to plumb things through, part of it was that we needed to use the stdout stream of Python to communicate compilated data to the IDE. An infrastructual refactor allows separating the compiled data from user logging - and while not perfect, it works well enough. You can see how we have a print()
in the HDL code, and which shows up in the run console.
While there is more infrastructural work in progress, with these we should hopefully be more agile with building new designs, and be better set up for the next phase of research work.