57
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99 99-1 Under 1 Under-Graduate Project Graduate Project Verilog Verilog Simulation & Debugging Tools Simulation & Debugging Tools Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

Embed Size (px)

Citation preview

Page 1: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB

Graduate Institute of Electronics Engineering, NTU

9999--1 Under1 Under--Graduate ProjectGraduate Project

VerilogVerilog

Simulation & Debugging ToolsSimulation & Debugging Tools

Speaker: Shao-Wei Feng

Adviser: Prof. An-Yeu Wu

Date: 2010/09/28

Page 2: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 2

OutlineOutline

Basic Concept of Verilog HDL

Gate Level Modeling

Simulation & Verification

Summary

Page 3: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 3

What is Verilog HDL ?What is Verilog HDL ?

Hardware Description Language

Mixed level modeling Behavioral

Algorithmic ( like high level language)

Register transfer (Synthesizable)

Register Transfer Level (RTL)

Describing a system by the flow of data and control signals within and between functional blocks

Define the model in terms of cycles, based on a defined clock

Structural

Gate (AND, OR ……)

Switch (PMOS, NMOS, JFET ……)

Page 4: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 4

An ExampleAn Example

11--bit Multiplexerbit Multiplexer

in1

in2

out

0

1

selsel in1 in2 out

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 0

1 1 1 1

to “select” output

if (sel==0)

out=in1;

else

out=in2; out = (sel‟ in1) + (sel in2)

Page 5: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 5

Gate Level DescriptionGate Level Description

a1

a2

in1

in2

sel

outo1

iv_sel a1_o

a2_on1

iv_sel

Gate Level: you see only netlist (gates and wires) in the code

Page 6: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 6

Verilog Language RulesVerilog Language Rules

Verilog is a case sensitive language (with a few exceptions)

Identifiers (space-free sequence of symbols)

upper and lower case letters from the alphabet

digits (0, 1, ..., 9) (cannot be the first character)

underscore ( _ )

$ symbol (only for system tasks and functions)

Max length of 1024 symbols

Terminate lines with semicolon ; Single line comments:

// A single-line comment goes here

Multi-line comments:

/* Multi-line comments like this */

Page 7: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 7

Verilog HDL SyntaxVerilog HDL Syntax

declaration syntax

module name in/out port

port/wiredeclaration

kernel hardwaregate-connection/behavior

Page 8: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 8

Module Module

Basic building block in Verilog.

Module

1. Created by “declaration” (can‟t be nested)

2. Used by “instantiation“

Interface is defined by ports

May contain instances of other modules

All modules run concurrently

Page 9: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 9

InstancesInstances

A module provides a template from which you can

create actual objects.

When a module is invoked, Verilog creates a unique

object from the template.

Each object has its own name, variables, parameters

and I/O interface.

Page 10: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 10

Module Instantiation Module Instantiation

Adder

Adder Adder

Adder_tree

instance example

Page 11: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 11

Port ConnectionPort Connection

Connect module port by order list

FA1 fa1(c_o, sum, a, b, c_i);

Connect module port by name .PortName( NetName )

FA1 fa2(.A(a), .B(b), .CO(c_o),.CI(c_i), .S(sum));

Recommended

Page 12: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Value SetsValue Sets

4-value logic system in Verilog Four values: 0, 1, x or X, z or Z // Not case sensitive here

P. 12

Page 13: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 13

Register and NetRegister and Net

Registers Keyword : reg, integer, time, real

Event-driven modeling

Storage element (modeling sequential circuit)

Assignment in “always” block

Default value is X

Nets Keyword : wire, wand, wor, tri

triand, trior, supply0, supply1

Doesn‟t store value, just a connection

input, output, inout are default “wire”

Can‟t appear in “always” block assignment

Default value is Z

Page 14: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 14

Wire & RegWire & Reg

reg A variable in Verilog

Use of “reg” data type is not exactly synthesized to a really register.

Use of wire & regWhen use “wire” usually use “assign” and “assign” does not

appear in “always” block

When use “reg” only use “a=b” , always appear in “always” block

module test(a,b,c,d);

endmodule

module test(a,b,c,d);

input a,b;

output c,d;

reg d;

assign c=a;

always @(b)

d=b;

endmodule

Page 15: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Choosing the Correct Data TypesChoosing the Correct Data Types

An input or inout port must be a net.

An output port can be a register data type.

A signal assigned a value in a procedural

block must be a register data type.

P. 15

Page 16: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 16

Number RepresentationNumber Representation

Format: <size>’<base_format><number>

<size> - decimal specification of number of bits

default is unsized and machine-dependent but at least 32 bits

<base format> - ' followed by arithmetic base of number

<d> <D> - decimal - default base if no <base_format> given

<h> <H> - hexadecimal

<o> <O> - octal

<b> <B> - binary

<number> - value given in base of <base_format>

_ can be used for reading clarity

If first character of sized, binary number 0, 1, x or z, will extend

0, 1, x or z (defined later!)

Page 17: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 17

