Statistisk statisk timinganalys

Konventionell statisk tidsanalys (STA) har varit en aktieanalysalgoritm för design av digitala kretsar under de senaste 30 åren. Under de senaste åren har den ökade variationen i halvledarenheter och sammankoppling dock introducerat ett antal problem som inte kan hanteras av traditionella (deterministiska) STA. Detta har lett till avsevärd forskning om statistisk statisk timinganalys , som ersätter den normala deterministiska timingen av grindar och sammankopplar med sannolikhetsfördelningar, och ger en fördelning av möjliga kretsutfall snarare än ett enda utfall.

Jämförelse med konventionell STA

Deterministisk STA är populär av goda skäl:

  • Den kräver inga vektorer, så den missar inte vägar.
  • Körtiden är linjär i kretsstorlek (för den grundläggande algoritmen).
  • Resultatet är konservativt.
  • Den använder vanligtvis några ganska enkla bibliotek (vanligtvis fördröjning och utgångslutning som en funktion av ingångslutning och utgångsbelastning).
  • Det är lätt att utöka till inkrementell drift för användning vid optimering.

STA, även om det är mycket framgångsrikt, har ett antal begränsningar:

  • Kan inte enkelt hantera inom-die-korrelation, speciellt om rumslig korrelation ingår.
  • Behöver många hörn för att hantera alla möjliga fall.
  • Om det finns betydande slumpmässiga variationer, så är det för att vara konservativt hela tiden för pessimistiskt för att resultera i konkurrenskraftiga produkter.
  • Ändringar för att ta itu med olika korrelationsproblem, såsom CPPR (Common Path Pessimism Removal) gör den grundläggande algoritmen långsammare än linjär tid, eller icke-inkrementell, eller båda.

SSTA angriper dessa begränsningar mer eller mindre direkt. För det första använder SSTA känsligheter för att hitta korrelationer mellan förseningar. Sedan använder den dessa korrelationer när den beräknar hur man lägger till statistiska fördelningar av förseningar.

Det finns ingen teknisk anledning till varför determistisk STA inte kunde förbättras för att hantera korrelation och känsligheter, genom att hålla en vektor av känsligheter med varje värde som SSTA gör. Historiskt sett verkade detta vara en stor börda att lägga till STA, medan det var uppenbart att det behövdes för SSTA, så ingen klagade. Se en del av kritiken mot SSTA nedan där detta alternativ föreslås.

Metoder

Det finns två huvudkategorier av SSTA-algoritmer - vägbaserade och blockbaserade metoder.

En vägbaserad algoritm summerar grind- och trådfördröjningar på specifika vägar. Den statistiska beräkningen är enkel, men vägarna av intresse måste identifieras innan analysen körs. Det finns potential att vissa andra vägar kan vara relevanta men inte analyserade så vägval är viktigt.

En blockbaserad algoritm genererar ankomsttiderna (och nödvändiga) tiderna för varje nod, och arbetar framåt (och bakåt) från de klockade elementen. Fördelen är fullständighet och inget behov av vägval. Det största problemet är att det behövs en statistisk max (eller min) operation som också beaktade korrelation, vilket är ett svårt tekniskt problem.

Det finns SSTA-cellkarakteriseringsverktyg som nu är tillgängliga som Altos Design Automations Variety-verktyg.

Kritik

Ett antal kritik har riktats mot SSTA:

  • Det är för komplicerat, särskilt med realistiska (icke-gaussiska) distributioner.
  • Det är svårt att koppla till ett optimeringsflöde eller algoritm.
  • Det är svårt att få tag i den data algoritmen behöver. Även om du kan få den här informationen är den sannolikt tidsvarierande och därför opålitlig.
  • Om det används på allvar av kunderna till en fabrik, begränsar det de ändringar som fabriken kan göra, om de ändrar processens statistiska egenskaper.
  • Fördelen är relativt liten, jämfört med en förbättrad deterministisk STA som även tar hänsyn till känslighet och korrelation.

Verktyg som utför statisk timinganalys

FPGA:er

  • Altera Quartus II
  • Xilinx ISE

ASICs

Se även

  1. ^ Orshansky, M.; Keutzer, K., 2002, A general probabilistic framework for worst case timing analysis , Design Automation Conference, 2002. Proceedings. 39th, Vol., Iss., 2002, Sidor: 556–561.
  2. ^ Visweswariah, C.; Ravindran, K.; Kalafala, K.; Walker, SG; Narayan, S.; Beece, DK; Piaget, J.; Venkateswaran, N.; Hemmett, JG, 2006, First-Order Incremental Block-Based Statistical Timing Analysis , IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, , Vol.25, Iss.10, Okt. 2006, Sidor: 2170–2180
  3. ^ Noel Menezes. "Det goda, det dåliga och det statistiska" (PDF) . ISPD 2007.