On 11/16/2011 5:28 PM, Tony Duell wrote:
Perhaps you want to have a significant amount of
memory. Perhaps so much
that you cna't[sic] get an FGPA[sic] that will hold the logic _and the memory_. No
problem in the real hardware, you conenct[sic] a memory chip to the FPGA. But
a lot of FPGA_specific simulators can't handle that.
Which simulators are you referring to? Like Xilinx's iSim? As long as
you have a model of the memory, you should be able to simulate it.
It gets worse if the external memory is somplex[sic]
to talk to, like many
forms of DRAM. Trying to simulte[sic] a DRAM _inside an FPGA_ and have it fial[sic]
i nthe[sic] right ways if the timing is wrong, just so you can simulate the
DRAM controller you were designing in the first place is fraught with
problems.
I've simulated models for both SDRAM and DDR2 without problems.
The memory vendors often provide verified memory models of their chips.
Then there's the time you wnat[sic] to link your
PFGA circuit to some external
devies[sic]. Suppose you're designing a disk controller for a PDP11, anf[sic] you
want it to use DMA and interrupys[sic]. I hardlly[sic] think you should try ot[sic]
desing[sic] a UUnibus[sic?] or Qbvus[sic] arbitor[sic] in the simulator just so you can
test
your deisng[sic]. And yet many, many, simulators can't handle tie[sic] idea of
'If
you get this signal form my circuit, then assert this one 100ns later,
then wait for my cirucit[sic] to assert this...).
Or if you have an external device that accepts and produces a bitstream
of some kind. Simulating that is always 'fun'.
This is where capturing the signals with a logic analyzer and replaying
them through simulation works great. I have a cheap $150 logic analyzer
that runs admittedly at 24mhz, but can do millions/billions of samples.
One example is when I sampled an entire floppy track (5 million 24mhz
samples), and then ran that through simulation. I also just did 12-bit
digital video replayed through simulation.
Simulation isn't a be-all end-all perfect solution, but it is one tool
in your toolbox.
Keith