Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17257 Discussions

Constraining the delay on an asynchronous path

Altera_Forum
Honored Contributor II
1,204 Views

Hi there! 

I have a Stratix III FPGA connected to a DSP, and I'm trying to simulate (via the Quartus simulator) the latency of a read command from the DSP. The FPGA is connected to a 64 bit bidirectional data bus, address bus, CS and read enable (the interface is synchronous). Whenever a specific address appears on the address bus, along with a CS and read activity, the FPGA outputs data to the data bus (when one of the terms do not apply, the FPGA switches the data bus to be input). The logic inside the FPGA is asynchronous to the interface clock (the clock is 120MHz). 

What I have noticed is that the simulation shows me that when I issue a read to the FPGA (address, CS and read enable) for a time of 1 clock cycle, the FPGA outputs the data after a time which is 2 interface clocks cycles (although it is coded asynchronously, meaning the delay is unrelated to the clock). Is it intentional? Can I control this delay? (I'd obviously want this delay to be known and similar for every compilation). 

I'd also like to add that im using the classic timing analyzer.
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
472 Views

I've made some additional progress, or so I believe :) 

What I think I need to do is to set a minimum Tpd and a maximum Tpd between the control lines (address, CS, read enable) and the data lines. If I understand correct, the Tpd stands for the delay from input, through the async logic, and to the output. I believe this should be, for example, between 1 clock cycle duration (minimum) and 2 clock cycles duration (maximum). This way I should get persistent timing through PVT. 

Or am I mistaken?
0 Kudos
Reply