Midterm Exam ECE 448 Spring 2019 Wednesday, March 6 15 points

Similar documents
Midterm Exam ECE 448 Spring 2014 Monday, March 3 (15 points)

Lecture 8. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

Midterm Exam. ECE 448 Spring Wednesday Section. (15 points)

ECE 545 Fall 2013 Final Exam

ECE 545 Fall 2014 Midterm Exam

Lecture 2B. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

ECE 545 Fall 2010 Exam 1

Lab 2 Implementing Combinational Logic in VHDL. Advanced Testbenches.

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Lab 6 Using PicoBlaze. Fast Sorting.

Lab Assignment 2. Implementing Combinational and Sequential Logic in VHDL

ECE 545 Lecture 12. FPGA Resources. George Mason University

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

Lab Assignment 1. Developing and Using Testbenches

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

Don t expect to be able to write and debug your code during the lab session.

Topics. Midterm Finish Chapter 7

Field Programmable Gate Array

Homework deadline extended to next friday

AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications

Lecture 3. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

ECE 341 Midterm Exam

ECE 545 Lecture 7. Advanced Testbenches. George Mason University

Binary Adders. Ripple-Carry Adder

The goal of this project is to design an FPGA-based cipher unit for the Xilinx Spartan II XC2S100 FPGA running on the XESS board.

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences. Spring 2010 May 10, 2010

Exp#8: Designing a Programmable Sequence Detector

Topics. Midterm Finish Chapter 7

Field Programmable Gate Array (FPGA)

RC6 Implementation including key scheduling using FPGA

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

Lab 3 Finite State Machines Automated Teller Machine

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

ECE 545 Lecture 7. Advanced Testbenches. Required reading. Simple Testbench. Advanced Testbench. Possible Sources of Expected Outputs

ECE 448 FPGA and ASIC Design with VHDL. Spring 2018

Efficient Hardware Design and Implementation of AES Cryptosystem

Lab 3 Finite State Machines Movie Ticket Dispensing Machine

Lecture 12 VHDL Synthesis

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

Sign here to give permission for your test to be returned in class, where others might see your score:

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECE 448 Lecture 5. FPGA Devices

Lecture 2. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

ECE 341 Midterm Exam

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

problem maximum score 1 8pts 2 6pts 3 10pts 4 15pts 5 12pts 6 10pts 7 24pts 8 16pts 9 19pts Total 120pts

CS 151 Midterm. (Last Name) (First Name)

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

Design Example: 4-bit Multiplier

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

AES Core Specification. Author: Homer Hsing

FPGA Matrix Multiplier

Design of a High-Level Data Link Controller

Verilog Simulation Mapping

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

SOLUTIONS FOR HOMEWORK # 1 ANSWERS TO QUESTIONS

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs

A Brief Introduction to Verilog Hardware Definition Language (HDL)

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam

ISSN Vol.02, Issue.11, December-2014, Pages:

ECE 545 Project Deliverables

Luleå University of Technology Kurskod SMD098 Datum Skrivtid

Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web:

Final Exam Solution Sunday, December 15, 10:05-12:05 PM

ECE 551: Digital System *

VHDL HIERARCHICAL MODELING

Behavioral Modeling and Timing Constraints

Multiplier Generator V6.0. Features

Xilinx ChipScope ICON/VIO/ILA Tutorial

3 Designing Digital Systems with Algorithmic State Machine Charts

CCE 3202 Advanced Digital System Design

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control

ECE 448 Lecture 5. FPGA Devices

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

LABORATORY # 6 * L A B M A N U A L. Datapath Components - Adders

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi

Design a three-input, two-output sequential digital circuit which functions as a digital locking mechanism. LOCK ALARM

ELEC 4200 Lab#10 Interrupting SPI Receiver for use with a Processor Core


ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

Adding the ILA Core to an Existing Design Lab

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

Lecture 6. Advanced Testbenches. George Mason University

ENEE 245 Lab 1 Report Rubrics

EITF35: Introduction to Structured VLSI Design

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

ENGR 3410: MP #1 MIPS 32-bit Register File

HDLs and SystemVerilog. Digital Computer Design

