EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15

Similar documents
BUSES IN COMPUTER ARCHITECTURE

Modeling Latches and Flip-flops

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

You will be first asked to demonstrate regular operation with default values. You will be asked to reprogram your time values and continue operation

Altera s Max+plus II Tutorial

Laboratory 4. Figure 1: Serdes Transceiver

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY.

Lab Assignment 2 Simulation and Image Processing

Digital Blocks Semiconductor IP

Instruction manual Universal Fieldbus-Gateway UNIGATE IC - RS

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

UVM Testbench Structure and Coverage Improvement in a Mixed Signal Verification Environment by Mihajlo Katona, Head of Functional Verification, Frobas

Co-simulation Techniques for Mixed Signal Circuits

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Lab Assignment 5 I. THE 4-BIT CPU AND CONTROL

OpenXLR8: How to Load Custom FPGA Blocks

CARLETON UNIVERSITY. Facts without theory is trivia. Theory without facts is bull 2607-LRB

Modeling Latches and Flip-flops

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

RAPID SOC PROOF-OF-CONCEPT FOR ZERO COST JEFF MILLER, PRODUCT MARKETING AND STRATEGY, MENTOR GRAPHICS PHIL BURR, SENIOR PRODUCT MANAGER, ARM

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

Main Design Project. The Counter. Introduction. Macros. Procedure

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

Inside Digital Design Accompany Lab Manual

COMPUTER ENGINEERING PROGRAM

EEC 116 Fall 2011 Lab #5: Pipelined 32b Adder

Laboratory Exercise 4

Experiment: FPGA Design with Verilog (Part 4)

1. Synopsis: 2. Description of the Circuit:

Traffic Light Controller

Design of a Binary Number Lock (using schematic entry method) 1. Synopsis: 2. Description of the Circuit:

Main Design Project. The Counter. Introduction. Macros. Procedure

Equivalence Checking using Assertion based Technique

ASYNCHRONOUS COUNTER CIRCUITS

Using SignalTap II in the Quartus II Software

IS1500 (not part of IS1200) Logic Design Lab (LD-Lab)

SPI Serial Communication and Nokia 5110 LCD Screen

VeriLab. An introductory lab for using Verilog in digital design (first draft) VeriLab

LogiCORE IP Video Timing Controller v3.0

C6845 CRT Controller Megafunction

Using on-chip Test Pattern Compression for Full Scan SoC Designs

Digital Systems Laboratory 1 IE5 / WS 2001

MODELING OF ADC ARCHITECTURES IN HDL LANGUAGES

Modeling Digital Systems with Verilog

Lecture 2: Digi Logic & Bus

HOLITA HDLC Core: Datasheet

013-RD

CSE 352 Laboratory Assignment 3

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Lab #10 Hexadecimal-to-Seven-Segment Decoder, 4-bit Adder-Subtractor and Shift Register. Fall 2017

TSIU03, SYSTEM DESIGN. How to Describe a HW Circuit

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

Exercise 1-2. Digital Trunk Interface EXERCISE OBJECTIVE

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

CHAPTER 3 EXPERIMENTAL SETUP

The Project & Digital Video. Today. The Project (1) EECS150 Fall Lab Lecture #7. Arjun Singh

