YAML: A Tool for Hardware Design Visualization and Capture
|
|
|
- Madeline Lewis
- 10 years ago
- Views:
Transcription
1 YAML: A Tool for Hardware Design Visualization and Capture Vivek Sinha, Frederic Doucet, Chuck Siska, Rajesh Gupta, Stan Liao, Abhijit Ghosh Center for Embedded Computer Systems, University of California, Irvine Advanced Technology Group, Synopsys Inc. Mountain View Abstract Design visualization is an important part of the system design process. In practice, systems are often visualized using a combination of structural and functional entities. In this paper, we describe an approach that helps to capture the structural aspects of a design at a high level of abstraction and enables the system designer to enter designs schematically using predefined structural and functional entities conforming to UML notation. The corresponding tool, YAML (Yet Another UML front end) provides support for modeling objects and a range of object relationships that are crucial to real-life embedded system designs. A YAML design entry can then be automatically translated into synthesizable C++ code for simulation and hardware synthesis. 1 Introduction Increased complexity of microelectronic systems demands an increase in the level of abstraction at which these systems are modeled. Current efforts in this direction seem to have been focussed on use of high-level programming languages and associated software process engineering tools in building complex systems on chip. Such efforts include object oriented modeling paradigms [18], and more specific approaches using C/C++/Java as a hardware modeling language [17, 16, 10, 9]. While such efforts enhance the descriptive ability by raising design descriptions to increasingly functional levels, they ignore a hard fact: that at any level of design description, microelectronic systems always contain certain amount of structural information that simply cannot be captured at a functional level. More importantly, this information is often critical for early design/architectural decisions. In this paper, we examine the nature of structural information and present a method of incorporating such information even in the most functional C++ descriptions. We also explore the usage of UML in object oriented hardware modeling that enables a designer to visualize microelectronic system designs. The Unified Modeling Language (UML) [8, 3] is a language for specifying, visualizing, constructing, and documenting the artifacts of systems. It provides a convenient notation that allows the developer to capture structural and behavioral details using an object oriented design methodology. Its most prevalent use has been in the design and documentation of large scale software systems. Recently, UML has been explored for its application in hardware modeling [11]. This is particularly relevant in view of increasing use of object oriented languages for hardware modeling, like C++ or Java. Projects like SystemC [13, 15], Cynlib [5] and OCAPI [16] use class libraries to support hardware modeling. SpecC [9] uses a superset of C at the specification level, but generates an intermediate C++ model of the program, and uses C++ classes to model behavior and communication in the system. Writing hardware descriptions in C++ using class libraries, can be quite tedious. Design visualization tools are needed to help a designer conceptualize, model and refine system design without being burdened by the implementation and syntactic details of the C++ class libraries. Towards this end we have built a design entry tool YAML, which uses UML notations to model hardware, and allows the user to input information about objects and relationships into a UML class diagram (for behavioral hierarchy) and an object diagram (for structural modeling). This is in contrast to the traditional use of UML, primarily as a documentation language. YAML generates the C++ code for the design, using the information input by the user to the UML class and object diagrams. Also, the object diagram can be used later during hardware synthesis to provide detailed structural information. We note that the embedded system modeling capabilities are not defined by UML, which has limited support for specifying concurrency, timing and placement. In fact, we extend the UML notations to provide support for these hardware specific features [7]. We briefly describe SystemC class library, and how we extend it to model structural information in Section 2. We describe our approach to design visualization using YAML in Section 3, followed by a description of our implementation and conclusions.
2 2 System Modeling using SystemC and ICSP As system complexity increases and design time shrinks, it becomes important that system specification be captured in a form that leads to unambiguous interpretation by the system implementers. The usage of object oriented languages for hardware modeling has provided a good alternative [12, 16]. This has enabled many system, hardware, and software designers to create executable specifications for their systems, which are for the most part, functional models written in a language like C or C++. These languages provide the control and data abstractions necessary to develop compact and efficient system descriptions. However, a programming language like C or C++ is intended for software and does not have the constructs necessary to model timing, concurrency, and reactive behavior, all of which are needed to create accurate models of systems containing hardware [10]. An object oriented programming language like C++ provides the ability to extend the language through classes [17], without adding new syntactic constructs. A class-based approach to providing modeling constructs is superior to a proprietary new language because it allows designers to continue to use the language and tools they are familiar with. These classes add to the C++ language, the capabilities needed to model hardware. 2.1 SystemC The fundamental building block in the SystemC class library [15] is a process. A process is like a C or C++ function that implements behavior. A complete system description consists of multiple concurrent processes which can be synchronous or asynchronous. Processes communicate with one another through signals, and explicit clocks are used to order events and synchronize processes. In addition a module, which is a container class can be used to model hierarchy. Using the SystemC library, the user can model a system at various levels of abstraction. At the highest level, only the functionality of the system may be modeled. For hardware implementation, models can be written either in a functional style or in a RTL (register-transfer level) style. The software part of a system can be naturally described in C++. Interfaces between software and hardware and between hardware blocks can be described either at the transactionaccurate level or at the cycle-accurate level. Moreover, different parts of the system can be modeled at different levels of abstraction and these models can co-exist during system simulation. C++ and the SystemC classes can be used not only for the development of the system, but also for the testbench. SystemC consists of a set of header files describing the classes and a link library that contains the simulation kernel. Any ANSI C++ compliant compiler can compile SystemC, together with the program. During linking, the SystemC library, which contains the simulation kernel is used. The resulting executable serves as a simulator for the system described. 2.2 Modeling Structure using the ICSP Class Library At the most abstract level, structure refers to an incidence structure commonly described as netlists of various sorts. Often such structures are described using declarative semantics in most hardware description languages where a block consists of a list of components and the order of specification of the component list is not important. However, for high performance microelectronic system designs, incidence structure is not enough. Indeed, relative placement (and floor-planning information) is often needed to make architectural design tradeoffs. The Incidence Composition Structure Project (ICSP) class library [14] is a set of class interfaces extended from the SystemC class library to express structural layout, routing and floor-planning information. Though SystemC provides the concept of hierarchical containment through the SystemC module class, there is no provision to specify the relative placement of components, and the attachment or placement of ports with respect to the components. The ICSP class library allows the user to express structural information like component and port placement and layout. This information can be very useful during the later stages of hardware synthesis, specifically during placement and layout, and can be captured during the high level specification stage itself. Structural information is an important part of datapath block designs in most ASIC and custom IC designs [4]. The SystemC component interfaces have been specialized to contain the following information in the ICSP class library. C221 C2 (V) C21 C22(H) C222 C1 (H) (a) C3 (V) C31 C32 C21 C2 (V) C221 C22 (H) C1 (H) C222 (b) C31 Split Type C3 (V) Figure 1. Component order and placement: (a) Rectangle partitioning, (b) Corresponding Slicing Tree Component order & Placement: Components are represented by rectangles and their relative placement is C32
3 specified using a slicing tree consisting of horizontal and vertical composition of rectangles. Figure1 shows an instance of rectangle partitioning and the corresponding slicing tree. A component can be split either horizontally or vertically into subcomponents, and each of those subcomponents can be split further. This is implemented in the icsp module class, which can be used to specify the type of split (horizontal or vertical) and also the order of subcomponents. Ports Locations: The location of input and output ports can be specified on the sides of a component. For instance in Figure 2, if we consider subcomponent S1, the position of input port in1 is left upper while that of output port diff is right lower. conceptualization and implementation of IC design. This is particularly helpful while using the SystemC and ICSP library of C++ classes, as it allows the user to model the system without the effort required to describe syntactic details of the underlying C++ code. S1_2 : Stage1_2 in1 S1 : Stage1 in1 sum S2 : Stage2 sum prod prod in2 in2 sum diff quot clk diff diff clk clk quot Figure 2. The partitioning of module S1 2 of type Stage1 2 horizontally into two subcomponents S1 and S2. Port locations are also shown. The goal of the ICSP class library is to reduce wiring congestion, minimize routing overhead and keep blocks with tight timing requirements close to one another. The ICSP class library can be incorporated into a schematic editor for system level designs, where the user can specify the relative placement of components and ports. This is described in the next section. Figure 3. Screenshot of YAML showing the various user interfaces Figure 3 shows the various user interfaces supported by YAML. It contains class diagram canvas for specifying behavioral hierarchy, and an object diagram canvas for specifying structural details. Each of these canvas has a palette of design entry icons to choose from, and property boxes for each element in the diagram. YAML allows the user to do a schematic like design entry of the system using UML notation. 3 Visual Modeling and Design Entry 3.1 YAML The motivation behind developing YAML is to help the user to conceptualize and model the design in a graphical interface using extended UML notation. Several graphical editors have been developed for visualization of various UML diagrams. Chief among them is Rhapsody by ilogix [2] and Rational Rose [1]. The primary use of these environments is in design conceptualization and documentation through code generation capabilities to help software development. Along similar lines, YAML has been designed and specifically targeted to include both structural and functional semantics, with the objects and relationships that help design The Class Diagram The class diagram (figure 4) in YAML is used to specify the behavioral hierarchy of the system using classes from the SystemC and ICSP class libraries. The user can instantiate a SystemC/ICSP process or module from the class diagram palette, and then add various properties to this class. The input and output signals, and other attributes like internal signals and variables, subcomponents, etc. can be specified in the property box for that class. The process body can be entered into a text window in the property box. Similarly, the body of the constructor can be entered to initialize the internal variables if required. The user can also specify various relationships among classes in the class diagram, as discussed in the next subsection.
4 3.2 Objects and relationships YAML supports system design using objects and relationships. While objects represent function or structure, relationships characterize the interface or interaction among these objects. We have extended the meaning and notation of these objects and relationships so as to support the design of microelectronic systems [7]. The following relationships can be specified in YAML. Figure 4. The 2 stage pipeline (Figure 2) modeled in the YAML class diagram using the ICSP class library The Object Diagram The object diagram (figure 5) is used to specify structural details of the system. For the SystemC class library, the object diagram merely shows the instances of classes (specified in the class diagram) as objects, and the interconnection of these objects. On the other hand, for the ICSP class library the object diagram is used to add all the necessary structural information. It allows the schematic placement of components and input/output ports. The user can specify the type of component partition, either horizontal or vertical, the order of subcomponents, and the location of the input and output ports around the component in the object diagram. Figure 5. The 2 stage pipeline (Figure 2) modeled in the YAML object diagram 1. Generalization: Generalization or inheritance is an important concept in object oriented programming. From a base class, we can derive specialized classes, through inheritance. Generalization is primarily used to derive specialized classes from the set of base classes provided in the SystemC and ICSP libraries. For example, in Figure 4 class Stage1 2 is derived from the base class icsp module using the generalization relationship. It is represented by a unidirectional arrow with a triangular head. 2. Aggregation/Composition: An aggregation relationship applies when one object physically or conceptually contains another. Composition is a strong form aggregation in which the owner is explicitly responsible for the creation and destruction of the owned objects. It can be represented by the actual inclusion of the owned object in the owner, or by a directed arrow with a diamond shaped head pointing towards the owner. Composition corresponds to component hierarchy in a design. In Figure 4, classes Stage1 and Stage2 are subcomponents of class Stage1 2, and are connected to it by diamond shaped arrows pointing towards Stage1 2 which is the owner. 3. Association: Association represents conceptual relationships between classes, and is used for the exchange of messages. It corresponds to communication, either through signals or channels, and is represented by a open directional arrow showing the direction of communication. The association relationship can be extended to contain information like communication protocols between objects or even wire delays at a very low level of design. In Figure 4, class Stage1 has association relationships with class Stage2. YAML provides support for interpreting the relationships between classes, and uses this information to generate code. For instance, generalization can be used to create a derived class, and YAML uses this information from the UML class diagram to reflect this derivation in the code generated for derived classes. We have provided handles in the data structure of a class, so as to access its neighboring classes and get any required information while processing it. The neighbors of a class
5 are all the classes around it in the class diagram that are directly connected to it by some kind of relationship. This can be particularly helpful in interpreting the composition relationship that exists between a module class and the subcomponents declared in it, where we need to access the subcomponents declared in the SystemC or ICSP module. In short, handles provide a mechanism to traverse the graph of connected classes and access information from any of the nodes of this graph as required. 3.3 Code generation from YAML A major advantage of using YAML is the ability to avoid the complex syntactic details involved in using the C++ class libraries. Writing code is not easy when these class libraries are used. YAML allows the user to perform graphical entry of the system using SystemC and ICSP class libraries, and processes this information to generate the underlying C++ code. #include Stage1 #include Stage2 struct Stage1 2 : public icsp module /*Internal Signals/Variables*/ sc signal double sum; sc signal double diff; /*SubComponents*/ Stage1 S1; Stage2 S2; /*Constructor*/ Stage1 2(const char* NAME, sc clock edge& CLK, const sc signal double & in1, const sc signal double & in2, sc signal double & prod, sc signal double & quot) : icsp module(name, ICSP SPLIT HORIZONTALLY, icsp corder(icsp comp(s1),icsp comp(s2)), icsp porder(icsp ppair(clk,icsp e lleft), icsp ppair(in1,icsp e uleft), icsp ppair(in2,icsp e mleft), icsp ppair(prod,icsp e uright), icsp ppair(quot,icsp e lright))), S1( Stage1, CLK, in1, in2, sum, diff), S2( Stage2, CLK, sum, diff, prod, quot) end module(); ; Figure 6. Code generated for the ICSP class Stage1 2 The user can generate the SystemC + ICSP code from YAML, after specifying the various details in the class and object diagrams. Figure 6 shows the code fragment generated for the ICSP class Stage1 2 from Figure 4. It is to be noted that for the ICSP module class, input and output signals are declared only in the constructor. In the ICSP code generated above, the component partitioning is specified by ICSP SPLIT HORIZONTALLY (horizontal partitioning in this case), component order is specified by the icsp corder function, and port locations by the icsp porder function. The icsp ppair function maps each port to its location around the component. For instance, port in1 is mapped to the upper left location of component Stage1 2 (Figure 5). It can be seen that writing such code directly in a text editor is much more difficult than specifying the details in a graphical design entry tool, and then generating the code automatically. YAML has been used to model various designs including a DLX compatible processor pipeline [7]. The DLX pipeline code consists of around 2000 line of C++ code most of which was generated automatically by YAML. Only around 200 line of user code containing the SystemC process bodies were entered by the user. Simulation results were produced by compiling and executing the resulting SystemC code. A simple ICSP/SystemC to VHDL translator [6] was used for further synthesis. 4 Conclusions This paper highlights the importance of structural information at the high level functional description and explains how the ICSP class library helps in specifying detailed structural and layout information at the functional level. Design conceptualization includes not only use of object oriented mechanisms for modeling structural and functional information, but also their visualization. YAML provides a user friendly graphical interface to model systems under the guidelines of UML, using the SystemC and ICSP C++ class libraries. The user can specify the details of SystemC and ICSP classes into the UML front end. YAML frees the designer from the syntactic nuances and details corresponding to these class libraries, so that he may focus on the organization of the structural and functional components of his design. The code generated by YAML conforms to the syntax of ICSP and SystemC classes and can be directly compiled and simulated. YAML is available on Linux as well as Solaris operating systems and is currently under active development. Acknowledgments The authors would like to acknowledge UC MICRO , DARPA DABT63-98C-0045 and NSF CCR funds for this work.
6 References [1] Rational rose. [2] Rhapsody. [3] UML Notation Guide September [4] A. Chowdhary and R. Gupta. Extraction of functional regularity in datapath circuits. IEEE Transactions on CAD of Integrated Circuits and Systems, 18(9), September [5] CynApps Inc., Cynlib Reference Manual. [6] F. Doucet, S. Kim, and R. Jerjurikar. Icsp/systemc object oriented translation to rtl hdl. Technical Report 07-00, CECS, UC Irvine, [7] F. Doucet, V. Sinha, and R. Gupta. System-on-chip modeling using objects and their relationships. Technical Report 99-53, CECS, Univ. of California, Irvine, cecs/, October [8] B. P. Douglass. Real-Time UML: Developing Efficient Objects for Embedded Systems. Addison Wesley, [9] D. D. Gajski, J. Zhu, R. Domer, A. Gerstlauer, and S. Zhao. SpecC: Specification Language and Methodology. Kluwer Academic Publishers, January [10] R. Gupta and S. Liao. Using a programming language for digital system design. IEEE Design & Test of Computers, April-June [11] H. Hallal, K. Xiao-Hua, and R. Negulescu. Experiments in modeling integrated circuit blocks by uml. In International Workshop on IP Based Synthesis and System Design, [12] S. Kumar, J. H. Aylor, B. W. Johnson, and W. A. Wulf. Object-oriented techniques in hardware design. Computer, June [13] S. Liao, S. Tjiang, and R. Gupta. An efficient implementation of reactivity for modeling hardware in the scenic design environment. In 34th Design Automation Conference, [14] C. Siska. Icsp technical report. Technical report, CECS, UC Irvine, June [15] Synopsys Inc., SystemC Reference Manual 1.0. [16] S. Vernalde, P. Schaumont, and I. Bolsens. An object oriented programming approach for hardware design. In IEEE Computer Society Workshop on VLSI, Orlando, April [17] C. Weiler, U. Kebschull, and W. Rosenstiel. C++ base classes for specification, simulation and partitioning of a hardware/software system. In VLSI 95, Japan, [18] W. Wolf. Object oriented cosynthesis of distributed embedded systems. ACM TODAES, July 1996.
Digital Systems Design! Lecture 1 - Introduction!!
ECE 3401! Digital Systems Design! Lecture 1 - Introduction!! Course Basics Classes: Tu/Th 11-12:15, ITE 127 Instructor Mohammad Tehranipoor Office hours: T 1-2pm, or upon appointments @ ITE 441 Email:
A SoC design flow based on UML 2.0 and SystemC
A SoC design flow based on UML 2.0 and SystemC Sara Bocchio 1, Elvinia Riccobene 2, Alberto Rosti 1, and Patrizia Scandurra 3 1 STMicroelectronics, AST Agrate Lab R&I, Italy {sara.bocchio, alberto.rosti}@st.com
System-On Chip Modeling and Design A case study on MP3 Decoder
System-On Chip Modeling and Design A case study on MP3 Decoder Pramod Chandraiah, Hans Gunar Schirner, Nirupama Srinivas and Rainer Doemer CECS Technical Report 04-17 June 21, 2004 Center for Embedded
Undergraduate Major in Computer Science and Engineering
University of California, Irvine 2015-2016 1 Undergraduate Major in Computer Science and Engineering On This Page: Overview Admissions Requirements for the B.S. in Computer Science and Engineering Sample
Architectural Level Power Consumption of Network on Chip. Presenter: YUAN Zheng
Architectural Level Power Consumption of Network Presenter: YUAN Zheng Why Architectural Low Power Design? High-speed and large volume communication among different parts on a chip Problem: Power consumption
Process Modeling using BPMN 2.0
Process Modeling using BPMN 2.0 This chapter provides a brief overview of Business Process Modeling Notation (BPMN) concepts with particular emphasis on the BPMN 2.0 additions. In addition, it describes
International Workshop on Field Programmable Logic and Applications, FPL '99
International Workshop on Field Programmable Logic and Applications, FPL '99 DRIVE: An Interpretive Simulation and Visualization Environment for Dynamically Reconægurable Systems? Kiran Bondalapati and
Introduction to Digital System Design
Introduction to Digital System Design Chapter 1 1 Outline 1. Why Digital? 2. Device Technologies 3. System Representation 4. Abstraction 5. Development Tasks 6. Development Flow Chapter 1 2 1. Why Digital
Designing Real-Time and Embedded Systems with the COMET/UML method
By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design
Design Compiler Graphical Create a Better Starting Point for Faster Physical Implementation
Datasheet Create a Better Starting Point for Faster Physical Implementation Overview Continuing the trend of delivering innovative synthesis technology, Design Compiler Graphical delivers superior quality
SystemC Tutorial. John Moondanos. Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley
SystemC Tutorial John Moondanos Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley SystemC Introduction Why not leverage experience of C/C++ developers for H/W & System Level Design? But
Architectures and Platforms
Hardware/Software Codesign Arch&Platf. - 1 Architectures and Platforms 1. Architecture Selection: The Basic Trade-Offs 2. General Purpose vs. Application-Specific Processors 3. Processor Specialisation
Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T
Eingebettete Systeme 4: Entwurfsmethodik, HW/SW Co-Design echnische Informatik System Level Design: ools and Flow Refinement of HW/SW Systems ools for HW/SW Co-Design C-based design of HW/SW Systems echnische
Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation
Testing & Verification of Digital Circuits ECE/CS 5745/6745 Hardware Verification using Symbolic Computation Instructor: Priyank Kalla ([email protected]) 3 Credits Mon, Wed, 1:25-2:45pm, WEB L105 Office
Layered Approach to Development of OO War Game Models Using DEVS Framework
Layered Approach to Development of OO War Game Models Using DEVS Framework Chang Ho Sung*, Su-Youn Hong**, and Tag Gon Kim*** Department of EECS KAIST 373-1 Kusong-dong, Yusong-gu Taejeon, Korea 305-701
CAD TOOLS FOR VLSI. FLOORPLANNING Page 1 FLOORPLANNING
FLOORPLANNING Page 1 FLOORPLANNING Floorplanning: taking layout information into account at early stages of the design process. BEHAVIORAL D. STRUCTURAL D. Systems Algorithms Processors Register transfers
Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001
Agenda Introduzione Il mercato Dal circuito integrato al System on a Chip (SoC) La progettazione di un SoC La tecnologia Una fabbrica di circuiti integrati 28 How to handle complexity G The engineering
OKLAHOMA SUBJECT AREA TESTS (OSAT )
CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments
VHDL GUIDELINES FOR SYNTHESIS
VHDL GUIDELINES FOR SYNTHESIS Claudio Talarico For internal use only 1/19 BASICS VHDL VHDL (Very high speed integrated circuit Hardware Description Language) is a hardware description language that allows
Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview
Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview Prof. Charles Zukowski ([email protected]) Interim Chair, September 3, 2015 MS Requirements: Overview (see bulletin for
Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic
Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic Clifford Wolf, Johann Glaser, Florian Schupfer, Jan Haase, Christoph Grimm Computer Technology /99 Overview Ultra-Low-Power
PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU
ESE566 REPORT3 Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU Nov 19th, 2002 ABSTRACT: In this report, we discuss several recent published papers on design methodologies of core-based
UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com
UML FOR OBJECTIVE-C Excel Software www.excelsoftware.com Objective-C is a popular programming language for Mac OS X computers. The Unified Modeling Language (UML) is the industry standard notation for
From UML to HDL: a Model Driven Architectural Approach to Hardware-Software Co-Design
From UML to HDL: a Model Driven Architectural Approach to Hardware-Software Co-Design Frank P. Coyle and Mitchell A. Thornton Computer Science and Engineering Dept Southern Methodist University Dallas
A Survey: 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
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE
INTRODUCTION TO DIGITAL SYSTEMS 1 DESCRIPTION AND DESIGN OF DIGITAL SYSTEMS FORMAL BASIS: SWITCHING ALGEBRA IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE COURSE EMPHASIS:
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1
(DSF) Quartus II Stand: Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] Quartus II 1 Quartus II Software Design Series : Foundation 2007 Altera
Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow
Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow Bradley R. Quinton Dept. of Electrical and Computer Engineering University of British Columbia [email protected]
Visualization of Verilog Digital Systems Models
Visualization of Verilog Digital Systems Models K. Jelemenská, M. Nosáľ, P. Čičák Institute of Computer Systems and Networks, Faculty of Informatics and Information Technologies Slovak University of Technology
DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING
DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING Fall 2000 The instructions contained in this packet are to be used as a guide in preparing the Departmental Computer Science Degree Plan Form for the Bachelor's
[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com
-Gene Sher Software Development Processes: Those in engineering and science will sooner or later either be members of teams solving some large project, or be managing teams solving some large project.
7a. System-on-chip design and prototyping platforms
7a. System-on-chip design and prototyping platforms Labros Bisdounis, Ph.D. Department of Computer and Communication Engineering 1 What is System-on-Chip (SoC)? System-on-chip is an integrated circuit
USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area. CPSC 822 Case Study in Operating Systems
USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area 398 / SE05117 Advanced Cover software lifecycle: waterfall model, V model, spiral model, RUP and
A Verilog HDL Test Bench Primer Application Note
A Verilog HDL Test Bench Primer Application Note Table of Contents Introduction...1 Overview...1 The Device Under Test (D.U.T.)...1 The Test Bench...1 Instantiations...2 Figure 1- DUT Instantiation...2
Rapid System Prototyping with FPGAs
Rapid System Prototyping with FPGAs By R.C. Coferand Benjamin F. Harding AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Newnes is an imprint of
Intel CoFluent Methodology for SysML *
Intel CoFluent Methodology for SysML * UML* SysML* MARTE* Flow for Intel CoFluent Studio An Intel CoFluent Design White Paper By Thomas Robert and Vincent Perrier www.cofluent.intel.com Acronyms and abbreviations
Early Hardware/Software Integration Using SystemC 2.0
Early Hardware/Software Integration Using SystemC 2.0 Jon Connell, ARM. Bruce Johnson, Synopsys, Inc. Class 552, ESC San Francisco 2002 Abstract Capabilities added to SystemC 2.0 provide the needed expressiveness
Modeling Guidelines Manual
Modeling Guidelines Manual [Insert company name here] July 2014 Author: John Doe [email protected] Page 1 of 22 Table of Contents 1. Introduction... 3 2. Business Process Management (BPM)... 4 2.1.
Hardware Verification with the Unified Modeling Language and Vera
Hardware Verification with the Unified Modeling Language and Vera Kevin Thompson Ladd Williamson Cypress Semiconductor [email protected] [email protected] ABSTRACT A method is proposed whereby the Unified
A Framework for Automatic Generation of Configuration Files for a Custom Hardware/Software RTOS
A Framework for Automatic Generation of Configuration Files for a Custom Hardware/Software Jaehwan Lee, Kyeong Keol Ryu and Vincent John Mooney III School of Electrical and Computer Engineering Georgia
COCOVILA Compiler-Compiler for Visual Languages
LDTA 2005 Preliminary Version COCOVILA Compiler-Compiler for Visual Languages Pavel Grigorenko, Ando Saabas and Enn Tyugu 1 Institute of Cybernetics, Tallinn University of Technology Akadeemia tee 21 12618
State-of-Art (SoA) System-on-Chip (SoC) Design HPC SoC Workshop
Photos placed in horizontal position with even amount of white space between photos and header State-of-Art (SoA) System-on-Chip (SoC) Design HPC SoC Workshop Michael Holmes Manager, Mixed Signal ASIC/SoC
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011
Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17
Life Cycle of a Memory Request (1) Use AQR or AQW to place address in AQ (2) If A[31]==0, check for hit in DCache Ring (3) Read Hit: place cache word in RQ; Write Hit: replace cache word with WQ RDDest/RDreturn
Introduction to Exploration and Optimization of Multiprocessor Embedded Architectures based on Networks On-Chip
Introduction to Exploration and Optimization of Multiprocessor Embedded Architectures based on Networks On-Chip Cristina SILVANO [email protected] Politecnico di Milano, Milano (Italy) Talk Outline
WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation
We know now that the source of wealth is something specifically human: knowledge. If we apply knowledge to tasks we already know how to do, we call it productivity. If we apply knowledge to tasks that
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications Harris Z. Zebrowitz Lockheed Martin Advanced Technology Laboratories 1 Federal Street Camden, NJ 08102
Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins
Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins Rushiraj Heshi Department of Computer Science and Engineering Walchand College of Engineering, Sangli Smriti
Design and Verification of Nine port Network Router
Design and Verification of Nine port Network Router G. Sri Lakshmi 1, A Ganga Mani 2 1 Assistant Professor, Department of Electronics and Communication Engineering, Pragathi Engineering College, Andhra
Chapter 4 Software Lifecycle and Performance Analysis
Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and
SDLC Controller. Documentation. Design File Formats. Verification
January 15, 2004 Product Specification 11 Stonewall Court Woodcliff Lake, NJ 07677 USA Phone: +1-201-391-8300 Fax: +1-201-391-8694 E-mail: [email protected] URL: www.cast-inc.com Features AllianceCORE
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Object Oriented Programming. Risk Management
Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling
Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip
Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip Ms Lavanya Thunuguntla 1, Saritha Sapa 2 1 Associate Professor, Department of ECE, HITAM, Telangana
Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks
Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML
SCADE System 17.0. Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System 17.0 1
SCADE System 17.0 SCADE System is the product line of the ANSYS Embedded software family of products and solutions that empowers users with a systems design environment for use on systems with high dependability
IL2225 Physical Design
IL2225 Physical Design Nasim Farahini [email protected] Outline Physical Implementation Styles ASIC physical design Flow Floor and Power planning Placement Clock Tree Synthesis Routing Timing Analysis Verification
Software Project Management and UML
Software Project Management and UML Ali Bigdelou Computer Aided Medical Procedures (CAMP), Technische Universität München, Germany Outline Intro to Software Project Management Project Requirements Specification
A Programming Language for Processor Based Embedded Systems
A Programming Language for Processor Based Embedded Systems Akihiko Inoue Hiroyuki Tomiyama Eko Fajar Nurprasetyo Hiroto Yasuura Department of Computer Science and Communication Engineering, Kyushu University
UML for the C programming language.
Functional-based modeling White paper June 2009 UML for the C programming language. Bruce Powel Douglass, PhD, IBM Page 2 Contents 2 Executive summary 3 FunctionalC UML profile 4 Functional development
Codesign: The World Of Practice
Codesign: The World Of Practice D. Sreenivasa Rao Senior Manager, System Level Integration Group Analog Devices Inc. May 2007 Analog Devices Inc. ADI is focused on high-end signal processing chips and
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Abstract While UML is the accepted visual language for object-oriented system modeling, it lacks a common semantic foundation with
PyMTL and Pydgin Tutorial. Python Frameworks for Highly Productive Computer Architecture Research
PyMTL and Pydgin Tutorial Python Frameworks for Highly Productive Computer Architecture Research Derek Lockhart, Berkin Ilbeyi, Christopher Batten Computer Systems Laboratory School of Electrical and Computer
A Platform for Visualizing Digital Circuit Synthesis with VHDL
A Platform for Visualizing Digital Circuit Synthesis with VHDL Abdulhadi Shoufan [email protected] Zheng Lu [email protected] Technische Universität Darmstadt Dept. of Computer Science
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
Digital Circuit Design Using Xilinx ISE Tools
Digital Circuit Design Using Xilinx ISE Tools Contents 1. Introduction... 1 2. Programmable Logic Device: FPGA... 2 3. Creating a New Project... 2 4. Synthesis and Implementation of the Design... 11 5.
FSMD and Gezel. Jan Madsen
FSMD and Gezel Jan Madsen Informatics and Mathematical Modeling Technical University of Denmark Richard Petersens Plads, Building 321 DK2800 Lyngby, Denmark [email protected] Processors Pentium IV General-purpose
Study Plan Masters of Science in Computer Engineering and Networks (Thesis Track)
Plan Number 2009 Study Plan Masters of Science in Computer Engineering and Networks (Thesis Track) I. General Rules and Conditions 1. This plan conforms to the regulations of the general frame of programs
Applying 4+1 View Architecture with UML 2. White Paper
Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was
PIE. Internal Structure
PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution
Use, Analysis, and Debug of SystemVerilog Assertions
Use, Analysis, and Debug of SystemVerilog Assertions Agenda Introduction Source Code Tracing Assertion Checking Analyzing and Debugging Waveform Active Annotation Property Result Table Standards: The Life
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah
(DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] NIOS II 1 1 What is Nios II? Altera s Second Generation
Application Note: AN00141 xcore-xa - Application Development
Application Note: AN00141 xcore-xa - Application Development This application note shows how to create a simple example which targets the XMOS xcore-xa device and demonstrates how to build and run this
EEC 119B Spring 2014 Final Project: System-On-Chip Module
EEC 119B Spring 2014 Final Project: System-On-Chip Module Dept. of Electrical and Computer Engineering University of California, Davis Issued: March 14, 2014 Subject to Revision Final Report Due: June
VHDL Test Bench Tutorial
University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate
Hardware Implementation of the Stone Metamorphic Cipher
International Journal of Computer Science & Network Security VOL.10 No.8, 2010 Hardware Implementation of the Stone Metamorphic Cipher Rabie A. Mahmoud 1, Magdy Saeb 2 1. Department of Mathematics, Faculty
The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.
Logging makes sense for testbench debug The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. SystemVerilog provides
Using UML Part One Structural Modeling Diagrams
UML Tutorials Using UML Part One Structural Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,
How To Develop A Telelogic Harmony/Esw Project
White paper October 2008 The Telelogic Harmony/ESW process for realtime and embedded development. Bruce Powel Douglass, IBM Page 2 Contents 3 Overview 4 Telelogic Harmony/ESW core principles 6 Harmony/ESW
ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path
ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path Project Summary This project involves the schematic and layout design of an 8-bit microprocessor data
Tool Support for Software Variability Management and Product Derivation in Software Product Lines
Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,
Computer Science. Master of Science
Computer Science Master of Science The Master of Science in Computer Science program at UALR reflects current trends in the computer science discipline and provides students with a solid theoretical and
SystemC - NS-2 Co-simulation using HSN
Verona, 12/09/2005 SystemC - NS-2 Co-simulation using HSN Giovanni Perbellini 1 REQUIRED BACKGROUND 2 2 GOAL 2 3 WHAT IS SYSTEMC? 2 4 WHAT IS NS-2? 2 5 WHAT IS HSN? 3 6 HARDWARE-NETWORK COSIMULATION 3
RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition
RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition A Tutorial Approach James O. Hamblen Georgia Institute of Technology Michael D. Furman Georgia Institute of Technology KLUWER ACADEMIC PUBLISHERS Boston
Designing Systems-on-Chip Using Cores
Designing Systems-on-Chip Using Cores Reinaldo A. Bergamaschi 1, William R. Lee 2 1 IBM T. J. Watson Research Center, Yorktown Heights, NY, 2 IBM Microelectronics, Raleigh, NC [email protected], [email protected]
Printed Circuit Board Design with HDL Designer
Printed Circuit Board Design with HDL Designer Tom Winkert Teresa LaFourcade NASNGoddard Space Flight Center 301-286-291 7 NASNGoddard Space Flight Center 301-286-0019 tom.winkert8 nasa.gov teresa. 1.
High-level Design. What is software architecture?
High-level Design Software Architecture What is it? Examples of common architectures Parnas KWIK index example of information hiding Model view controller in high level layered design 1 What is software
Software Synthesis from Dataflow Models for G and LabVIEW
Presented at the Thirty-second Annual Asilomar Conference on Signals, Systems, and Computers. Pacific Grove, California, U.S.A., November 1998 Software Synthesis from Dataflow Models for G and LabVIEW
