Thanks for your reply. Do you mean the built-in splitter in LogicCircuit? Those are simply a way to minimize visual clutter by letting the user draw with fewer wires. It's not supposed to represent a real-world component.
A splitter for splitting, I don't have a problem with that. A splitter for joining outputs together, I have no clue what the outcome will be. Does it work like OR, or like AND, or something else? And sorry, don't have the time to go through the documentation if that is even a valid connection.
I'm not sure what you mean, in regards to building small units. LogicCircuit lets you break things down into very small units, which is how that whole project was built. The 4-bit adder can be broken down into half-adders, which only consist of a XOR and AND gate. Likewise, the 'registers' can be broken down into single-bit memory circuits of only 4 NAND gates. I would suggest the most complex thing is the 4-bit multiplyer, which uses 16 AND gates and several half/full-adders.
What I meant was, how easy is it to take that block and put it to test, i.e. set some sets of inputs and clock and watch what comes out and check if it is correct. Testing of standalone units one by one is really what gets logic design going. If you can do it simply and painlessly, then go for it. If you can't, start looking for another tool to express the logic behind your design.
The only thing I've tested outside of LogicCircuit is the memory circuit, which I physically built. As far as I know, LogicCircuit simulates things pretty accurately and the physical memory I built behaved exactly as demonstrated by the program. I don't know Verilog or VHDL but I'm going to try to learn one of those, if I have time. I would aim for VHDL because my favourite FPGA computer was written in VHDL.
Two things, the fact that what you draw behaves the same way as a physical thing is nice to have aka mandatory, but it doesn't really help you find what problems you have and where they are.
Second, I would still suggest verilog (my personal opinion) as it is a bit less verbose than vhdl, so I like more working with it more, but really both can do the job just as well.
The key part in logic design is testing. As you have it now, basically all you can do with the design is run that code and see what comes up. In HDL languages like verilog or vhdl you can make code that runs the simulation and checks the expected results at the same time. That way when you fiddle with the inner workings, trying to get more speed or or lower latency or whatever, you can simply run that test and be sure that you (probably) didn't screw anything up with the new changes.
But what is more important, it lets you check all the inner modules like ram and multiplexer and counter without copy pasting them out of the circuit - once you write a test for each module, you can allways be sure that what you have is correct.
So back to your original question, how is anyone to review what you have done? The complete circuit is quite complex and convoluted, so one would like to divide it into modules to check. As I remember, each module explodes into a bunch of interconnected gates, which still is very confusing. Which brings me to another nice thing about HDL languages, not only is usually the function of the circuit more or less apparent, you can have comments at each line to explain what is going on, which most of the time is hard to explain in schematics.