An In-Fabric Memory Architecture for FPGA-Based Computing

Total Page:16

File Type:pdf, Size:1020Kb

An In-Fabric Memory Architecture for FPGA-Based Computing CoRAM: An In-Fabric Memory Architecture for FPGA-Based Computing Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Electrical and Computer Engineering Eric S. Chung B.S., Electrical Engineering and Computer Science University of California, Berkeley Carnegie Mellon University Pittsburgh, PA August, 2011 Abstract Field Programmable Gate Arrays (FPGA) have been used in many applications to achieve orders-of-magnitude improvement in absolute performance and energy efficiency relative to con- ventional microprocessors. Despite their newfound potency in both processing performance and energy efficiency, FPGAs have not gained widespread acceptance as mainstream computing de- vices. A fundamental obstacle to FPGA-based computing can be traced to the FPGA’s lack of a common, scalable memory abstraction. When developing for FPGAs, application writers are often responsible for crafting the application-specific infrastructure logic that transports the data to and from the processing kernels, which are the ultimate producers and consumers within the fabric. Very often, this infrastructure logic not only increases design time and effort but will inflexibly lock a de- sign to a particular FPGA product line, hindering scalability and portability. To create a common, scalable memory abstraction, this thesis proposes a new FPGA memory architecture called Con- nected RAM (CoRAM) to serve as a portable bridge between the distributed computation kernels and the edge memory interfaces. In addition to improving performance and efficiency, the CoRAM architecture provides a virtualized memory environment as seen by the hardware kernels to simplify application development and to improve an application’s scalability and portability. i Acknowledgements I owe all of my success to my academic advisor, Professor James Hoe, who taught me how to think, speak, and write. It has been a tremendous privilege to work with James, who generously provided the resources and the comfortable environment that enabled me to pursue my ideas to fruition. I am sincerely grateful for his consistent encouragement, insight, and support throughout all these years. I also thank Professor Ken Mai for his constant source of feedback throughout my time at CMU and for inviting me into his office when I had yet-another-circuit-question. I thank Professor Babak Falsafi for his intellectual contributions to my research projects, his genuine support for those all around him, and his encouragement and advice even all the way from Switzerland. I also thank my external committee members Professor Guy Blelloch, Professor Joel Emer, and Professor John Wawrzynek for serving on my defense. Their helpful comments and constructive criticisms significantly enhanced the quality of this thesis. I also wish to thank various members of the RAMP community for the friendships and the interactions that I have benefited from over so many years: Professor Derek Chiou, Hari Angepat, Nikhil Patil, Michael Pellauer, Professor Mark Oskin, and Andrew Putnam, and Professor Martha Mercaldi-Kim. I would also like to thank my mentors at Microsoft Research, Chuck Thacker and John Davis. I would like to acknowledge the National Science Foundation (CCF-1012851), C2S2, CSSI, Sun Microsystems, Microsoft Research, and John and Claire Bertucci for providing the generous funding that supported my work at CMU. I would like to thank Bluespec and Xilinx for their tool donations. There are many fellow graduate students and friends whom I wish to acknowledge. Jared Smolens, Brian Gold, and Jangwoo Kim were valuable mentors to me when I joined the TRUSS ii project. Thanks to Jared for being a great friend, for his feedback, for maintaining our cluster, and for his ability to proofread anything I could throw at him. Brian always gave valuable opinions and was never too busy to answer my questions; thanks also to Brian and his wife Robin for mak- ing me feel welcome when I first arrived to CMU. Jangwoo was always supportive and providing helpful late-night discussions and advice on demand. Nikos Hardavellas was a sounding board for many ideas in the wee hours of the night. I hope Nikos will forgive me for the events of ISCA’05. Michael Papamichael provided the network-on-chip generator that helped to make this thesis pos- sible. Thanks to Michael for being a constant source of feedback, for introducing me to the best Pad-See-Ew in all of existence, and for accompanying me on our adventure to New York’s finest Brazilian BBQ. Peter Milder is a great friend, collaborator, and always found time to stop by and chat. Peter Klemperer was an entertaining officemate and friend who kept me up-to-date with his endless stories and projects. Yoongu Kim was my mutual commiserator and kept me company dur- ing the late work hours. I am grateful to Tom Wenisch, who frequently brought me out to half-priced margaritas at Mad Mex and gave me good advice on many subjects. I am also grateful to Mike Fer- dman for his feedback on many of my research projects; thanks for Mike and Alisa Ferdman for also inviting me to their parties. Thanks to Gabriel Weisz, who endlessly tolerated my design bugs and also shared his homebrew with us. Thanks goes out to Eriko Nurvitadhi, who tolerated me as his roommate and officemate for nearly 7 years. In addition, I also greatly enjoyed the company and interactions with many other members of CMU and CALCM: Roland Wunderlich, Stephen Som- ogyi, Evaggelis Vlachos, Ippokratis Pandis, Vasileios Liaskovitis, Kai Yu, Wei Yu, Jennifer Black, Qian Yu, Professor Onur Mutlu, Chris Craik, Chris Fallin, Theodoros Strigkos, Marek Telgarsky, Bob Koutsoyannis, Kristen Dorsey, Ryan Johnson, and Brett Meyer. I’d like to thank Elaine Lawrence, Reenie Kirby, Matt Koeske, and all the other assistants in our department for handling all the administrative duties that made things run smoothly for all the students. Susan Farrington always made me feel welcome and appreciated at CMU. The Isomac and Expobar machines deserve a special thanks for distilling the endless amounts of caffeine that transformed into this thesis. I would like to thank Edward Lin and Fabian Manan who were great friends who kept my life interesting beyond the lab. Thank you to old friends who kept close from afar: Ben Liu, Patrick Charoenpong, Brandon Ooi, Mike Liao, Chethana Kulkarni, Kazim Zaidi, and Menzies Chen. iii I am grateful to our cats, Cho Cho and Mi Mi, who kept us company all these years with an unlimited supply of entertainment, exasperation, and cat hair. I cannot thank my parents enough for the sacrifices that they have made so that I could be here today. My family members, Alan, Lily, Melody, and Katie have been a pillar of support throughout my life and time at CMU. Finally, I express my gratitude to Kari Cheng. As the significant other of an ‘eternal’ graduate student, Kari tolerated my habits, my unusual hours, and my times of absence with love, grace, and understanding. This journey would not have been complete without her. iv Contents Chapter 1: Introduction 2 1.1 FPGAs for Computing . .3 1.2 Limitations of Conventional FPGAs . .3 1.3 FPGAs Lack A Standard Memory Architecture . .5 1.4 The Connected RAM Memory Architecture . .6 1.5 Thesis Contributions . .7 1.6 Thesis Outline . .8 Chapter 2: Background 9 2.1 FPGA Anatomy . .9 2.2 Why Compute With FPGAs? . 12 2.3 FPGA-Based Computing . 14 2.3.1 The Convey HC-1 . 15 2.3.2 Nallatech Accelerator Module . 16 2.3.3 Berkeley Emulation Engine 3 (BEE3) . 17 2.4 The Need For A Standard Memory Architecture . 17 Chapter 3: CoRAM Architecture 19 3.1 CoRAM System Organization and Assumptions . 19 3.2 The CoRAM Program Model . 21 3.2.1 Software Control Threads . 21 3.2.2 How Does CoRAM Solve The Portability Challenge? . 25 3.2.3 CoRAM Microarchitecture . 25 v 3.3 CoRAM versus Alternative Approaches . 27 3.4 Communication and Synchronization . 31 3.5 Other Issues . 32 3.6 Summary . 34 Chapter 4: Cor-C Architecture and Compiler 35 4.1 CoR-C Overview . 36 4.1.1 Control Threads . 36 4.1.2 Object Instantiation and Identification . 38 4.1.3 Memory Control Actions . 40 4.2 Disallowed Behaviors . 44 4.3 Simple Example: Vector Addition . 45 4.4 The CoRAM Control Compiler (CORCC) . 48 4.5 Summary . 52 Chapter 5: Cor-C Examples 53 5.1 Matrix-Matrix Multiplication . 53 5.1.1 Background . 54 5.1.2 Related Work . 56 5.1.3 Parallelization on the FPGA . 57 5.1.4 Manual Implementation . 59 5.1.5 Cor-C Implementation . 60 5.1.6 Discussion . 63 5.2 Black-Scholes . 64 5.2.1 Background . 64 5.2.2 Parallelization on the FPGA . 65 5.2.3 Memory Streaming . 66 5.2.4 Discussion . 70 5.3 Sparse Matrix-Vector Multiplication . 72 5.3.1 Background . 72 5.3.2 Related Work . 73 vi 5.3.3 Parallelization on the FPGA . 74 5.3.4 Discussion . 78 5.4 Summary . 78 Chapter 6: CoRAM Memory System 79 6.1 Devising a Memory System for CoRAM . 79 6.2 CoRAM Memory System: Hard or Soft? . 82 6.3 Understanding the Cost of Soft CoRAM . 83 6.4 Implementing A Cluster-Style Microarchitecture for CoRAM . 87 6.4.1 Design Overview . 89 6.4.2 Clients and Interfaces . 90 6.4.3 Message Sequencing and Out-of-Order Delivery . 92 6.4.4 Memory-to-CoRAM Datapath . 94 6.4.5 Cluster Summary . 100 6.5 Network-on-Chip . 101 6.6 Memory Controllers and Caches . 104 6.7 Network-to-DRAM-Cache Interface . 105 6.8 Summary . 106 Chapter 7: Prototype 108 7.1 Cluster Design . 109 7.2 CONECT Network-on-Chip Generator .
Recommended publications
  • An Introduction to High-Level Synthesis
    High-Level Synthesis An Introduction to High-Level Synthesis Philippe Coussy Michael Meredith Universite´ de Bretagne-Sud, Lab-STICC Forte Design Systems Daniel D. Gajski Andres Takach University of California, Irvine Mentor Graphics today would even think of program- Editor’s note: ming a complex software application High-level synthesis raises the design abstraction level and allows rapid gener- solely by using an assembly language. ation of optimized RTL hardware for performance, area, and power require- In the hardware domain, specification ments. This article gives an overview of state-of-the-art HLS techniques and languages and design methodologies tools. 1,2 ÀÀTim Cheng, Editor in Chief have evolved similarly. For this reason, until the late 1960s, ICs were designed, optimized, and laid out by hand. Simula- THE GROWING CAPABILITIES of silicon technology tion at the gate level appeared in the early 1970s, and and the increasing complexity of applications in re- cycle-based simulation became available by 1979. Tech- cent decades have forced design methodologies niques introduced during the 1980s included place-and- and tools to move to higher abstraction levels. Raising route, schematic circuit capture, formal verification, the abstraction levels and accelerating automation of and static timing analysis. Hardware description lan- both the synthesis and the verification processes have guages (HDLs), such as Verilog (1986) and VHDL for this reason always been key factors in the evolu- (1987), have enabled wide adoption of simulation tion of the design process, which in turn has allowed tools. These HDLs have also served as inputs to logic designers to explore the design space efficiently and synthesis tools leading to the definition of their synthe- rapidly.
    [Show full text]
  • The Challenges of Hardware Synthesis from C-Like Languages
    The Challenges of Hardware Synthesis from C-like Languages Stephen A. Edwards∗ Department of Computer Science Columbia University, New York Abstract most successful C-like languages, in fact, bear little syntactic or semantic resemblance to C, effectively forcing users to learn The relentless increase in the complexity of integrated circuits a new language anyway. As a result, techniques for synthesiz- we can fabricate imposes a continuing need for ways to de- ing hardware from C either generate inefficient hardware or scribe complex hardware succinctly. Because of their ubiquity propose a language that merely adopts part of C syntax. and flexibility, many have proposed to use the C and C++ lan- For space reasons, this paper is focused purely on the use of guages as specification languages for digital hardware. Yet, C-like languages for synthesis. I deliberately omit discussion tools based on this idea have seen little commercial interest. of other important uses of a design language, such as validation In this paper, I argue that C/C++ is a poor choice for specify- and algorithm exploration. C-like languages are much more ing hardware for synthesis and suggest a set of criteria that the compelling for these tasks, and one in particular (SystemC) is next successful hardware description language should have. now widely used, as are many ad hoc variants. 1 Introduction 2 A Short History of C Familiarity is the main reason C-like languages have been pro- Dennis Ritchie developed C in the early 1970 [18] based on posed for hardware synthesis. Synthesize hardware from C, experience with Ken Thompson’s B language, which had itself proponents claim, and we will effectively turn every C pro- evolved from Martin Richards’ BCPL [17].
    [Show full text]
  • A Compiler Infrastructure for Static and Hybrid Analysis of Discrete Event System Models
    UNIVERSITY OF CALIFORNIA, IRVINE A Compiler Infrastructure for Static and Hybrid Analysis of Discrete Event System Models DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Computer Engineering by Tim Schmidt Dissertation Committee: Professor Rainer D¨omer,Chair Professor Kwei-Jay Lin Professor Fadi Kurdahi 2018 c 2018 Tim Schmidt TABLE OF CONTENTS Page LIST OF FIGURES v LIST OF TABLES vii LIST OF ALGORITHMS viii LIST OF ACRONYMS ix ACKNOWLEDGMENTS x CURRICULUM VITAE xii ABSTRACT OF THE DISSERTATION xvi 1 Introduction 1 1.1 System Level Design . .1 1.2 SystemC . .3 1.3 Recoding Infrastructure for SystemC (RISC) . .7 1.3.1 Software Stack . .7 1.3.2 Tool Flow . .8 1.4 Segment Graph . 11 1.5 Goals . 19 1.6 Related Work . 22 1.6.1 LECS Group . 22 1.6.2 Other Related Work . 25 2 Static Communication Graph Generation 28 2.1 Introduction . 28 2.1.1 Related work . 31 2.2 Thread Communication Graph . 32 2.3 Static Compiler Analysis . 34 2.3.1 Thread Communication Graph . 34 2.3.2 Module Hierarchy . 37 2.3.3 Optimization and Designer Interaction . 38 2.3.4 Visualization . 38 2.3.5 Accuracy and Limitations . 39 ii 2.4 Experiments . 39 2.4.1 Mandelbrot Renderer . 39 2.4.2 AMBA Bus Model . 41 2.4.3 S2C Testbench . 42 2.5 Summary . 43 3 Static Analysis for Reduced Conflicts 45 3.1 Channel Analysis . 45 3.1.1 Introduction . 46 3.1.2 Conflict Analysis . 49 3.1.3 Port Call Path Sensitive Segment Graphs .
    [Show full text]
  • Parallel Systemc/TLM Simulation of Hardware Components Described for High-Level Synthesis Denis Becker
    Parallel SystemC/TLM Simulation of Hardware Components described for High-Level Synthesis Denis Becker To cite this version: Denis Becker. Parallel SystemC/TLM Simulation of Hardware Components described for High- Level Synthesis. Artificial Intelligence [cs.AI]. Université Grenoble Alpes, 2017. English. NNT: 2017GREAM082. tel-01709813v3 HAL Id: tel-01709813 https://hal.archives-ouvertes.fr/tel-01709813v3 Submitted on 18 Sep 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. THÈSE Pour obtenir le grade de DOCTEUR DE LA COMMUNAUTÉ UNIVERSITÉ GRENOBLE ALPES Spécialité : Informatique Arrêté ministériel : 25 mai 2016 Présentée par Denis Becker Thèse dirigée par Matthieu Moy et co-encadrée par Jérôme Cornet préparée au sein du Laboratoire Verimag, de STMicroelectronics et de l’École Doctorale de Mathématiques, Sciences et Technologies de l’Information, Informatique Simulation Parallèle en SystemC/TLM de Composants Matériels décrits pour la Synthèse de Haut-Niveau Parallel SystemC/TLM Simulation of Hardware Components described for High-Level Synthesis Thèse soutenue publiquement le 11 décembre 2017, devant le jury composé de : M. Frédéric Pétrot Professeur, Université Grenoble Alpes, France, Président M. Rainer Dömer Professeur, University of California, Irvine, CA, États-Unis, Rapporteur M.
    [Show full text]
  • INTEGRATING ALGORITHM-LEVEL DESIGN and SYSTEM-LEVEL DESIGN THROUGH SPECIFICATION Synthesisintegrating Algorithm-Level Design
    INTEGRATING ALGORITHM-LEVEL DESIGN AND SYSTEM-LEVEL DESIGN THROUGH SPECIFICATION SYNTHESIS A Dissertation Presented by Jiaxing Zhang to The Department of Electrical and Computer Engineering in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Engineering Northeastern University Boston, Massachusetts August 2014 To my family. i Contents List of Figures v List of Tables vii List of Acronyms viii Acknowledgments x Abstract xi 1 Introduction 1 1.1 Specification Gap . 2 1.2 Flexibility and Overhead Trade-off . 3 1.3 Problem Definition and Goals . 5 1.4 Contributions . 5 1.5 Overview . 8 2 Background 9 2.1 EDA Designs . 9 2.2 Algorithm Level Design . 12 2.2.1 MATLAB/Simulink Modeling Environments . 14 2.3 System-Level Design . 15 2.3.1 Design Abstractions . 17 2.3.2 System Level Design Languages . 18 2.4 Related Work . 20 2.4.1 Bridging Design Gaps . 20 2.4.2 Flexibility Overhead: Granularity Challenges . 24 2.4.3 Flexibility Overhead: SW Synthesis . 24 2.5 Summary . 25 3 Specification Synthesis 27 3.1 Specification Synthesis Foundations . 27 3.1.1 Structural Semantics . 29 3.1.2 Execution Semantics . 31 ii 3.2 Algo2Spec Design . 31 3.2.1 Leaf Synthesizer . 33 3.2.2 Hierarchy Synthesizer . 37 3.2.3 Granularity Discussions . 43 3.3 Algorithm-Architecture Co-Design Flow . 43 3.4 Experimental Results . 45 3.4.1 MJPEG Encoder Synthesis Example . 46 3.4.2 Productivity Gain . 51 3.5 Summary . 53 4 Specification Granularity 54 4.1 Introduction . 54 4.2 Background: Specification Performance Analysis .
    [Show full text]
  • System Modeling & HW/SW Co-Verification
    System Modeling & HW/SW Co-Verification Prof. Chien-Nan Liu TEL: 03-4227151 ext:4534 Email: [email protected] 1 Outline l Introduction l System Modeling Languages l SystemC Overview l Data-Types l Processes l Interfaces l Simulation Supports l System Design Environments l HW/SW Co-Verification l Conclusion 2 Outline l Introduction l System Modeling Languages l SystemC Overview l Data-Types l Processes l Interfaces l Simulation Supports l System Design Environments l HW/SW Co-Verification l Conclusion 3 Design Challenges Reference http://www.doulos.com 4 Silicon complexity v.s Software complexity Silicon complexity is growing 10x Software in systems is growing faster every 6 years than 10x every 6 years Reference http://www.doulos.com 5 Increasing Complexity in SoC Designs l One or more processors l 32-bit Microcontrollers l DSPs or specialized media processors l On-chip memory l Special function blocks l Peripheral control devices l Complex on-chip communications network (On-chip busses) l RTOS and embedded software which are layering architecture l …… 6 How to Conquer the Complexity ? l Modeling strategies – Using the appropriate modeling for different levels – The consistency and accuracy of the model l Reuse existing designs – IP reuse – Architecture reuse (A platform based design) l Partition – Based on functionality – Hardware and software 7 Traditional System Design Flow (1/2) l Designers partition the system into hardware and software early in the flow l HW and SW engineers design their respective components in isolation l HW
    [Show full text]
  • EE382N.23: Embedded System Design and Modeling Lecture 2
    EE382N.23: Embedded Sys Dsgn/Modeling Lecture 2 EE382N.23: Embedded System Design and Modeling Lecture 2 – System-Level Design Languages Sources: R. Doemer, UC Irvine Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin [email protected] Lecture 2: Outline • System-level design languages • Goals, requirements • Fundamental principles of language design • The SpecC language • Core language syntax and semantics • The SystemC language • Versus SpecC EE382N.23: Embedded Sys Dsgn/Modeling, Lecture 2 © 2017 A. Gerstlauer 2 (c) 2017 A. Gerstlauer 1 EE382N.23: Embedded Sys Dsgn/Modeling Lecture 2 Languages Represent a model in machine-readable form Apply algorithms and tools Automatic refinement, analysis, synthesis, simulation • Syntax defines grammar • Possible strings over an alphabet • Textual or graphical • Semantics defines meaning • Execution/simulation model • Operational or denotational EE382N.23: Embedded Sys Dsgn/Modeling, Lecture 2 © 2017 A. Gerstlauer 3 Models vs. Languages Poetry Recipe Story State Sequent. Data- Models machine program flow Languages English Spanish Japanese C C++ Java Recipes vs. English Sequential programs vs. C • Computation models describe system behavior • Conceptual notion, e.g., recipe, sequential program • Languages capture models • Concrete form, e.g., English, C • Variety of languages can capture one model • E.g., sequential program model C,C++, Java • One language can capture variety of models • E.g., C++ → sequential program model, object-oriented model, state machine model • Certain languages better at capturing certain models Source: T. Givargis, F. Vahid. “Embedded System Design”, Wiley 2002. EE382N.23: Embedded Sys Dsgn/Modeling, Lecture 2 © 2017 A. Gerstlauer 4 (c) 2017 A. Gerstlauer 2 EE382N.23: Embedded Sys Dsgn/Modeling Lecture 2 Simulation vs.
    [Show full text]
  • Hardware Description Language Based on Message Passing and Implicit Pipelining
    Hardware Description Language Based on Message Passing and Implicit Pipelining Dmitri Boulytchev Oleg Medvedev St.Petersburg State University St.Petersburg State University [email protected] [email protected], [email protected] Abstract depends on secret knowledge of implementation details We present a hardware description language (currently and subtle host platform properties. In the same time the called “HaSCoL”) which is based on both reliable and assistance of development tools for exploring the design unreliable message passing and implicit pipelining of space by source code transformations with predictable message handlers. The language consists of a small core results is extremely desirable. and a number of extensions, which cover many features Another inconvenience originates from the fact that of high level software languages as well as high level hardware and software are traditionally expressed us- hardware description languages (HDLs). These exten- ing different languages. Thus the problem of interfacing sions have simple projections into the core language and software and hardware components arises. At present allow compact and concise description of complex al- time no drastic solution for this problem is suggested. gorithms. The core language in turn can be converted We argue that these problems can be solved by de- into efficient VHDL. We discuss place-and-route results scribing both hardware and software using the same for some benchmarks implemented both in HaSCoL and general-purpose programming language (with hard- VHDL and suggest an optimization which should im- ware description as its proper sublanguage). We call prove the results significantly and make them close to this language “HaSCoL” (Hardware-Software Codesign those for hand-coded VHDL.
    [Show full text]
  • Dynamic Module Library for System Level Modeling and Simulation of Dynamically Reconfigurable Systems
    JOURNAL OF COMPUTERS, VOL. 3, NO. 2, FEBRUARY 2008 55 Dynamic Module Library for System Level Modeling and Simulation of Dynamically Reconfigurable Systems Kenji Asano NEC Electronics Corporation 1753, Shimonumabe, Nakahara-Ku, Kawasaki, Kanagawa 211-8668, JAPAN Email: [email protected] Junji Kitamichi Kenichi Kuroda School of Computer Science and Engineering, The University of Aizu, Tsuruga, Ikki-machi, Aizu-Wakamatsu, Fukushima 965-8580, JAPAN Email: {kitamiti,kuroda}@u-aizu.ac.jp Abstract— In this paper, we propose a library for the and costs required for design and verification are increas- system level modeling and simulation of the system which ing. To circumvent these disadvantages, the following includes Dynamically Reconfigurable Architectures(DRAs). design methodologies are being proposed. The proposed library is an extended SystemC library. Using the proposed library, the designer can model the system One is a system level design. The abstraction level specifications including modules for the dynamic generation of system level design is higher than that of traditional and elimination and ports and channels for the dynamic Register Transfer (RT) level. In the traditional design connection and dispatch between them, that are needed in flow, system specifications are written in a natural lan- the design of general-purpose dynamically reconfigurable guage. Therefore, they may contain vague statements and systems at the system design level. In addition, we evaluate the proposed library by the modeling and simulation of mistakes. This causes problems in the RT level design. sample circuits, such as partially DRA and multi-context Furthermore, a natural language cannot be converted to DRA. Using the proposed library, we can model the system hardware and embedded software descriptions.
    [Show full text]
  • System-On-A-Chip Design and Verification
    A Survey: System-on-a-Chip Design and Verification Ali Habibi and Sofiène Tahar Electrical & Computer Engineering Department, Concordia University Montreal, Quebec, Canada Email: {habibi, tahar}@ece.concordia.ca Technical Report January 2003 Abstract. In this technical report, we survey the state-of-the-art of the design and verifica- tion techniques and methodologies the System on-a-Chip (SoC). The advancement in the hardware area made it possible the integration of a complete yet complex system on a sin- gle chip. Over 10 million gates, integrated together and running a real time optimized software red crossed classical design techniques. Traditional Regiter Transfer level (RTL) will serve as an assembler language for the new design languages or so called system level languages. A challenge facing the SoC designers is to decide which system level lan- guage we have to use and how the verification task will be accomplished. This report pre- sents the main proposals in defining a system level language and discusses the eventual verification techniques that can be used. 1. Introduction A decade ago, the EDA industry went progressively from gate level to register-transfer- level abstraction. This is one of the basic reasons why this process gained a great increase in the productivity. Nowadays, an important effort is being spent in order to develop a sys- tem level languages and to define new design and verification methodologies and verifica- tion at this abstraction level. The reason for all this activity is simple. Register-transfer level (RTL) hardware design is too low as an abstraction level to start designing multimillion-gate systems (as shown in Figure 1).
    [Show full text]
  • HDL Based Digital Design with Programmable Logic Lecture 1
    EE 459/500 – HDL Based Digital Design with Programmable Logic Lecture 1 Introduction 1 Course Info . Times: TuTh 11am-12:20pm . Room: Furnas 213/214 . Instructor – Cristinel Ababei • E-mail: [email protected] • Phone: 716-645-1607 • Office hours (209 Davis Hall): TuTh 10- 11am or by appointment . Teaching assistant • Yi Cao, [email protected] • Labs: Wed. 2-4pm in Furnas 213/214 2 .1 Course Requirements . Textbook and references • Jr. Charles H. Roth and Lizy K. John, Digital Systems Design Using VHDL, CL Engineering, 2nd edition, 2007. • Peter J. Ashenden, The Student's Guide to VHDL, Morgan Kaufmann. Software • Xilinx ISE WebPack 14.1 • Aldec’s Active-HDL 9.1 Student Edition simulator . Hardware • Digilent ATLYS FPGA (Spartan-6) development board 3 Grading . Grade breakdown: “A”=[97-100] “A-”=[94- 97) “B+”=[90-94) “B”=[87-90) “B-”=[84-87) “C+”=[80-84) “C”=[77-80) “C-”=[74-77) “D+”=[70-74) “D”=[60-70) “F”=[0-60). Final grade components: • Midterm exam: 20% • Final exam: 20% • Homework assignments: 10% • Labs: 20% • Course project: 30% 4 .2 Course Outline . Week 1: Introduction, overview of digital systems . Week 2: Combinational logic circuits and design . Week 3-5: VHDL modeling of digital systems . Week 6-9: Sequential systems and design . Week 10: Memory and timing . Week 11-14: Computer design basics . Week 15: Project demos 5 What is a Digital System? . Structure: a collection of interconnected digital modules designed to perform a particular function. Function: takes a set of discrete information inputs and discrete internal information (system state) and generates a set of discrete information outputs.
    [Show full text]
  • System-On-Chip Environment: Tutorial
    System-on-Chip Environment SCE Version 2.2.0 Beta Tutorial Samar Abdi Junyu Peng Haobo Yu Dongwan Shin Andreas Gerstlauer Rainer Doemer Daniel Gajski Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697-3425 +1 (949) 824-8919 http://www.cecs.uci.edu System-on-Chip Environment: SCE Version 2.2.0 Beta; Tutorial by Samar Abdi, Junyu Peng, Haobo Yu, Dongwan Shin, Andreas Gerstlauer, Rainer Doemer, and Daniel Gajski Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697-3425 +1 (949) 824-8919 http://www.cecs.uci.edu Published July 23, 2003 Copyright © 2003-2017 CECS, UC Irvine Table of Contents 1. Introduction................................................................................................................1 1.1. Motivation.........................................................................................................1 1.2. SCE Goals.........................................................................................................2 1.3. Models for System Design................................................................................2 1.4. System-on-Chip Environment...........................................................................4 1.5. Design Example: GSM Vocoder.......................................................................4 1.6. Organization of the Tutorial..............................................................................5 2. System Specification Analysis ...................................................................................9
    [Show full text]