On 3/22/2007 3:00 AM, The digits of Pieter Hulshoff's hands composed the
following:
Well, the thing is: it will remove the latch, but I seriously doubt the
design will do what you intended. Since this is combinatorial logic, the
FX2_DATA output will be "ZZZZZZZZ" in the ELSE situation (well, it will
be the previous MI_DATA for 1 delta cycle, but I don't think that will
matter much).
As I already wrote, it looks like you actually WANT to design a latch.
Under FX2_MA_CNT_nUPDN = '0' you wish to store MI_DATA in PSRAM_DATA,
and in the ELSE situation you wish that data to be placed on the
FX2_DATA output. If you want to store data under a level based
condition, you're designing a latch.
Again, my original question: what is your design supposed to do? Can you
describe it in words or perhaps a picture (in ASCII is fine)?
Regards,
Pieter Hulshoff
What your saying is what I thought would happen so now I am even more
confused. I don't think I do want the latch though. I posted the reason
a few threads up but will repost with some clarifications.
The memory is not an internal memory cell. It is an external Micron
PSRAM. A PSRAM is basically a SDR SRAM with an Async Memory controller
built in. The memory is not in the device (My device is a Xilinx CR2
CPLD BTW). The design takes data that comes from a source (MI_DATA - a
Micron Imager) and pushes it to an external PSRAM (PSRAM_DATA). Then an
FX2 USB controller (FX2_DATA) pulls it from the PSRAM. So in this way
when the data comes from the imager to the PSRAM the FX2 is Z or DK.
Then the next state the PSRAM goes to the FX2 and the MI is Z or DK.
I don't think I want a latch because that complicates the timing since I
need to latch it at exactly the correct time. If I just pass it though
it makes things easier. If I start the pass early no biggie, as long as
it is valid at the time I issue the write to the PSRAM. If I latch then
when I latch becomes important.
In theory I shouldn't even need to run the data lines though the CPLD,
only control the OE lines via the CPLD. I ran them though the CPLD just
in case I had a timing issue and needed to latch them, but I don't think
that will be the case. It would be nice to not even run the data lines
though the CPLD on the next spin of the PCB. I'm using Z since so that
at some point I can try to tie the data lines together externally and
use the OE lines only not even passing the data in the CPLD.
So what I am really after is more of tri statable mux than a latch.
Am I being any clearer?. Of course it would be easier if you had a
schematic and the rest of the picture, but that is more than I feel I
Can ask of this group.
Thanx for you help
Hawker