On 5/21/2020 11:55 AM, Paul Koning wrote:
> 
> 
>> On May 21, 2020, at 12:21 PM, Jay Jaeger <cu...@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.

I do indeed plan on starting with simulation - just not for that reason.
 Its just easier to debug then the FPGA proper.  ;)

I suppose I could figure out the actual wire list, and thus wire
lengths, but it would be have to be limited only to inter-panel wires,
and even that much would be painful and very time consuming.  But yeah,
it makes sense to model gate delays in a general way and then perhaps
lower them to see what happens at higher speeds, as you suggest below.

> 
> 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.

I hope not to introduce any delays not present in the original.  Instead
I do plan to insert D flip flops anywhere there is a combinatorial loop.

> 
> 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.
> 
>       paul
> 
> 

JRJ

Reply via email to