ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices
|
|
- Kathryn Gordon
- 5 years ago
- Views:
Transcription
1 ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter Objectives: The purpose of this lab is : Learn basic bus design techniques. Start Date: Week # Due Date: Week # Review registers and Register Transfer Level (RTL) Design. Experiment with a peripheral bus implementation. Understand how generic peripheral interface modules for input and output work. Connect external (to CPU core) IO peripherals using a peripheral bus and peripheral interface modules. 2 Review RTL Register Transfer Level (RTL) is a type of description for a synchronous digital circuit that specifies how data can move from one register to another while possibly traversing a set of control or processing blocks. A basic processor design typically consists of control unit and datapath. We already implemented a register file. It can be used in RTL principles as the source and sink of data during CPU operation, since it simultaneously has at least one read and one write port. The ALU can be considered as a processing block in RTL micro-operations. Data from one register can be read, passed through a combinational logic circuit, such as an ALU, and stored back into another register, thus forming one RTL micro-operation. While a review of RTL notation is beyond the scope of this lab, remember that the datapath provides the available logic and storage hardware for each micro-operation, and it is the control block that needs to provide the appropriate register/logic signals, such as enables, loads, and function selects, to implement the desired functionality at each clock. Similarly, on external buses, peripherals and masters provide the sources of data, and arbitrator circuits select the transfer operations that are to take place. 3 Introduction- Buses The simplest operations within a CPU require some sort of data transfer to occur in order to process information. Whether it is from a register file to an ALU, or from external memory to an IO port. There are two basic bus technologies to achieve these transfers physically - shared or dedicated. In a shared bus architecture, one common set of conductors are used among all communicating modules in a block. Typically, one module is the source of data (master) - it applies signals to the bus, and another 1
2 sinks data (slave), it reads the data from the bus and proceeds according to the content. There may be several modules capable of master operation, but only one master may be operating on the bus at any time. They all are connected to the bus using tri-state buffers, and all buffers except one must be disconnected at all times. Simultaneous operation of two masters on a shared bus, may result in a short circuit between signal drivers and may damage the chip. All slaves, however, may listen to the bus at the same time for signals to determine if they are being addressed. A slave which determines that the data is addressed to it will respond by saving the data inside its logic, or performing a control operation based on this data. Since there is only one set of conductors involved in a shared bus, all masters except the one performing the bus operation must wait their turn. Benefits of this design are seeming simplicity of construction and low resource utilization, especially on the wire routing side. In the FPGA world, the synthesis tools do not allow the designer to take the risk of a non-conflicting controller design as the chance of short circuit within a chip is always high, so internally all communication switching is facilitated using logic gate based multiplexers most of the time. Figure 1: Bus connect an ALU and RAM In the simplest dedicated bus architecture, all slaves still read the same common data line. However, each master has its own source connection to a common hub. This hub, in the most basic form, may be implemented using a multiplexer. A control circuit, typically called the bus arbitrator, decides which master is allowed access to the bus during a particular time slot as shown in Figure 2. Only one master thus is allowed to broadcast data to the slaves. More advanced implementations of the dedicated bus architecture may involve multiple broadcast channels, and allow many simultaneous transfers by using dedicated sink buses to each slave individually. The onus in this case is on the complexity of the routing or hub circuit to transfer the data from masters to slaves as addressed. The details of such designs are beyond the scope of this course. To make matters simpler, consider that your CPU will be the only master. However, let s begin by looking at the simple case in more detail. Remember that, by design, a system module can carry both a master and a slave bus interfaces. 4 Dedicated Bus Design For the purpose of your project, there are two places in the design hierarchy where buses should be considered. One is inside the CPU - the datapath bus. The other outside - memory and peripheral bus. The interconnect bus structure is usually facilitated at the higher if not highest levels of the design hierarchy. This is where all top modules can be instantiated, and the signals connected between them. The 2
3 Figure 2: Multi master/slave bus with an arbitrator following code sample illustrates this strategy: entity toplevel is port ( clk: in std_logic; sw1: in std_logic; led: out std_logic); end toplevel; architecture Str of toplevel is -- Mout is master data out, Min is master data in, addr is the address signal Bus_Mout, Bus_Min1, Bus_Min2 : std_logic_vector (X downto 0); signal Bus_Min3, Bus_addr : std_logic_vector (X downto 0); signal req : std_logic_vector(2 downto 0); signal Bus_Min : std_logic_vector (X downto 0); signal RW : std_logic; begin peripheral1: sseg port map (Bus_addr, Bus_Mout, Bus_Min1, req(0), RW, clk, led); peripheral2: switches port map (Bus_addr, Bus_Mout, Bus_Min2, req(1), RW, clk, sw1); peripheral3: memory port map (Bus_addr, Bus_Mout, Bus_Min3, req(2), RW, clk); master: cpu port map(bus_addr, Bus_Min, Bus_Mout, RW, clk); arb: Bus_Min <= Bus_Min1 when req(0)=1 else Bus_Min2 when req(1)=1 else Bus_Min3 when req(2)=1 else x00"; end Str; Here, the top level entity incorporates the necessary external IO pins, such as clock, a switch and an LED. Inside its body, the necessary bus signals are declared to facilitate the transfer of data between modules. Three peripheral entities are instantiated, where they take Bus addr, Bus Mout and clock as an input, and provide Bus Min and req lines as an output. A single master entity, CPU, is declared with Bus addr and Bus Mout as an output, and Bus Min as an input. RW is a single line that specifies if the request by the master is a read or a write, i.e. if data is to be stored in the peripheral, or sent to the master. A write enable is another name for this line. Notice that a simple arbitrator is implemented here using a dedicated bus approach directly in the body of the top level entity - depending on which peripheral responds to the master s request, the appropriate data output of that peripheral is connected to the data input of the master, the CPU. Notice that this implicit multiplexer design is prioritized - if more than one peripheral responds to the request, only one data line will be connected to the master, of the peripheral with the least significant request bit in this case. 3
4 More complicated arbitrator circuits are possible, and they would typically be implemented in their own modules. However, stating a simple arbitrator logic in the top level module in our case saves us a long entity port declaration with all data bus signals listed in a dedicated arbitrator entity module. Also, please note that the external memory to the CPU, the one that will contain the data and instructions to be executed, appears as an external bus peripheral. This is typical of memory mapped IO systems, where the memory becomes one of the peripherals mapped and accessed by a block of addresses in the global address space of the CPU. 5 Peripheral Design Thus, the connection between the master requesting and a peripheral accepting or providing data is in the address. The global address space is typically defined by the width of the registers and the datapath in your CPU architecture. For example, if a 16-bit architecture is designed, an address space with locations is available. Since it is easiest to make the CPU access the first address (x0000 ) on start up, it is most convenient to place system memory containing system software at that address. A 1KB memory placed at the start of the address space will take up the addresses x x03ff. When the CPU, or any master, accesses these address locations, it should receive the contents of main memory at those locations on the incoming data lines. This leaves the space x0400 -xffff open to map other peripherals to. A peripheral can either be for input only, output only, or both at the same time. For example, a 7-segment display controller can be an output peripheral. However, to connect any logic circuit as a peripheral on a bus requires some glue logic, in the form of slave logic circuit added on top of the 7-segment display as shown in Figure 3. Figure 3: A 7-segment display interface example. Here, a single digit 7-segment display controller is driven by a register. In this simple example, the register ports can be connected to the Din and Dout lines directly, since this is the only register contained in this peripheral. The enable register is driven by the slave logic circuit. The function of the slave logic circuit is to compare the address value presented on the bus to the base address for this peripheral. If they match, slave logic performs two tasks - it asserts an enable for the register to latch the new data value on Din onto the input of the 7-segment controller, and it asserts the request line, telling the arbitrator circuit that this peripheral is the one being accessed. While there is not likely any use in reading back the register value from this 7-segment peripheral because it s an output block, the request line is important when reading values back 4
5 from input blocks, such as from a peripheral obtaining values from a bank of switches as will be discussed in next section. The RW line is not used in the above diagram for clarity, but can otherwise be also used to control the write enable of the register depending on the design requirements. Normally, peripheral registers are overwritten only in the case when RW is asserted meaning a write cycle. Otherwise, it can be assumed that every access will be a write access. There are peripherals that also change state on a read cycle. Be very clear when designing and documenting peripheral modules of their exact functionality. 5.1 Output Peripheral - 7 segment We will be working on the external bus architecture in this lab. Since the CPU will not be present at this time, we will make due with a dummy master, which will serve in place of the CPU to make arbitration logic simpler. Let us begin an implementation with the simple single digit 7-segment control peripheral. The top level entity for this peripheral should look like this: entity per7seg is generic ( Dwidth : integer := 8; Awidth : integer := 8; BaseAddr : std_logic_vector(7 downto 0) := x10"; Digits : integer := 1); port ( Din : in std_logic_vector (Dwidth-1 downto 0); Dout : out std_logic_vector (Dwidth-1 downto 0); Addr : in std_logic_vector (Awidht-1 downto 0); RW : in std_logic; req : out std_logic Clk : in std_logic; ssegleds : out std_logic_vector(7 downto 0); SsegEN : out std_logic_vector(digits-1 downto 0)); end per7seg architecture Str of per7seg is -- register enable for the single digit display input signal en: std_logic; begin sl: sl7seg generic map (BaseAddr) port map(addr, req, en); ss: sseg register logic to connect Din with sseg inputs using en end Str; Notice that we parameterized this peripheral so that it can be connected to a bus structure of any width. 1. Complete the design of this peripheral Use a single digit 7-segment decoder to complete this design. Place an address comparator that compares the value on the Addr lines with the generic BaseAddr parameter. The idea behind this generic is to help with address space mapping. Since you will instantiate this and other peripherals at the top level of the hierarchy, it is there in one place where you will be able to select the address spaces for each of these components. You can ignore the RW input in this peripheral at this point, as we discussed. Its reference exists here to keep the entity declarations of all peripherals homogeneous. 2. Simulate this peripheral Assign a few addresses on the input, some that match the BaseAddress, and some that do not. Up to now there was no need to control Din and Dout lines, as they could be directly connected to the internal register. For a more robust design, assume we are dealing with the full 4-digit 7-segment decoder. In our 8-bit bus architecture, we would need two separate word transfers to change the display, 2 nibbles at a time. Therefore we need two registers to store the full input value for the 7-segment, and two enable lines. Since there now are two distinct values to remember, two of the consecutive addresses starting with BaseAddr need to be used to select which register to write. Additionally, the Dout line needs to be multiplexed from the two register outputs depending on which address is selected. 5
6 3. Expand this design to a 4 digit (2 address) 7-segment peripheral module and simulate Remember, you would need to use the clock to multiplex through the 4-digits in the 7-segment controller in this design. You may reduce the divider frequency in simulation to 1 clock cycle per digit to improve your work flow. Don t forget to change this value to the actual desired one when using the board with the 50MHz clock. Also, please insert RW logic in this peripheral at this stage. The registers should only update with a new value during a write cycle. 5.2 Input Peripheral - Switch Bank The same approach can be used to create an input peripheral by connecting a set of 8 switches on the board, to the Dout bus of the peripheral module. The entity declaration should look like this: entity per8sw is generic ( Dwidth : integer := 8; Awidth : integer := 16; BaseAddr : std_logic_vector(7 downto 0) := x1000"); port ( Din : in std_logic_vector (Dwidth-1 downto 0); Dout : out std_logic_vector (Dwidth-1 downto 0); Addr : in std_logic_vector (Awidht-1 downto 0); RW : in std_logic; req : out std_logic Clk : in std_logic; LED : in std_logic_vector (7 downto 0)); end per8sw architecture... Str of per8sw is begin sl:... sl8sw generic map (BaseAddr) port map(addr, req); end Str; As we are only connecting the 8 switches, this peripheral is input only. There is no need to generate an enable signal, however the request line should be generated accordingly on a BaseAddr match. A register can still be used to debounce the state of the switches at each clock without an enable, so that the data value on the bus never changes during a transfer cycle. Design and simulate the peripheral. To verify your design works, you just need to make sure the switches values are transferred onto the Dout bus, and req line lights up whenever there is an address match. For the slave logic in this peripheral, make it assert the request line whenever the addresses fall within a block range by ignoring the 4 least significant bits, i.e. it should match to all addresses within x1x where x is don t care - this covers the block of addresses x10 - x1f. A further improvement on this peripheral is to make it bidirectional by connecting the 8 switches and 8 LEDs above them in one module. The switches are read on a bus read request, and the LEDs are updated on a write cycle. This is optional. 5.3 Putting it all together Figure 4 is a high level view of what a possible bus system and design hierarchy might look like when all slaves and masters are connected together: In simple peripherals, only the BaseAddr value matters, as simple peripherals contain only one or a few words of data, and direct register enable lines are generated by slave logic. In more complex, or higher capacity peripherals, such as memory controllers, the BaseAddr value is used to match a block of addresses within a given range, and the lower bits of the address line on the bus is used to actually address into the data structure, such as a memory, directly. Note, in the diagram of Figure 4, the arbitrator circuit is omitted for clarity. 1. Connect the peripherals at top level and then simulate everything Instead of a CPU being a master, for this lab simply connect the data output of the arbitrator circuit to the Mout bus that is connected to 6
7 Figure 4: High level complete view of a proposed bus system both slaves. Select the same BaseAddr for both peripherals. This will ensure both are active at the same cycle facilitating data transfer directly between the two. In the arbitrator logic, make sure switch peripheral takes precedence over the 7-segment controller on requests from both. Make sure you simulate the design and each component in it before attempting to program the FPGA board. You will be required to demonstrate the simulations, as simulating all components of your design, bottom up, is a standard design practice. It is important that you parameterize as many hierarchy levels of your design as is useful with VHDL generics. You will be asked to justify your design decisions. 2. Demonstrate the circuit on the FPGA board Connect BTN1 to bit 4, and BTN2 to bit 0 of the bus address line, and BTN3 to RW select. Use the 50MHz single clock to drive the design. Change the switches to the first 8-bit value. Select the first 7-segment register address on the bus using BTN1 & 2. Press BTN3 to transfer the value from the switch to the 7-segment peripheral using the bus. Repeat for another 8-bit value. 6 Report When completed, you will hand in the following deliverables: 1. Title Page 2. A Block diagram of each design. 3. Simulation of each design. 4. VHDL code for each circuit designed (with comments). 5. VHDL code for simulation test-bench (with comments). 6. Report the resources used (LUTS, Flip Flops, e.t.c) for each implementation. 7
ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control
ENGG330: Computer Organization and Design Lab5: Microprogrammed Control School of Engineering, University of Guelph Winter 201 1 Objectives: The objectives of this lab are to: Start Date: Week #5 201 Due
More informationIntroduction to VHDL Design on Quartus II and DE2 Board
ECP3116 Digital Computer Design Lab Experiment Duration: 3 hours Introduction to VHDL Design on Quartus II and DE2 Board Objective To learn how to create projects using Quartus II, design circuits and
More informationIn our case Dr. Johnson is setting the best practices
VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry
More informationSPI 3-Wire Master (VHDL)
SPI 3-Wire Master (VHDL) Code Download Features Introduction Background Port Descriptions Clocking Polarity and Phase Command and Data Widths Transactions Reset Conclusion Contact Code Download spi_3_wire_master.vhd
More informationChapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics
Chapter 4 Objectives Learn the components common to every modern computer system. Chapter 4 MARIE: An Introduction to a Simple Computer Be able to explain how each component contributes to program execution.
More informationVHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2
VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components
More informationProblem Set 10 Solutions
CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory
More informationLecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)
Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable
More informationECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous
More informationControl and Datapath 8
Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system
More informationXiNES Design Document. XiNES is a Nintendo Entertainment System simulator coded in pure VHDL
XiNES Design Document William Blinn (wb169@columbia.edu) David Coulthart (davec@columbia.edu) Jay Fernandez (jjf112@columbia.ed) Neel Goyal (neel@columbia.edu) Jeffrey Lin (jlin@columbia.edu) XiNES is
More informationIntroduction to VHDL #1
ECE 3220 Digital Design with VHDL Introduction to VHDL #1 Lecture 3 Introduction to VHDL The two Hardware Description Languages that are most often used in industry are: n VHDL n Verilog you will learn
More informationCSC / EE Digital Systems Design. Summer Sample Project Proposal 01
THE CATHOLIC UNIVERSITY OF AMERICA SCHOOL OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE CSC / EE 519-01 Digital Systems Design Summer 2013 Sample Project Proposal 01 Thursday
More informationToday. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses
Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationDesign Problem 3 Solutions
CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This
More informationLaboratory Exercise 8
Laboratory Exercise 8 Memory Blocks In computer systems it is necessary to provide a substantial amount of memory. If a system is implemented using FPGA technology it is possible to provide some amount
More informationField Programmable Gate Array
Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational
More informationMARIE: An Introduction to a Simple Computer
MARIE: An Introduction to a Simple Computer 4.2 CPU Basics The computer s CPU fetches, decodes, and executes program instructions. The two principal parts of the CPU are the datapath and the control unit.
More informationCPE/EE 421/521 Fall 2004 Chapter 4 The CPU Hardware Model. Dr. Rhonda Kay Gaede UAH. The CPU Hardware Model - Overview
CPE/EE 421/521 Fall 2004 Chapter 4 The 68000 CPU Hardware Model Dr. Rhonda Kay Gaede UAH Fall 2004 1 The 68000 CPU Hardware Model - Overview 68000 interface Timing diagram Minimal configuration using the
More informationThe 9S12 in Expanded Mode - Using MSI logic to build ports Huang Chapter 14
The 9S12 in Expanded Mode - Using MSI logic to build ports Huang Chapter 14 Using MSI Logic To Build An Output Port Many designs use standard MSI logic for microprocessor expansion This provides an inexpensive
More informationContents. Chapter 9 Datapaths Page 1 of 28
Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for
More informationVHDL HIERARCHICAL MODELING
To incorporate hierarchy in VHDL we must add component declarations and component instantiations to the model. In addition, we need to declare internal signals to interconnect the components. We can also
More informationAltera s Avalon Communication Fabric
Altera s Avalon Communication Fabric Stephen A. Edwards Columbia University Spring 2012 Altera s Avalon Bus Something like PCI on a chip Described in Altera s Avalon Memory-Mapped Interface Specification
More informationCCE 3202 Advanced Digital System Design
CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the
More informationFPGA briefing Part II FPGA development DMW: FPGA development DMW:
FPGA briefing Part II FPGA development FPGA development 1 FPGA development FPGA development : Domain level analysis (Level 3). System level design (Level 2). Module level design (Level 1). Academical focus
More informationVHDL for Complex Designs
ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 VHDL for Complex Designs This lecture covers VHDL features that are useful when designing complex logic circuits. After
More informationThe CPU Bus : Structure 0
The CPU Bus : Structure 0 The following can be applied to both the internal CPU buses and the external system buses. This distinction becomes blurred when we discuss Systems on a single Chip (SoC). The
More informationSynthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden
Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March
More informationCCE 3202 Advanced Digital System Design
CCE 3202 Advanced Digital System Design Lab Exercise #2 Introduction You will use Xilinx Webpack v9.1 to allow the synthesis and creation of VHDLbased designs. This lab will outline the steps necessary
More informationCSE 260 Digital Computers: Organization and Logical Design. Exam 2. Jon Turner 3/28/2012
CSE 260 Digital Computers: Organization and Logical Design Exam 2 Jon Turner 3/28/2012 1. (15 points). Draw a diagram for a circuit that implements the VHDL module shown below. Your diagram may include
More informationECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one
More informationTwo HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design
Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial
More informationLecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT
1 Lecture 5: Computing Platforms Asbjørn Djupdal ARM Norway, IDI NTNU 2013 2 Lecture overview Bus based systems Timing diagrams Bus protocols Various busses Basic I/O devices RAM Custom logic FPGA Debug
More informationVHDL: RTL Synthesis Basics. 1 of 59
VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.
More informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More informationSign here to give permission for your test to be returned in class, where others might see your score:
EEL 4712 Midterm 2 Spring 216 VERSION 1 Name: UFID: Sign here to give permission for your test to be returned in class, where others might see your score: IMPORTANT: Please be neat and write (or draw)
More informationIntroduction to Computer Design
Introduction to Computer Design Memory (W 800-840) Basic processor operation Processor organization Executing instructions Processor implementation using VHDL 1 Random Access Memory data_in address read/write
More informationECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University
ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential
More informationAssignment 01 Computer Architecture Lab ECSE
Assignment 01 Computer Architecture Lab ECSE 487-001 Date due: September 22, 2006, Trottier Assignment Box by 14:30 1 Introduction The purpose of this assignment is to re-familiarize the student with VHDL
More informationChapter 4. MARIE: An Introduction to a Simple Computer
Chapter 4 MARIE: An Introduction to a Simple Computer Chapter 4 Objectives Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution.
More informationThe D igital Digital Logic Level Chapter 3 1
The Digital Logic Level Chapter 3 1 Gates and Boolean Algebra (1) (a) A transistor inverter. (b) A NAND gate. (c) A NOR gate. 2 Gates and Boolean Algebra (2) The symbols and functional behavior for the
More informationECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University
ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:
More informationSummer 2003 Lecture 21 07/15/03
Summer 2003 Lecture 21 07/15/03 Simple I/O Devices Simple i/o hardware generally refers to simple input or output ports. These devices generally accept external logic signals as input and allow the CPU
More informationEENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering
EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4
More informationUnit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION
Unit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION Introduction A general purpose computer should have the ability to exchange information with a wide range of devices in varying environments. Computers
More informationSchedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November
More informationSummary of FPGA & VHDL
FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:
More informationFPGA design with National Instuments
FPGA design with National Instuments Rémi DA SILVA Systems Engineer - Embedded and Data Acquisition Systems - MED Region ni.com The NI Approach to Flexible Hardware Processor Real-time OS Application software
More informationLab 6 Debugging. Objective. Introduction. Prelab
UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 6 Debugging Objective You will explore several techniques for debugging a digital
More informationVHDL for Modeling - Module 10
VHDL for Modeling Module 10 Jim Duckworth, WPI 1 Overview General examples AND model Flip-flop model SRAM Model Generics DDR SDRAM Model Constraints Metastability Block Statements Just for reference Jim
More informationModule 5 - CPU Design
Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction
More informationENGIN 241 Digital Systems with Lab
ENGIN 241 Digital Systems with Lab (4) Dr. Honggang Zhang Engineering Department University of Massachusetts Boston 1 Introduction Hardware description language (HDL): Specifies logic function only Computer-aided
More informationCSEE W4840 Embedded System Design Lab 1
CSEE W4840 Embedded System Design Lab 1 Stephen A. Edwards Due January 31, 2008 Abstract Learn to use the Altera Quartus development envrionment and the DE2 boards by implementing a small hardware design
More informationThe MC9S12 in Expanded Mode Using MSI logic to build ports Using MSI logic to build an output port Using MSI logic to build an input port
The MC9S12 in Expanded Mode Using MSI logic to build ports Using MSI logic to build an output port Using MSI logic to build an input port A Simple Parallel Output Port We want a port which will write 8
More informationECE 485/585 Microprocessor System Design
Microprocessor System Design Lecture 4: Memory Hierarchy Memory Taxonomy SRAM Basics Memory Organization DRAM Basics Zeshan Chishti Electrical and Computer Engineering Dept Maseeh College of Engineering
More informationBlock Diagram. mast_sel. mast_inst. mast_data. mast_val mast_rdy. clk. slv_sel. slv_inst. slv_data. slv_val slv_rdy. rfifo_depth_log2.
Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC reset Supplied as human readable VHDL (or Verilog) source code mast_sel SPI serial-bus compliant Supports
More informationNIOS CPU Based Embedded Computer System on Programmable Chip
NIOS CPU Based Embedded Computer System on Programmable Chip 1 Lab Objectives EE8205: Embedded Computer Systems NIOS-II SoPC: PART-I This lab has been constructed to introduce the development of dedicated
More informationECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level
More informationECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level
More informationECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University
ECE 545 Lecture 5 Data Flow Modeling in VHDL George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 4, Concurrent Signal Assignment Statements of VHDL 2 Types of VHDL Description
More informationIntroduction to VHDL #3
ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)
More information[VARIABLE declaration] BEGIN. sequential statements
PROCESS statement (contains sequential statements) Simple signal assignment statement
More informationVHDL simulation and synthesis
VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis
More informationNIOS CPU Based Embedded Computer System on Programmable Chip
1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based
More information2. System Interconnect Fabric for Memory-Mapped Interfaces
2. System Interconnect Fabric for Memory-Mapped Interfaces QII54003-8.1.0 Introduction The system interconnect fabric for memory-mapped interfaces is a high-bandwidth interconnect structure for connecting
More informationWriting VHDL for RTL Synthesis
Writing VHDL for RTL Synthesis Stephen A. Edwards, Columbia University December 21, 2009 The name VHDL is representative of the language itself: it is a two-level acronym that stands for VHSIC Hardware
More informationTest Bench. Top Level Model Test Bench MUT
A test bench is usually a simulation-only model used for design verification of some other model(s) to be synthesized. A test bench is usually easier to develop than a force file when verifying the proper
More informationMICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS
MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS UNIT I INTRODUCTION TO 8085 8085 Microprocessor - Architecture and its operation, Concept of instruction execution and timing diagrams, fundamentals of
More informationEITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.
EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board (FPGA Interfacing) Teacher: Dr. Liang Liu v.1.0.0 1 Abstract This document describes the basic behavior
More informationECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers
ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter
More informationCOVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points)
EEL 4712 Midterm 2 Spring 2010 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationCS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure
CS/EE 3710 Computer Architecture Lab Checkpoint #2 Datapath Infrastructure Overview In order to complete the datapath for your insert-name-here machine, the register file and ALU that you designed in checkpoint
More information14:332:331. Computer Architecture and Assembly Language Fall Week 5
14:3:331 Computer Architecture and Assembly Language Fall 2003 Week 5 [Adapted from Dave Patterson s UCB CS152 slides and Mary Jane Irwin s PSU CSE331 slides] 331 W05.1 Spring 2005 Head s Up This week
More informationCodec. WM8731 Audio Codec
Codec WM8731 Audio Codec Codec Coder / Decoder Audio, Video Compression/decompression signal coding 2 tj WM8731 3 tj WM8731 Data Path Basic Connection 4 tj WM8731 Data Path Basic Timing 5 tj WM8731 Data
More informationUsing ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0
Using ModelSim to Simulate Logic Circuits in VHDL Designs For Quartus II 13.0 1 Introduction This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We
More informationVHDL in 1h. Martin Schöberl
VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset
More informationLecture 3: Modeling in VHDL. EE 3610 Digital Systems
EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware
More informationCOVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)
EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationThe Memory Component
The Computer Memory Chapter 6 forms the first of a two chapter sequence on computer memory. Topics for this chapter include. 1. A functional description of primary computer memory, sometimes called by
More informationAIRbus Interface. Features Fixed width (8-, 16-, or 32-bit) data transfers (dependent on the width. Functional Description. General Arrangement
AIRbus Interface December 22, 2000; ver. 1.00 Functional Specification 9 Features Fixed width (8-, 16-, or 32-bit) data transfers (dependent on the width of the data bus) Read and write access Four-way
More informationUsing MSI Logic To Build An Output Port
Using MSI Logic To Build An Output Port Many designs use standard MSI logic for microprocessor expansion This provides an inexpensive way to expand microprocessors One MSI device often used in such expansions
More informationIntroduction Electrical Considerations Data Transfer Synchronization Bus Arbitration VME Bus Local Buses PCI Bus PCI Bus Variants Serial Buses
Introduction Electrical Considerations Data Transfer Synchronization Bus Arbitration VME Bus Local Buses PCI Bus PCI Bus Variants Serial Buses 1 Most of the integrated I/O subsystems are connected to the
More informationLecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)
Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University
More informationThe Virtex FPGA and Introduction to design techniques
The Virtex FPGA and Introduction to design techniques SM098 Computation Structures Lecture 6 Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL
More informationAssignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture
Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification
More informationVME64M VME64 MASTER CONTROLLER. Version 1.1
Datasheet VME64M VME64 MASTER CONTROLLER Version 1.1 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T
More informationMemory Supplement for Section 3.6 of the textbook
The most basic -bit memory is the SR-latch with consists of two cross-coupled NOR gates. R Recall the NOR gate truth table: A S B (A + B) The S stands for Set to remember, and the R for Reset to remember.
More informationEECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements
EECE-4740/5740 Advanced VHDL and FPGA Design Lecture 3 Concurrent and sequential statements Cristinel Ababei Marquette University Department of Electrical and Computer Engineering Overview Components hierarchy
More informationChapter Operation Pinout Operation 35
68000 Operation 35 Chapter 6 68000 Operation 6-1. 68000 Pinout We will do no construction in this chapter; instead, we will take a detailed look at the individual pins of the 68000 and what they do. Fig.
More informationCARDBUS INTERFACE USER MANUAL
CARDBUS INTERFACE USER MANUAL 1 Scope The COM-13xx ComBlock modules are PC cards which support communication with a host computer through a standard CardBus interface. These ComBlock modules can be used
More informationLecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN
Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger
More informationChapter 6 Combinational-Circuit Building Blocks
Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer
More informationProgrammable Logic. Simple Programmable Logic Devices
Programmable Logic SM098 Computation Structures - Programmable Logic Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL architectures Implements
More informationMARIE: An Introduction to a Simple Computer
MARIE: An Introduction to a Simple Computer Outline Learn the components common to every modern computer system. Be able to explain how each component contributes to program execution. Understand a simple
More informationIntroduction. Embedded system functionality aspects. Processing. Storage. Communication. Transformation of data Implemented using processors
Input/Output 1 Introduction Embedded system functionality aspects Processing Transformation of data Implemented using processors Storage Retention of data Implemented using memory Communication Transfer
More informationRTL Power Estimation and Optimization
Power Modeling Issues RTL Power Estimation and Optimization Model granularity Model parameters Model semantics Model storage Model construction Politecnico di Torino Dip. di Automatica e Informatica RTL
More informationAPPLICATION NOTE. A CPLD VHDL Introduction. Introduction. Overview. Entity. XAPP 105 January12, 1998 (Version 1.0) 0 4* Application Note
0 APPLICATION NOTE A CPLD VHDL Introduction XAPP 105 January12, 1998 Version 1.0) 0 4* Application Note Summary This introduction covers the basics of VHDL as applied to Complex Programmable Logic Devices.
More informationEE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL
EE 459/500 HDL Based Digital Design with Programmable Logic Lecture 4 Introduction to VHDL Read before class: Chapter 2 from textbook (first part) Outline VHDL Overview VHDL Characteristics and Concepts
More informationAltera s Avalon Communication Fabric
Altera s Avalon Communication Fabric p. 1/1 Altera s Avalon Communication Fabric Prof. Stephen A. Edwards sedwards@cs.columbia.edu Columbia University Spring 2007 Altera s Avalon Communication Fabric p.
More information