[Krishna*, 4.(12): December, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

A Combined Combinational-Sequential System

Digital Design and Computer Architecture

SignalTap Plus System Analyzer

EE 209 Lab 7 A Walk-Off

ECE 270 Lab Verification / Evaluation Form. Experiment 9

ECE337 Lab 4 Introduction to State Machines in VHDL

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Logic Devices for Interfacing, The 8085 MPU Lecture 4

CS/EE 6710 Digital VLSI Design CAD Assignment #3 Due Thursday September 21 st, 5:00pm

An automatic synchronous to asynchronous circuit convertor

Ryerson University Department of Electrical and Computer Engineering EES508 Digital Systems

UNIT IV CMOS TESTING. EC2354_Unit IV 1

Good afternoon! My name is Swetha Mettala Gilla you can call me Swetha.

SDI Audio IP Cores User Guide

Debugging of Verilog Hardware Designs on Altera s DE-Series Boards. 1 Introduction. For Quartus Prime 15.1

Single Channel LVDS Tx

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

Design and Implementation of Timer, GPIO, and 7-segment Peripherals

ECE 270 Lab Verification / Evaluation Form. Experiment 8

APPLICATION NOTE 4312 Getting Started with DeepCover Secure Microcontroller (MAXQ1850) EV KIT and the CrossWorks Compiler for the MAXQ30

Solutions to Embedded System Design Challenges Part II

THE LXI IVI PROGRAMMING MODEL FOR SYNCHRONIZATION AND TRIGGERING

FSM Cookbook. 1. Introduction. 2. What Functional Information Must be Modeled

Digital Audio Design Validation and Debugging Using PGY-I2C

Design and Implementation of an AHB VGA Peripheral

SERDES Eye/Backplane Demo for the LatticeECP3 Serial Protocol Board User s Guide

Chapter 4. Logic Design

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

Checkpoint 1 AC97 Audio

STB Front Panel User s Guide

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

CS 254 DIGITAL LOGIC DESIGN. Universal Asynchronous Receiver/Transmitter

Verification Methodology for a Complex System-on-a-Chip

Electrical & Computer Engineering ECE 491. Introduction to VLSI. Report 1

Contents Slide Set 6. Introduction to Chapter 7 of the textbook. Outline of Slide Set 6. An outline of the first part of Chapter 7

ECSE-323 Digital System Design. Datapath/Controller Lecture #1

Task 4_B. Decoder for DCF-77 Radio Clock Receiver

The University of Texas at Dallas Department of Computer Science CS 4141: Digital Systems Lab

UNIT-3: SEQUENTIAL LOGIC CIRCUITS

Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers

Transcription:

EECS578 Prof. Bertacco Fall 2015 EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15 1. Overview This project focuses on designing a test plan and a set of test programs for a digital reverberation module, using a hardware verification language. Digital reverberators are digital sound processors used to produce surround effects. The effect is produced by delaying the sound input channels by different amounts of time with the objective of creating the impression that the sources of sound come from different locations. If you would like some more information on reverberation and surround effects, check: https://en.wikipedia.org/wiki/reverberation Before dwelling in the verification of the reverberator, you will first write a test program for a very simple arbiter design, which will serve the purpose of making you at ease with the use of HVL testbenches in the verification flow. This document describes the assignment with reference to SystemVerilog Assertions (SVA) and the VCS logic simulator. We provide manuals and a tutorial on SVA in the class webpage. 2. How to run VCS In order to run VCS, connect to a Linux machine in any of the CAEN student labs or SSH to the host oncampus-course.engin.umich.edu. Note that this host is accessible only on campus. 3. Bus arbiter warm-up To get started with this part of the project, download the file arbiter.tar.gz from the class website and copy it to a local directory in your engin account. Unzip the file; it will create the arbiter directory. If you go to the arbiter directory, you will find a sample bus arbiter design (unfortunately it includes one bug). The arbiter design takes requests from two clients and grants access to only one client at a time. It should be fair (i.e., if both clients keep sending requests, they both should receive grants sooner or later) and it should only give a grant to a client after it has received a request from it. The grant signal should be high for 1 clock cycle. The arbiter design is described in Verilog. You can start writing your testbench in SystemVerilog by filling the FIXME section in test_arbiter.sv, and you can also modify other sections of the code. We provide a simple Makefile for you. You can compile your source code and run the simulation by running the following command. make run 1

If you just want to compile your source code, then use the following command. make Or you can start DVE (a graphical waveform viewer) by running the following command. make dve Your assignment for this part is to write a test that verifies the main specifications of the arbiter: granting the bus only upon request, to the correct requestor, all while respecting mutual exclusion. You need to submit: 1) The SystemVerilog testbench that you developed, called test_arbiter.sv. Please add comments to the testbench, explaining for each portion which feature of the arbiter you are trying to stimulate and verify. 2) The corrected design of arbiter.v. 4. Verification of a digital reverberation module The main part of your work consists of verifying a digital audio reverberation module. A digital reverberation module is a multi-channel digital audio transfer unit that can add a programmable amount of delay to the input signals. Digital reverberation modules are mainly used for digital surround effects. You can find the specification of the module in the last part of this document. We provide the design (containing some bugs) in Verilog, a testbench template in SystemVerilog, a Makefile and a directory structure, which you can find in the file DAR.tar.gz. Please download and unzip the tar file, and read the README file provided in the DAR directory. Your job is to come up with a thorough verification plan and a set of testbenches that cover each of the items in your plan. 4.1. The verification plan (1 page) After studying the specification and the design, you should write a simple verification plan. Write a list of verification goals that you think should be checked for this design. Note: you should be able to develop most of the plan by simply studying the specification, without needing to study the design itself. Your verification plan should: 1) Include at least 5 verification goals. 2) Include any assumptions you have made in trying to understand all the features of this design. For instance: we made no assumptions on the nature of the PCM audio sample. 3) Be no longer than 1 page. 4.2. The test suite design Create a full testbench written in SystemVerilog. The test must target the goals of the verification plan and use the major verification features/constructs with the objective to generate a compact, modular set of tests. Again, make (and document) all the assumptions you need in completing this task: feel free to update your verification plan based on this part of the work. 2

