Hardware Description and Verification Lava Exam

Size: px
Start display at page:

Download "Hardware Description and Verification Lava Exam"

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. 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 information

CARLETON UNIVERSITY. Laboratory 2.0

CARLETON 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 information

Part 1-2. Translation of Netlist to CNF

Part 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 information

COS 116 The Computational Universe Laboratory 8: Digital Logic II

COS 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 information

VLSI Arithmetic Lecture 6

VLSI 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 information

ENCM 369 Winter 2019 Lab 6 for the Week of February 25

ENCM 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 information

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)

4. 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 information

CSC-105 Exam #1 October 10, 2013

CSC-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 information

CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5

CS103 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 information

CS 051 Homework Laboratory #2

CS 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 information

The exam. The exam. The exam 10. Sitting a City & Guilds online examination 11. Frequently asked questions 18. Exam content 20

The 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 information

COMP combinational logic 1 Jan. 18, 2016

COMP 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 information

Programming Language Concepts, cs2104 Lecture 01 ( )

Programming 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 information

Practical 2: Ray Tracing

Practical 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 information

VERSION Lab 3: Link Layer

VERSION 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 information

Principles of Algorithm Design

Principles 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 information

n! = 1 * 2 * 3 * 4 * * (n-1) * n

n! = 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)

(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 information

Object Oriented Programming

Object 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 information

Computer Science 210 Data Structures Siena College Fall Topic Notes: Recursive Methods

Computer 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 information

COMP Assignment 1

COMP 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)

(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 information

Introduction 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 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 information

such a manner that we are able to understand, grasp and grapple with the problem at hand in a more organized fashion.

such 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 information

Binary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T.

Binary 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 information

Hanoi, Counting and Sierpinski s triangle Infinite complexity in finite area

Hanoi, 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 information

Graphing 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): 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 information

SYMMETRY v.1 (square)

SYMMETRY 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 information

CS 202: Introduction to Computation Fall 2010: Exam #1

CS 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 information

CS 373: Combinatorial Algorithms, Spring 1999

CS 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 information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Building Memory

Computer 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 information

15-110: Principles of Computing, Spring 2018

15-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 information

CIS 110 Introduction to Computer Programming. February 29, 2012 Midterm

CIS 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 information

Design 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 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 information

Programming Assignment 8 ( 100 Points )

Programming 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 information

15-110: Principles of Computing, Spring 2018

15-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 information

Assignment 3 Functions, Graphics, and Decomposition

Assignment 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 information

University 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 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 information

Notebook Assignments

Notebook 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 information

Project 5 - The Meta-Circular Evaluator

Project 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 information

15110 PRINCIPLES OF COMPUTING SAMPLE EXAM 2

15110 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 information

The 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.

The 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 information

CIS 194: Homework 6. Due Monday, February 25. Fibonacci numbers

CIS 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 information

How to Get a Free Account

How 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 information

Lab 1 Implementing a Simon Says Game

Lab 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)

(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 information

Lab 1 Implementing a Simon Says Game

Lab 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

Computer 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 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 information

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW

On 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 information

Learning Objectives: Topic Karnaugh Maps. At the end of this topic you will be able to;

Learning 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 information

Excel Basics Fall 2016

Excel 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 information

Lab 2 Implementing Combinational Logic in VHDL. Advanced Testbenches.

Lab 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 information

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.

Week - 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 information

LAB 5 Implementing an ALU

LAB 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 information

CS103 Handout 14 Winter February 8, 2013 Problem Set 5

CS103 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 information

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

1. 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 information

Turtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7

Turtle 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 information

Project 2: Genetic Programming for Symbolic Regression

Project 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 information

Parallel logic circuits

Parallel 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 information

Asking for information (with three complex questions, so four main paragraphs)

Asking 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 information

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Week - 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 information

Problem Score 1 / 27 2 / 19 3 / 16 4 / 14 code check off 5 / 22 /2 Total /100

Problem 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 information

6.001 Notes: Section 6.1

6.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 information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. 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 information

Transformation, tessellation and symmetry line symmetry

Transformation, 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 information

PHYS 5061 Lab 1: Introduction to LabVIEW

PHYS 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 information

Introduction to Programming with JES

Introduction 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 information

CS350 : Operating Systems. General Assignment Information

CS350 : 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 information

CS/COE 0447 Example Problems for Exam 2 Spring 2011

CS/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 information

Problem Set 4: Streams and Lazy Evaluation

Problem 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 information

Table of Laplace Transforms

Table 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 information

C152 Laboratory Exercise 1

C152 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 information

Assignment III: Graphing Calculator

Assignment 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 information

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques

CSCI-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 information

Problem Solving for Intro to Computer Science

Problem 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 information

University of Massachusetts Lowell

University 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 information

Binary Adders: Half Adders and Full Adders

Binary 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 information

CS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9

CS103 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 information

Animations involving numbers

Animations 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 information

How a Digital Binary Adder Operates

How 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 information

Homework 1. Notes. What To Turn In. Unix Accounts. Reading. Handout 3 CSCI 334: Spring, 2017

Homework 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 information

CSE 3101 Design and Analysis of Algorithms Practice Test for Unit 1 Loop Invariants and Iterative Algorithms

CSE 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 information

CSC 101: Lab #5 Prelab Boolean Logic Practice Due Date: 5:00pm, day after lab session

CSC 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 information

Late Penalty: Late assignments will not be accepted.

Late 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 information

Creating Vector Shapes Week 2 Assignment 1. Illustrator Defaults

Creating 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 information

2. You are required to enter a password of up to 100 characters. The characters must be lower ASCII, printing characters.

2. 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)

(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 information

Top Down Breaking a Problem Down

Top 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 information

Software 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 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 information

Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time)

Due: 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 information

CPSC 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 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 information

Computer Organization EE 3755 Midterm Examination

Computer 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 information

Data Structures and Algorithms

Data 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 information

Burning CDs in Windows XP

Burning 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 information

The little book of programming challenges

The 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 information

Verilog Lab. Two s Complement Add/Sub Unit. TA: Xin-Yu Shi

Verilog 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 information

First Midterm Exam CS164, Fall 2007 Oct 2, 2007

First 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 information

CS3 Midterm 1 Fall 2006

CS3 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 information

Adding content to your Blackboard 9.1 class

Adding 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 information

Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits

Name 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