Number RepresentationNumber Representation

Examples:

6’b010_111 gives 010111

8’b0110 gives 00000110

4’bx01 gives xx01

16’H3AB gives 0000001110101011

24 gives 0…0011000

5’O36 gives 11110

16’Hx gives xxxxxxxxxxxxxxxx

8’hz gives zzzzzzzz

Page 18: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 18

Net ConcatenationsNet Concatenations

A easy way to group nets

Representation Meanings

{cout, sum} {cout, sum}

{b[7:4],c[3:0]} {b[7], b[6], b[5], b[4], c[3], c[2], c[1], c[0]}

{a,b[3:1],c,2‟b10} {a, b[3], b[2], b[1], c, 1‟b1, 1‟b0}

{4{2„b01}} 8„b01010101

{{8{byte[7]}},byte} Sign extension

Page 19: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 19

Compiler Directives Compiler Directives

`define

`define RAM_SIZE 16

Defining a name and gives a constant value to it.

`include

`include adder.v

Including the entire contents of other verilog source file.

`timescale

`timescale 100ns/1ns

Setting the reference time unit and time precision of your

simulation.

Page 20: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 20

System TasksSystem Tasks

$monitor $monitor ($time,"%d %d %d",address,sinout,cosout);

Displays the values of the argument list whenever any

of the arguments change except $time.

$display $display ("%d %d %d",address,sinout,cosout);

Prints out the current values of the signals in the

argument list

$finish $finish

Terminate the simulation

Page 21: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB

Graduate Institute of Electronics Engineering, NTU

Gate Level ModelingGate Level Modeling

Page 22: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 22

Gate Level ModelingGate Level Modeling

Steps

Develop the boolean function of output

Draw the circuit with logic gates/primitives

Connect gates/primitives with net (usually wire)

HDL: Hardware Description Language

Figure out architecture first, then write code.

Page 23: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 23

PrimitivesPrimitives

Primitives are modules ready to be instanced

Smallest modeling block for simulator

Verilog build-in primitive gate

and, or, not, buf, xor, nand, nor, xnor

prim_name inst_name( output, in0, in1,.... );

EX. and g0(a, b, c);

User defined primitive (UDP)building block defined by designer

Page 24: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 24

Case StudyCase Study

11--bit Full Adderbit Full Adder

Ci A B SCo

0 0 0 00

0 0 1 10

0 1 0 10

0 1 1 01

1 0 0 10

1 0 1 01

1 1 0 01

1 1 1 11

A B

CiCo

S

Full

Adder

Page 25: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 25

Case StudyCase Study

11--bit Full Adderbit Full Adder

co = (a‧b) + (b‧ci) + (ci‧a);

a

b

b

c

c

a

co

Page 26: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 26

Case StudyCase Study

11--bit Full Adderbit Full Adder

sum = a b ci

a

bc

sum

a

b

csum

Page 27: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 27

Case StudyCase Study

11--bit Full Adderbit Full Adder

Full Adder Connection

Instance ins_c from FA_co

Instance ins_s from FA_sum

a

bc

sum

a

b

b

c

c

a

co

carry out

connection

sum

connection

full adder

Page 28: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB

Graduate Institute of Electronics Engineering, NTU

Timing and DelaysTiming and Delays

Page 29: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 29

Delay Specification in PrimitivesDelay Specification in Primitives

Delay specification defines the propagation

delay of that primitive gate.

not #10 (out,in);

Page 30: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 30

Types of Delay ModelsTypes of Delay Models

Distributed Delay

Specified on a per element basic

Delay value are assigned to individual in the circuit

a

b

c

d

e

f

out

#5

#7

#4

module and4(out, a, b, c, d);

… …

and #5 a1(e, a, b);

and #7 a2(f, c, d);

and #4 a3(out, e, f);

endmodule

Page 31: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 31

Types of Delay ModelsTypes of Delay Models

Lumped Delay

They can be specified as a single delay on the output gate of

the module

The cumulative delay of all paths is lumped at one location

a

b

c

d

e

f

out#11

module and4(out, a, b, c, d);

… …

and a1(e, a, b);

and a2(f, c, d);

and #11 a3(out, e, f);

endmodule

Page 32: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 32

Types of Delay ModelsTypes of Delay Models

Pin-to-Pin Delay

Delays are assigned individually to paths from each input to

each output.

Delays can be separately specified for each input/output

path.

a

b

c

d

e

f

out

Path a-e-out, delay = 9

Path b-e-out, delay =9

Path c-f-out, delay = 11

Path d-f-out, delay = 11

Page 33: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 33

Timing Checks Timing Checks

setup and hold checks

setup

time

hold

time

clock

data

specify

$setup(data, posedge clock, 3);

endspecify

specify

$hold(posedge clock, data, 5);

endspecify

Page 34: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB

Graduate Institute of Electronics Engineering, NTU

Simulation & VerificationSimulation & Verification

Page 35: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 35

Test Methodology Test Methodology

Systematically verify the

functionality of a model.

