DuPAL-PAL-DUmper / DuPAL_Analyzer

This a Java tool that interfaces to the DuPAL board via serial connection. It performs analysis that would be problematic to implement on a MCU.
GNU General Public License v3.0
22 stars 6 forks source link

Output pin used as a feedback input not supported: causes mismatch error during analysis. #6

Open hkzlab opened 6 months ago

hkzlab commented 6 months ago

Referring to this conversation and this with TubeTime on Mastodon, the analyzer doesn't handle well an output pin being used as a feedback input.

so this output (O12) is supposed to drive the enable pin on the data buffers. it looks like it was designed to release the bus during a bus error condition (BERR). image

BERR is a truly bidirectional pin that drives the open-drain BERR signal on the Amiga bus. i think this is what was tripping up DuPAL. image

i'm thinking about how a PAL dumping program should deal with this. ideally you have a driving circuit that can detect if the output state is 1, 0, or hi-z. if it is hi-z, then you have to treat it as an additional input.

or better yet, treat all IO pins as both inputs and outputs. drive them as if they are inputs as you walk the state tree, but always check to see if the pin state matches what you are driving. if there is a mismatch, then the pin has been turned into an output and then you 1) record the actual pin state instead of the one you are trying to drive and 2) record that it has become an output so that you can create the IO.oe term correctly.

This probably requires an overhaul of how the state map is implemented/walked through.

hkzlab commented 6 months ago

I will attach the complete equations/jed files if they get released.