Dataman S4 Emulation FAQs
Can you please advise me as to what the read cycle time of the S4 is when running in emulation mode?
Dataman do not recommend that you use S4 to emulate anything with access time shorter than 120 ns.
Can S4 emulate 16 bit EPROMs?
No, S4 cannot emulate 16 bit EPROMs (or any other memories), it is limited to 8 bit devices only.
Is full, real time emulation possible, i.e are single byte changes permitted without a CPU reset.
No, S4 cannot do this.
My S4 does not seem to emulate 2716's correctly, why is this?
Due to a quirk in S4's hardware, 2716's must be emulated at address 00800, rather than 00000. Therefore if you need to emulate 2716's, code must be positioned at 00800-00FFF. When loading a 2716 to be emulated. The LOAD command can be set to start loading at 00800. This is achieved be by pressing the up arrow key.
If code is downloaded into S4's RAM, it must be moved to address 00800 prior to emulation. e.g:
- 0000, 007FF, 00800
When using the emulation function, the emulation starts only in real time execution. Do you have in option, a emulation Software or Driver with step command and trace analysis display? This is not possible with S4.
When trying to emulate a 29F002B, I get the message:
- >Emulate 29F002B
- (Lower Part Only)
Your S4 is telling you that it does not have enough RAM memory to emulate this device fully i.e you only have a 128K S4, please upgrade your RAM to 512K, please contact technical support for more help with this.
I am trying to emulate an H58C256 device, I fill the S4 RAM with my data and plug it into my application hit EMUL and then apply a reset pulse to my board, my logic analyser shows the S4 to return FF only.
Hitachi 58C256 is an EEPROM device. So it is essential that you use cable with DIP28 header (you can put 28 pin socket on DIL32 header of S4 emulation cable). you should do the following on the S4 side:
- Disconnect wire (or pin) going to pin 27 (WRn pin for EEPROM)
- Disconnect wire going to pin 1
- S4 cable to pin 27
- DIL28 header to pin 1
I am trying to perform ram emulation , the 2716 device is selected on S4 and the green emulation is pressed, the Microprocessor board is switched on, then the program becomes corrupted. Editing the RAM area of the S4 shows that the data is meaningless. The Microprocessor system being monitored consists of a Z80 running at 2MHz addressing two eproms (2716's) and one ram device 6116. The 6116 device is replaced by the S4 during emulation.
The emulation cable isn't capable of coping with fast memory accesses. This has nothing to do with the quality of the cable - nothing else would be any better - the cable impedance is as well matched as possible. It is because the target system is sending logic signals with fast edges down a long cable. It takes a while for reflections to settle. So it only works with systems that have long access times.
If the client has a scope he can look at the data coming back And see if it has settled before the rising edge of the read strobe.
Another point is that the target system must be designed to use the CE and OE as intended. Access-time starts with a settled address and a valid Chip Enable. The Read Strobe is usually asserted later, and should be connected to the Output Enable pin of the Chip being emulated, because that only enables the output buffers (in S4 or in the chip it is emulating). The data has to become valid before the end of the read or write strobe. This won't happen unless a valid Address and CE were asserted before the Read or Write strobe.
The read strobe must not be asserted during a write attempt. In other words the target must be able to address the emulated memory as RAM. Otherwise there will be conflict on the data bus - what can also be seen with a scope because the data doesn't move cleanly from low to high. If it works some of the time then it is timing or conflict that is the problem.
If the target system is designed correctly and it still doesn't work, then shortening the emulation lead and write lead will give the cleanest signals. At this point, if the emulation still doesn't respond fast enough, then slowing the target system down by dividing the clock is the only remaining possibility.