Hardware Design with VHDL

Total Page:16

File Type:pdf, Size:1020Kb

Hardware Design with VHDL Hardware Design with VHDL Hardware Design with VHDL An Introduction (created by Ronald Hecht) Henning Puttnies and Eike Schweißguth University of Rostock Institute of Applied Microelectronics and Computer Engineering April 4, 2016 Hardware Design with VHDL Outline Outline 1 Introduction 2 VHDL for Synthesis 3 Simulation with VHDL 4 Frequent Mistakes 5 Advanced Concepts Hardware Design with VHDL Introduction Outline 1 Introduction 2 VHDL for Synthesis 3 Simulation with VHDL 4 Frequent Mistakes 5 Advanced Concepts Hardware Design with VHDL Introduction Hardware Description Languages What are HDLs? Modeling language for electronic designs and systems VHDL, Verilog PALASM, ABEL Net list languages such as EDIF, XNF Test languages such as e, Vera SystemC for hardware/software co-design and verification Hardware Design with VHDL Introduction Hardware Description Languages HDL for . Formal description of hardware Specification on all abstraction layers Simulation of designs and whole systems Design entry for synthesis Standard interface between CAD tools Design reuse Hardware Design with VHDL Introduction Hardware Description Languages Design methodology Design Entry Test Development Functional Simulation Synthesis Place & Route Timing Simulation Hardware Design with VHDL Introduction Hardware Description Languages Pros and Cons of HDLs Pros Speeds up the whole design process Powerful tools Acts as an interface between tools Standardized Design reuse Cons Learning curve Limited support for target architecture Hardware Design with VHDL Introduction Abstraction Levels Design Abstraction Levels Performance Specifications Behavior Test Benches Sequential Descriptions State Machines Register Transfers Abstraction Data Flow Level Selected Assignments Synthesizable Arithmetic Operations Boolean Equations Structure Hierarchy Physical Information Behavior Sequential statements, implicit registers Data flow Register transfer level (RTL), Parallel statements, explicit registers Structure Design hierarchy, Wiring components Hardware Design with VHDL Introduction Abstraction Levels HDL Abstraction Levels Abstraction Level PLD Language Verilog VHDL SystemC Hardware Design with VHDL VHDL for Synthesis Outline 1 Introduction 2 VHDL for Synthesis 3 Simulation with VHDL 4 Frequent Mistakes 5 Advanced Concepts Hardware Design with VHDL VHDL for Synthesis A First Example A First Example Multiplexer library ieee ; use ieee . std logic 1164 . all ; entity mux is port ( a[3:0] 0 a, b : in std logic vector (3 downto 0); o[3:0] s : in std logic ; b[3:0] 1 o : out std logic vector (3 downto 0)); end mux; s architecture behavior of mux is begin −− behavior o <= a when s = '0' else b; end behavior; Hardware Design with VHDL VHDL for Synthesis A First Example Library library ieee ; use ieee . std logic 1164 . all ; Makes library ieee visible Use objects within the library Use package std logic 1164 Makes std logic and std logic vector visible Hardware Design with VHDL VHDL for Synthesis A First Example Entity entity mux is port ( a, b : in std logic vector (3 downto 0); s : in std logic ; o : out std logic vector (3 downto 0)); end mux; Defines the name of the module Describes the interface Name of the ports Direction Type Hardware Design with VHDL VHDL for Synthesis A First Example Architecture architecture behavior of mux is begin −− behavior o <= a when s = '0' else b; end behavior; Implements the module Behavior Structure RTL description Entity and architecture are linked by name (mux) Name of architecture (behavior) More than one architecture per entity allowed Hardware Design with VHDL VHDL for Synthesis Combinational Logic Parallel Processing Half Adder a library ieee ; s use ieee . std logic 1164 . all ; b entity half adder is co port ( a, b : in std logic ; s, co : out std logic ); end half adder ; Implicit gates Signals are used to wire architecture rtl of half adder is gates begin −− rtl s <= a xor b; Computes signals s and co <= a and b; co from a and b in parallel end rtl ; Hardware Design with VHDL VHDL for Synthesis Combinational Logic Full Adder entity full adder is ci port ( a s2 a, b, ci : in std logic ; s b s1 s, co : out std logic ); c2 end full adder ; co c1 architecture beh par of full adder is signal s1, s2, c1, c2 : std logic ; begin −− behavior All statements are processed −− half adder 1 s1 <= a xor b; in parallel c1 <= a and b; A signal must not be driven −− half adder 2 s2 <= s1 xor ci; at two places c2 <= s1 and ci; −− evaluate s and co Order of statements is s <= s2; irrelevant co <= c1 or c2; end beh par; Hardware Design with VHDL VHDL for Synthesis Combinational Logic Sequential Processing { Processes All statements are architecture beh seq of full adder is processed sequential begin −− beh seq Sensitivity list (a, b, ci) add: process (a, b, ci ) variable s tmp, c tmp : std logic ; Multiple variable begin −− process add assignments are allowed −− half adder 1 s tmp := a xor b; Order of statements is c tmp := a and b; −− half adder 2 relevant c tmp := c tmp or (s tmp and ci ); Variables are updated s tmp := s tmp xor ci ; −− drive signals immediately s <= s tmp; Signals are updated at the co <= c tmp; end process add; end of a process end beh seq; Try to avoid multiple signal assignments Hardware Design with VHDL VHDL for Synthesis Combinational Logic Parallel versus Sequential Processing p1: process (a, b) begin −− process p1 −− sequential statements process p1, process p2 and o are −− ... −− drive process outputs processed in parallel x <= ... Statements within processes are end process p1; sequential p2: process (c, x) begin −− process p2 Inter-process communication −− sequential statements with signals −− ... −− drive process outputs Signal values are evaluated y <= ... recursively in zero time end process p2; Simulator uses delta cycles −− drive module outputs o <= x or y; Hardware Design with VHDL VHDL for Synthesis Combinational Logic Real time and delta cycles ∆ Delta time Real time t/ns Hardware Design with VHDL VHDL for Synthesis Combinational Logic Signals and Variables Signals Inside and outside processes Communication between parallel statements and processes Only the last assignment within a process is evaluated Signal is updated at the end of a process Signals are wires Variables Inside processes only For intermediate results Multiple assignments allowed Immediate update Hardware Design with VHDL VHDL for Synthesis Structural Description Structural Description Module composition Wiring of Modules Design Hierarchy \Divide and conquer" ci a s s_out half s1 adder c2 a_in a s b co half co_out adder c1 b_in b co Hardware Design with VHDL VHDL for Synthesis Structural Description architecture structural of full adder is component half adder port ( a, b : in std logic ; s, co : out std logic ); end component; signal s1, c1, c2 : std logic ; begin −− structural Make module half adder half adder 1 : half adder known with component port map ( a => a in, b => b in, declaration s => s1, co => c1); Module instantiation half adder 2 : half adder Connect ports and signals port map ( a => ci, b => s1, s => s out, co => c2); co out <= c1 or c2; end structural ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Register entity reg is port ( d, clk : in std logic ; dq q : out std logic ); end reg; clk architecture rtl of reg is begin −− rtl Sensitivity list only contains the reg: process (clk) clock begin −− process reg if rising edge (clk) then Assignment on the rising edge q <= d; of the clock end if ; end process reg; Not transparent end rtl ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Latch entity latch is port ( d, le : in std logic ; dq q : out std logic ); end latch ; le architecture rtl of latch is begin −− rtl Sensitivity list contains latch latch : process ( le , d) enable and data input begin −− process latch if le = '1' then Assignment during high phase q <= d; of latch enable end if ; end process latch ; Transparent end rtl ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Register with Asynchronous Reset architecture rtl of reg areset is begin −− rtl dq reg : process (clk , rst ) rst begin −− process reg if rising edge (clk) then q <= d; end if ; Sensitivity list contains clock if rst = '0' then and reset q <= '0'; Reset statement is the last end if ; end process reg; statement within the process Reset has highest priority end rtl ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Register with Synchronous Reset architecture rtl of reg sreset is begin −− rtl Sensitivity list only contains reg : process (clk) clock begin −− process reg if rising edge (clk) then Reset statement is the last q <= d; statement within the clock if rst = '0' then statement q <= '0'; end if ; Should be used if target end if ; architecture supports end process reg; synchronous resets end rtl ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Register with Clock Enable architecture rtl of reg enable is begin −− rtl reg : process (clk , rst ) dq begin −− process reg en if rising edge (clk) then if en = '1' then rst q <= d; end if ; end if ; Enable statement around signal if rst = '0' then assignment q <= '0'; end if ; Use this semantic! end process reg; end rtl ; Hardware Design with VHDL VHDL for Synthesis Storage Elements Storage Elements { Summary Before you start Register or latch? What kind of reset? Clock enable? When you code, be precise Sensitivity list Clock statement Enable semantic Reset order/priority Prefer registers with synchronous resets Check synthesis results Hardware Design with VHDL VHDL for Synthesis Register Transfer Level Register Transfer Level (RTL) A Module may consist of Pure combinational elements Storage elements Mixture of combinational and storage elements Use RTL for shift registers, counters Finite state machines (FSMs) Complex Modules o Transition State Output Logic Memory Logic i clk rst Hardware Design with VHDL VHDL for Synthesis Register Transfer Level Shift register library ieee ; use ieee .
Recommended publications
  • Prostep Ivip CPO Statement Template
    CPO Statement of Mentor Graphics For Questa SIM Date: 17 June, 2015 CPO Statement of Mentor Graphics Following the prerequisites of ProSTEP iViP’s Code of PLM Openness (CPO) IT vendors shall determine and provide a list of their relevant products and the degree of fulfillment as a “CPO Statement” (cf. CPO Chapter 2.8). This CPO Statement refers to: Product Name Questa SIM Product Version Version 10 Contact Ellie Burns [email protected] This CPO Statement was created and published by Mentor Graphics in form of a self-assessment with regard to the CPO. Publication Date of this CPO Statement: 17 June 2015 Content 1 Executive Summary ______________________________________________________________________________ 2 2 Details of Self-Assessment ________________________________________________________________________ 3 2.1 CPO Chapter 2.1: Interoperability ________________________________________________________________ 3 2.2 CPO Chapter 2.2: Infrastructure _________________________________________________________________ 4 2.3 CPO Chapter 2.5: Standards ____________________________________________________________________ 4 2.4 CPO Chapter 2.6: Architecture __________________________________________________________________ 5 2.5 CPO Chapter 2.7: Partnership ___________________________________________________________________ 6 2.5.1 Data Generated by Users ___________________________________________________________________ 6 2.5.2 Partnership Models _______________________________________________________________________ 6 2.5.3 Support of
    [Show full text]
  • Powerpoint Template
    Accellera Overview February 27, 2017 Lu Dai | Accellera Chairman Welcome Agenda . About Accellera . Current news . Technical activities . IEEE collaboration 2 © 2017 Accellera Systems Initiative, Inc. February 2017 Accellera Systems Initiative Our Mission To provide a platform in which the electronics industry can collaborate to innovate and deliver global standards that improve design and verification productivity for electronics products. 3 © 2017 Accellera Systems Initiative, Inc. February 2017 Broad Industry Support Corporate Members 4 © 2017 Accellera Systems Initiative, Inc. February 2017 Broad Industry Support Associate Members 5 © 2017 Accellera Systems Initiative, Inc. February 2017 Global Presence SystemC Evolution Day DVCon Europe DVCon U.S. SystemC Japan Design Automation Conference DVCon China Verification & ESL Forum DVCon India 6 © 2017 Accellera Systems Initiative, Inc. February 2017 Agenda . About Accellera . Current news . Technical activities . IEEE collaboration 7 © 2017 Accellera Systems Initiative, Inc. February 2017 Accellera News . Standards - IEEE Approves UVM 1.2 as IEEE 1800.2-2017 - Accellera relicenses SystemC reference implementation under Apache 2.0 . Outreach - First DVCon China to be held April 19, 2017 - Get IEEE free standards program extended 10 years/10 standards . Awards - Thomas Alsop receives 2017 Technical Excellence Award for his leadership of the UVM Working Group - Shrenik Mehta receives 2016 Accellera Leadership Award for his role as Accellera chair from 2005-2010 8 © 2017 Accellera Systems Initiative, Inc. February 2017 DVCon – Global Presence 29th Annual DVCon U.S. 4th Annual DVCon Europe www.dvcon-us.org 4th Annual DVCon India www.dvcon-europe.org 1st DVCon China www.dvcon-india.org www.dvcon-china.org 9 © 2017 Accellera Systems Initiative, Inc.
    [Show full text]
  • Co-Simulation Between Cλash and Traditional Hdls
    MASTER THESIS CO-SIMULATION BETWEEN CλASH AND TRADITIONAL HDLS Author: John Verheij Faculty of Electrical Engineering, Mathematics and Computer Science (EEMCS) Computer Architecture for Embedded Systems (CAES) Exam committee: Dr. Ir. C.P.R. Baaij Dr. Ir. J. Kuper Dr. Ir. J.F. Broenink Ir. E. Molenkamp August 19, 2016 Abstract CλaSH is a functional hardware description language (HDL) developed at the CAES group of the University of Twente. CλaSH borrows both the syntax and semantics from the general-purpose functional programming language Haskell, meaning that circuit de- signers can define their circuits with regular Haskell syntax. CλaSH contains a compiler for compiling circuits to traditional hardware description languages, like VHDL, Verilog, and SystemVerilog. Currently, compiling to traditional HDLs is one-way, meaning that CλaSH has no simulation options with the traditional HDLs. Co-simulation could be used to simulate designs which are defined in multiple lan- guages. With co-simulation it should be possible to use CλaSH as a verification language (test-bench) for traditional HDLs. Furthermore, circuits defined in traditional HDLs, can be used and simulated within CλaSH. In this thesis, research is done on the co-simulation of CλaSH and traditional HDLs. Traditional hardware description languages are standardized and include an interface to communicate with foreign languages. This interface can be used to include foreign func- tions, or to make verification and co-simulation possible. Because CλaSH also has possibilities to communicate with foreign languages, through Haskell foreign function interface (FFI), it is possible to set up co-simulation. The Verilog Procedural Interface (VPI), as defined in the IEEE 1364 standard, is used to set-up the communication and to control a Verilog simulator.
    [Show full text]
  • Development of Systemc Modules from HDL for System-On-Chip Applications
    University of Tennessee, Knoxville TRACE: Tennessee Research and Creative Exchange Masters Theses Graduate School 8-2004 Development of SystemC Modules from HDL for System-on-Chip Applications Siddhartha Devalapalli University of Tennessee - Knoxville Follow this and additional works at: https://trace.tennessee.edu/utk_gradthes Part of the Electrical and Computer Engineering Commons Recommended Citation Devalapalli, Siddhartha, "Development of SystemC Modules from HDL for System-on-Chip Applications. " Master's Thesis, University of Tennessee, 2004. https://trace.tennessee.edu/utk_gradthes/2119 This Thesis is brought to you for free and open access by the Graduate School at TRACE: Tennessee Research and Creative Exchange. It has been accepted for inclusion in Masters Theses by an authorized administrator of TRACE: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications." I have examined the final electronic copy of this thesis for form and content and recommend that it be accepted in partial fulfillment of the equirr ements for the degree of Master of Science, with a major in Electrical Engineering. Dr. Donald W. Bouldin, Major Professor We have read this thesis and recommend its acceptance: Dr. Gregory D. Peterson, Dr. Chandra Tan Accepted for the Council: Carolyn R. Hodges Vice Provost and Dean of the Graduate School (Original signatures are on file with official studentecor r ds.) To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications".
    [Show full text]
  • MACABEL ABEL for the APPLE MACINTOSH Nor IIX WORKSTATION A/UX VERSION
    SPECIFICATIONS MACABEL ABEL FOR THE APPLE MACINTOSH nOR IIX WORKSTATION A/UX VERSION GENERAL DESCRIPTION ABEL.'" the industry standard PLD design software, is now available on the Apple Macintosh® II or IIx workstation. MacABEL allows you to take advantage of the personal productivity features of the Macintosh to easily describe and implement logic designs in programmable logic devices (PLDs) and PROMs. Like ABEL Version 3.0 for other popular workstations, MacABEL combines a natural high-level design language with a language processor that converts logic descriptions to programmer load files. These files contain the required information to program and test PLDs. MacABEL allows you to describe your design in any combi­ nation of Boolean equations, truth tables or state diagrams­ whichever best suits the logic you are describing or your comfort level. Meaningful names can be assigned to signals; signals grouped into sets; and macros used to simplify logic descriptions - making your logic design easy to read and • Boolean equations understand. • State machine diagram entry, using IF-THEN-ELSE, CASE, In addition, the software's language processor provides GOTQ and WITH-ENDWITH statements powerful logic reduction, extensive syntax and logic error • Truth tables to specify input to output relationships for both checking - before your device is programmed. MacABEL combinatorial and registered outputs supports the most powerful and innovative complex PLDs just • High-level equation entry, incorporating the boolean introduced on the market, as well as many still in development. operators used in most logic designs < 1 1 & 1 # 1 $ 1 1 $ ) , MacABEL runs under the Apple A/UX'" operating system arithmetic operators <- I + I * I I I %I < < I > > ) , relational utilizing the Macintosh user interface.
    [Show full text]
  • UNIVERSITY of CALIFORNIA RIVERSIDE Emulation of Systemc
    UNIVERSITY OF CALIFORNIA RIVERSIDE Emulation of SystemC Applications for Portable FPGA Binaries A Dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science by Scott Spencer Sirowy June 2010 Dissertation Committee: Dr. Frank Vahid, Chairperson Dr. Tony Givargis Dr. Sheldon X.-D. Tan Copyright by Scott Spencer Sirowy 2010 The Dissertation of Scott Spencer Sirowy is approved: Committee Chairperson University of California, Riverside ABSTRACT OF THE DISSERTATION Emulation of SystemC Applications for Portable FPGA Binaries by Scott Spencer Sirowy Doctor of Philosophy, Graduate Program in Computer Science University of California, Riverside, June 2010 Dr. Frank Vahid, Chairperson As FPGAs become more common in mainstream general-purpose computing platforms, capturing and distributing high-performance implementations of applications on FPGAs will become increasingly important. Even in the presence of C-based synthesis tools for FPGAs, designers continue to implement applications as circuits, due in large part to allow for capture of clever spatial, circuit-level implementation features leading to superior performance and efficiency. We demonstrate the feasibility of a spatial form of FPGA application capture that offers portability advantages for FPGA applications unseen with current FPGA binary formats. We demonstrate the portability of such a distribution by developing a fast on-chip emulation framework that performs transparent optimizations, allowing spatially-captured FPGA applications to immediately run on FPGA platforms without costly and hard-to-use synthesis/mapping tool flows, and sometimes faster than PC-based execution. We develop several dynamic and transparent optimization techniques, including just-in-time compilation , bytecode acceleration , and just-in-time synthesis that take advantage of a platform’s available resources, resulting in iv orders of magnitude performance improvement over normal emulation techniques and PC-based execution.
    [Show full text]
  • Hardware Description Languages Compared: Verilog and Systemc
    Hardware Description Languages Compared: Verilog and SystemC Gianfranco Bonanome Columbia University Department of Computer Science New York, NY Abstract This library encompasses all of the necessary components required to transform C++ into a As the complexity of modern digital systems hardware description language. Such additions increases, engineers are now more than ever include constructs for concurrency, time notion, integrating component modeling by means of communication, reactivity and hardware data hardware description languages (HDLs) in the types. design process. The recent addition of SystemC to As described by Edwards [1], VLSI an already competitive arena of HDLs dominated verification involves an initial simulation done in by Verilog and VHDL, calls for a direct C or C++, usually for proof of concept purposes, comparison to expose potential advantages and followed by translation into an HDL, simulation of flaws of this newcomer. This paper presents such the model, applying appropriate corrections, differences and similarities, specifically between hardware synthesization and further iterative Verilog and SystemC, in effort to better categorize refinement. SystemC is able to shorten this the scopes of the two languages. Results are based process by combining the first two steps. on simulation conducted in both languages, for a Consequently, this also decreases time to market model with equal specifications. for a manufacturer. Generally a comparison between two computer languages is based on the number of Introduction lines of code and execution time required to achieve a specific task, using the two languages. A Continuous advances in circuit fabrication number of additional parameters can be observed, technology have augmented chip density, such as features, existence or absence of constructs consequently increasing device complexity.
    [Show full text]
  • Real-Time Operating System Modelling and Simulation Using Systemc
    Real-Time Operating System Modelling and Simulation Using SystemC Ke Yu Submitted for the degree of Doctor of Philosophy Department of Computer Science June 2010 Abstract Increasing system complexity and stringent time-to-market pressure bring chal- lenges to the design productivity of real-time embedded systems. Various System- Level Design (SLD), System-Level Design Languages (SLDL) and Transaction- Level Modelling (TLM) approaches have been proposed as enabling tools for real-time embedded system specification, simulation, implementation and verifi- cation. SLDL-based Real-Time Operating System (RTOS) modelling and simula- tion are key methods to understand dynamic scheduling and timing issues in real- time software behavioural simulation during SLD. However, current SLDL-based RTOS simulation approaches do not support real-time software simulation ade- quately in terms of both functionality and accuracy, e.g., simplistic RTOS func- tionality or annotation-dependent software time advance. This thesis is concerned with SystemC-based behavioural modelling and simu- lation of real-time embedded software, focusing upon RTOSs. The RTOS-centric simulation approach can support flexible, fast and accurate real-time software tim- ing and functional simulation. They can help software designers to undertake real- time software prototyping at early design phases. The contributions in this thesis are fourfold. Firstly, we propose a mixed timing real-time software modelling and simula- tion approach with various timing related techniques, which are suitable for early software modelling and simulation. We show that this approach not only avoids the accuracy drawback in some existing methods but also maintains a high simu- lation performance. Secondly, we propose a Live CPU Model to assist software behavioural timing modelling and simulation.
    [Show full text]
  • Review of FPD's Languages, Compilers, Interpreters and Tools
    ISSN 2394-7314 International Journal of Novel Research in Computer Science and Software Engineering Vol. 3, Issue 1, pp: (140-158), Month: January-April 2016, Available at: www.noveltyjournals.com Review of FPD'S Languages, Compilers, Interpreters and Tools 1Amr Rashed, 2Bedir Yousif, 3Ahmed Shaban Samra 1Higher studies Deanship, Taif university, Taif, Saudi Arabia 2Communication and Electronics Department, Faculty of engineering, Kafrelsheikh University, Egypt 3Communication and Electronics Department, Faculty of engineering, Mansoura University, Egypt Abstract: FPGAs have achieved quick acceptance, spread and growth over the past years because they can be applied to a variety of applications. Some of these applications includes: random logic, bioinformatics, video and image processing, device controllers, communication encoding, modulation, and filtering, limited size systems with RAM blocks, and many more. For example, for video and image processing application it is very difficult and time consuming to use traditional HDL languages, so it’s obligatory to search for other efficient, synthesis tools to implement your design. The question is what is the best comparable language or tool to implement desired application. Also this research is very helpful for language developers to know strength points, weakness points, ease of use and efficiency of each tool or language. This research faced many challenges one of them is that there is no complete reference of all FPGA languages and tools, also available references and guides are few and almost not good. Searching for a simple example to learn some of these tools or languages would be a time consuming. This paper represents a review study or guide of almost all PLD's languages, interpreters and tools that can be used for programming, simulating and synthesizing PLD's for analog, digital & mixed signals and systems supported with simple examples.
    [Show full text]
  • Dissertation Applications of Field Programmable Gate
    DISSERTATION APPLICATIONS OF FIELD PROGRAMMABLE GATE ARRAYS FOR ENGINE CONTROL Submitted by Matthew Viele Department of Mechanical Engineering In partial fulfillment of the requirements For the Degree of Doctor of Philosophy Colorado State University Fort Collins, Colorado Summer 2012 Doctoral Committee: Advisor: Bryan D. Willson Anthony J. Marchese Robert N. Meroney Wade O. Troxell ABSTRACT APPLICATIONS OF FIELD PROGRAMMABLE GATE ARRAYS FOR ENGINE CONTROL Automotive engine control is becoming increasingly complex due to the drivers of emissions, fuel economy, and fault detection. Research in to new engine concepts is often limited by the ability to control combustion. Traditional engine-targeted micro controllers have proven difficult for the typical engine researchers to use and inflexible for advanced concept engines. With the advent of Field Programmable Gate Array (FPGA) based engine control system, many of these impediments to research have been lowered. This dissertation will talk about three stages of FPGA engine controller appli- cation. The most basic and widely distributed is the FPGA as an I/O coprocessor, tracking engine position and performing other timing critical low-level tasks. A later application of FPGAs is the use of microsecond loop rates to introduce feedback con- trol on the crank angle degree level. Lastly, the development of custom real-time computing machines to tackle complex engine control problems is presented. This document is a collection of papers and patents that pertain to the use of FPGAs for the above tasks. Each task is prefixed with a prologue section to give the history of the topic and context of the paper in the larger scope of FPGA based engine control.
    [Show full text]
  • MACHXL Software User's Guide
    MACHXL Software User's Guide © 1993 Advanced Micro Devices, Inc. TEL: 408-732-2400 P.O. Box 3453 TWX: 910339-9280 Sunnyvale, CA 94088 TELEX: 34-6306 TOLL FREE: 800-538-8450 APPLICATIONS HOTLINE: 800-222-9323 (US) 44-(0)-256-811101 (UK) 0590-8621 (France) 0130-813875 (Germany) 1678-77224 (Italy) Advanced Micro Devices reserves the right to make changes in specifications at any time and without notice. The information furnished by Advanced Micro Devices is believed to be accurate and reliable. However, no responsibility is assumed by Advanced Micro Devices for its use, nor for any infringements of patents or other rights of third parties resulting from its use. No license is granted under any patents or patent rights of Advanced Micro Devices. Epson® is a registered trademark of Epson America, Inc. Hewlett-Packard®, HP®, and LaserJet® are registered trademarks of Hewlett-Packard Company. IBM® is a registered trademark and IBM PCä is a trademark of International Business Machines Corporation. Microsoft® and MS-DOS® are registered trademarks of Microsoft Corporation. PAL® and PALASM® are registered trademarks and MACHä and MACHXL ä are trademarks of Advanced Micro Devices, Inc. Pentiumä is a trademark of Intel Corporation. Wordstar® is a registered trademark of MicroPro International Corporation. Document revision 1.2 Published October, 1994. Printed inU.S.A. ii Contents Chapter 1. Installation Hardware Requirements 2 Software Requirements 3 Installation Procedure 4 Updating System Files 6 AUTOEXEC.BAT 7 CONFIG.SYS 7 Creating a Windows Icon
    [Show full text]
  • Integrating Systemc Models with Verilog Using the Systemverilog
    Integrating SystemC Models with Verilog and SystemVerilog Models Using the SystemVerilog Direct Programming Interface Stuart Sutherland Sutherland HDL, Inc. [email protected] ABSTRACT The Verilog Programming Language Interface (PLI) provides a mechanism for Verilog simulators to invoke C programs. One of the primary applications of the Verilog PLI is to integrate C- language and SystemC models into Verilog simulations. But, Verilog's PLI is a complex interface that can be daunting to learn, and often slows down simulation performance. SystemVerilog includes a new generation of a Verilog to C interface, called the “Direct Programming Interface” or “DPI”. The DPI replaces the complex Verilog PLI with a simple and straight forward import/ export methodology. • How does the SystemVerilog DPI work, and is it really easier to use than the Verilog PLI? • Can the SystemVerilog DPI replace the Verilog PLI for integrating C and SystemC models with Verilog models? • Is the SystemVerilog DPI more efficient (for faster simulations) that the Verilog PLI? • Is there anything the SystemVerilog DPI cannot do that the Verilog PLI can? This paper addresses all of these questions. The paper shows that if specific guidelines are followed, the SystemVerilog DPI does indeed simplify integrating SystemC models with Verilog models. Table of Contents 1.0 What is SystemVerilog? ........................................................................................................2 2.0 Why integrate SystemC models with Verilog models? .........................................................2
    [Show full text]