s002wjhwen
New Contributor
29 days agocarry chain tdc
is there a primitive on altera (similar to xilinx carry4) i can use to do carry chain tdc? i need resolution around 30ps ish. any example code? thanks
i'm using agilex 9, i see article and papers, but not sure which primitive to use for agilex 9
Thank you for your inquiry regarding carry chain TDC implementation on Altera Agilex 9 FPGAs and achieving ~30ps resolution.
Altera FPGAs do not provide a direct equivalent to the Xilinx CARRY4 primitive. However, carry chain logic can be inferred by implementing arithmetic structures (such as adders) in your HDL. The Quartus compiler maps these structures to the device’s carry chain resources, enabling TDC applications.
Example code and WYSIWYG usage:
You can use Altera's low-level WYSIWYG logic modules (e.g., tennm_logic_module) to directly instantiate and control carry chain resources. Example designs and code snippets are available(Check your email) for experimentation, and manual placement/routing in Quartus Chip Planner is recommended for optimal results.
Based on our experience:
For more uniform and controllable delays, we recommend experimenting with wire LUT delay lines instead of relying solely on carry chains. Wire LUTs, combined with manual placement and routing, have proven to deliver more consistent results on Agilex devices.
Measurement methodology:
Linearity is typically measured using a ring oscillator or periodic signal, sampled through your delay line. A histogram of hits per bin allows you to calculate propagation delay differences and calibrate accordingly.