ECE U530 Digital Hardware Synthesis. Programming Assignments

Microcomputers. Outline. Number Systems and Digital Logic Review

FPGAs: High Assurance through Model Based Design

ECE550 PRACTICE Midterm

Advanced Encryption Standard / Rijndael IP Core. Author: Rudolf Usselmann

INTRODUCTION TO CATAPULT C

Lab 6 : Introduction to Verilog

Transcription:

Midterm Exam ECE 448 Spring 2019 Wednesday, March 6 15 points Instructions: Zip all your deliverables into an archive <last_name>.zip and submit it through Blackboard no later than Wednesday, March 6, 10:00 PM EST.

The EXAM cipher implementation is specified below using its Top-level circuit interface Interface with the division into the Datapath and Controller Table of input/output ports Pseudocode Block diagram of the Datapath ASM chart of the Controller. Top-level circuit interface Interface with the division into the Datapath and Controller Table of input/output ports Port Width Meaning clk 1 System Clock reset 1 System reset clears all internal registers. Active high. M 2w Message block write_m 1 Synchronous write control signal for the message block M. After the block M is written to the EXAM unit, the encryption of M starts automatically C 2w Ciphertext block = Encrypted block M. done 1 Asserted when ciphertext is ready and available at the output.

Pseudocode The EXAM cipher is defined below: An input message block M has 2 w bits (where w is a parameter of the cipher). The corresponding ciphertext block (i.e., encrypted message block) has also 2 w bits. In order to encrypt a message block M, the algorithm performs the following operations: Split M into two equal parts V0, V1, each of the size of w bits SUM = 0 for j= 1 to r do { W00 = ((V1 << 4) xor (V1 >> 5)) + V1 W01 = SUM + KEY[SUM mod 4] T0 = W00 xor W01 V0 = V0 + T0 SUM = SUM + DELTA W10 = ((V0 << 4) xor (V0 >> 5)) + V0 W11 = SUM + KEY[(SUM >>6) mod 4] T1 = W10 xor W11 V1 = V1 + T1 SUM = SUM V0 = V0 V1 = V1 } C = V0 V1 Notation: V0, V1, V0, V1, W00, W01, W10, W11, T0, T1, SUM, SUM : w-bit variables DELTA: a w-bit constant K[0], K[1], K[2], K[3]: a set of 4 round keys; each round key is a w-bit constant xor : an XOR of two w-bit words + : unsigned addition mod 2 w A << k : logic shift left by k positions A >> k : logic shift right by k positions A B = concatenation of A and B. Please note that the algorithm has two parameters: r = number of rounds (e.g., 4) w = word size (always a power of 2, e.g., w = 2 3 = 8) These parameters should be treated as generics.

Block diagram of Datapath

ASM Chart

Tasks: Perform the following tasks: 1. Write a synthesizable VHDL code representing the circuit. 2. Write a testbench verifying the operation of your circuit for the following values of parameters and round keys: w=8, r=4, DELTA = 0x67, KEY[0]=0x89, KEY[1]=0xAB, KEY[2]=0xCD, KEY[3]=0xEF. Assume that the message M is equal to M=0x2345. Debug your circuit by comparing its operation with the enclosed timing waveforms. 3. Perform functional simulation of your circuit and use it to debug your VHDL code. Take a printout of the waveform showing the entire operation. 4. Synthesize your circuit. 5. Implement your circuit using a. FPGA family: Artix-7 b. Part name: XC7A35TCPG236-1 c. Speed Grade: -1 6. Run the static timing analysis of your circuit. Determine the minimum clock period and the maximum clock frequency. 7. Based on the implementation reports, determine the number of CLB slices, LUTs, flip-flops, and pins used by the circuit. 8. Perform the timing simulation of your circuit at the maximum clock frequency returned by the static timing analysis. Take a printout of the waveform showing the entire operation. Deliverables: 1. VHDL code of your entire circuit. 2. VHDL code of your testbench. 3. Timing waveforms from the functional and timing simulations demonstrating the correct operation of your circuit. 4. FPGA resource utilization (as defined in Task 7 above). 5. Minimum clock period and maximum clock frequency of your circuit.