
Hardware-based Temporal Logic Checkers for the Debugging of Digital Integrated Circuits Jean-Samuel Chenard Department of Electrical & Computer Engineering McGill University Montréal, Canada October 2011 A thesis submitted to McGill University in partial fulfillment of the requirements for the degree of Doctor of Philosophy. c 2011 Jean-Samuel Chenard Acknowledgements Graduate studies for me were more than just a career change. The ability to take the time to reflect upon a problem and begin to see what others have done before me required time to acquire. Going from what I could do to what can be done requires a different mindset, but offers greater rewards and more elaborate opportunities. My industrial experience provided me with good practical skills before I decided to pursue graduate studies. My academic experience showed me countless ways to approach a problem and gave me appreciation for how much has been done before and how many very talented people have solved so many problems. It also showed me that by taking the risk to try fundamentally different approaches, even if they appeared to be very difficult, turned out to be the most profitable experiences. I would like to express my gratitude towards my supervisor Professor Zeljko Zilic for his guidance, trust and patience through all the years I spent in the In- tegrated Microsystems Laboratory, first towards the completion of my Masters of Engineering and now for this doctoral thesis. His constant support and under- standing made a great difference and by far exceeded all my expectations of what a supervisor can provide to his students. I want to highlight the help of my good friend and colleague Stephan Bourduas for our collaboration on Network-on-Chip development, our many co-authored publications, and more recently for his insight on the verification methodology used at his work for the largest microprocessor company in the world. Marc Boule was also a key player in the work presented. His inspiring work on the MBAC hardware assertion compiler provided the foundation for many of the ideas pre- iii sented in this thesis. Through our many co-authored publications I was able to appreciate his astute mathematical abilities and enjoyed discussing and debating with him about our proposed debug methodologies. Thanks to my colleagues Bojan Mihajlovic, Nathaniel Azuelos, Jason Tong and Mohammadhossein Neishabouri for the help and feedback they have provided on this work and thanks to Amanda Greenman for her editorial assistance. I wish to express my sincere thanks to my funding sources, notably NSERC and McGill. Without those, I don’t believe it would have been financially possible to support these long studies. I am also very grateful towards CMC Microsystems for providing such high quality hardware tools, workstations and technical sup- port over the years. I wish to recognize the work of the many very talented open-source program- mers who have helped realize the vision of the GNU/Linux operating system. I used this system throughout my studies on my workstations. I used the GNU/Linux resources as tools, reference material and as an experimental platform on many levels. I even used it to run my online business. It provided me a low-cost solution for selling electronic boards, contributing to paying the expenses associated with long-term studies. Following the open source philosophy was one of the best tech- nical decisions I made. I have made a few contributions to this community and hope to make many more in the future. A special thank to Edouard Dufresne, who, when I was only a kid, showed me the basics of Ohm’s law, antenna design and electronic systems and provided me with my first paid job. His hope was that some day, I would do well in science and engineering. Hopefully, this work can demonstrate that I certainly did progress in that path. I wish to thank my parents for their never-ending faith in my abilities and their approach to my education. Their unconventional approach to life and how to make your own way without worrying too much about what others think played a key role in the way I do my work, each and every day. iv Finally, I wish to thank the love of my life and my dear wife Hsin Yun. She gave me the inspiration and support to ensure that this work came to an end. I am forever grateful. I wish to dedicate this thesis to my two daughters: Eliane and Livia. May you realize that if you follow your passion and put in a lot of hard work, you can accomplish pretty much anything that you wish. v Abstract Integrated circuit complexity is ever increasing and the debug process of modern de- vices pose important technical challenges and cause delays in production. A comprehen- sive Design-for-Debug methodology is therefore rapidly becoming a necessity. This thesis presents a comprehensive system-level approach to debugging based on in- silicon hardware checkers. The proposed approach leverages existing assertion-based ver- ification libraries by translating useful temporal logic statements into efficient hardware circuits. Those checker circuits are then integrated in the device as part of the memory map, so they can provide on-line monitoring and debug assistance in addition to accel- erating the integration of performance monitoring counters. The thesis presents a set of enhancements to the translation process from temporal language to hardware targeted such that an eventual debug process is made more efficient. Automating the integration of the checker’s output and control structures is covered along with a practical method that allow transparent access to the resulting registers within a modern (Linux) operating system. Finally, a method of integration of the hardware checkers in future Network-on- Chip systems is proposed. The use of a quality metric encompassing test, monitoring and debug considerations is defined along with the necessary tool flow required to support the process. vii Abrégé La complexité des circuits intégrés augmente sans cesse et à un tel point que le procés- sus de déboggage pose de nombreux problèmes techniques et engendre des retards dans la production. Une approche d’ensemble de conception pour le déboggage (Design-for- Debug) devient donc rapidement une nécessité. Cette thèse propose une approche détaillée de niveau système, intégrant des circuits de surveillance sur puce. L’approche proposée s’appuie sur la réutilisation de déclarations écrites en language de logique temporelle afin de les transformer en circuits digitaux effi- caces. Ces derniers seront intégrés à la puce à travers son interface d’image mémoire afin qu’ils puissent servir au processus de déboggage ainsi qu’à une utilisation dans le système lorsque la puce est intégrée dans son environement. Cette thèse présente une série d’ajout au procéssus de transformation d’instructions de logique temporelle de manière à faciliter le procéssus de déboggage. Une méthode qui automatise l’intégration des sorties et du contrôle des circuits de surveillance est présentée ainsi que la manière dont une utilisation de ces circuits peut être accomplie dans le contexte d’un système d’exploitation moderne (Linux). Finalement, une méthode globale d’intégration des circuits de vérification dans le contexte de systèmes basés sur les réseaux-sur-puce est présentée, accompagnée de la chaine d’outils requise pour supporter ce nouveau processus de conception. Cette méth- ode propose l’utilisation de facteurs de qualité de test, de surveillance et de déboggage (Test, Monitoring and Debug) permettant une meilleure sélection des circuits ainsi qu’une intégration plus efficace au niveau des resources matérielles. ix Contents Contents xv List of Figures xviii List of Tables xix List of Listings xxi 1 Introduction 1 1.1 Semiconductor Manufacturing Process . 2 1.2 Debugging Process . 4 1.3 Debugging of future digital systems . 6 1.4 A Systematic Approach to Design for Debugging . 7 1.5 Properties of Debuggable Systems . 8 1.6 Thesis Contributions . 14 1.7 Self-Citations . 15 1.7.1 Earlier Work on Debug and Systems . 19 1.8 Thesis Organization . 20 2 Background and Related Work 23 2.1 Complexity Trends in Digital Systems . 23 2.1.1 The “Simple” Hardware Systems . 23 2.1.2 Programmable Logic and Reprogrammable Systems-on-Chip . 25 2.1.3 Graphic Processing Unit Programming . 29 2.1.4 Computers and Virtualization . 31 2.1.5 Multi-core System-on-Chip and Network-on-Chip Evolution . 32 2.2 Terminology . 35 2.3 Modern Digital Verification Methodology . 41 2.3.1 Black Box and White Box Verification . 42 xi Contents 2.3.2 Structure of a Verification Environment . 43 2.3.3 Verification Classes . 45 2.3.4 Constrained Random-Based Verification . 46 2.3.5 Golden Reference Model and Predictor . 47 2.3.6 Measuring Coverage of the Verification . 48 2.4 Assertions and Temporal Logic in Verification . 50 2.4.1 Design for Debugging . 52 2.4.2 Follow-up work on Time-multiplexing of Assertion Checkers . 55 2.4.3 Design-for-Debug in Network-On-Chip . 56 2.5 Chronological Work Overview . 59 2.5.1 NoC Research Work . 59 2.5.2 NoC Topology Consideration for Physical Implementation . 60 2.5.3 The Need for Hardware-Based Monitoring Points . 61 2.5.4 The Difficulty of Integrating Large Systems . 63 3 Checkers as Dynamic Assistants to Silicon Debug 67 3.1 Benefits to Designers . 68 3.2 Assertion Checkers Enhancements for In-Silicon Debugging . 71 3.2.1 Antecedent and Activity Monitoring . 71 3.2.2 Assertion Dependency Graphs . 73 3.2.3 Assertion Completion Mode . 75 3.2.4 Assertion Activity and Coverage . 77 3.2.5 Hardware Assertion Threading .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages219 Page
-
File Size-