Author Topic: looking for a rom/ram emulator  (Read 23784 times)

0 Members and 1 Guest are viewing this topic.

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
looking for a rom/ram emulator
« on: September 08, 2014, 03:38:42 pm »
hi guys
i need to emulate old DIP ram chips at 5V with parallel bus/8 bit (not SPI, not I2C) asynchronous.

looking around for the right equipment i have seen the moates/ostrich-v2

which is
- 175 USD + shipping, not so cheap but … not so expensive
- USB driven (virtual com)
- 1Mbyte/sec
- a bit documented about its hardware protocol (i could write the handler by myself)
- able to emulate a 27040 (512Kbyte/8bit) EPROM at 5V !!! perfect
- may be able to bound an other Ostrich unit in order to provide 16bit emulation

it is quite perfect, but it is an eprom emulate, i need to emulate a ram because the target should be able to read/write the emulated device.

any idea ? suggestions ?


edit:
if you need information about its protocol, and you find that it is a bit hard to find around the net, don't hesitate to reach out to me by PM.
« Last Edit: September 09, 2014, 05:04:57 am by legacy »
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: looking for an rom/ram emulator
« Reply #1 on: September 08, 2014, 05:47:10 pm »
FPGA with external dual ported memory for higher memory density?
PSoC 4 prototype board for 16K? Not sure about speeds and performance.

How many address lines are you looking at?
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for an rom/ram emulator
« Reply #2 on: September 08, 2014, 06:09:48 pm »
FPGA with external dual ported memory for higher memory density?

Spartan3 are 3.3V, my target is 5V, so this way i will need a level-shifter chip-array to adapt signals, also the fpga needs a SoC and an add on (FTDI-something-chip) to handle the USB protocol through a virtual COM. FT2232 in parallel mode is much more complex at the host side.

PSoC 4 prototype board for 16K? Not sure about speeds and performance.

Which one ?

How many address lines are you looking at?

i need to emulate up to 512Kbyte of ram, the Ostrich v2 is exactly like that, but … it is EPROM emulator (read only from the target point of view).
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: looking for an rom/ram emulator
« Reply #3 on: September 08, 2014, 06:14:26 pm »
AFAIK many eprom emulators can also emulate ram. Try to find the manual online.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: looking for an rom/ram emulator
« Reply #4 on: September 08, 2014, 07:12:24 pm »
PSoC 4 prototype board for 16K? Not sure about speeds and performance.

Which one ?
$4 prototype board
http://www.cypress.com/?rID=92146

Or $1 chip:
http://www.cypress.com/?mpn=CG8000AA

The actual chip on both (the $1 is a current promotion) is:
Edit: Oops this is the 41xxx.
http://www.cypress.com/?mpn=CY8C4125AXI-483
This is the same chip as the prototype 42xxx board.

the 42xxx uses the CY84245AXI-483 I believe.
http://www.cypress.com/?mpn=CY8C4245AXI-483


But only 32K memory that's why i said 16K.

But since you need that much memory you might need to add external memory to it.

19 bit address space plus 8 bit that's going to need 27 pins plus 4 for read, write, chip enable and power down.
31 GPIOs add 5 more for 16 bit plus byte select so it's 36 pins exhausting the chip but you will need some free for external memory.


« Last Edit: September 08, 2014, 07:17:35 pm by miguelvp »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: looking for an rom/ram emulator
« Reply #5 on: September 08, 2014, 07:23:47 pm »
Why use a Psoc? Any microcontroller will do. You basically need to control some bus drivers. Still timing on the target part can be tricky to do. Many decades ago I built a eprom emulator using an 8051. I made it act like a printer so I could print hex files and commands to it. IIRC it could do around 200kB/s so it was pretty fast even for large hex files.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: looking for an rom/ram emulator
« Reply #6 on: September 08, 2014, 08:29:28 pm »
Configurable digital pins and up to 5.5Volts on the GPIOs, also he was asking for suggestions, so I gave one.
You are more than welcome to suggest others  ;)

