sguav
Joined 10 years ago
Joined 10 years ago
For the lights that I want to "keep mechanically in sync" I replaced the switches with buttons and used a re-flashed (ESPhome) sonoff-mini which conveniently has a button input for the relay. Everything is synchronized no matter the operating interface.
Before tapeout there are steps which could benefit I suppose. But as a functional-programming n00b I don't see how that could be the solution. I would argue that improving place and route algorithms to the point that deploying to a (large) FPGA is almost as quick as compiling software would be a huge step forward.
As the parent's-parent comment said in other words, think circuit first.
They give you access to structural descriptions for bitwise control, but also and mostly behavioural descriptions which allows hierarchies of modules (the blocks you described) and abstraction up to anywhere basically. This last part is generally referred to as RTL (register transfer level) design.
To make a circuit from this RTL description you usually need more steps: synthesis (where RTL gets "compiled" into the actual gates and flops to be used) and implementation (where the logic gates of the previous step are actually translated in the "fabric" you have available - FPGA logic blocks, a foundry's standard cell library ...).
This worries me, as I'm experiencing it right at this time. No idea how to get unstuck either.
https://en.wikipedia.org/wiki/List_of_Italian_cheeses
I would argue that it is more probable to find more "great cheeses" where you have many different varieties.
Anyway, I suppose it would benefit the article if the title was to reflect the original as per HN guidelines