Hardware Description and Verification Lava Exam
|
|
- Lambert Lawson
- 6 years ago
- Views:
Transcription
1 Hardware Description and Verification Lava Exam Mary Sheeran Revised by Thomas Hallgren May 16, 2010 Introduction The purpose of this take-home exam is to give you further practice in writing Lava definitions of recursive circuits. It places particular emphasis on connection patterns. You will gain experience of exploring a design space using Lava, and will again use formal verification. Important information This is not a normal assignment, but part of the course examination. You are to do all of the work yourself. You are not allowed to cooperate or copy solutions (whole or partial). You should not even discuss your solution with anyone else. Act as if you were sitting in an exam hall with someone watching you. Cheating is unprofessional, and morally wrong. We will take a very dim view of any cheating that we discover, but feel hopeful that there will not be any. If you have questions about how to interpret the assignments, or have problems with the tools, do not hesitate to contact us. Also, if you get completely stuck, PLEASE contact us (and not your friends). This is a MUCH better idea than just giving up! In that case, any assistance that we give will be noted and may influence your grade. The required assignments are numbered A1-A8. It will be possible to pass by doing a good job on assignments A1-A4 and one of A5 and A6. Although this document is long, your answers can be short! You can increase your grade on this exam by up to 20% by doing the extra assignment, A9. What to submit A submission will consist of a single Lava-runnable file containing the source code of the circuits and properties you have defined, and all the helper functions. Clearly mark in comments which definition is part of which answer. You can save some time by start from the provided file LavaExamRemoved10.hs. In comments in the same Lava file, give the answers to the questions, motivation for decisions you have made, etc. Mention what actually happened (time, output etc.) when you did a simulation, verification or other analysis. Give us as much information about what you have done as possible, as this eases the problem of judging the quality of your work. Remember, though, that we don t expect perfection. Hand in whatever you have got at the deadline, even if you are not at all happy with it. You may use definitions and other code fragments from the Lava tutorial and from the file EFile10.hs, which is available, together with important papers and documents (including this one) the Assignments page on the course web page. 1
2 Adders and parallel prefix circuits One way to do binary addition is to first calculate all the carries, and then use the carries in the calculation of the sums. So, how should we compute the carries [c 1, c 2,..., c n ] that result when two (least significant bit first) binary numbers [a 1, a 2,..., a n ] and [b 1, b 2,..., b n ] are added? The ripple carry adder corresponds to the following iteration, for i = 1,..., n: c 0 = 0 c i = (a i b i ) (a i c i 1 ) (b i c i 1 ) The idea of carry generate and carry propagate signals can be used to rewrite the scheme as g i = a i b i p i = a i b i c 0 = 0 c i = g i (p i c i 1 ) where is exclusive or. This, again, can be calculated using a ripple-carry circuit. However, there are cleverer ways to calculate all of the carries, in parallel, if all of the g i and p i are known. In a classic paper (available on the web page), Brent and Kung invented an operator for which (G 1, P 1 ) = (g 1, p 1 ) (G 2, P 2 ) = (g 1, p 1 ) (g 2, p 2 ) (G 3, P 3 ) = (g 1, p 1 ) (g 2, p 2 ) (g 3, p 3 )... (G n, P n ) = (g 1, p 1 ) (g 2, p 2 ) (g 3, p 3 )... (g n, p n ) and showed that the G i are the carries that we want. The dot operator is defined as (ĝ, ˆp) (g, p) = (g (p ĝ), p ˆp) and, very importantly, it is associative. (I have flipped the arguments to the operator, compared to the Brent Kung paper, because I want to count indices upwards, starting from the least significant end, in Lava style.) A1. Define this dot operator as a Lava function of the following form: (2 points) dotop ((g1,p1),(g,p)) = (??,??) A2. Formally verify that this operator is indeed associative, that is that it satisfies a property of the form a (b c) = (a b) c. (3 points) Hint: Write a property of the form propassoc op (a,b,c) = ok where ok =?? <==>?? that checks this property for any binary operator op. Next, check that property for your actual dotop using smv (propassoc dotop). Given an input [a 1, a 2,..., a n ], the problem of calculating, in parallel, all of a 1, a 1 a 2, a 1 a 2 a 3, and so on, up to a 1 a 2... a n for an associative operator is called the parallel prefix problem. It is this problem that we need to solve in order to make a fast adder based on Brent and Kung s dot operator. We are going to look at a number different solutions, and the corresponding connection patterns. So, forget about adders again for a while! We will come back to them later. 2
3 Figure 1: The Sklansky parallel prefix network for 32 inputs Making parallel prefix circuits We are going to study various recursive solutions to the parallel prefix problem, and then build an adder that is parametrised on the parallel prefix pattern. Sklansky In a Lava lecture, you already saw the most well-known way of computing parallel prefix, which is usually called after Sklansky, see Figure 1. It is a divide and conquer approach. We compute the parallel prefix of each half of the inputs, and then combine the last output of the lower parallel prefix with each of the outputs of the upper one. In the file EFile10.hs, a slightly different way to define the Sklansky pattern is shown. We are going to make prefix networks from operators that take a list of inputs rather than a pair. This is because we want to experiment with operators that take more than two inputs. Note that in the call of skl in the above file, the operator op is applied to a 2-list of inputs. Look also at the type of skl. It expects an operator of type [a] -> a, that is list of a to a. An Example of such an operator is plusl, which is a Lava-specific circuit that adds up a list of integers. See the file EFile10.hs, which also defines some useful building blocks such as a serial network, serr, and a similar network but with some extra buffers, bserr. You are provided with a Haskell file called EDraw08.hs that allows you to draw pictures like Figure 1 from your Lava descriptions. This program is a hack, written by Mary late one night. It is not beautiful but it seems to work! Using EDraw08.hs you can produce a file in FIG format for a given parallel prefix network (e.g. by loading the file into Lava and typing at the prompt drawpp "skl" skl 32). On Linux machines, the resulting file, skl32.fig, can either be viewed with Xfig using the command xfig skl32.fig, or converted to pdf using fig2dev -L pdf skl32.fig skl32.pdf. Rotate the diagram clockwise to make it easier to see. Xfig can also produce pdf and many other formats, using Export... in the File menu. Make sure, now, that this all works for you, and that you can view the resulting file, having converted it to pdf if you wish. Get in touch with us if you have problems with this. The file EFile10.hs also provides a Haskell function called check that allows you to check that a pattern correctly constructs a prefix network (without calling any external tool): Main> check skl 32 True The picture drawing program and the check function both assume that the operators to be drawn take a list of inputs and produce a single input. The drawing program can deal with operators with one or more inputs. It draws a one-input operator as a white circle, and an n input operator as a black circle whose radius reflects the size of n. A one-input operator corresponds to a buffer. To understand buffers better, look at the definitions of fan and bfan. Experiment with replacing the fan bfan in the Sklansky function (skl) and look at the resulting diagram. The file EFile10.hs also defines a non-standard gate depth, which can be used to measure the depth of a connection pattern. For example, the depth of the skl pattern can be measured thus: Main> skl depth (replicate 16 0) [1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,4] 3
4 The Brent Kung parallel prefix network The second well-known recursive pattern for parallel prefix is the Brent Kung network. The Brent Kung paper describes it in terms of a forwards and backwards tree, but we can also think of it as a recursive network. (Note that our generated diagrams are very like Brent Kung s except that they are rotated by 180 degrees! In the Brent Kung pictures, data flows from bottom to top, while in ours data flows from top to bottom.) Note that the fanout per level in the Brent Kung network is only 2. Figure 2 shows a recursive view of the Brent Kung pattern. The inputs are at the top, with the least significant input on the left. The smaller network P is wrapped in two more layers of operators, above and below it. If the inputs to the network are [a 1, a 2,..., a n ], then the topmost layer of operators should apply to the 2-lists [a 1, a 2 ], [a 3, a 4 ], up to either [a n 1, a n ] or [a n 2, a n 1 ], depending on whether n is even or odd respectively. Call the results of those applications [b 2, b 4, b 6...]. The smaller P network applies to exactly this list, to produce the list [c 2, c 4, c 6...]. Both of these lists are shown as thicker lines in the diagram, entering and leaving the box labelled P. The inputs [a 1, a 3, a 5,...] also pass over the P network, and are shown as thinner lines. The final (bottom-most) layer of operators should then operate on the 2-lists [c 2, a 3 ], [c 4, a 5 ] and so on, to give d 3, d 5 etc. The output of the entire network is [a 1, c 2, d 3, c 4, d 5...]. A3. By completing the definition of wrap2 or otherwise, define the Brent Kung pattern in Lava: bkung _ [a] bkung op as where... = [a] =?? as Use the function check to verify that your definition is correct for 32 and some other input sizes. Also measure the depth of your circuit by using the depth gate. (5 points) Hint: If you get it right, the picture for 32 inputs should look like Figure 3. The wrap2 function in EFile10.hs is intended to hint at one possible way to implement bkung, see further information in the file. Then, bkung op as = wrap2?????? as You are also free to implement bkung in other ways. We don t mind where the buffers (the white circles) end up, but it is the arrangement of the operators (the black dots) that we are worried about. We want the fanout per level to be 2 so you will have to use some buffers to get that right. Building a fast adder A4. Implement and formally verify a fast adder based on the Brent Kung dot operator that was introduced earlier. (5 points) Hint: Look at the Brent Kung paper for guidance if you can t figure out how to make an adder. Ideally, your adder should take the parallel prefix pattern to be used as an argument. If you cannot manage this, make one that has a hard-wired pattern. Remember that your prefix networks expect operators whose inputs are lists. So you will need to use your dotop accordingly. 4
5 1 i i+1 P 1:i 1:i+1 Figure 2: One way to build a larger prefix network out of a smaller one. This is the basis of the Brent Kung construction 32 lines, 9 stages, 57 operators with 2 or more inputs. Figure 3: The Brent Kung pattern as drawn from the Lava description 16 lines, 4 stages, 49 operators with 2 or more inputs. Figure 4: The Kogge Stone pattern for 16 inputs as drawn from my Lava description 23 lines, 7 stages, 37 operators with 2 or more inputs. Figure 5: The Brent Kung pattern for 23 inputs 5
6 More parallel prefix circuits Kogge Stone The prefix pattern known as Kogge Stone is shown for 16 inputs in Figure 4. A5. Define the Kogge Stone pattern in Lava. Use the function check to verify that your definition is correct for all sizes up to 128. Also measure the depth of your circuit by using the depth gate. (4 points) Hint: One way to view this pattern is to divide it into the first (topmost) layer and the rest. The rest then consists of two smaller versions of Kogge Stone, interleaved, so remember ilvi, which is defined in EFile10.hs. Generalising Brent Kung Does your bkung function work for inputs of any length or only for length a power of 2? A6. If it works for inputs of any length, demonstrate this. If it does not, modify your description so that it does indeed work for inputs of any length. Use the function check to check your pattern. (3 points) Hint: The result that you should get for Brent Kung on 23 inputs is shown in Figure 5. We have been considering (standard) versions of Brent Kung that work on sub-blocks of the input of length 2 (through the use of evens and odds). A7. Make a more general Brent Kung pattern that takes a parameter n to indicate how wide those blocks should be. (3 points) Hint: One option is to use small serial prefix networks at the top, and fans at the bottom. One result that I got for that and block width 3 is shown in Figure 6. Playing with larger operators (also called higher radix) Figure 7 shows a 5-input parallel prefix network made with operators of increasing size (that is increasing number of inputs). The operator producing the ith output works on the first i inputs, that is on all the inputs above and to the left of it. A8. Define the pattern shown in Figure 7. parpre op [a] = [a] parpre op as =?? Now use small parpre networks (up to 4 inputs) inside either a serial prefix network or a generalised Brent Kung network (your choice). You should be able to reduce logical depth at the expense of using larger operators. (5 points) Hint: An example of such a network is shown in Figure 8. One can make other choices too. I don t know which is best. 6
7 35 lines, 8 stages, 60 operators with 2 or more inputs. Figure 6: Allowing fanout 3 in Brent Kung Figure 7: A prefix network that computes each output using a single operator, but therefore needs bigger and bigger operators 35 lines, 5 stages, 60 operators with 2 or more inputs. Figure 8: Allowing fanout 3 in Brent Kung, and using larger operators. Compare with Figure 6. Figure 9: Radix 3 Kogge Stone for 16 inputs Figure 10: Radix 4 Kogge Stone for 16 inputs 7
8 Extra assignment for PhD students (if they were doing the labs). Can be used by other students to gain extra credit (up to 20%). A9. Choose at least one of (a) Define a pattern that allows you to describe higher radix Kogge Stone networks. See the web page available with this take home exam for a 4 page paper about how such networks look (Higher Radix Kogge-Stone Parallel Prefix Adder Architectures, Gurkaynak et al, ISCAS 2000). Hint: Figure 9 and 10 shows what I get for a radix 3 Kogge Stone network with 12 inputs. They are pleasingly similar to Figs. 4(b) and 4(c) in the paper (apart from being flipped). I concentrate only on the prefix network whereas the pictures in the paper include the pre- and post-processing needed to make an adder. I tweaked the definition of parpre to put in a buffer even for one input as this gave me a nicer picture. (b) Design and formally verify an interesting circuit in Lava. To submit Use the Fire system as before. You will be reviewed on the following: 1. The correctness and readability of your circuit descriptions 2. The correctness of the final adder and its formal verification. 3. The clarity of your documentation (which should be brief). Good luck! 8
CAD4 The ALU Fall 2009 Assignment. Description
CAD4 The ALU Fall 2009 Assignment To design a 16-bit ALU which will be used in the datapath of the microprocessor. This ALU must support two s complement arithmetic and the instructions in the baseline
More informationCARLETON UNIVERSITY. Laboratory 2.0
CARLETON UNIVERSITY Department of Electronics ELEC 267 Switching Circuits Jan 3, 28 Overview Laboratory 2. A 3-Bit Binary Sign-Extended Adder/Subtracter A binary adder sums two binary numbers for example
More informationPart 1-2. Translation of Netlist to CNF
2D Project Report Part 1-2. Translation of Netlist to CNF Team members: MA Ke, WEI Fanding, CHEN Jian, CHEN Ziyi Introduction In this part, we are required to translate the netlist of our optimized adder
More informationCOS 116 The Computational Universe Laboratory 8: Digital Logic II
COS 116 The Computational Universe Laboratory 8: Digital Logic II In this lab you ll learn that, using only AND, OR, and NOT gates, you can build a circuit that can add two numbers. If you get stuck at
More informationVLSI Arithmetic Lecture 6
VLSI Arithmetic Lecture 6 Prof. Vojin G. Oklobdzija University of California http://www.ece.ucdavis.edu/acsel Review Lecture 5 Prefix Adders and Parallel Prefix Adders from: Ercegovac-Lang Oklobdzija 2004
More informationENCM 369 Winter 2019 Lab 6 for the Week of February 25
page of ENCM 369 Winter 29 Lab 6 for the Week of February 25 Steve Norman Department of Electrical & Computer Engineering University of Calgary February 29 Lab instructions and other documents for ENCM
More information4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)
COP 273, Winter 26 Exercises 2 - combinational logic Questions. How many boolean functions can be defined on n input variables? 2. Consider the function: Y = (A B) (A C) B (a) Draw a combinational logic
More informationCSC-105 Exam #1 October 10, 2013
CSC-105 Exam #1 October 10, 2013 Name Questions are weighted as indicated. Show your work and state your assumptions for partial credit consideration. Unless explicitly stated, there are NO intended errors
More informationCS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5
CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5 This fifth problem set explores the regular languages, their properties, and their limits. This will be your first foray into computability theory,
More informationCS 051 Homework Laboratory #2
CS 051 Homework Laboratory #2 Dirty Laundry Objective: To gain experience using conditionals. The Scenario. One thing many students have to figure out for the first time when they come to college is how
More informationThe exam. The exam. The exam 10. Sitting a City & Guilds online examination 11. Frequently asked questions 18. Exam content 20
THE EXAM INTRODUCTION 9 The exam The exam The exam 10 Sitting a City & Guilds online examination 11 Frequently asked questions 18 Exam content 20 Tips from the examiner 25 10 EXAM SUCCESS IET WIRING REGULATIONS
More informationCOMP combinational logic 1 Jan. 18, 2016
In lectures 1 and 2, we looked at representations of numbers. For the case of integers, we saw that we could perform addition of two numbers using a binary representation and using the same algorithm that
More informationProgramming Language Concepts, cs2104 Lecture 01 ( )
Programming Language Concepts, cs2104 Lecture 01 (2003-08-15) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2002-08-15 S. Haridi, CS2104, L01 (slides: C. Schulte, S. Haridi) 1
More informationPractical 2: Ray Tracing
2017/2018, 4th quarter INFOGR: Graphics Practical 2: Ray Tracing Author: Jacco Bikker The assignment: The purpose of this assignment is to create a small Whitted-style ray tracer. The renderer should be
More informationVERSION Lab 3: Link Layer
Lab 3: Link Layer Objective In this lab, you will investigate Ethernet and the ARP protocol. You will also prove you are a Wireshark Ninja by dissecting an unknown protocol. Knowledge from Lecture 20 and
More informationPrinciples of Algorithm Design
Principles of Algorithm Design When you are trying to design an algorithm or a data structure, it s often hard to see how to accomplish the task. The following techniques can often be useful: 1. Experiment
More informationn! = 1 * 2 * 3 * 4 * * (n-1) * n
The Beauty and Joy of Computing 1 Lab Exercise 9: Problem self-similarity and recursion Objectives By completing this lab exercise, you should learn to Recognize simple self-similar problems which are
More information(Refer Slide Time: 01.26)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture # 22 Why Sorting? Today we are going to be looking at sorting.
More informationObject Oriented Programming
Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Recursive Methods
Computer Science 210 Data Structures Siena College Fall 2017 Topic Notes: Recursive Methods You have seen in this course and in your previous work that iteration is a fundamental building block that we
More informationCOMP Assignment 1
COMP281 2019 Assignment 1 In the following, you will find the problems that constitute Assignment 1. They will be also available on the online judging (OJ) system available at https://student.csc.liv.ac.uk/judgeonline
More information(Refer Slide Time: 00:01:30)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 32 Design using Programmable Logic Devices (Refer Slide Time: 00:01:30)
More informationIntroduction to Computer Systems COMP-273 Assignment #1 Due: September 24, 2009 on Web CT at 23:55
Introduction to Computer Systems COMP-273 Assignment #1 Due: September 24, 2009 on Web CT at 23:55 The purpose of this first assignment is to develop the fundamental skills needed when constructing solutions
More informationsuch a manner that we are able to understand, grasp and grapple with the problem at hand in a more organized fashion.
Programming and Data Structure Dr.P.P.Chakraborty Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 32 Conclusions Hello everybody. Today, we come to the
More informationBinary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T.
Binary Arithmetic Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. MIT 6.004 Fall 2018 Reminder: Encoding Positive Integers Bit i in a binary representation (in right-to-left order)
More informationHanoi, Counting and Sierpinski s triangle Infinite complexity in finite area
Hanoi, Counting and Sierpinski s triangle Infinite complexity in finite area Math Circle December 5, 2017 1. Per usual we are going to be watching a video today, but we aren t going to be watching it right
More informationGraphing on Excel. Open Excel (2013). The first screen you will see looks like this (it varies slightly, depending on the version):
Graphing on Excel Open Excel (2013). The first screen you will see looks like this (it varies slightly, depending on the version): The first step is to organize your data in columns. Suppose you obtain
More informationSYMMETRY v.1 (square)
Symmetry with Code - v1 George Gadanidis 2017 researchideas.ca/sym 1 SYMMETRY v.1 (square) What is symmetry? I can t remember. Help! SQUARE PUZZLE My teacher loves puzzles I do too! Here is the latest
More informationCS 202: Introduction to Computation Fall 2010: Exam #1
CS 22: Introduction to Computation Fall 2: Exam # Name: Answers Question Possible Points Received Points 2 2 2 3 2 4 2 5 2 Total This exam is closed notes. You have 5 minutes to complete the 5 questions
More informationCS 373: Combinatorial Algorithms, Spring 1999
CS 373: Combinatorial Algorithms, Spring 1999 Final Exam (May 7, 1999) Name: Net ID: Alias: This is a closed-book, closed-notes exam! If you brought anything with you besides writing instruments and your
More informationComputer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Building Memory
Computer Science 324 Computer rchitecture Mount Holyoke College Fall 2007 Topic Notes: Building Memory We ll next look at how we can use the devices we ve been looking at to construct memory. Tristate
More information15-110: Principles of Computing, Spring 2018
5-: Principles of Computing, Spring 28 Problem Set 8 (PS8) Due: Friday, March 3 by 2:3PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill in your answers:.
More informationCIS 110 Introduction to Computer Programming. February 29, 2012 Midterm
CIS 110 Introduction to Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania
More informationDesign and Analysis of Kogge-Stone and Han-Carlson Adders in 130nm CMOS Technology
Design and Analysis of Kogge-Stone and Han-Carlson Adders in 130nm CMOS Technology Senthil Ganesh R & R. Kalaimathi 1 Assistant Professor, Electronics and Communication Engineering, Info Institute of Engineering,
More informationProgramming Assignment 8 ( 100 Points )
Programming Assignment 8 ( 100 Points ) Due: 11:59pm Wednesday, November 22 Start early Start often! README ( 10 points ) You are required to provide a text file named README, NOT Readme.txt, README.pdf,
More information15-110: Principles of Computing, Spring 2018
15-110: Principles of Computing, Spring 2018 Problem Set 5 (PS5) Due: Friday, February 23 by 2:30PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill
More informationAssignment 3 Functions, Graphics, and Decomposition
Eric Roberts Handout #19 CS106A October 8, 1999 Assignment 3 Functions, Graphics, and Decomposition Due: Friday, October 15 [In] making a quilt, you have to choose your combination carefully. The right
More informationUniversity of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS 150 Spring 2000
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS 150 Spring 2000 Lab 1 Introduction to Xilinx Design Software 1 Objectives In this
More informationNotebook Assignments
Notebook Assignments These six assignments are a notebook using techniques from class in the single concrete context of graph theory. This is supplemental to your usual assignments, and is designed for
More informationProject 5 - The Meta-Circular Evaluator
MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Fall Semester, 2005 Project 5 - The Meta-Circular
More information15110 PRINCIPLES OF COMPUTING SAMPLE EXAM 2
15110 PRINCIPLES OF COMPUTING SAMPLE EXAM 2 Name Section Directions: Answer each question neatly in the space provided. Please read each question carefully. You have 50 minutes for this exam. No electronic
More informationThe first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.
Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you
More informationCIS 194: Homework 6. Due Monday, February 25. Fibonacci numbers
CIS 194: Homework 6 Due Monday, February 25 Files you should submit: Fibonacci.hs This week we learned about Haskell s lazy evaluation. This homework assignment will focus on one particular consequence
More informationHow to Get a Free Account
1 How to Get a Free Email Account This is a free service. You will not be charged in any way to use this service. If you choose this option and signup you can get your email anywhere at home, work, on
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More information(Refer Slide Time: 00:02:00)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More informationComputer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again
More informationOn the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW
STAROFFICE 8 DRAW Graphics They say a picture is worth a thousand words. Pictures are often used along with our words for good reason. They help communicate our thoughts. They give extra information that
More informationLearning Objectives: Topic Karnaugh Maps. At the end of this topic you will be able to;
Topic.2.3 Karnaugh Maps Learning Objectives: t the end of this topic you will be able to; Draw a Karnaugh map for a logic system with up to four inputs and use it to minimise the number of gates required;
More informationExcel Basics Fall 2016
If you have never worked with Excel, it can be a little confusing at first. When you open Excel, you are faced with various toolbars and menus and a big, empty grid. So what do you do with it? The great
More informationLab 2 Implementing Combinational Logic in VHDL. Advanced Testbenches.
Task 1 (30%) Lab 2 Implementing Combinational Logic in VHDL. Advanced Testbenches. Draw a block diagram of the combinational circuit described by the given below pseudocode. Inputs: A: 8-bit unsigned integer
More informationWeek - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 Euclid's Algorithm
More informationLAB 5 Implementing an ALU
Goals To Do Design a practical ALU LAB 5 Implementing an ALU Learn how to extract performance numbers (area and speed) Draw a block level diagram of the MIPS 32-bit ALU, based on the description in the
More informationCS103 Handout 14 Winter February 8, 2013 Problem Set 5
CS103 Handout 14 Winter 2012-2013 February 8, 2013 Problem Set 5 This fifth problem set explores the regular languages, their properties, and their limits. This will be your first foray into computability
More information1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]
HW 3 Answer Key 1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4] You can build a NAND gate from tri-state buffers and inverters and thus you
More informationTurtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7
Turtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7 Heijltjes, Wadler Due: The tutorial of week 9 (20/21 Nov.) Reading assignment: Chapters 15 17 (pp. 280 382) Please attempt
More informationProject 2: Genetic Programming for Symbolic Regression
Project 2: Genetic Programming for Symbolic Regression Assigned: Tuesday, Oct. 2 Multiple Due Dates (all submissions must be submitted via BlackBoard): Undergrads: Generally complete, compilable code:
More informationParallel logic circuits
Computer Mathematics Week 9 Parallel logic circuits College of Information cience and Engineering Ritsumeikan University last week the mathematics of logic circuits the foundation of all digital design
More informationAsking for information (with three complex questions, so four main paragraphs)
Structures of different kinds of emails Write typical paragraph plans for the kinds of emails, describing the paragraphs in the body and what kinds of opening lines and closing lines you need. Asking for
More informationWeek - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer
More informationProblem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100
ME430 Mechatronics Examination I Page 1 Name CM Section You may use only: ME430 Mechatronics Examination I Sept 22nd, 2016 Problem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100
More information6.001 Notes: Section 6.1
6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationTransformation, tessellation and symmetry line symmetry
Transformation, tessellation and symmetry line symmetry Reflective or line symmetry describes mirror image, when one half of a shape or picture matches the other exactly. The middle line that divides the
More informationPHYS 5061 Lab 1: Introduction to LabVIEW
PHYS 5061 Lab 1: Introduction to LabVIEW In this lab, you will work through chapter 1 and 2 of Essick s book to become familiar with using LabVIEW to build simple programs, called VI s in LabVIEW-speak,
More informationIntroduction to Programming with JES
Introduction to Programming with JES Titus Winters & Josef Spjut October 6, 2005 1 Introduction First off, welcome to UCR, and congratulations on becoming a Computer Engineering major. Excellent choice.
More informationCS350 : Operating Systems. General Assignment Information
CS350 : Operating Systems General Assignment Information 1 Introduction Assignments in CS350 are based on NachOS. NachOS is a workstation simulation, along with a simple operating system for the simulated
More informationCS/COE 0447 Example Problems for Exam 2 Spring 2011
CS/COE 0447 Example Problems for Exam 2 Spring 2011 1) Show the steps to multiply the 4-bit numbers 3 and 5 with the fast shift-add multipler. Use the table below. List the multiplicand (M) and product
More informationProblem Set 4: Streams and Lazy Evaluation
Due Friday, March 24 Computer Science (1)21b (Spring Term, 2017) Structure and Interpretation of Computer Programs Problem Set 4: Streams and Lazy Evaluation Reading Assignment: Chapter 3, Section 3.5.
More informationTable of Laplace Transforms
Table of Laplace Transforms 1 1 2 3 4, p > -1 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Heaviside Function 27 28. Dirac Delta Function 29 30. 31 32. 1 33 34. 35 36. 37 Laplace Transforms
More informationC152 Laboratory Exercise 1
C152 Laboratory Exercise 1 Professor: Krste Asanovic TA: Christopher Celio Department of Electrical Engineering & Computer Science University of California, Berkeley January 26, 2011 1 Introduction and
More informationAssignment III: Graphing Calculator
Assignment III: Graphing Calculator Objective The goal of this assignment is to reuse your CalculatorBrain and CalculatorViewController objects to build a Graphing Calculator for iphone and ipad. By doing
More informationCSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques
CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms
More informationProblem Solving for Intro to Computer Science
Problem Solving for Intro to Computer Science The purpose of this document is to review some principles for problem solving that are relevant to Intro to Computer Science course. Introduction: A Sample
More informationUniversity of Massachusetts Lowell
University of Massachusetts Lowell 91.301: Organization of Programming Languages Fall 2002 Quiz 1 Solutions to Sample Problems 2 91.301 Problem 1 What will Scheme print in response to the following statements?
More informationBinary Adders: Half Adders and Full Adders
Binary Adders: Half Adders and Full Adders In this set of slides, we present the two basic types of adders: 1. Half adders, and 2. Full adders. Each type of adder functions to add two binary bits. In order
More informationCS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9
CS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9 What problems are beyond our capacity to solve? Why are they so hard? And why is anything that we've discussed this quarter at all practically
More informationAnimations involving numbers
136 Chapter 8 Animations involving numbers 8.1 Model and view The examples of Chapter 6 all compute the next picture in the animation from the previous picture. This turns out to be a rather restrictive
More informationHow a Digital Binary Adder Operates
Overview of a Binary Adder How a Digital Binary Adder Operates By: Shawn R Moser A binary adder is a digital electronic component that is used to perform the addition of two binary numbers and return the
More informationHomework 1. Notes. What To Turn In. Unix Accounts. Reading. Handout 3 CSCI 334: Spring, 2017
Homework 1 Due 14 February Handout 3 CSCI 334: Spring, 2017 Notes This homework has three types of problems: Self Check: You are strongly encouraged to think about and work through these questions, but
More informationCSE 3101 Design and Analysis of Algorithms Practice Test for Unit 1 Loop Invariants and Iterative Algorithms
CSE 0 Design and Analysis of Algorithms Practice Test for Unit Loop Invariants and Iterative Algorithms Jeff Edmonds First learn the steps. Then try them on your own. If you get stuck only look at a little
More informationCSC 101: Lab #5 Prelab Boolean Logic Practice Due Date: 5:00pm, day after lab session
Name: Email Username: Lab Date and Time: CSC 101: Lab #5 Prelab Boolean Logic Practice Due Date: 5:00pm, day after lab session Purpose: The purpose of this pre-lab is to provide you with hands-on experience
More informationLate Penalty: Late assignments will not be accepted.
CPSC 449 Assignment 1 Due: Monday, October 16, 2017 Sample Solution Length: Less than 100 lines to reach the A- level, including some comments Approximately 130 lines with the fill color being influenced
More informationCreating Vector Shapes Week 2 Assignment 1. Illustrator Defaults
Illustrator Defaults Before we begin, we are going to make sure that all of us are using the same settings within our application. For this class, we will always want to make sure that our application
More information2. You are required to enter a password of up to 100 characters. The characters must be lower ASCII, printing characters.
BLACK BOX SOFTWARE TESTING SPRING 2005 DOMAIN TESTING LAB PROJECT -- GRADING NOTES For all of the cases below, do the traditional equivalence class and boundary analysis. Draw one table and use a new line
More information(Refer Slide Time 6:48)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about
More informationTop Down Breaking a Problem Down
Top Down Breaking a Problem Down Putting a few Python structures together Last Updated: Tuesday, February 12, 2019 Page 2 Copyright 2018 Objective, Overview Introduction This lesson and Lab is to bring
More informationSoftware Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore
Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Lecture 04 Software Test Automation: JUnit as an example
More informationDue: 9 February 2017 at 1159pm (2359, Pacific Standard Time)
CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,
More informationCPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM
CPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM Name: Student ID: Signature: Section (circle one): George Steve Your signature acknowledges your understanding of and agreement
More informationComputer Organization EE 3755 Midterm Examination
Name Computer Organization EE 3755 Midterm Examination Wednesday, 30 October 2013, 8:30 9:20 CDT Alias Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Problem 7 Exam Total (21 pts) (15 pts)
More informationData Structures and Algorithms
CS 3114 Data Structures and Algorithms 1 Trinity College Library Univ. of Dublin Instructors and Course Information 2 William D McQuain Email: Office: Office Hours: wmcquain@cs.vt.edu 634 McBryde Hall
More informationBurning CDs in Windows XP
B 770 / 1 Make CD Burning a Breeze with Windows XP's Built-in Tools If your PC is equipped with a rewritable CD drive you ve almost certainly got some specialised software for copying files to CDs. If
More informationThe little book of programming challenges
24 The little book of programming challenges The following challenges are here to challenge and inspire you as well as help you on your journey to becoming a computational thinker. You may be set these
More informationVerilog Lab. Two s Complement Add/Sub Unit. TA: Xin-Yu Shi
Verilog Lab. Two s Complement Add/Sub Unit TA: Xin-Yu Shi genius@access.ee.ntu.edu.tw Introduction In previous lecture, what you have learned : Complete representation for binary negative number Arithmetic
More informationFirst Midterm Exam CS164, Fall 2007 Oct 2, 2007
P a g e 1 First Midterm Exam CS164, Fall 2007 Oct 2, 2007 Please read all instructions (including these) carefully. Write your name, login, and SID. No electronic devices are allowed, including cell phones
More informationCS3 Midterm 1 Fall 2006
Overall, you did good job on this exam. CS3 Midterm 1 Fall 2006 Standards and Solutions 20 10 0 8.0 30.0 28.0 26.0 24.0 22.0 20.0 18.0 16.0 14.0 12.0 10.0 Std. Dev = 5.34 Mean = 21.6 N = 133.00 MT1_SCL
More informationAdding content to your Blackboard 9.1 class
Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note
More informationName EGR 2131 Lab #6 Number Representation and Arithmetic Circuits
Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s
More information