![]() Generally RAMs aren't hooked up to DIP switches like your circuit, but it can be done for the purpose of learning how the RAM works without the additional complexity of understanding how the CPU works.Īnother tip to simplify your circuit: instead of having separate "read" and "write" DIP switches, use a single switch and an inverter to set OE and WE to opposite states (OE=high, WE=low for one switch position and OE=low, WE=high for the other), and tie the tristate pins on the buffer to the corresponding RAM pin. The CS pin would typically be tied to the address logic so that the RAM is selected when the appropriate address range is requested by the CPU. The OE and WE pins would go to corresponding pins on the CPU (possibly with additional logic for device selection), and the CPU handles reads and writes automatically. In real life the I/O pins would be connected to a CPU's data bus, and the address pins to the CPU's address bus (with additional logic to split the addresses into banks for ROM, RAM, memory-mapped I/O devices, etc). ![]() Did you copy & paste one DIP switch to create the other? Try selecting it from the component list (or whatever method is used to add components in Multisim) instead. I'm not familiar with Multisim, but if you find the two sets of DIP switches are locked together there's probably some sort of key or ID value that is the same for both, and changing one of them will fix it. When WE is low, the outputs become inputs so OE becomes irrelevant. WE overrides OE so that's why you can write with WE low regardless of OE's state. OE is output enable, so that enables reading. Either tie that DIP switch to ground and have switch-on be logic low, or use a 74HC241 and add pull-down resistors. Looks good to me, except for one thing: TTL (74LS parts) default to logic high if floating, so DIP switches to 5V won't pull the buffer inputs low when off.
0 Comments
Leave a Reply. |