Edit, seems it actually can handle 6.5 volts on the GPIO:
http://www.cypress.com/?docID=46322 page 14:
VDDD_ABS Digital supply relative to Vssd –0.5 – 6 V Absolute max
VGPIO_ABS GPIO voltage –0.5 – VDD+0.5 V Absolute max
IGPIO_ABS Maximum current per GPIO –25 – 25 mA Absolute max
IGPIO_injection GPIO injection current, Max for VIH >
VDDD, and Min for VIL < VSS–0.5 – 0.5 mA Absolute max, current injected per pin
« Last Edit: September 08, 2014, 08:59:55 pm by miguelvp »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for an rom/ram emulator
« Reply #7 on: September 08, 2014, 09:28:11 pm »


Around the CPU/whatever you need to isolate the eprom/ram to the target socket. Just a bit of 245 buffer arounds.

Btw, i have found this project that clarifies the concept. This project seems in use for something that deals with pimp my ride car tuning, also is seems using the same protocol used by Ostrich V2, which is a good points for its firmware. His authors claimed a "an ugly bug" exists somewhere in the circuit, be careful about that  :-//
« Last Edit: October 07, 2015, 01:21:23 am by legacy »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for an rom/ram emulator
« Reply #8 on: September 08, 2014, 09:40:23 pm »


I have also found this other project. It is 8-Bit EPROM/SRAM Emulator that uses a FTDI 2232M breakout module to handle signals. Unfortunately the FTDI 2232 has a driver that seems x86 only, i can't find sources and it seems it is supporting Windows XP and linux.

Btw, its claimed features

Quote
Features
 ----------------------------------------------------------------------------

 - 32K emulation memory
 - Support for 28-pin EPROMs (27C256, 27C512)
 - Support for 32-pin EPROMs (27C010, 27C020, 27C040)
 - Support for 28-pin SRAMs (6264, 62256)
 - Fast transfer of data over USB
 - Open-collector reset output to drive target board /RESET signal
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: looking for an rom/ram emulator
« Reply #9 on: September 08, 2014, 09:41:55 pm »
Google "crome rtp"

http://www.tunewithcrome.com/help/rtp.html

Has links to 3 RTP hardware devices:

Quote
PGMFI RTP - This device is still in development and testing. For more info go to: http://www.pgmfi.org

Xtronics ROMulator - This is one of the original RTP devices available. It is an old system that uses a DB9 serial port, but still usable. For more info go to: http://www.xtronics.com

Moates.net Ostrich - This is the recommended RTP hardware for Crome. It is an excellent system with good battery life and uses a USB connection. For more info go to: http://www.moates.net
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for an rom/ram emulator
« Reply #10 on: September 08, 2014, 09:48:14 pm »
Moates.net Ostrich

sure, what do you think about it ? I have found documentation about its hardware protocol so i am able to write a driver. It uses USB virtual com, so from the host point of view it looks like a fast uart device.

Unfortunately it is a ROM emulator, i am still needing a RAM emulator: any hack ?
« Last Edit: October 07, 2015, 01:23:05 am by legacy »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for an rom/ram emulator
« Reply #11 on: September 08, 2014, 09:49:25 pm »
guys, what do you think about the two project's links i have posted ?
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: looking for a rom/ram emulator
« Reply #12 on: September 08, 2014, 10:14:28 pm »
I know nothing about chipping but that first link I gave you has a lot of information:

PGMFI RTP - This device is still in development and testing. For more info go to: http://www.pgmfi.org

Specially in this link:
http://wikitest.pgmfi.org/twiki/bin/view.pl/Library/WebHome
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 16544
  • Country: us
  • DavidH
Re: looking for a rom/ram emulator
« Reply #13 on: September 08, 2014, 10:37:13 pm »
EPROM and SRAM target emulators used to be standard equipment for embedded design.  They allowed fast programming cycles and real time debugging on embedded systems.  Supporting fast cycles times was always a problem.

With some external level shifting support, I suspect a small FPGA could handle this easily as long as it has enough build in SRAM.  The tricky part will be handling a large asynchronous interface but maybe that will have to be done externally as well.

As costly as they are, it would probably be more economical to buy one unless you want the experience in designing it and have the time.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for a rom/ram emulator
« Reply #14 on: September 08, 2014, 10:47:01 pm »
With some external level shifting support, I suspect a small FPGA could handle this easily as long as it has enough build in SRAM

