University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS150, Spring 2010
|
|
- Scarlett Flynn
- 5 years ago
- Views:
Transcription
1 University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS10, Spring 010 Homework Assignment 7 Solutions: Memories and Video 1. Your task is to implement a 3K x 3 memory. Assume you are given 3Kit configurale memory locks such as a lock RAM in a FPGA. Each lock can e configured as a 3K x 1it memory or a 1K x 3it memory. Which option would you choose as a uilding lock for your 3K x 3it memory and why? Drawing the 3Kx3 memory using each of the uilding locks, it seems clear that 3Kx1 uilding lock is the est choice. It uses the least extra logic and therefore could have etter performance and lower area cost. Using the 3Kx1 memories, the larger memory can e constructed y simply using the one it from each lock as one of the 3 its of data. On writes, the address goes to all locks, writeenale is asserted for all, and one of the 3 its goes to each lock. Using the 1Kx3 memories, each data word is stored in one of the 3 locks. So, for reads, part of the address chooses the word inside the locks and the rest of the address chooses etween the data from the locks. For writes the datain goes to all locks ut only the appropriate writeenale is asserted, determined y a decoder. So, the 1Kx3 implementation requires an extra 3:1 decoder and a 3-it wide 3:1 mux; this is a lot of extra hardware and if oth memory locks are assumed the same, then performance is also worse ecause of the extra delay through the decoder on writes and mux on reads. 1
2 . (a) Write a parameterized memory in Verilog. module RAM( Clock, WAddress, RAddress, WE, DataIn, DataOut ) ; parameter Width = 16, Depth = 104 4, SynchronousRead = 0 ; / / assume a macro l o g i s d e f i n e d localparam AWidth = l o g ( Depth ) ;
3 input Clock ; input [ AWidth 1:0] WAddress, RAddress ; input WE; input [ Width 1:0] D a t a I n ; output [ Width 1:0] DataOut ; reg [ Width 1:0] mem [ Depth 1 : 0 ] ; reg [ AWidth 1:0] ReadAddress p ; ( posedge Clock ) egin i f (WE) egin mem[ WAddress ] <= DataIn ; end end g e n e r a t e i f ( SynchronousRead ) egin ( posedge Clock ) egin ReadAddress p <= RAddress ; end a s s i g n DataOut = mem[ ReadAddress p ] ; end e l s e egin a s s i g n DataOut = mem[ RAddress ] ; end endgenerate endmodule () Create a Xilinx ISE project and add your RAM module. Set the parameters to implement each of the following memories. For each, record the type of resource used, the percentage of this type of resource that is used up, and the memory configuration used. This information is near the ottom of the synthesis report. i. depth=3, width=1, SynchronousRead=0. Dual Port Rams (RAM3X1D): 1 LUTs: (0%) ii. depth=4096, width=16, SynchronousRead=0. Dual Port Rams (RAM18X1D): 1 LUTs: 40 (3%) iii. depth=3*104, width=3, SynchronousRead=1. Block Rams : 3 of 148 (1%) 3. We want to uild a 3 x 3it register file, with read ports and 1 write port, on an FPGA. Refer to Virtex- FPGA User Guide (ug190.pdf) on the Documents page for this prolem. (a) Build the register file from Block RAM, using as few resources as possile. Description of Virtex- Block RAM can e found starting at pg.109 of the User Guide. Draw your design and give a rief description, including what configuration is used. 3
4 WD RD1 WADDR WEN 1 RA1 18K BlockRAM, SDP mode RD 1 RA 4 18K BlockRAM, SDP mode
5 To get a data width of 3, we can use a 18K BlockRAM in simple dual-port mode, which allows up to 36 it data width and independent read and write. We need reads and 1 write on every cycle, so we need to replicate the BlockRAM memory to gain an extra read port. The write port for oth RAMs will use the same signals. Using BlockRAMs for a 3x3 regfile wastes most rows in the memory. () Build the register file from Distriuted RAM (LUT RAM), using as few resources as possile. The asic primitives are found on pg.07 of the User Guide. There may also e useful information within Chapter : Configurale Logic Blocks (CLBs). Draw your design and give a rief description, including what configuration is used. RA0 RD0 RA1 3x memory (1 write, read) WAddr RD1 WData WE RA0 RA1 RA0 RA1 WAddr WData WE RD0 RD1 RD0 RD1 16 memories total RA0 RA1 WAddr WData WE RD0 RD1 To get a data width of 3 and multiple ports, we choose the LUTRAM 3x Quad port
6 configuration. One port is the SLICEM write signals, which go to all 4 LUT6 s within the SLICEM. Two LUTs, with their independent read addresses can provide the two read ports. The fourth LUT6 is unused (technically the first one is too, ut we need to use its address signals for write address). Inside each LUT6, the two LUT s that comprise it each provide a it of data, and we know that a LUT has 3 its of state, thus 3x memory. We can compose 16 of these 3x 1WR memories in parallel to get the 3-it data width. (c) Assume the rough area costs elow: Component Area (µm ) LUT 80 LUT BRAM BRAM FlipFlop 100 i. Approximately how much area does it take for 36Kits of storage using: A. Block RAM? 36Kit*(1 BRAM36/36Kit) = µm B. LUT RAM? 36Kit*(1 LUT6/64it) = 97900µm C. FlipFlops? 36Kit*(1 FF/1 it) = µm ii. How much area does each of your register file implementations require? A. Block RAM. *BRAM18 = µm B. LUT RAM. 3 LUT6 per quad port 3x memory (when excluding unused fourth port). Need 16 of these in parallel to have 3-it wide data. 16*3*LUT6 = 81600µm. C. FlipFlops (estimate ased on numer of flipflops, as well LUTs for surrounding logic). Each it of :3 decoder (with WE input) can fit in a LUT6, so 3 LUT6 for decoder. 3*3=104 FlipFlops for the memory. 10 LUT6 for each it of the 3:1 Mux. For 3 data width, we use 3 copies of this, so: 10*3=30 LUT6. We have two read ports, so muxes: *30 = 640 LUT6. This is one possile mapping of the 3:1 Mux to LUTs. Below is a schematic of 1 copy (1-it wide 3:1 Mux). 6
7 LUT6 4:1 MUX LUT6 4:1 MUX 3 choices 8 LUTs total F7Mux DataOut 4:1 MUX 4:1 MUX LUT6 LUT6 ( ) LUT F F = µm A more efficient implementation of the 3:1 mux is to use the F7Muxes and F8Mux to create a 16:1 Mux. Two of these 16:1 Muxes can e comined with a :1 Mux (using another LUT). This adds up to 9 LUT6 s per 1-it 3:1 Mux. (3 + 76) LUT 6 = µm From this exercise we first see that BlockRAM is the most dense memory (approximately 10x more dense than flipflops) and desirale for larger memories. We also saw an example of how different memory types compare for a given application. For a 3x3it register file, BlockRAM wastes resources ecause we need two to have enough ports, ut each Block- RAM already has far more space than needed. LUTRAM takes only 81600µm despite needing a replica of the data for each port. Flipflop memory does not need to e replicated for 1 write port and any numer of read ports, ut since it is less dense, the flipflops themselves are more area (aout 0000µm more) than the LUTs, and also need surrounding logic: decoder for writes and muxes for reads. 4. We are using a 800x600 display at 7Hz, meaning 7 frames are sent to the display every second. (a) What is the pixel rate? 800 pixels/line * 600 lines/frame * 7 frames/sec = pixels/sec () For 4-it color, what is the data rate? pixels/sec * 4 it/pixel = it/sec 7
8 (c) What is the pixel frequency (clock used y display) for sending pixels to our 7Hz display? let h=lines/frame, w=pixels/line, h=horizontal lanking interval, v=vertical lanking interval, fr=frame rate, pf=pixel frequency (the unknown) h (w/pf + h) + v = 1/fr 600lines/f rame ((800pixels/line)/pf µs) ms/f rame = 1/7sec/f rame pf = 800/((1/ )/ ) pf = pixels/sec (d) What is the horizontal lanking interval in terms of numer of pixels? One way to think of lanking intervals is as additional display area offscreen as shown elow. 800 pixels Horiz. lanking 600 lines Visile display Vert. lanking Virtual lanking area We know the pixel frequency from (c) and just multiply this y the horizontal lanking interval to get how many pixels. pf h pixel/sec s = 6pixels What is the vertical lanking interval in terms of numer of lines? Part (c) mentioned that the vertical lanking interval is like writing extra offscreen lines at 8
9 the end of each frame. We know the time per line (including lanking interval) y plugging in the pixel frequency. Divide the vertical lanking interval y time per line to get numer of lines. v/(w/pf + h) /((800pixels/line)/( pixels/sec) ) lines The spec for the display used in this prolem can e found at Suppose we implement our 800x600 pixel frameuffer using the Block RAM resources on our XCVLX110T FPGA. You can look in Virtex- Family Overview on the Documents page of the wesite for the resources availale on different Virtex- FPGA models. Suppose half the Block RAMs on the fpga are eing used for our instruction and data memories already, leaving half for the frameuffer. (a) How many its are availale for each pixel? The Family Overview says there are,38ki of BlockRAM memory on the FPGA /( ) = its/pixel The prolem says half of the BlockRAMs are availale so.683 its/pixel. There is not a - it data width configuration for BlockRAMs, so if we were implementing this frameuffer, we might store each pixel across BlockRAMs, using the 3Kx1 configuration (although the addressing may e easier if we just used 4-it pixels and the 8Kx4 configuration). () How many distinct colors can e represented? (Let this numer e hereafter called N) its per pixel to encode the color. = 3 = N. (c) Recall that our video interface supports 4-it color. How can you use a relatively small memory to allow any N of the 4 displayale colors to e used at a given time? Draw a high level lock diagram of the frameuffer, video interface, and the extra memory lock implementing this functionality. Specify the dimensions of the small memory. 9
10 ReadCoordX ReadCoordY Frameuffer (implemented with Block RAMs) N Pixel Address Small Memory DOut Color 4 VideoInterface The small memory is 3x4 it. It has 3 4-it color entries. This tale turns a -it color code into a 4-it color. Thus, at one time we can display up to 3 out of the 4 displayale colors. (d) The CPU should e ale to write to this small memory (sometimes called a Colormap ) to change the colors eing used and even do short animations efficiently. Suppose the Colormap is in the CPU memory map at addresses 0xA xA000007C (rememer memory is yte addressed ut we only use word loads and stores so the least significant its of the address are always zero). Suppose initially oth the frameuffer and Colormap are filled with 0 s in every memory location. Fill in the code in main() that does an animation of a green vertical ar moving across the screen, with a lack ackground. Make 10
11 the animation occur at roughly frames per second. Notice helpful functions sleep() and framebufferaddress() are provided. void s l e e p ( long d e l a y ) { / /... makes CPU w a i t f o r d e l a y m i l l i s e c o n d s... i n t f r a m e B u f f e r A d d r e s s ( i n t x, i n t y ) { / /... r e t u r n s t h e f r a m e u f f e r memory a d d r e s s / / c o r r e s p o n d i n g t o p i x e l ( x, y )... i n t main ( ) { i n t BLACK = 0 x ; i n t GREEN = 0x00FF00 ; i n t colormapbaseaddress = 0xA ; / / w r i t e ars t o t h e f r a m e u f f e r, w i t h c o l o r v a l u e s 1 t h r u N 1. f o r ( i n t x =1; x<n; x ++) { f o r ( i n t y =0; y <600; y ++) { ( f r a m e B u f f e r A d d r e s s ( x, y ) ) = x ; / / w r i t e x t o p i x e l ( x, y ) / / Animation animate a GREEN v e r t i c a l ar moving a c r o s s t h e s c r e e n / / from x=1 t o x=n 1. f o r ( i n t x =1; x<n; x ++) { i n t o l d a = colormapbaseaddress + 4 ( x 1) ; i n t newa = colormapbaseaddress + 4 x ; o l d a = BLACK; newa = GREEN; s l e e p ( 4 0 ) ; 11
EECS 151/251A Spring 2019 Digital Design and Integrated Circuits. Instructor: John Wawrzynek. Lecture 18 EE141
EECS 151/251A Spring 2019 Digital Design and Integrated Circuits Instructor: John Wawrzynek Lecture 18 Memory Blocks Multi-ported RAM Combining Memory blocks FIFOs FPGA memory blocks Memory block synthesis
More informationEECS150 - Digital Design Lecture 16 - Memory
EECS150 - Digital Design Lecture 16 - Memory October 17, 2002 John Wawrzynek Fall 2002 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: data & program storage general purpose registers buffering table lookups
More informationEECS150 - Digital Design Lecture 13 - Project Description, Part 2: Memory Blocks. Project Overview
EECS150 - igital esign Lecture 13 - Project escription, Part 2: Memory Blocks Mar 2, 2010 John Wawrzynek Spring 2010 EECS150 - Lec13-proj2 Page 1 Project Overview A. MIPS150 pipeline structure B. Serial
More informationEECS150 - Digital Design Lecture 16 Memory 1
EECS150 - Digital Design Lecture 16 Memory 1 March 13, 2003 John Wawrzynek Spring 2003 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: Whenever a large collection of state elements is required. data &
More informationMemories: a practical primer
Memories: a practical primer The good news: huge selection of technologies Small & faster vs. large & slower Every year capacities go up and prices go down New kid on the block: high density, fast flash
More informationTopics. Midterm Finish Chapter 7
Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice
More informationTopics. Midterm Finish Chapter 7
Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory
More informationMemory and Programmable Logic
Memory and Programmable Logic Memory units allow us to store and/or retrieve information Essentially look-up tables Good for storing data, not for function implementation Programmable logic device (PLD),
More informationReadings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.
Registers Readings: 5.8-5.9.3 Storage unit. Can hold an n-bit value Composed of a group of n flip-flops Each flip-flop stores 1 bit of information ff ff ff ff 178 Controlled Register Reset Load Action
More informationBlock RAM. Size. Ports. Virtex-4 and older: 18Kb Virtex-5 and newer: 36Kb, can function as two 18Kb blocks
Block RAM Dedicated FPGA resource, separate columns from CLBs Designed to implement large (Kb) memories Multi-port capabilities Multi-clock capabilities FIFO capabilities Built-in error detection and correction
More informationHot X: Algebra Exposed
Hot X: Algera Exposed Solution Guide for Chapter 5 Here are the solutions for the Doing the Math exercises in Hot X: Algera Exposed! (assume that all denominators 0) DTM from p.59 2. Since they have the
More informationFPGA Matrix Multiplier
FPGA Matrix Multiplier In Hwan Baek Henri Samueli School of Engineering and Applied Science University of California Los Angeles Los Angeles, California Email: chris.inhwan.baek@gmail.com David Boeck Henri
More informationALTERA M9K EMBEDDED MEMORY BLOCKS
ALTERA M9K EMBEDDED MEMORY BLOCKS M9K Overview M9K memories are Altera s embedded high-density memory arrays Nearly all modern FPGAs include something similar of varying sizes 8192 bits per block (9216
More informationLearning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing
3-. 3-.2 Learning Outcomes Spiral 3 Hardware/Software Interfacing I understand the PicoBlaze bus interface signals: PORT_ID, IN_PORT, OUT_PORT, WRITE_STROBE I understand how a memory map provides the agreement
More informationTSEA44 - Design for FPGAs
2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency
More informationproblem maximum score 1 8pts 2 6pts 3 10pts 4 15pts 5 12pts 6 10pts 7 24pts 8 16pts 9 19pts Total 120pts
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences EECS150 J. Wawrzynek Spring 2010 3/31/09 Name: ID number: Midterm Exam This is a closed-book,
More informationReview: Timing. EECS Components and Design Techniques for Digital Systems. Lec 13 Storage: Regs, SRAM, ROM. Outline.
Review: Timing EECS 150 - Components and Design Techniques for Digital Systems Lec 13 Storage: Regs,, ROM David Culler Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~culler
More informationEECS150 - Digital Design Lecture 17 Memory 2
EECS150 - Digital Design Lecture 17 Memory 2 October 22, 2002 John Wawrzynek Fall 2002 EECS150 Lec17-mem2 Page 1 SDRAM Recap General Characteristics Optimized for high density and therefore low cost/bit
More informationHDL Coding Style Xilinx, Inc. All Rights Reserved
HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various
More informationSpiral 3-1. Hardware/Software Interfacing
3-1.1 Spiral 3-1 Hardware/Software Interfacing 3-1.2 Learning Outcomes I understand the PicoBlaze bus interface signals: PORT_ID, IN_PORT, OUT_PORT, WRITE_STROBE I understand how a memory map provides
More informationImplementation of High Speed FIR Filter using Serial and Parallel Distributed Arithmetic Algorithm
Volume 25 No.7, July 211 Implementation of High Speed FIR Filter using Serial and Parallel Distriuted Arithmetic Algorithm Narendra Singh Pal Electronics &Communication, Dr.B.R.Amedkar Tecnology, Jalandhar
More informationHomework deadline extended to next friday
Norm Midterm Grading Finished Stats on course homepage Pickup after this lab lec. Regrade requests within 1wk of posted solution Homework deadline extended to next friday Description Design Conception
More informationName Class Date. Quadratic Functions and Transformations
4-1 Reteaching Parent Quadratic Function The parent quadratic function is y = x. Sustitute 0 for x in the function to get y = 0. The vertex of the parent quadratic function is (0, 0). A few points near
More informationDon t expect to be able to write and debug your code during the lab session.
EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping
More informationORCA Series 4 Quad-Port Embedded Block RAM
August 2002 Introduction ORCA Series 4 Quad-Port Embedded Block RAM Technical Note TN1016 The ORCA Series 4 FPGA platform provides embedded block RAM (EBR) macrocells to compliment it s distributed PFU
More informationA Verilog Primer. An Overview of Verilog for Digital Design and Simulation
A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,
More informationSpiral 2-8. Cell Layout
2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric
More informationChapter 5 Registers & Counters
University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 5 Registers & Counters Originals by: Charles R. Kime Modified for course
More informationReal-Time Median Filtering for Embedded Smart Cameras
Real-Time Median Filtering for Emedded Smart Cameras Yong Zhao Brown University Yong Zhao@rown.edu Gariel Tauin Brown University tauin@rown.edu Figure 1: System architecture of our proof-of-concept Visual
More informationEECS 150 Fall 2012 Checkpoint 2: Cache Integration
Memory Arbiter Xilinx MIG EECS 150 Fall 2012 Checkpoint 2: Cache Integration Prof. John Wawrzynek TAs: Vincent Lee, Shaoyi Cheng Department of Electrical Engineering and Computer Sciences College of Engineering,
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 informationAsynchronous FIFO Design
Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read
More informationFPGA RAM (C1) Young Won Lim 5/13/16
FPGA RAM (C) Copyright (c) 204-206 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version.2 or any later version
More informationLab 1: FPGA Physical Layout
Lab 1: FPGA Physical Layout University of California, Berkeley Department of Electrical Engineering and Computer Sciences EECS150 Components and Design Techniques for Digital Systems John Wawrzynek, James
More informationEECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.
Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. 1.b. Show that a 2-to-1 MUX is universal (i.e. that any Boolean expression can be implemented with
More informationVerilog: a brief history
: a rief history c.977 First HDLs developed 985 introduced y Gateway Design Automation 99 Gateway purchased y Cadence Design Systems 99 Opened as a language 995 Made into IEEE standard #364 2 Second IEEE
More informationSection 3.2 Quadratic Functions
3. Quadratic Functions 163 Section 3. Quadratic Functions In this section, we will explore the family of nd degree polynomials, the quadratic functions. While they share many characteristics of polynomials
More informationCMSC 430 Introduction to Compilers. Spring Register Allocation
CMSC 430 Introuction to Compilers Spring 2016 Register Allocation Introuction Change coe that uses an unoune set of virtual registers to coe that uses a finite set of actual regs For ytecoe targets, can
More informationProgrammable Logic. Any other approaches?
Programmable Logic So far, have only talked about PALs (see 22V10 figure next page). What is the next step in the evolution of PLDs? More gates! How do we get more gates? We could put several PALs on one
More informationECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control
ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State
More informationL2: FPGA HARDWARE : ADVANCED DIGITAL DESIGN PROJECT FALL 2015 BRANDON LUCIA
L2: FPGA HARDWARE 18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2015 BRANDON LUCIA 18-545: FALL 2014 2 Admin stuff Project Proposals happen on Monday Be prepared to give an in-class presentation Lab 1 is
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly
More informationEECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)
EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Fall 2002 EECS150 - Lec06-FPGA Page 1 Outline What are FPGAs? Why use FPGAs (a short history
More informationBinary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University
Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University Computational Boolean Algera Representations Applying unate recursive paradigm (URP) in solving tautology is a great warm up example.
More informationOutline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?
EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) September 12, 2002 John Wawrzynek Outline What are FPGAs? Why use FPGAs (a short history lesson). FPGA variations Internal logic
More informationLecture 4: More Lab 1
Overview Lecture 4: More Lab 1 David Black-Schaffer davidbbs@stanford.edu EE183 Spring 2003 Hardware vs. Software Think about how many adders you are creating Hierarchical design is good for both scalability
More informationProblem Set # 6 (Assigned 27 February, Due 9 March)
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS 150 Spring 2007 R. H. Katz Problem Set # 6 (Assigned 27 February, Due 9 March)
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but
More informationy ax bx c y a x h 2 Math 11 Pre-Cal Quadratics Review
Math 11 Pre-Cal Quadratics Review A quadratic function can e descried as y ax x c (or equivalent forms, see elow). There are an infinite numer of solutions (x,y pairs) to a quadratic function. If we plot
More informationSynthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1
Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out
More informationDesign Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies
Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies Alex Vals, Technical Marketing Engineer Mentor Graphics Corporation June 2008 Introduction Over
More informationL4: Binary Decision Diagrams. Reading material
L4: Binary Decision Diagrams de Micheli pp. 75-85 Reading material R. Bryant, Graph-ased algorithms for Boolean function manipulation, IEEE Transactions on computers, C-35, No 8, August 1986; can e downloaded
More informationEE178 Spring 2018 Lecture Module 4. Eric Crabill
EE178 Spring 2018 Lecture Module 4 Eric Crabill Goals Implementation tradeoffs Design variables: throughput, latency, area Pipelining for throughput Retiming for throughput and latency Interleaving for
More informationUNIT 10 Trigonometry UNIT OBJECTIVES 287
UNIT 10 Trigonometry Literally translated, the word trigonometry means triangle measurement. Right triangle trigonometry is the study of the relationships etween the side lengths and angle measures of
More informationEECS 150 Fall 2012 Checkpoint 2: Cache Integration
Memory Arbiter Xilinx MIG EECS 150 Fall 2012 Checkpoint 2: Cache Integration Prof. Kris Pister TAs: Vincent Lee, Ian Juch, Albert Magyar Department of Electrical Engineering and Computer Sciences College
More informationOutline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?
Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom
More informationA Novel Approach of Area-Efficient FIR Filter Design Using Distributed Arithmetic with Decomposed LUT
IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-issn: 2278-2834,p- ISSN: 2278-8735. Volume 7, Issue 2 (Jul. - Aug. 2013), PP 13-18 A Novel Approach of Area-Efficient FIR Filter
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 informationEECS 151/251A: SRPING 2017 MIDTERM 1
University of California College of Engineering Department of Electrical Engineering and Computer Sciences E. Alon Thursday, Mar 2 nd, 2017 7:00-8:30pm EECS 151/251A: SRPING 2017 MIDTERM 1 NAME Last First
More informationUniversity of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering
University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Eamination ECE 4F - Digital Systems Eaminers: S. Brown, J.
More informationWhat is Xilinx Design Language?
Bill Jason P. Tomas University of Nevada Las Vegas Dept. of Electrical and Computer Engineering What is Xilinx Design Language? XDL is a human readable ASCII format compatible with the more widely used
More informationReview from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift
Review from last time CS152 Computer Architecture and Engineering Lecture 6 Verilog (finish) Multiply, Divide, Shift February 11, 2004 John Kubiatowicz (www.cs.berkeley.edu/~kubitron) lecture slides: http://www-inst.eecs.berkeley.edu/~cs152/
More informationDigital Logic & Computer Design CS Professor Dan Moldovan Spring 2010
Digital Logic & Computer Design CS 434 Professor Dan Moldovan Spring 2 Copyright 27 Elsevier 5- Chapter 5 :: Digital Building Blocks Digital Design and Computer Architecture David Money Harris and Sarah
More informationAn HEVC Fractional Interpolation Hardware Using Memory Based Constant Multiplication
2018 IEEE International Conference on Consumer Electronics (ICCE) An HEVC Fractional Interpolation Hardware Using Memory Based Constant Multiplication Ahmet Can Mert, Ercan Kalali, Ilker Hamzaoglu Faculty
More informationVLSI Programming 2016: Lecture 3
VLSI Programming 2016: Lecture 3 Course: 2IMN35 Teachers: Kees van Berkel c.h.v.berkel@tue.nl Rudolf Mak r.h.mak@tue.nl Lab: Kees van Berkel, Rudolf Mak, Alok Lele www: http://www.win.tue.nl/~wsinmak/education/2imn35/
More informationLearning Outcomes. Input / Output. Introduction PICOBLAZE 10/18/2017
3-. Learning Outcomes 3-.2 Hardware/Software Interfacing PICOBLAZE Slides from Mark Redekopp, EE29 slide set (EE29Spiral3.pdf) adopted to suit EE354L I understand the PicoBlaze bus interface signals: PORT_ID[7:],
More informationPINE TRAINING ACADEMY
PINE TRAINING ACADEMY Course Module A d d r e s s D - 5 5 7, G o v i n d p u r a m, G h a z i a b a d, U. P., 2 0 1 0 1 3, I n d i a Digital Logic System Design using Gates/Verilog or VHDL and Implementation
More informationPrelim 1. CS 2110, 14 March 2017, 7:30 PM Total Question Name Short answer. OO Recursion Loop invariants Max Score Grader
Prelim 1 CS 2110, 14 March 2017, 7:30 PM 1 2 3 4 5 Total Question Name Short answer OO Recursion Loop invariants Max 1 36 33 15 15 100 Score Grader The exam is closed ook and closed notes. Do not egin
More informationLab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week
Objectives: Lab 4: Register File and Memory 50 points Instructor: Yifeng Zhu Due: One week Build Register File Build Instruction Memory and Data Memory 1. Overview A combinational circuit neither contains
More informationCS 188: Artificial Intelligence Fall Search Gone Wrong?
CS 188: Artificial Intelligence Fall 2009 Lecture 3: A* Search 9/3/2009 Pieter Aeel UC Berkeley Many slides from Dan Klein Search Gone Wrong? 1 Announcements Assignments: Project 0 (Python tutorial): due
More informationEECS150: Lab 3, Verilog Synthesis & FSMs
EECS150: Lab 3, Verilog Synthesis & FSMs UC Berkeley College of Engineering Department of Electrical Engineering and Computer Science February 11, 2009 1 Time Table ASSIGNED DUE Friday, Febuary 6 th Week
More informationGraduate Institute of Electronics Engineering, NTU. FPGA Lab. Speaker : 鍾明翰 (CMH) Advisor: Prof. An-Yeu Wu Date: 2010/12/14 ACCESS IC LAB
FPGA Lab Speaker : 鍾明翰 (CMH) Advisor: Prof. An-Yeu Wu Date: 2010/12/14 ACCESS IC LAB Objective In this Lab, you will learn the basic set-up and design methods of implementing your design by ISE 10.1. Create
More informationRecent Results from Analyzing the Performance of Heuristic Search
Recent Results from Analyzing the Performance of Heuristic Search Teresa M. Breyer and Richard E. Korf Computer Science Department University of California, Los Angeles Los Angeles, CA 90095 {treyer,korf}@cs.ucla.edu
More informationFPGA Polyphase Filter Bank Study & Implementation
FPGA Polyphase Filter Bank Study & Implementation Raghu Rao Matthieu Tisserand Mike Severa Prof. John Villasenor Image Communications/. Electrical Engineering Dept. UCLA 1 Introduction This document describes
More informationECE 699: Lecture 9. Programmable Logic Memories
ECE 699: Lecture 9 Programmable Logic Memories Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques Sections: RAM HDL Coding Techniques ROM
More informationBuilding your First Image Processing ASIC
Building your First Image Processing ASIC CS250 Laboratory 2 (Version 092312) Written by Rimas Avizienis (2012) Overview The goal of this assignment is to give you some experience implementing an image
More informationIntroduction to Verilog. Mitch Trope EECS 240 Spring 2004
Introduction to Verilog Mitch Trope mtrope@ittc.ku.edu EECS 240 Spring 2004 Overview What is Verilog? Verilog History Max+Plus II Schematic entry Verilog entry System Design Using Verilog: Sum of Products
More informationLogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)
DS799 March 1, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded
More informationUniversity of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering
University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Examination ECE 241F - Digital Systems Examiners: S. Brown,
More informationLogic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis
Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital
More informationEECS150 - Digital Design Lecture 9 Project Introduction (I), Serial I/O. Announcements
EECS150 - Digital Design Lecture 9 Project Introduction (I), Serial I/O September 22, 2011 Elad Alon Electrical Engineering and Computer Sciences University of California, Berkeley http://www-inst.eecs.berkeley.edu/~cs150
More informationCSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Instructor: Mohsen Imani. Slides from Tajana Simunic Rosing
CSE4L: Components and Design Techniques for Digital Systems La FSMs Instructor: Mohsen Imani Slides from Tajana Simunic Rosing Source: Vahid, Katz Flip-flops Hardware Description Languages and Sequential
More informationORCA FPGA- Optimized VectorBlox Computing Inc.
ORCA FPGA- Optimized 2016 VectorBlox Computing Inc. 1 ORCA FPGA- Optimized Tiny, Low-Power FPGA 3,500 LUT4s 4 MUL16s < $5.00 ISA: RV32IM hw multiply, sw divider < 2,000 LUTs ~ 20MHz What is ORCA? Family
More informationFPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011
FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level
More informationCPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline
CPE/EE 422/522 Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices Dr. Rhonda Kay Gaede UAH Outline Introduction Field-Programmable Gate Arrays Virtex Virtex-E, Virtex-II, and Virtex-II
More informationNikhil Gupta. FPGA Challenge Takneek 2012
Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using
More informationSaving Power by Mapping Finite-State Machines into Embedded Memory Blocks in FPGAs
Saving Power by Mapping Finite-State Machines into Embedded Memory Blocks in FPGAs Anurag Tiwari and Karen A. Tomko Department of ECECS, University of Cincinnati Cincinnati, OH 45221-0030, USA {atiwari,
More informationLogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)
DS799 June 22, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded
More informationA Configurable Radiation Tolerant Dual-Ported Static RAM macro, designed in a 0.25 µm CMOS technology for applications in the LHC environment.
A Configurable Radiation Tolerant Dual-Ported Static RAM macro, designed in a 0.25 µm CMOS technology for applications in the LHC environment. 8th Workshop on Electronics for LHC Experiments 9-13 Sept.
More informationGraphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis
Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All
More informationCSE140L: Components and Design Techniques for Digital Systems Lab
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check
More informationLab 3 Verilog Simulation Mapping
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences 1. Motivation Lab 3 Verilog Simulation Mapping In this lab you will learn how to use
More informationIntroduction to Field Programmable Gate Arrays
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Historical introduction.
More informationFPGA Architecture Overview. Generic FPGA Architecture (1) FPGA Architecture
FPGA Architecture Overview dr chris dick dsp chief architect wireless and signal processing group xilinx inc. Generic FPGA Architecture () Generic FPGA architecture consists of an array of logic tiles
More informationCS 1110 Final, December 9th, Question Points Score Total: 100
CS 1110 Final, Decemer 9th, 2015 This 150-minute exam has 8 questions worth a total of 100 points. Scan the whole test efore starting. Budget your time wisely. Use the ack of the pages if you need more
More informationParameterizable LocalLink FIFO Author: Wen Ying Wei, Dai Huang
Application Note: Virtex-II and Virtex-II Pro Families XAPP691 (v1.0.1) May 10, 2007 R Parameterizable LocalLink FIFO Author: Wen Ying Wei, Dai Huang Summary This application note describes the implementation
More informationCSE140L: Components and Design
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam
More informationAxcelerator Family Memory Blocks
Application Note AC164 Axcelerator Family Memory Blocks Introduction As FPGA applications become more complex, designers expectations of FPGA capabilities grow, making embedded memory blocks more and more
More informationAsynchronous FIFO V3.0. Features. Synchronization and Timing Issues. Functional Description
November 3, 2000 Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 URL: www.xilinx.com/ipcenter Support: support.xilinx.com Features Drop-in module for Virtex,
More informationice40 SPRAM Usage Guide Technical Note
TN1314 Version 1.0 June 2016 Contents 1. Introduction... 3 2. Single Port RAM s... 3 2.1. User SB_SPRAM256KA... 3 2.2. SPRAM Port Definitions and GUI Options... 4 3. Power Save States for SPRAM... 6 3.1.
More information