Try to organize your testbench in sections, for each section verify one aspect of the design, and then use print statements ($display in SystemVerilog) indicating if that part of the test passed or failed. You may use tasks and functions to keep your testbench organized. 4.3. The verification report (1 page) Write a final report on your verification job, including: 1) A section on the bugs you found, which test exposed them, or how you came across them otherwise. If possible, suggest the action required to correct or work around them. 2) Instructions so that we can run the tests you prepared. 3) The report should be 1 page or less in length. You need to submit: 1) The verification plan. 2) All the SystemVerilog source code you wrote. You may submit the relevant portions of your simulation output, when relevant to the documentation in the final report. Create a README file that documents the purpose of all source files and describes how your verification testbench must be executed. If you wrote new scripts to run your tests, please submit those, too, so that we can reproduce your results. 3) The verification report. You are NOT required to submit the source design files, unless you made any changes to them that are required in order to run your simulations. 5. How to submit To submit the project, follow the instructions on the submission webpage: http://eecs.umich.edu/courses/eecs578/submit Please create a single archive file that includes all the deliverables (report, source code, etc.), and upload it to the submission webpage. We only accept the following file extensions: tar, gz, tgz, bz2 and zip. The file name will be automatically changed to your uniqname by the submission webpage. 3

Digital Audio Reverberation module Functional specification document 1. Introduction Although this design represents a dedicated DSP block for an audio application (digital reverberation, digital mixer, etc.) it has been built for HW verification educational purposes. The purpose of this document is to describe the functionality of this digital audio component. 2. Functional Overview The digital reverberation module consists of a serial interface that communicates with a Host processor under host processor control. It is characterized by having 4 digital delay line channels with each channel having its own 16 bit PCM input and 16 bits PCM output. Each PCM sample received at a particular port is routed to the correspondent output port. Every output represents the input affected by a programmable delay: This delay is programmed via the Host serial interface. The max delay is 8 clock cycles. Serial interface From HOST Digital Delay line: Port 0 16 bits PCM audio inputs Digital Delay line: Port 1 Digital Delay line: Port 2 16 bits PCM audio outputs Digital Delay line: Port 3 3. Logic Interfaces Specifications There are 2 types of interfaces: a serial interface (from Host) used to program the delay for each port and a 16 bit PCM interface (input and output) that allow the digital audio samples to flow in the circuit. A more detailed description follows in the System Description Section. 4. Performance The system is supposed to support digital audio at a frequency of 44.1Khz. The speed of the serial PCM interface is also 44.1Khz 5. System Description This section describes the operations performed by the Digital Reverberation Module. 5.1. Structural Diagram The structural diagram of the Digital Reverberation Module is reported below. 4

