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

Similar documents
Lab 3 Verilog Simulation Mapping

Verilog Simulation Mapping

Lab 2 Designing with Verilog

Lab 2 Verilog Synthesis & Logic Optimization

Lab 1: FPGA Physical Layout

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

Lab 6 Debugging. Objective. Introduction. Prelab

Lab 6 : Introduction to Verilog

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

FPGA Design Tutorial

EECS150 - Digital Design Lecture 10 Logic Synthesis

ChipScope Demo Instructions

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

Verilog Design Entry, Synthesis, and Behavioral Simulation

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Programmable Logic Devices HDL-Based Design Flows CMPE 415

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

EEC 116 Fall 2011 Lab #3: Digital Simulation Tutorial

Digital Design Methodology (Revisited) Design Methodology: Big Picture

EECS150 - Digital Design Lecture 10 Logic Synthesis

Digital Logic Design Lab

Lab 0: Introduction to the FPGA Development Board

VHDL for Synthesis. Course Description. Course Duration. Goals

ECE U530 Digital Hardware Synthesis. Programming Assignments

Lab 1 FPGA CAD Tools

ARM 64-bit Register File

Lab 0: Introduction to the FPGA Development Board

FPGA Based Digital Design Using Verilog HDL

Digital Design Methodology

Chapter 1 Overview of Digital Systems Design

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

EE 361L Digital Systems and Computer Design Laboratory

DESIGN STRATEGIES & TOOLS UTILIZED

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

ECE 4514 Digital Design II. Spring Lecture 2: Hierarchical Design

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

A Brief Introduction to Verilog Hardware Definition Language (HDL)

EECS150 - Digital Design Lecture 8 - Hardware Description Languages

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science. EECS 150 Spring 2000

Lecture #1: Introduction

Timing Analysis in Xilinx ISE

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

Synthesis. Other key files. Standard cell (NAND, NOR, Flip-Flop, etc.) FPGA CLB

PINE TRAINING ACADEMY

EEC 118 Spring 2011 Lab #5 Manchester Carry-Chain Adder

Hardware Description Languages (HDLs) Verilog

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

EECS150: Lab 3, Verilog Synthesis & FSMs

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

Synthesis of Combinational and Sequential Circuits with Verilog

EXPERIMENT NUMBER 7 HIERARCHICAL DESIGN OF A FOUR BIT ADDER (EDA-2)

Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas

Lab 4 Debugging & Verification

EECS150: Lab 2, Mapping Circuit Elements to FPGAs

Xilinx ChipScope ICON/VIO/ILA Tutorial

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

EECS 151/251A FPGA Lab Lab 2: Introduction to FPGA Development + Creating a Tone Generator

EECS150: Lab 1, FPGA CAD Tools

FPGA for Software Engineers

Evolution of CAD Tools & Verilog HDL Definition

EE 101 Lab 5 Fast Adders

EECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline

Homework deadline extended to next friday

Digital Systems Laboratory

E85: Digital Design and Computer Engineering Lab 2: FPGA Tools and Combinatorial Logic Design

CSE140L: Components and Design

EECS150: Lab 3, Verilog Synthesis & FSMs

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

CHAPTER 3 METHODOLOGY. 3.1 Analysis of the Conventional High Speed 8-bits x 8-bits Wallace Tree Multiplier

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

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

Advanced FPGA Design Methodologies with Xilinx Vivado

Field Programmable Gate Array (FPGA)

RTL Coding General Concepts

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science

Post-Synthesis Simulation. VITAL Models, SDF Files, Timing Simulation

FPGA Design Flow 1. All About FPGA

problem maximum score 1 10pts 2 8pts 3 10pts 4 12pts 5 7pts 6 7pts 7 7pts 8 17pts 9 22pts total 100pts

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

EEL 4783: HDL in Digital System Design

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall

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

EITF35: Introduction to Structured VLSI Design

Generating Parameterized Modules and IP Cores

C-Based Hardware Design

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

Verilog for High Performance

Tutorial on FPGA Design Flow based on Aldec Active HDL. Ver 1.5

ELEC 204 Digital System Design LABORATORY MANUAL

Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

CSE140L: Components and Design Techniques for Digital Systems Lab

Topics. Midterm Finish Chapter 7

EECS150 Lab Lecture 2 Design Verification

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

Transcription:

EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping 1 Motivation In this lab you will learn how to use a hardware description language (verilog) to create a design. You will explore different levels of implementation, varying the level at which the definition of your design is crafted structurally versus behaviorally. 2 Introduction Modern day circuit design is done mainly using hardware description languages (HDLs.) Two popular HDLs are verilog and VHDL. In this class we will use verilog. Verilog can be written using either structural or behavioral descriptions. The code can either use portable standard verilog or manufacturer specific components such as Xilinx primitives. For the purposes of this lab, we will attempt to restrict ourselves to the use of portable standard verilog. Once written, verilog code can then be run through sophisticated CAD tools such as a logic synthesis tool that will generate the actual low-level gates. In the case of an FPGA the verilog will create a netlist of LUTS, FFs and CLBs. In the case of an ASIC the result may be a netlist of transistors. A simulation can be run on the functional verilog code or after synthesis on the generated netlist. The functional simulation verifies the functionality of the verilog code but does not include realistic timing information, such as gate delays. After the code is run through a logic synthesis tool the timing simulation run on the generated netlist includes timing statistics yielding more accurate results. 3 Prelab & Brief Overview of vs. WARNING: You will not finish this lab during the lab section unless you do the Prelab beforehand! 1. Read and understand the entire lab handout. 2. Create a verilog testbench to test your designs. A skeleton testbench is provided for you on the website (in the same place this write-up is located). 3. Write the verilog for all four parts of the lab. You will need as much time in lab as possible to debug your code. 4. This lab assumes some familiarity with the tool flow presented in the previous lab. Rereading portions of the previous lab assignment to re-familiarize yourself with the tool flow may be beneficial. Don t expect to be able to write and debug your code during the lab session.

vs.. One may consider the relation between the structural and behavioral nature of pieces of a design as being directly linked to the point at which subcomponents cease to have subcomponents. One can visualize the situation as follows: Each subcomponent exists at some particular level If the level of design for a component is structural, then it will be composed of one or more sub modules, each of which exists closer to (or in) the behavioral portion of the design. The division of a design into structural and behavioral parts can be thought of as proportional to the degree of complexity of the behavioral components used in the design. Using this lab s accumulator as an example, the four parts of the lab break down as follows: Part I. (Hierarchy view) Entirely behavioral, there are no structural modules, and hence no discernable division between the two portions of the design. Part II. (Hierarchy view)

Part III. FlipFlop Full- Flip Flop Full-adder Cell Part IV. Full- Cell Flip-Flop Gates Flip Flop Full-adder Cell AND XOR OR 4 Procedure Part I 1. In the text editor of your choice, create a new file and name it top.v. In this file create a module called top. Add four ports to your module:

Port Name Width Direction Description Clk 1 Input Clock Signal Rst 1 Input Reset signal for any FFs In 16 Input The input to your design Out 16 Output The output of your design 2. Using a purely behavioral specification, create your entire accumulator in this module. 3. Using ModelSim, test the functionality of your design with your verilog test bench. 4. Once you are convinced your design is functional, use Synplify to synthesize your design. Open the Xilinx Design manager and proceed with the Placement and Routing stages. 5. Examine the reports generated, noting the timing constraints and number of LUTs used. Open up the Floorplanner and visually examine the layout. 6. Open ModelSim and use the timing constraints from the reports along with your testbench to verify the delay of the critical path. Part II from a and a 1. Create a new verilog file called top.v with a module called top with the same port list as Part I (put it in another directory than the one in which the first top.v was defined). 2. Create your design using a behavioral specification for an adder and a behavioral specification for a register, each defined as its own module. Instantiate one of each of these, and connect them together (structurally) in your top module (in top.v). 3. Do steps 4 and 5 from Part I. If the mapping report shows a difference in the number and/or type of parts used, can these differences be noticed in your visual inspection via the floorplanner? 4. Do step 6 from from Part I Part III from Composed of FlipFlops and a Composed of Full- Cells For this part follow the same steps as in Part II, except use verilog primitives and additional levels of hierarchy to build the adder and register. Do not use the verilog +,-,/,* functions for the adder. Create full-adder cells with boolean equations using assign statements with &,,ˆ, and (Thus, this will be a Dataflow definition of the full-adder cells). Connect the full-adder cells together to form a ripple adder, and connect the FlipFlops together to form a register. The adder and register thus created should be compatible with your previous instantiations of a behavioral register and adder in your top module, so the top module should not require any code changes.

Part IV from Composed of FlipFlops and a from Full- Cells Composed of Instances of Logic Gates. Here one last level of hierarchy is introduced by changing each full adder cell into a collection of gates instead of a dataflow description. Only the module defining a full adder cell should require changes. Repeat implementation, testing, and measurement procedures as per the previous sections. 6 Acknowledgments Original lab by J. Wawryznek, N. Zhou, and Y. Patel. UCB 3 2002 Additional changes by J. Sampson. 9 2002 EECS150 Fall 2002 Lab 4 Verilog Simulation Mapping 7. Checkoff Name: Name: Section: Part I Part II Part III Part IV Total TA: / (100%)