Problem Set 10 Solutions
|
|
- Lambert Hudson
- 5 years ago
- Views:
Transcription
1 CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory cell in the third row from the top, identifying the bit stored in that word (for example, bit 1 of word 23). Label each memory cell in the fifth column similarly. Circle the memory cells that contain word 17. The labels below identify the word and the bit in the word. The cells containing word 17 are circled. d_in addr r/w d 1 d 0 a 1 a 0 0 0,1 1 4,1 a 4 -a 2 row decoder ,0 9,0 10,0 11,0 8,1 12,1 16,1 20,1 9,1 10,1 11,1 6 24,1 7 28, a 1,a 0 d 1 d 0 d_out - 1 -
2 2. Consider a 512 KByte SRAM. Assuming that the device reads and writes data in the form of 16 bit words, how many words can the device store? How many address bits are needed to address these words? Assuming that the central memory array has the same number of rows as it has columns, how many rows are there? How many of the address bits are used by the row decoder? How many by the column decoder? In what row and what column of the memory would you find bit 12 of the word with address 3a7d9? Assume that the row decoder uses the high order address bits and that the column decoder uses the low order address bits. The memory will store 256 K words, or more precisely 2 18 =262,144, so 18 address bits are needed. The memory stores a total of 4 Mbits or 2 22 bits, so it will have 2 11 =2048 rows and 2048 columns. This means that 11 of the 18 address bits will be used by the row decoder to select one of the 2048 rows and that the remaining 7 bits will be used by the column decoder. The memory stores 16 bit words, so each row contains 128 words (128 16=2048). Since the row decoder uses the top 11 bits of the address, the word with address 3a7d9= will appear in row =74f. Bit 12 would be in column = Consider a circuit with a clock rate of 150 MHz, using an asynchronous memory with an access time of 50 ns and a cycle time of 65 ns. Assuming that the memory enable, address and read/write signals change on rising clock edges, how many clock cycles are needed to complete a read operation? If the memory has a word size of 32 bits, how many bytes of data can the circuit read from the memory in 1 ms? How many clock cycles are needed for a write, assuming that the read/write signal must be held low for at least 60 ns? How many bytes can be written to the memory in 1 ms? Each clock tick is 6.67 ns, so if the enable and address lines are asserted on the same rising clock edge, then the data will be valid 50 ns later, so we can latch the data on the eighth rising clock edge after the enable is asserted. If the circuit starts a new read as it s latching the data from the previous read, it can read a word every eight clock ticks, so that s four bytes every ns. This means it can do 18,750 reads in 1 ms for a total of 75,000 bytes. For the write, we must assert the address and enable signals before the read/write signal goes low and since every signal transition must occur on a rising clock edge, this means that at least one full clock period is needed at the beginning of the write. The same is true at the end of the write. Since the cycle time is 65 ns and the period when the read/write signal must be low is 60 ns, one clock period at each end is sufficient to satisfy the timing requirements. So altogether, we need at least 2+(60/6.67)=11 clock ticks for the write. Since 11 clock ticks is ns, we can write at most 4(1,000,000/73.33)=54,545 bytes in 1 ms
3 4. Consider a circuit that has a clock rate of 40 MHz and uses an 4 bit wide external SRAM with a read access time of 30 ns. Design a circuit, in the form of a schematic, that reads data from the memory. Your circuit should have two inputs, a read_request and a 6 bit address of the word to be read from the memory. It must generate the memory control signals and must store the word received from memory in an on-chip register, once the data is valid. It should also assert a control signal called ready to indicate when the requested word is present in the on-chip register. Include a timing diagram for your circuit. It should show clearly how many clock ticks pass between the original request and the time the data is stored in the register. You should assume that the flip flops used by your circuit have a setup time of 2 ns, a hold time of 1 ns and a propagation delay that can range from 2 to 6 ns. Assume that the clock skew is limited to 1 ns. You may assume that simple gates have a propagation delay that ranges from.5 ns to 2 ns. The schematic appears below. The set of flip flops at right forms a six bit address register. This is used to latch the address when a read request is received. It s inputs are the address bits supplied by the client and its outputs are the address bits going to the external memory
4 The four flip flops at the lower left form a four bit data register. This is used to latch the data received from the memory after the memory has had time to supply the data on the data bus. The inputs to this register connect to the data bus and the outputs connect back to the client. The top two flip flops and the associated gates form a state machine that controls the circuit. The state machine has an idle state (00) where it waits for requests. When a request is received it passes through two additional states (01 and 10) before returning to the idle state. These additional states allow time for the memory to operate, as indicated in the timing diagram shown below. To check that the timing requirements are met, note the following: The m_en signal goes high at most 6+2=8 ns after the rising clock edge. The address signals to the memory are stable at most 6 ns after the rising clock edge. Since the memory has an access time of 30 ns, the data from the memory will be valid 30 ns after the m_en and address signals are stable, so at most 38 ns after the rising clock edge that starts the read. The data register has a set of multiplexors in front of the flip flops. Assuming that the mulitplexors are implemented in the usual way, they will impose a delay of between 1 and 4 ns. So the flip flop inputs will be stable 42 ns after the rising clock edge that starts the read. Since we re allowing two clock periods for the memory read, we have until 50 ns from the first clock edge. Of course, we also need to allow 2 ns for the flip flop setup time and 1 ns for clock skew, but this still leaves us with 5 ns to spare. clk readrequest state m_en m_rw load_areg Adr_bus load_dreg data_out - 4 -
5 5. A 64 Mbit DRAM array has to be refreshed every 128 ms. If the number of rows in the array is equal to the number of columns, what is the time between successive row refresh operations, assuming the refresh operations are distributed over the full 128 ms refresh interval? A 64 Mbit square memory array has 8192 rows and columns. Since all 8192 rows must be refreshed every 128 ms, the time between successive refresh operations is about 16 µs. If this memory can complete one operation every 100 ns (a read or a write), what fraction of the memory access bandwidth is not available because of refresh activity. Each row refresh operation does a read and a write, using 200 ns out of every 16,000 ns. So we lose about 1.25% of the memory bandwidth, due to refresh activity. 6. In the simple processor, the controller determines when each component in the system is permitted to use the bus. In other types of systems, there may be several independent subsystems that share a common bus. In such situations a bus arbiter is used to determine which subsystem gets to use the bus. In this problem you are to design a bus arbiter that can support three bus users. For each user, there is a request input and a grant output. The arbiter is a sequential circuit, which keeps track of the state of the bus. If the bus is free and one or more of the request lines is high, the arbiter selects one of the users and raises the corresponding grant signal. When the user is done with the bus, it is required to drop its grant signal for at least one clock tick. Design your arbiter so that if more than one user needs to use the bus multiple times, they take turns. Start by producing a state diagram for the arbiter, then design a VHDL module that implements the state diagram. Include an asynchronous reset input. To provide equal access to the bus, the arbiter should give preference to users that haven t used it recently. The circuit below does this by maintaining three separate idle states. In idle0, user 0 is given top priority for access to the bus, followed by user 1 and user 2. In idle1, user 1 is given top priority, then users2 and 0. In idle2, user 2 is given top priority, then users 0 and 1. Whenever a user releases the bus, the arbiter goes to the idle state that assigns the lowest priority to that user. The inputs are the request signals (r 0,r 1,r 2 ) and the outputs are the grants (g 0,g 1,g 2 ). 000 idle0/000 1xx 01x 001 0xx busy0/100 1xx 000 idle1/ x1x x01 x0x busy1/010 x1x 000 1x0 010 idle2/000 xx1 busy2/001 xx1 xx0-5 -
6 library IEEE; use IEEE.std_logic_1164.all; entity arbiter is port ( clk, reset: in STD_LOGIC; req: in STD_LOGIC_VECTOR (2 downto 0); grant: out STD_LOGIC_VECTOR (2 downto 0) ); end arbiter; architecture arbiter_arch of arbiter is type state_type is (idle0, idle1, idle2, busy0, busy1, busy2); signal state: state_type; begin process(clk,reset) begin if reset = '1' then state <= idle0; elsif clk'event and clk = '1' then if state = idle0 and req(0) = '1' then state <= busy0; elsif state = idle0 and req(0) = '0' and req(1) = '1' then state <= busy1; elsif state = idle0 and req(0) = '0' and req(1) = '0' and req(2) = '1' then state <= busy2; elsif state = idle1 and req(1) = '1' then state <= busy1; elsif state = idle1 and req(1) = '0' and req(2) = '1' then state <= busy2; elsif state = idle1 and req(1) = '0' and req(2) = '0' and req(0) = '1' then state <= busy0; elsif state = idle2 and req(2) = '1' then state <= busy2; elsif state = idle2 and req(2) = '0' and req(0) = '1' then state <= busy0; elsif state = idle2 and req(2) = '0' and req(0) = '0' and req(1) = '1' then state <= busy1; elsif state = busy0 and req(0) = '0' then state <= idle1; elsif state = busy1 and req(1) = '0' then state <= idle2; elsif state = busy2 and req(2) = '0' then state <= idle0; end if; end if; end process; grant <= end arbiter_arch; "001" when state = busy0 else "010" when state = busy1 else "100" when state = busy2 else "000"; - 6 -
7 7. Write a program for the simple processor from section 6 of the notes that checks to see if a given ASCII character string is a palindrome. The inputs to your program are stored at locations 30 and 31 (hex). The value at location 30 is a pointer to the first character in the character string. The value in location 31 is the number of characters in the string. Your program should write 1 in location 32 if the string is a palindrome and 0, if it is not. Try loading your program in the memory for the simple processor and running a simulation that executes your program. Does your program work correctly? The VHDL shown below loads the code into memory, along with some test input. ram(0) <= x"2030"; -- lo = start ram(1) <= x"402e"; ram(2) <= x"1fff"; -- hi = start + length - 1 ram(3) <= x"a030"; ram(4) <= x"a031"; ram(5) <= x"402f"; ram(6) <= x"202f"; -- loop: if lo > hi then ram(7) <= x"3000"; ram(8) <= x"a02e"; ram(9) <= x"8019"; -- exit loop ram(10) <= x"302e"; -- if *lo!= *hi then ram(11) <= x"0001"; ram(12) <= x"4032"; -- (store -(*lo) temporarily) ram(13) <= x"302f"; ram(14) <= x"a032"; ram(15) <= x"7013"; ram(16) <= x"1000"; -- result = 0 ram(17) <= x"4032"; ram(18) <= x"0000"; -- quit ram(19) <= x"1001"; -- lo = lo + 1 ram(20) <= x"a02e"; ram(21) <= x"402e"; ram(21) <= x"1fff"; -- hi = hi - 1 ram(22) <= x"a02f"; ram(23) <= x"402f"; ram(24) <= x"6006"; -- goto loop ram(25) <= x"1001"; -- end: result = 1 ram(26) <= x"4032"; -- ram(27) <= x"0000"; -- quit ram(46) <= x"0000"; -- ram(47) <= x"0000"; -- ram(48) <= x"0033"; -- ram(49) <= x"0005"; -- ram(50) <= x"0000"; -- ram(51) <= x"0061"; -- ram(52) <= x"0062"; -- ram(53) <= x"0063"; -- ram(54) <= x"0062"; -- ram(55) <= x"0061"; -- lo hi start length result 'a' 'b' 'c' 'b' 'a' - 7 -
Introduction 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 informationDesign Problem 5 Solutions
CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system
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 informationCSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014
CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not
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 informationSequential Logic - Module 5
Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the
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 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 informationENGIN 112 Intro to Electrical and Computer Engineering
ENGIN 112 Intro to Electrical and Computer Engineering Lecture 30 Random Access Memory (RAM) Overview Memory is a collection of storage cells with associated input and output circuitry Possible to read
More informationCS/EE Homework 7 Solutions
CS/EE 260 - Homework 7 Solutions 4/2/2001 1. (20 points) A 4 bit twisted ring counter is a sequential circuit which produces the following sequence of output values: 0000, 1000, 1100, 1110, 1111, 0111,
More informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6
DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:
More informationInferring Storage Elements
Inferring Storage Elements In our designs, we usually use flip-flops as our storage elements. Sometimes we use latches, but not often. Latches are smaller in size, but create special, often difficult situations
More informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6
DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state
More informationThe University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution
5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:
More informationDesign Problem 4 Solution
CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily
More informationPart 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits
M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential
More informationXSV Flash Programming and Virtex Configuration
XSV Flash Programming and Virtex Configuration July 5, 2001 (Version 1.1) Application Note by D. Vanden Bout Summary This application note describes the circuits that let the XC95108 CPLD program the Flash
More informationfalling edge Intro Computer Organization
Clocks 1 A clock is a free-running signal with a cycle time. A clock may be either high or low, and alternates between the two states. The length of time the clock is high before changing states is its
More informationCSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions
CSE 260 Digital Computers: Organization and Logical Design Exam 2 Solutions Jon Turner 1. (10 points). The table at right shows a table with 5 rows and three columns with each column having a heading.
More informationLecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems
EE 3610: Digital Systems 1 Lecture 4: Modeling in VHDL (Continued ) Sequential Statements Use Process process (sensitivity list) variable/constant declarations Sequential Statements end process; 2 Sequential
More informationDesign Problem 5 Solution
CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement
More informationCSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions
CSE 6 Introduction to igital Logic and Computer esign Exam Solutions Jonathan Turner /3/4. ( points) raw a logic diagram that implements the expression (B+C)(C +)(B+ ) directly (do not simplify first),
More informationENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices
ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.
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 informationThe University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003
The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL
More informationIT T35 Digital system desigm y - ii /s - iii
UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION
More informationSequential Statement
Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential
More informationCS303 LOGIC DESIGN FINAL EXAM
JANUARY 2017. CS303 LOGIC DESIGN FINAL EXAM STUDENT NAME & ID: DATE: Instructions: Examination time: 100 min. Write your name and student number in the space provided above. This examination is closed
More informationChapter 8 Memory Basics
Logic and Computer Design Fundamentals Chapter 8 Memory Basics Charles Kime & Thomas Kaminski 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Overview Memory definitions Random Access
More informationMODULE 12 APPLICATIONS OF MEMORY DEVICES:
Introduction to Digital Electronic Design, Module 12 Application of Memory Devices 1 MODULE 12 APPLICATIONS OF MEMORY DEVICES: CONCEPT 12-1: REVIEW OF HOW MEMORY DEVICES WORK Memory consists of two parts.
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 informationLogic and Computer Design Fundamentals. Chapter 8 Memory Basics
Logic and Computer Design Fundamentals Memory Basics Overview Memory definitions Random Access Memory (RAM) Static RAM (SRAM) integrated circuits Arrays of SRAM integrated circuits Dynamic RAM (DRAM) Read
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 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 informationOne and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE
One and a half hours Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Fundamentals of Computer Engineering Date: Thursday 21st January 2016 Time: 14:00-15:30 Answer BOTH Questions
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 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 informationDESCRIPTION OF DIGITAL CIRCUITS USING VHDL
DESCRIPTION OF DIGITAL CIRCUITS USING VHDL Combinatinal circuits Sequential circuits Design organization. Generic design Iterative operations Authors: Luis Entrena Arrontes, Celia López, Mario García,
More informationVHDL Testbench Design. Textbook chapters 2.19, , 9.5
VHDL Testbench Design Textbook chapters 2.19, 4.10-4.12, 9.5 The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus
More informationEE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 15 Memories
EE 459/500 HDL Based Digital Design with Programmable Logic Lecture 15 Memories 1 Overview Introduction Memories Read Only Memories Random Access Memories FIFOs 2 1 Motivation Most applications need memory!
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 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 informationDesign Problem 4 Solutions
CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solutions Jon Turner The block diagram appears below. The controller includes a state machine with three states (normal, movecursor,
More informationThe University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution Spring 2016
The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution Spring 2016 1. (15 points) Write a VHDL function that accepts a std_logic_vector of arbitrary length and an integer
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 informationThe University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004
The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique
More informationCOE758 Digital Systems Engineering
COE758 Digital Systems Engineering Project #1 Memory Hierarchy: Cache Controller Objectives To learn the functionality of a cache controller and its interaction with blockmemory (SRAM based) and SDRAM-controllers.
More informationTiming in synchronous systems
BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines
More informationELCT 501: Digital System Design
ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)
More informationSequential Circuit Design: Principle
Sequential Circuit Design: Principle Chapter 8 1 Outline 1. Overview on sequential circuits 2. Synchronous circuits 3. Danger of synthesizing async circuit 4. Inference of basic memory elements 5. Simple
More informationVHDL/Verilog Simulation. Testbench Design
VHDL/Verilog Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs
More informationECE 459/559 Secure & Trustworthy Computer Hardware Design
ECE 459/559 Secure & Trustworthy Computer Hardware Design VHDL Overview Garrett S. Rose Spring 2016 Recap Public Key Encryption (PKE) RSA (Rivest, Shamir and Adelman) Encryption Advanced Encryption Standard
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 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 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 informationEECS 366: Computer Architecure. Memory Technology. Lecture Notes # 15. University of Illinois at Chicago. Instructor: Shantanu Dutt Department of EECS
EECS 366: Computer Architecure Instructor: Shantanu Dutt Department of EECS University of Illinois at Chicago Lecture Notes # 15 Memory Technology c Shantanu Dutt MEMORY ORGANIZATION Physical Characteristics
More informationCprE 583 Reconfigurable Computing
Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering
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 informationCOE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14
COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit
More information3 Designing Digital Systems with Algorithmic State Machine Charts
3 Designing with Algorithmic State Machine Charts An ASM chart is a method of describing the sequential operations of a digital system which has to implement an algorithm. An algorithm is a well defined
More informationChapter 6 (Lect 3) Counters Continued. Unused States Ring counter. Implementing with Registers Implementing with Counter and Decoder
Chapter 6 (Lect 3) Counters Continued Unused States Ring counter Implementing with Registers Implementing with Counter and Decoder Sequential Logic and Unused States Not all states need to be used Can
More informationHello, World: A Simple Application for the Field Programmable Port Extender (FPX)
Hello, World: A Simple Application for the Field Programmable Port Extender (FPX) John Lockwood, David Lim WUCS-TM-00-12 July 11, 2000 Department of Computer Science Applied Research Lab Washington University
More information1. (11 pts) For each question, state which answer is the most apropriate. First one is done for you.
. ( pts) For each question, state which answer is the most apropriate. First one is done for you. Questions: z. What is this section of the test? u a. What is a flip-flop? b. Which devices have to worry
More informationDIGITAL LOGIC DESIGN VHDL Coding for FPGAs
IGITAL LOGIC SIGN VHL Coding for FPGAs SUNTIAL CIRCUITS Unit 5 Asynchronous sequential circuits: Latches Synchronous circuits: flip flops, counters, registers. Testbench: Generating stimulus COMBINATIONAL
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 informationDP8420V 21V 22V-33 DP84T22-25 microcmos Programmable 256k 1M 4M Dynamic RAM Controller Drivers
DP8420V 21V 22V-33 DP84T22-25 microcmos Programmable 256k 1M 4M Dynamic RAM Controller Drivers General Description The DP8420V 21V 22V-33 DP84T22-25 dynamic RAM controllers provide a low cost single chip
More informationSemiconductor Memories: RAMs and ROMs
Semiconductor Memories: RAMs and ROMs Lesson Objectives: In this lesson you will be introduced to: Different memory devices like, RAM, ROM, PROM, EPROM, EEPROM, etc. Different terms like: read, write,
More informationDP8420A,DP8421A,DP8422A
DP8420A,DP8421A,DP8422A DP8420A DP8421A DP8422A microcmos Programmable 256k/1M/4M Dynamic RAM Controller/Drivers Literature Number: SNOSBX7A DP8420A 21A 22A microcmos Programmable 256k 1M 4M Dynamic RAM
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 informationDesign Problem 6 Solution
CSE 260 Digital Computers: Organization and Logical Design Design Problem 6 Solution Jon Turner The modifications to the VHDL for the console appear below entity console end console; architecture a1 of
More informationCS232 VHDL Lecture. Types
CS232 VHDL Lecture VHSIC Hardware Description Language [VHDL] is a language used to define and describe the behavior of digital circuits. Unlike most other programming languages, VHDL is explicitly parallel.
More informationCprE 583 Reconfigurable Computing
Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee
More informationEmbedded Systems Design: A Unified Hardware/Software Introduction. Outline. Chapter 5 Memory. Introduction. Memory: basic concepts
Hardware/Software Introduction Chapter 5 Memory Outline Memory Write Ability and Storage Permanence Common Memory Types Composing Memory Memory Hierarchy and Cache Advanced RAM 1 2 Introduction Memory:
More informationEmbedded Systems Design: A Unified Hardware/Software Introduction. Chapter 5 Memory. Outline. Introduction
Hardware/Software Introduction Chapter 5 Memory 1 Outline Memory Write Ability and Storage Permanence Common Memory Types Composing Memory Memory Hierarchy and Cache Advanced RAM 2 Introduction Embedded
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 information8032 MCU + Soft Modules. c = rcvdata; // get the keyboard scan code
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 { 0x25, 0x66 }, // "4" { 0x2E, 0x6D }, // "5" { 0x36, 0x7D }, // "6" { 0x3D, 0x07 }, // "7" { 0x3E, 0x7F }, // "8" { 0x46,
More informationControl Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN
Control Unit: Binary Multiplier Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Example: Binary Multiplier Two versions Hardwired control Microprogrammed
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 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 information8254 is a programmable interval timer. Which is widely used in clock driven digital circuits. with out timer there will not be proper synchronization
8254 is a programmable interval timer. Which is widely used in clock driven digital circuits. with out timer there will not be proper synchronization between two devices. So it is very useful chip. The
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 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 informationLatch Based Design (1A) Young Won Lim 2/18/15
Latch Based Design (1A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationChapter 2: Fundamentals of a microprocessor based system
Chapter 2: Fundamentals of a microprocessor based system Objectives Learn about the basic structure of microprocessor systems Learn about the memory read/write timing diagrams. Learn about address decoding
More informationMemory. Memory Technologies
Memory Memory technologies Memory hierarchy Cache basics Cache variations Virtual memory Synchronization Galen Sasaki EE 36 University of Hawaii Memory Technologies Read Only Memory (ROM) Static RAM (SRAM)
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 informationVHDL Models for Memories and Busses
VHDL Models for Memories and Busses In this unit the following topics are described: the operation of a static RAM memory developing VHDL models to represent the operation and timing characteristics of
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 informationCpE 442. Memory System
CpE 442 Memory System CPE 442 memory.1 Outline of Today s Lecture Recap and Introduction (5 minutes) Memory System: the BIG Picture? (15 minutes) Memory Technology: SRAM and Register File (25 minutes)
More information6.111 Lecture # 8. Topics for Today: (as time permits)
6.111 Lecture # 8 Topics for Today: (as time permits) 1. Memories 2. Assembling 'packages' for designs 3. Discussion of design procedure 4. Development of a design example using a finite state machine
More informationELE 758 * DIGITAL SYSTEMS ENGINEERING * MIDTERM TEST * Circle the memory type based on electrically re-chargeable elements
ELE 758 * DIGITAL SYSTEMS ENGINEERING * MIDTERM TEST * Student name: Date: Example 1 Section: Memory hierarchy (SRAM, DRAM) Question # 1.1 Circle the memory type based on electrically re-chargeable elements
More informationNanosistemų programavimo kalbos 5 paskaita. Sekvencinių schemų projektavimas
Nanosistemų programavimo kalbos 5 paskaita Sekvencinių schemų projektavimas Terminai Combinational circuit kombinacinė schema (be atminties elementų) Sequential circuit nuosekli (trigerinė, sekvencinė)
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 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 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 informationOne and a half hours. Section A is COMPULSORY
One and a half hours Section A is COMPULSORY An additional answersheet is provided for Question 4. Please remember to complete the additional answersheet with your University ID number and attach it to
More informationMemories. Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu.
Memories Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted from Digital Design and Computer Architecture, David Money Harris & Sarah
More informationFSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques
FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also
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 information