LibreGates_20200801.tgz is online !
This is what should have been #VHDL library for gate-level verification's v2.10 but the scope of the change cascaded into a big structural change, which is necessary anyway to get the Backwards gates working.
All the previous unit tests work and indeed have been instrumental to get the new version right. They took time to develop and fix but they are priceless because without them, the archive would not be as right so fast (it only took some hours to get things back to relatively bugless and working status).
Unit tests are invaluable and also serve as examples, tutorials and showcase the functions and usefulness of the library. More tests should follow...
But for now I must focus on getting the Backwards gates working, and I have added a new enum :
type enum_gate_kind is ( Gate_boolean, Gate_register, Gate_backwards );
I don't want to break any part of the code, which is quite sophisticated... So I keep the gates numbering system :
- gate numbers > 0 are library gates. Now it is possible to specify the "kind" (either boolean, register or backwards)
- gate numbers < 1 are ports
- If the number appears on an output, the port is an input
- conversely, if the number appears on an input, the port is an output
This reduces the amount of modifications, compared to the bolder plan I had but that would be much more harder to get right and fast. I get my feet wet again by adding support for Backwards and then I'll see how I can manage to get a useful, accurate and reliable model for the DFFs and latches.