R
rickman
Guest
KJ wrote on 8/6/2017 1:33 PM:
I'm talking about the time the address must remain stable. Your
calculations above show it is at a minimum T/2.
When running with fast SRAM it can be very hard to get this to work
properly. The devil is in the details of the chips.
> The technique works. You get single cycle read or write on 100% of the clock cycles, timing is met, period...and it worked 20+ years ago on product I designed [2].
Great! You were able to use it on one device at an unknown speed. What was
the clock period?
Did you supply the WE from the external clock (same as to the FPGA) or a
copy of the clock from inside the FPGA? In the case of the former the total
delay through the chip of the signals can be a significant part of the setup
margin. If the latter it is hard to control the routing delays.
--
Rick C
On Sunday, August 6, 2017 at 12:40:25 PM UTC-4, rickman wrote:
KJ wrote on 8/6/2017 8:01 AM:
It's even easier than that to synchronously control a standard async SRAM. Simply connect WE to the clock and hold OE active all the time except for cycles where you want to write something new into the SRAM.
That would depend a *lot* on the details of the setup and hold times for the
async SRAM, no? You can do what you want with data for much of the clock
cycle, but the address has to meet setup and hold for the entire WE time.
That's typically more than half a clock cycle and makes it hard to use it on
every clock cycle.
Address (and data) setup and hold times are easily met. As a first order approximation, the setup time will be T/2-Tco(max). The address hold time will be Tco(min).
What is your source for statement "That's typically more than half a clock cycle"? The ancient Cypress CY62256N lists both of these requirements (Tsa and Tha) as 0 ns [1].
I'm talking about the time the address must remain stable. Your
calculations above show it is at a minimum T/2.
When running with fast SRAM it can be very hard to get this to work
properly. The devil is in the details of the chips.
> The technique works. You get single cycle read or write on 100% of the clock cycles, timing is met, period...and it worked 20+ years ago on product I designed [2].
Great! You were able to use it on one device at an unknown speed. What was
the clock period?
Did you supply the WE from the external clock (same as to the FPGA) or a
copy of the clock from inside the FPGA? In the case of the former the total
delay through the chip of the signals can be a significant part of the setup
margin. If the latter it is hard to control the routing delays.
--
Rick C