In order to make things easier we report only one delay line: the important issue is that all the delay lines work identically since the From Host interface will control each delay line in the same way. Serial in From Host (control block) PCM in programmed tap PCM out 5.2. The from Host Control block This block is accessed serially: Only the write mode is supported. Every time this block is accessed, it will be given two pieces of information (three after the read mode is supported in a future generation of this design): 1. which delay line to program (0 to 3) 2. the amount of delay (0 to 7) It is not possible to read the registers back, so you will have to think of some type of test (direct test) to verify that this block correctly programs the delay for each delay line. 5.3. The delay line block This block is intended to delay the PCM output a programmable number of clock cycles. The tap can be chosen programming the from Host block as discussed in the previous paragraph. The tap chosen will determine the output delay. If the tap chosen is zero, it programs an output delay of 1 clock cycle. A tap of 7 (the maximum delay) will delay the output by 8 cycles. This can be of special importance for your part of the work. If your testbench is waiting for data with an expected delay of 8 cycles while the tap is reprogrammed to fewer cycles, let s say 3, then the data from tap 4 through 8 will not arrive at the output, and there will be a discontinuity in actual data transmitted. Reprogramming of a Delay line during data delivery is normal, expected behavior, so your testbench must take into account the possibility of this programming change and adjust for the discontinuity in data. 6. Functional Description In the following, we will describe some basic assumptions made while building this design and provide more technical details on the protocol. 6.1. Reset Every block that belongs to the Digital Reverberation Module is provided with a synchronous reset. The control block and the delay line share the same synchronous reset, rst_. 5

6.2. Interfaces 6.2.1. PCM interface This is a 16 bits PCM interface: the audio samples are represented in a linear digital format: every port is provided with one input and one output. There are no control signals for this type of interface since the data changes at the system clock frequency of 44.1 KHz. Each PCM channel is independent of every other channel. There is no interaction between channels. The PCM interface can be reprogrammed at anytime. No more than a maximum of seven (7) words of data should be lost because of reprogramming the delay tap. This maximum occurs when the old delay for the PCM is seven (7), and the new delay is zero (0). In this case, seven words of data in the delay line would be lost when the tap is moved from the output of the last delay register to the output of the first delay register. In the inverse case, when the delay is changed from a smaller delay to a larger delay, the data sequence that had already passed out of the tap will be repeated up to the difference between the new and the old tap value. For instance, when the delay is changed from zero (0) to seven (7), then no more than 7 words of data sequence should be repeated. 6.2.2. Serial interface from Host processor At this time, the frequency of operation of the serial interface is the same as that of the system (44.1KHz). Module inputs from the Host There are two pins controlled by the host that allow the Host processor to program the Digital Reverberation Module: prgrm_go_ prgrm_in prgrm_go_ : This signal is asserted active low (1 b0) and frames the valid serial program sequence. Once prgrm_go is asserted, it must not be de-asserted until the valid program sequence is complete. If prgrm_go is de-asserted before the entire program sequence is complete, the err_ pin will be asserted signaling an invalid termination of the programming cycle. See the err_ description for more details. prgrm_in : This signal is used to program a legal programming sequence of six bits. The valid prgrm_in sequence contains the following information in the following order: bit 1: The first bit in the sequence selects the programming mode. 1 b0 : A low value selects the write mode 1 b1 : A high value selects the read mode. This mode is not supported in this version of the Digital Reverberation module. If this mode is selected, the err_ pin will be activated. See err_ for more details. bits 2-3: These two bits select one of four delay lines. The lsb should be shifted in first. bits 4-6: These three bits select one of eight possible delay values. A value of 0 selects for a delay of one cycle and a value of 7 a delay of eight cycles. The lsb should be shifted in first. 6

Timings of the serial interface The timings of the serial interface are reported in the following diagram. prgrm_go prgrm_in Valid Serial Data R/W delay line select delay value 1 bit 2 bits 3 bits rst_ : This synchronous signal drives all of the outputs to zero and clears the contents of all the delay line registers when asserted low, 1 b0. Module outputs to the Host err_ : This synchronous signal is an output and is asserted low (1 b0) for one cycle whenever the host block reaches an illegal state. The host will then return to the idle state to wait for the start of a program sequence. 7