(V)HDL Toolsets

Paul Koning paulkoning at comcast.net
Thu May 21 11:55:50 CDT 2020

> On May 21, 2020, at 12:21 PM, Jay Jaeger <cube1 at charter.net> wrote:
> On 5/21/2020 9:51 AM, Paul Koning wrote:
> ...
>> If the timing in your machine is reasonably sane and has enough margin, the simulation should be painless and synthesis should produce few issues.  If you have bits that are sensitive to wire or circuit delays, that's different.  Unfortunately, the 6600 is utterly infested with such issues, to the point that it's hard to see how it ever worked at all -- the timing documented in the manuals and implied by the wiring can't actually work.  A 1410 is probably better, especially considering that IBM had some senior designers who had experienced timing pain first-hand and had learned to avoid it.  I'm thinking of people like Gerrit Blaauw (not sure if he was on that project, though).
> There may be some such sensitivities, but I doubt there are many - the
> 1410 was not a fast machine by any stretch of the imagination.
> Actually, the situation I am most concerned about in that department is
> that the FPGA signals will propagate faster than the original, so a
> signal might change state too quickly as compared to the original.

This sort of question is why I found starting with the simulator is helpful.  In a simulation you can specify delays directly.  So for my 6600, I have the gate delay (5 ns) and the wire delays (1.3 ns per foot, in the twisted pair, or 25 ns for coax cables including tx/rx circuit).  Actually, I only include wire delays for "long" wires; the design clearly uses wires longer than needed in various places for delay reasons, but my guess is that short wires are not time sensitive.  That may be wrong; I need to run it again without that assumption to see if it helps.

Once the design works that way, I can then see what would happen in synthesis, by replacing the original stage and wire delays by much smaller values.  Any place where that breaks things needs an explicit register inserted to replace the wire "register".  I know there will be a bunch of those, hopefully hundreds and not tens of thousands.

For more sane machines like a 1410 or an EL-X8, the same approach lets you determine whether there is any timing sensitive stuff in the design.  If not, then changing the model delays from "original" to "very fast" would break nothing.  If so, turning off the delays gives you a synthesizable design, or very nearly one.


More information about the cctalk mailing list