[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