Verifying Timing Constraints for Delay-Insensitive Circuits Hoon Park, Anping He, Marly Roncken, Xiaoyu Song Asynchronous Research Center, Maseeh College of Engineering and Computer Science results ch4 in_A 1 Storage C4 four main steps in ARCtimer. ARCtimer is used early in the design process to build a Design Library of verified components for use in any chip design. References [1] W. Mallon. Theories and Tools for the Design of Delay-Insensitive Communicating Processes, Ph.D. thesis, University of Groningen, 2000. [2] K. Desai, K. Stevens, J. O'Leary. Symbolic Verification of Timed Asynchronous Hardware Protocols, In Proceedings ISVLSI, 2013. [3] H. Park, A. He, M. Roncken, X. Song. Semi-modular delay model revisited in context of relative timing, Electronics Letters (IET), Volume 51, Issue 4, pages 332-334, 2015. [4] H. Park, A. He, M. Roncken, X. Song, I. Sutherland. Modular Timing Constraints for Delay-Insensitive Systems, to appear in Journal of Computer Science and Technology (JCST), 2015. inv in_D L ckbuf out_D FF_D 1 L buf_out_R1 out_R D Q FF o R _ t u 7 out_R 2 in_A 6 out _R and in_A buf_in_A1 D Q 1 in_R 4 0 in_A All other events are sent to an error state inv Click Storage Protocol ARCtimer is a framework to identify The spiral in the figure shows the D Q FF component network internal timing constraints. Through ARCtimer, we have identified timing constraint patterns for the entire Click circuit family. This flow can handle data as well as non-deterministic internal choice. out_R 1 out_A out_A ch2 GUI xor_in xnor_out in_R 3 out_A Join (add) C3 ch5 and out_A 1 1 in_A in_ R 5 Circuit ENV_out ch3 0 functions components data types xor_in xnor_out out_A in_R Protocol Environment in_R Click Storage Circuit Design: Fibonacci Storage 1 Storage C1 C2 ch1 buf_out_R2 self-timed circuits? The fundamental reason is that only a limited class of circuits is truly insensitive to delays in gates and wires. The circuit is delay-insensitive only if each handshake component faithfully follows the protocols. By carefully considering time locally we can ignore time globally. Timing Pattern Generation & Verification ENV_in Why does anyone verify timing in Design Library buf_in_A2 Chip Design [email protected] circuit Input Gate level netlist in_R out_A in_A in_D ch4 Parser out_R out_D Storage C4 ch5 gate level netlist Add checkpoints to simplify STA code and+ evaluate timing constraints NO {in_R, out_A} Output Handshake {in_A, out_R} Component Handshake events ({in_R}, {in_A}) ({out_R}, {out_A}) Handshake protocol (P) P = in_R; in_A; out_R; out_A; P Step 2 Model Checker Click Storage Timing STA and Repair wire & gate delays STA repair invalid timing constraints Step 1 timing constraints xor_in± xnor_out± in_R± ckbuf± out_A± FF± YES chip (pod) FF± (early) inv± (late) ckbuf+ FF± xor_in ckbuf- in_R± and+ Step 3 xor_in+ xnor_out+ Timing Patterns Generalize to timing patterns Step 4 Modular STA code path-delay search channel subroutines subroutine calls OK? Generate timing constraints from counterexample Static Timing Analysis and+ xor_inxnor_outckbuf- in_R± out_A±
© Copyright 2024