0
\$\begingroup\$

I have been working on a model CPU build from LS TTL ICs for the past couple of weeks. I am going to give a little background here, during the prototyping I stumbled upon several intresting issues while connecting the OpCode register with the control unit EEPROM. The control unit generates the Control word based on three things. Current instruction step (4 bits), instruction opcode (7 bits) and flag register (2 flags/bits).

Now the problem I am noticing is that when the opcode register (74HCT574) clocks/latches data in and immediately after that outputs the opcode bits (because i have hardwired the output low/enabled) to the EEPROM address lines the EEPROM is not able to decode it properly (datasheet says it needs about 150ns), and the control word that is produced is garbage / wrong control lines are set (Now this is only a speculation but i would assume that since the 74HCT574 IC has some propagation delay of 20+/- NS there is no way we can immediately get the output from it and expect all bits to have settled to their final state). Now what i did is to add a RC circuit between the input of the OpCode register (which charges the cap) and the output enable of the EEPROMs. This way i create a small delay between the time the register inputs and the time the EEPROM is ready to output. I am using a 1nF Cap and a 130 Ohm resistor (to GND) hopefuly creating a 130ns delay before the EEPROM output line is enabled, and this seems to work fine.

Now i have to introduce a similar workaround for the flags register (this time it's only 2 bits) but nonetheless its acting in a very similar manner. I wanted to avoid using additional hardware (ICs) and just add another RC circuit. The problem here is that one RC (from opcode register) gets backfeed from the other (flags register) and viseversa. Now I assume i should be able to use a diode (shotkey?) to avoid the CAPs being reverse charged and discharge into the IC's input lines (the idea is to use those just as read only signals to charge the CAP and disable the EEPROM output temporary until the output has settled), or maybe use a MOSFET instead... But i am still not sure what approach i should take. It would be great to hear from someone more experienced. Also important to note is that the flags and opcode register will never input / work at the same time which is simplifies a lot, otherwise additional Logic wouldve been needed.

PS: This is my first bigger(big?) EE project, and i am really not that well versed into the hardware world yet, so please be gentle. I am sure there is a better approach to what i am trying to do here.

PS2: I am working on a small schematic to describe the problem.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.