Simulation: (1) detect syntax violations in

source code

(2) simulate behavior

(3) monitor results Design

Top Module

input ports

output ports

Test bench

data_oEqual?

answer_o

data_i

Page 36: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 36

Testbench for Full AdderTestbench for Full Addermodule t_full_add();reg a, b, cin; // for stimulus waveformswire sum, c_out;

full_add M1 (sum, c_out, a, b, cin); //DUT

initial #200 $finish; // Stopwatch

initial begin // Stimulus patterns$fsdbDumpfile(“t_full_add.fsdb”);$fsdbDumpvars;#10 a = 0; b = 0; cin = 0; // Statements execute in sequence#10 a = 0; b = 1; cin = 0; #10 a = 1; b = 0; cin = 0; #10 a = 1; b = 1; cin = 0; #10 a = 0; b = 0; cin = 1; #10 a = 0; b = 1; cin = 1; #10 a = 1; b = 0; cin = 1; #10 a = 1; b = 1; cin = 1;endendmodule

Page 37: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 37

Simulation ResultsSimulation Results

MODELING TIP

A Verilog simulator assigns an initial value of x to all

variables.

Page 38: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 38

Example: Propagation Delay Example: Propagation Delay

Unit-delay simulation reveals the chain of eventsmodule Add_full (sum, c_out, a, b, c_in);

output sum, c_out;input a, b, c_in;wire w1, w2, w3;

Add_half M1 (w1, w2, a, b);Add_half M2 (sum, w3, w1, c_in);or #1 M3 (c_out, w2, w3);

endmodule

module Add_half (sum, c_out, a, b);output sum, c_out;input a, b;

xor #1 M1 (sum, a, b); // single delay value formatand #1 M2 (c_out, a, b); // others are possible

endmodule

Page 39: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 39

Simulation with delaySimulation with delay

Page 40: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 40

SummarySummary

Design module Gate-level or RT-level

Real hardware

Instance of modules exist all the time

Each module has architecture figure

Plot architecture figures before you write verilog codes

Test bench Feed input data and compare output values versus time

Usually behavior level

Not real hardware, just like C/C++

Page 41: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

P. 41

NoteNote Verilog is a platform

Support hardware design (design module)

Also support C/C++ like coding (test bench)

How to write verilog well

Know basic concepts and syntax

Get a good reference (a person or some code files)

Form a good coding habit

Naming rule, comments, format partition (assign or always block)

Hardware

Combinational circuits

畫圖(architecture), then 連連看(coding)

Sequential circuits

register: element to store data

Page 42: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB

Graduate Institute of Electronics Engineering, NTU

Simulation & Debugging ToolsSimulation & Debugging Tools

Page 43: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

VerilogVerilog Simulator(1/2)Simulator(1/2)

P. 43

Page 44: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

VerilogVerilog Simulator(2/2)Simulator(2/2)

Xilinx ISE

Inventing the field programmable gate array (FPGA)

Verilog Simulation

Synthesis for FPGA

ModelSim

Verilog Simulation Only (But Powerful)

P. 44

Page 45: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Xilinx ISE (1/5)Xilinx ISE (1/5)

Create a New Project

File -> New Project

P. 45

Project Name & Location

Type of top module

(Can choose HDL)

Page 46: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Xilinx ISE (2/5)Xilinx ISE (2/5)

Next -> Project Wizard switches to the ``Device Properties''

window

P. 46

Your FPGA specification

Page 47: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Xilinx ISE (3/5)Xilinx ISE (3/5)

P. 47

Page 48: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Xilinx ISE (4/5)Xilinx ISE (4/5)

Project -> Add Source

Double click

Can modify your code

P. 48

Page 49: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

Xilinx ISE (5/5)Xilinx ISE (5/5)

Processes ->

Xilinx ISE Simulator

P. 49

Page 50: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (1/8)(1/8)

There are some packages (for VHDL) in library, you can see

then by edit.

P. 50

Page 51: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (2/8)(2/8)

File \ New \ Project ...

Insert the project name and location

There are Viterbi.cr.mti、Viterbi.mpf

in the work forder

.mpf include information of the project,

so when you want to open the project,

File \ Open \ Project ... Open .mpf

Add items to the project

P. 51

Page 52: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (3/8)(3/8)

Or use File \ Add to Project \ Existing Files ...

The direction path can not use Chiness.

You can add and remove in work space.

P. 52

Page 53: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (4/8)(4/8)

Compile

P. 53

Page 54: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (5/8)(5/8)

P. 54

Page 55: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (6/8)(6/8) Simulate (Loading)

P. 55

Page 56: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (7/8)(7/8)

Open signals window:View \ Signals

P. 56

Page 57: Verilog Simulation & Debugging Tools - 國立臺灣大學access.ee.ntu.edu.tw/course/under_project_992/lecture/20100928... · Verilog Simulation & Debugging Tools Speaker: Shao-Wei

ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU

ModelSimModelSim (8/8)(8/8) Add to Wave \ Selected Signals

P. 57