A provision needs to be added to be able to read and or write (override) inputs for debugging or other purposes, such as testing, updating constants, etc.
I agree that formalization is required. I've built an emulator, and hand coded some logic into it as a test, and can simulate a 1024x1024 grid at about 35 Hz on my desktop pc (half that on my laptop).
My near term goals are to be able to take an expression, run it through a set of tools to be written, and then feed it into the simulator, and run it.
I can guess at the energy required to change states, and thus get a rough estimate as to power usage/efficiency/speed, etc. If I get myself to the point where I've got a chip designed, I'm sure the EDA tools can give me far more accurate numbers.