The most important timing spec for the memory controller is the minimum delay from a ReadBlockRequest on the bus to the first word of data delivered. This delay is the sum of the following delays: five pipeline stages between the bus and the time that the CommandDecodeFSM initiates the RAM cycle, the total RAM access time (from RAS to the last nibble), and the output pipeline delay. The RAM access time depends on how the timing generator is implemented and on what speed RAMs we choose to buy. Upper and lower limits are 450-300ns. The output pipe delay is more interesting. Since the data is delivered from the RAM in the same cyclic order that it must be shipped on the bus it is possible to begin filling the output pipe
before the end of the RAM access time. Thus, the output pipe delay is actually negative three cycles. In addition to the data delay there is the concern that Owner and Shared must be received before Request can be asserted. These signals are not valid until ten(?) cycles after the Request cycle. Added to this is the minimum delay from Request to Grant as determined by the Arbiter (3 cycles?). The total delay then is:
MAX[(2 cycles + 300-450ns), 13 cycles]
Assuming a bus cycle time of 25ns and the fastest RAM access time, the minimum Request to data delay then is 350ns.