96Kbyte on the Spartan6 of Papilo/Pro (it's  a very nice fpga-board), BRAM is expensive, also you need to allocate BRAM for your soft core, the BRAM is used to synthetize its ram and its rom, where its firmware will be run.

it seems to me 64Kbyte of the 96Kbyte may be a real constraints in a such practical project.

The tricky part will be handling a large asynchronous interface but maybe that will have to be done externally as well.

The best idea is to synthesize an uart inside fpga and then interfacing it to an FTDI chip. This makes things easy and simple.


As costly as they are, it would probably be more economical to buy one unless you want the experience in designing it and have the time.

My problem is … what to buy.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: looking for a rom/ram emulator
« Reply #15 on: September 08, 2014, 11:03:13 pm »
Still try to consider the parallel port idea. Printing a hex file to an LPT port (even if it is a USB lpt port) makes life extremely simple to get a hex in your emulator quickly.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 16544
  • Country: us
  • DavidH
Re: looking for a rom/ram emulator
« Reply #16 on: September 09, 2014, 12:10:42 am »
With some external level shifting support, I suspect a small FPGA could handle this easily as long as it has enough build in SRAM.

96Kbyte on the Spartan6 of Papilo/Pro (it's  a very nice fpga-board), BRAM is expensive, also you need to allocate BRAM for your soft core, the BRAM is used to synthetize its ram and its rom, where its firmware will be run.

it seems to me 64Kbyte of the 96Kbyte may be a real constraints in a such practical project.

The FPGA could use a fast external SRAM as long as the target cycle time is slow enough which is almost certain on old and low performance systems.  Fast EPROMs are not common.

Quote
The tricky part will be handling a large asynchronous interface but maybe that will have to be done externally as well.

The best idea is to synthesize an uart inside fpga and then interfacing it to an FTDI chip. This makes things easy and simple.

I mean the asynchronous parallel memory interface unless you somehow phase lock the FPGA clock to the target system; the EPROM/SRAM control signals and interface can change state at any time relative to the FPGA clock.  -CS and the read/write control lines of course latch the address and data bus so maybe that is not such a large problem.

Quote
As costly as they are, it would probably be more economical to buy one unless you want the experience in designing it and have the time.

My problem is … what to buy.

They are pretty specialized devices so all of the makes and models I am familiar with are long gone.
 

Offline MarkL

  • Supporter
  • ****
  • Posts: 2120
  • Country: us
Re: looking for a rom/ram emulator
« Reply #17 on: September 09, 2014, 12:40:23 am »
The Dataman S4 is an EPROM programmer with ROM and RAM emulation.  It accepts various hex format and binary downloads on its serial port, so interfacing to Linux should not be an issue (albeit slow).

Unfortunately, it's old and discontinued but you can still find it on ebay.

Here's the product page where you can find the manual and other support info:

  http://www.dataman.com/dataman-s4-resources

And at the moment there's one on ebay, NIB, for US$375:

  http://www.ebay.com/itm/131289875274



 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for a rom/ram emulator
« Reply #18 on: September 09, 2014, 04:29:23 am »
Still try to consider the parallel port idea. Printing a hex file to an LPT port (even if it is a USB lpt port) makes life extremely simple to get a hex in your emulator quickly.

Like the SoftTech MultiROM of my friend. Even if i think it is closed, its protocol should look like something similar to "printing hex"  to an LPT port :D
I can't find any information about that, i don't know which parallel mode it is using (SPP ? EPP ? ECP ? whatever ?), it may be it could be hacked to be encapsulated into USB-something-adapter that makes it possible to use this equipment with LPT-port-less linux machines.

It looks like an old school professional equipment, my friend has found one of this brand-new old gadget on ebay for 100 USD


Quote
SoftTech MultiROM

Summary:
Up to 16 Mbit emulation buffer, 8- and 16-bit data bus, 60 ns access time, Trace Buffer, 2.7, 3.3 and 5 V support, Live Access and Virtual Terminal.
 
Full Text:
SofTec Microsystems has announced the development of MultiROM, an advanced debugging tool for embedded systems. MultiROM is a full-featured EPROM and FLASH mamory emulator, so EPROM or FLASH memory programming during the application development process is no longer required. MultiROM seamlessly replaces the EPROM or FLASH memory of the system under development, thus allowing a very fast uploading of the user’s code directly onto the instrument’s built-in emulation memory. During the emulation, the uploaded code can be watched, edited and analyzed in real time. MultiROM is connected to the host PC through a standard parallel port, in order to achieve faster transfer rates than commonly used serial ports. The MultiROM pod is simply inserted into the target’s memory socket—MultiROM is independent from the target microprocessor, and the emulation of every EPROM or FLASH memory (in DIP, PLCC, TSOP or PSOP package) is completely transparent and straightforward. MultiROM emulates up to 16 Mbit devices, with data bus widths of 8 and 16 bits. The memory access time is guaranteed to be less than 60 ns. MultiROM can emulate 2.7 V, 3.3 V and 5 V devices, thanks to its internal circuitry—-no external adapter is needed, thus ensuring no increase in memory access time. The Live Access feature allows the host PC to transparently view/edit the memory under emulation in real time, without in no way affecting the target’s memory access timings (no wait states inserted). The Live Access feature allows the user, for example, to modify control variables (loop counter variables, timing constants, etc.) and look-up tables, or to simulate conditions that trigger external signals; all this in real time, while the target system is running. MultiROM also features a Virtual Terminal, a communication channel between the host PC and the target system which allows the latter to send messages to the former during the emulation. By simply accessing some dedicated MultiROM locations, the target can send, while running, the content of its variables or whatever other text messages to the host PC; the Virtual Terminal messages are displayed in a dedicated user interface window. The emulator provides an output RESET signal that can be generated as needed. MultiROM, additionally, can generate interrupt signals (depending on memory access conditions specified in the user interface) that can be used by the target system. A trace buffer is also built in into the instrument. MultiROM comes with a powerful user interface for Windows 95/98/NT/2000, power adapter, parallel cable, DIP-32 adapter and user’s manual. Adapters for other packages are available on request. An interface library (DLL) is also provided (as an option) so that you can interface your own programs directly with MultiROM.

 
« Last Edit: September 09, 2014, 04:44:16 am by legacy »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for a rom/ram emulator
« Reply #19 on: September 09, 2014, 04:55:58 am »
I mean the asynchronous parallel memory interface unless you somehow phase lock the FPGA clock to the target system; the EPROM/SRAM control signals and interface can change state at any time relative to the FPGA clock.  -CS and the read/write control lines of course latch the address and data bus so maybe that is not such a large problem.

Thanks, it clarifies. Do you know any existing project or product like that ? It looks cool.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for a rom/ram emulator
« Reply #20 on: September 09, 2014, 05:00:33 am »
The Dataman S4

yeah, the Dataman S4 has been in my wish list since the beginning, sooner or later it will be under the christmas tree :D
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 16544
  • Country: us
  • DavidH
Re: looking for a rom/ram emulator
« Reply #21 on: September 09, 2014, 11:17:51 am »
I mean the asynchronous parallel memory interface unless you somehow phase lock the FPGA clock to the target system; the EPROM/SRAM control signals and interface can change state at any time relative to the FPGA clock.  -CS and the read/write control lines of course latch the address and data bus so maybe that is not such a large problem.

Thanks, it clarifies. Do you know any existing project or product like that ? It looks cool.

No, I have just given it some thought in the past.

Given the complexity, the price for a high capacity dual port asynchronous SRAM is actually pretty reasonable although the FPGA provides better debugging capability since it allows setting breakpoints.
 

Offline skyline_stu

  • Newbie
  • Posts: 6
Re: looking for a rom/ram emulator
« Reply #22 on: October 03, 2014, 04:52:14 pm »
I understand what you are trying to do, but there may be some issues with the current suggestions.

The Dataman S4 may not support your device. And if I remember correctly, it may well be limited in read/write speed !
BTW, watch out for leaking NiCd batteries in the old units !!!  Their serial interface is a tad slow too.
But the LCD display is handy for changes when not connected to a PC.

BiPOM have some great devices available, but they are parallel only.

The Ostrich's works OK for ROM emulation but have some limitations when tracing. Getting 2 Ostriches syncronised and tracing can be a bit of an issue.

You neglected to mention how fast your target bus speed is, but I assume it's pretty slow.


A while back I needed a device to emulate/monitor a Flash EEPROM and SRAM on a multiplexed  bus, so I rolled my own emulator. This flash was written to on power down, just to make things even more 'fun'.

I used a FTDI USB serial to parallel chip for comms. For the ROM emulation I used some NVSRAM. They are very fast and cheap. The #1 advantage is that you can program them like an EPROM. You can also dump these after powering down and read/reset the changed data. Not having any dual port rams in my parts bin, I 'built' some out of some 128kx8 SRAM's with a CPLD as a memory, I/O and BUS controller. There's also a micro in there which monitored reads, writes and real time tracing. It's big, power hungry and worked very well at the time.

I initially considered using an FPGA & soft micro core, but the BRAM limits on my FPGA boards was a limiting factor (not to mention 3.3v and potential bus translation issues). Do remember many FPGA's list the BRAM in kilo BITS, not bytes.


BTW, the best tracing EPROM emulators EVER were produced by Racelogic, but sadly they are no longer made. The software was extremely well though out (it's DOS based). These are from the early 1990's. It's handy to know the genius who made these, as I've since hacked one of mine to allow R/W access, tracing and updating in real time. It's only 64kx8 bit though.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: looking for a rom/ram emulator
« Reply #23 on: October 03, 2014, 09:46:17 pm »
The Ostrich's works OK for ROM emulation but have some limitations when tracing. Getting 2 Ostriches syncronised and tracing can be a bit of an issue.

But it is fast, usb driven (by libusb, on the linux user land side). Unfortunately it is expensive and ROM only. The trace feature is not working, bugged in software.

You neglected to mention how fast your target bus speed is, but I assume it's pretty slow.

120nsec time access

I used a FTDI USB serial to parallel chip for comms.

which FTDI chip ? 2232 ? Can i see something ?
 

Offline skyline_stu

  • Newbie
  • Posts: 6
Re: looking for a rom/ram emulator
« Reply #24 on: October 04, 2014, 07:24:32 am »
Yes, the Ostrich is fast, a 27010 loads in about 4 seconds. Actually, I feel the bug is in the Ostrich hardware/firmware, not the PC end. It doesn't reliably trigger on the bit masks you send to the emulator.

I used a FTDI245R based board. They are inexpensive (no more than $20) and easy to use. There are 4 pins to monitor with your embeded software or hardware.

They are fast - 1Mbyte / sec and have a decent FIFO buffer 128byte RX, 256 byte TX

I send out the data in an 8 bit stream and have the emulator h/w re-assemble it to 16 bits.

My emulator is pretty simple in it's operation. The Micro waits for a control command, like download/upload data, base address and trace window size.  Uploads to the emulator are performed with the target power off - otherwise there will be contention and this really slows things down.

There are several SRAM's banks in the design. Some monitor reads, some writes and the corresponding data. The address bus is common to all devices, as well as being under micro & cpld control.

When I'm tracing, I send a command to repeatedly scan through the trace region and see if there have been hits in the desired region (i.e. $2000-$20FF).
This is performed by using another SRAM, When a system bus write is performed, the HIT buffer (which is initially cleared to $00) changes to $01, and the corresponding write value is placed in a dedicated write SRAM buffer. If there was a hit, the micro sends out a block of data with the raw address (a hex value from $0-$FF) and the data as a raw hex value. The PC end determines the address by adding the base address + offset (from the HIT buffer). The s/w then marks the area RED (write) and updates the value.  For a read, a block toggles to GREEN.

There are 2 SRAM 'system' banks, they are mirrored copy of the other, unless a value has been changed. The CPLD and micro control which is accessed, swapping when the RAM is disabled. (using the target _CE  line and a system CS pin). The micro then updates the other bank until another change is done.

Doing it this way reduces the processing overheads and improves trace speed. Obviously the micro & cpld monitors the R/W - _CE and/or _WR/_OE lines depending on where your trace region is, and does the update and swap when the chip is not selected.

You may find 16 bit SRAMS easier to use due to their larger size. In that case, you'd just need to select the upper or lower 8 bytes of data. :)

Break your design up into blocks and it will be a lot easier to implement.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf