Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20639 Discussions

Timing analysis for separate HDL modules

AlexShepel
Beginner
393 Views

We always have some HDL modules that are used in different FPGA projects. It may be a DSP module or protocol controller, etc. It is a good practice to design modules that can be reused.

image.png

 We think about an HDL module as a finite structure. It makes us keep in mind some significant timing analysis questions. What will be the Fmax? Where we must place registers to achieve uniform register-to-register timings?

AlexShepel_0-1620388135021.png

Getting answers brings us benefits. We design modules that will be easily configurable for future projects. We avoid changes in the HDL code. For example, we can simply specify Fmax as a comment below the module description. Rough slow corner estimation is enough.

 

//  Name	    :   multiplexer
//  Author	    :   Alex Shepel
//  Description	:   Multiplexes input signals. 
//                  Selects channel by binary number on "sel" bus.                    
//  Fmax	    :   10M50SCE144I7G  =  250 MHz
//		            10M50SCE144I6G  =  300 MHz

 

So we need post-map timing analysis for separate modules. In this case, we must write SDC constraints for them. And here I have trouble. What data input delay we choose? I think we must imagine our module as part of some abstract project. Assume that data comes to the module input ports at the perfect timing (as it is synchronized). 

What are these timings? At least, they must cover the setup time of the flip-flop. But where can I find this value? It will be great to receive a link to the datasheet. Unfortunately, I can’t find these timings by myself for the Max10 family.

AlexShepel_1-1620388333075.png

Also, it will be great to receive other recommendations for post-map timing analysis of separate HDL modules. Maybe I have mistakes in my question or such timing analysis is meaningless. It will be great to see such thoughts too.

 

0 Kudos
2 Replies
SyafieqS
Moderator
345 Views

Hi Alex,


You may need to refer to Intel® MAX® 10 FPGA Device Datasheet here for details related to timing information.

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/m10_datasheet.pdf



0 Kudos
SyafieqS
Moderator
318 Views

We do not receive any response from you to the previous reply, thus I will put this case to close pending. Please post a response in the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you with your follow-up questions. 


0 Kudos
Reply