[Simh] UNS: RE: FKABD0 diagnostics 11/34 fail in simh?

Brad Parker brad at heeltoe.com
Tue Dec 1 09:03:44 EST 2009


Shoppa, Tim wrote:
> The diagnostics are an interesting set of tools. Usually they go far beyond
> Simply checking for conformance to the published architecture.
> The older diagnostics were written to help do board repair to the component level.
> Some are exercisers designed to trigger specific patterns for the logic analyzers of the day.
> And often check all sorts of corner cases unknown to anyone except the
> Diagnostic author :-).
>   
I understand, and agree, but in this case I think the discrepancies are 
interesting.  I've run into a handful
of cases.  I'm thinking that I should publish a document.

This started when I ran into someone doing an exact copy of the 
PDP-11/70 in an FPGA.  I believe
he claimed it was going to be used to run a nuclear power plant. I have 
no idea if that is actually true.
but it's possible given who he was working for.

Anyway, he was confused by the divide instruction.  There were some odd 
cases and little documentation.
His code stumbled on the diagnostic, which did some odd checking.  He 
went looking for help.

At the time I was working on an 11/34 in a FPGA so that was 
interesting.  My divide code was more brute force
(read, "slower") and didn't have the same problem.  But I hit other 
issues running diags, like the "auto incr/decr
doesn't happen when a bus error occurs".  And several others.  In pretty 
much all cases the simh behavior
was also non-conformant - from the diag's point of view.

So, for a simulator I agree.  But for those of us "cloners", it's more 
of an issue. We're interested in
behaving the same way in all cases because who know who might take 
advantage of that and the
diags seem to be the closest thing to a spec we have.

In my case, I'm doing lock-step co-simulation with simh.  The rtl runs a 
cycle and then simh runs a cycle and
the results are compared.  Since simh doesn't pass the diags, my co-sim 
fails.  I'm left wondering if I should
fix simh to match the diag.  I've decided the answer is yes in my case.  
Others might have  different take
because they have different goals.

I don't think the 11/70 guy was running co-simulation.  I think he was 
just trying to pass diagnostics.
But the result is the same - the diag failed and he was left wondering 
what the correct behavior should
be.

I think it's quite possible, in hardware anyway, to pass all of the cpu 
diagnostics, if you make that a goal.
There's a lot of good stuff in the DEC PDP-11 diagnostics I have read.  
Passing them has certainly
been a valuable exercise for my rtl.  And the code is pretty well 
documented, imho.  I think simh
would do well to pass of the 11 cpu diags.

-brad




More information about the Simh mailing list