TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design,...

43
#1/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY TKT-1212 Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere university of technology, Fall 2008

Transcript of TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design,...

Page 1: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#1/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

TKT-1212

Part 1: Introduction

to System design,

VHDL Basics

Part 1: Introduction to System design,

VHDL Basics

Ari Kulmala

Tampere university of technology, Fall 2008

Page 2: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#2/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Contents

Quick recap of previous courses

Introduction to System design

Abstraction

Main phases

VHDL basics

Entity

Ports, generics

Architecture

Signals, types

Process, component instantiation, control

statements

Library, package

Page 3: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#3/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Acknowledgements

Prof. Pong . P. Chu provided ”official”

slides for the book which is gratefully

aknowledged

See also:

http://academic.csuohio.edu/chu_p/

Many slides also obtained from previous

lecturers of TKT-1210 (Teemu Pitkänen,

Konsta Punkka, Mikko Alho…)

Polishing and minor edits by Erno

Salminen

Page 4: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#4/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

System

Representation

(View)

Page 5: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#5/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Examples of different views

View: different perspectives of a system

1. Behavioral view:

Describe functionalities and i/o behavior

Treat the system as a black box

2. Structural view:

Describe the internal implementation (components and interconnections)

Essentially block diagram (or schematic)

3. Physical view:

Add more info to structural view: component size, component locations, routing wires

E.g., layout of a print circuit board

Page 6: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#6/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Examples of different views (2)

2. Structural 3. Physical1. Behavioral

inputs:

button0_in, button1_in

...

outputs:

led0_out

audio_out

...

Function:

When user presses

button1, then...

When...

higher abstraction

Page 7: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#7/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Abstraction

Page 8: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#8/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Complexity management

How to manage complexity for a chip with 10 million transistors?

Abstraction: simplified model of a system

show the

selected

features

Ignore

associated

detail

E.g., timing of an inverter

time [ns]

voltage [V

]

Page 9: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#9/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Levels of abstraction

1. Transistor level, lowest abstraction

2. Gate level

3. Register transfer level (RTL) Typical level nowadays

4. Behavioral (Processor) level, highest abstraction

Characteristics of each level

Basic building blocks

Signal representation

Time representation

Behavioral representation

Physical representation.

Page 10: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#10/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Summary of abstractions

adder

divide FSM

This course focuses on RTL

Level Example

block

Course

ASIC II,

ELE-xxxx

DigiPer.

this, ASIC I

Soc-suunn,

Soc-alustat,

Soc-mallinnus

CPU MEM

I/O ACC

NOC

SW

behavioral

Page 11: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#11/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

RT level

RT (Register Transfer) is a bit misleading term

Should use “module-level”

Two meanings:

Loosely: represent the module level

Formally: a design methodology in which the system operation is described by how the data is manipulated and moved among registers.

D Q D Q D Q

C0(x0)=Fa(x0)

Ct(x)=Fa(x) C0(x)=Fb(Fa(x))

C1(x1)=Fa(x1) C0(x0)=Fb(Fa(x0))

Clock tick, stored in

intermediate register

Time T1

Time T0

...,x1,x0

Page 12: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#12/137

Explicitly defined

TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

RT level

Typically, HW description languages use RT level

The idea is to represent the combinational logic before registers The logic between registers, i.e. between register transfers

The registers are ”implied” not explicitly defined.

Will be covered in more detail with sequential VHDL design later in lectures

D Q

inputs

Comb. logic

Implied by coding style

Page 13: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#13/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Development Tasks

Page 14: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#14/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

System development

Developing a digital system is a refining and

validating process

Main tasks:

I. requirements

capture, specification

II. design, synthesis

III. physical design

IV. fabrication, testing

I-III. verific

atio

n

time

Page 15: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#15/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

I. Specification

Capture the

use cases, requirements

non-functional requirements (performance, cost,

power consumption, silicon area)

Usually informal, natural language (English,

Finnish) completed with tables and illustrations

Formal methods are being studied and their

importance will increase

TKT-1400 ASIC-suunnittelu I, TKT-2431 Soc-

suunnittelu, TKT-3541 SoC-alustat, TKT-2401

SoC-mallinnus

Page 16: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#16/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

II. Design, synthesis

A refinement process that realizes a description with components from the lower abstraction level Manual/automated

The resulting description is a structural view in the lower abstraction level A synthesis from VHDL code obtains netlis (gates and

flip-flops)

Estimates the size, max. frequency and power consumptionType of synthesis:

High-level synthesis

RT level synthesis

Gate level synthesis,

Technology mapping

This course, TKT-1202 Digitaalisuunnitelu

Page 17: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#17/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

III. Physical Design

Placement of cells and routing or wires

Refining from structural view to physical view

Derive layout of a netlist

Circuit extraction:

Determine wire resistance and capacitance

accurately

Others

Derivation of power grid and clock

distribution network, assurance of signal

integrity etc.

TKT-1500 ASIC-SUUNNITTELU II,

(Microelectronics at ELE)

Page 18: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#18/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

I-III. Verification

Check whether a design meets the

specification and performance goals

Concern the correctness of the initial design

and the refinement processes

Two aspects

Functionality

Performance (timing)

Takes ~40-80% of design time

TKT-1410 Suunnittelun varmennus, TKT

1566 Formaalit

toiminnanvarmennusmenetelmät

Page 19: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#19/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

I-III. Methods of Verification

Simulation Spot check: cannot verify the absence of errors

Can be computationally inensive

Timing analysis Just check the worst case delay

Formal verification Apply formal math techniques determine certain

properties, applicable in small scale

E.g, equivalence checking between two models

Hardware emulation with reconfigurable HW

Specification/code review

Page 20: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#20/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

IV. Testing

Testing is the process of detecting physical

defects of a die or a package occurred at the

time of manufacturing

Testing and verification are different tasks.

Difficult for large circuit

Need to add auxiliary testing circuit in design

E.g., built-in self test (BIST), scan chain etc.

Locating the fault is not always needed

Faulty chips are simply discarded

TKT-1510 Testattavuussuunnittelu

Page 21: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#21/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Limitations of EDA software

EDA (Electronic Design Automation) software can automate many tasks

Can software replace human hardware designer? (e.g., C-program to chip)

Synthesis software

should be treated as a tool to perform transformation and local optimization

cannot alter the original architecture or convert a poor design into a good one

EDA tools abstraction level has not increased significantly since mid-90s when RT-level gained popularity

There is always some penalty in performance, area etc. when increasing abstraction, but significant improvement in time to design

Page 22: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#22/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Development Flow

Page 23: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#23/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Design flow

Medium

design

targeting

FPGA

Circuit up to

50,000 gates

synthesis

placement & routing

device programming

FPGAchip

simulation

simulation

simulation/timing

analysis

Synthesis Physical Design Verification

data file process

RTL description

netlist delay file

configuration file

delay file

testbench1 1

23

445

67

8

Page 24: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#24/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Additional tasks

Large design targeting FPGA

Design partition

More verification

I/O-verification, external interfaces

Page 25: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#25/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Very High Speed Integrated

Circuit Hardware

Description Language

(VHSIC HDL = VHDL)

Page 26: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#26/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Why (V)HDL?

Interoperability

Technology

independence

Design reuse

Several levels of

abstraction

Readability

Standard language

Widely supported

Improved productivity

Page 27: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#27/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

What is VHDL?

VHDL = VHSIC Hardware DescriptionLanguage (VHSIC = Very High Speed IC)

Design specification language

Design entry language

Design simulation language

Design documentation language

An alternative to schematics

Page 28: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#28/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

A brief VHDL history

Developed in the early 1980s for managing design problems that involved large

circuits and multiple teams of engineers

originally for documentation, synthesis developed soon after

funded by U.S. Department of Defence

First publicly available version released in 1985

IEEE standard in 1987 (IEEE 1076-1987) IEEE = Institute of Electrical and Electronics

Engineers

An improved version of the language was relased in 1994 IEEE standard 1076-1993

Page 29: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#29/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

example.vhd

VHDL

Parallel programming language(!) for hardware

Allows sequential code portions also

Modular

Interface specification is separated from the functional

specification

Allows many solutions to a problem

The coding style matters!

Different solutions will be slower and/or larger than

others

Save money!Interface

Declarations

Functionality

Case-insensitive language

Page 30: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#30/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

VHDL environment

(vcom)

(Quartus)

(vsim)

(Tools used in this course are shown in parentheses)

Physical design

Page 31: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#31/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Design units

Segments of VHDL code that can be compiled

separately and stored in a library

Library = directory of compiled VHDL files

entity

declaration

architecture

bodyarchitecture

bodyarchitecture

body

package

declaration

package bodyconfiguration

declaration

VHDL library

VHDL

source

files

Page 32: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#32/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Key for success

Stratix II FPGA

NIOS II

CPUOn-chip

communication

NIOS II

CPU

NIOS II

CPU

NIOS II

CPU

NIOS II

CPU

CRC-32

HW Acc.

Camera

Controller

WLAN

Radio IF

eCos

RTOS

eCos

RTOS

eCos

RTOS

eCos

RTOS

eCos

RTOS

Distributed mobile video player application

Compact

Flash IF

Display

Controller

Keypad

Controller

Hierarchical design:NIOS II CPU sub-system

NIOS II

core

HIBI

wrapperN2H DPRAM

TimerCache

SDRAMBoot

ROM

Avalon

connections

Interrupt

All systems are designedand implementedhierarchically

The same component canbe replicated and used in many products

Usually only knowledge of external behavior is required, not the internals

Conf

memTx FSM

HI prior

tx FIFO

LO prior

tx FIFO

Mux

HI prior

rx FIFO

LO prior

rx FIFO

Demux

Addr

decoderRx FSM

slot ctrlslot

slot

dff

dff

Page 33: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#33/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Entities – interfaces

A black box with interface definition Functionality will be defined in architecture

Defines the inputs/outputs of a component (pins)

A way to represent modularity in VHDL

Similar to symbol in schematic

Reserved word ENTITY

ENTITY comparator IS

PORT (

a_in : IN STD_LOGIC_VECTOR(8-1 DOWNTO 0);

b_in : IN STD_LOGIC_VECTOR(8-1 DOWNTO 0);

eq_out : OUT STD_LOGIC

);

END comparator;

Declarations

Functionality

Interface

comparator

8

8

A_in

B_in

eq_out

Page 34: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#34/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Ports

Provide communication channels between the component and its environment

Each port must have a name, direction and a type.

An entity may omit port declaration, e.g. testbench

Port directions:

IN: A value of a port can be read inside the component, but cannot be assigned. Multiple reads of port are allowed.

OUT: Assignments can be made to a port, but data from a port cannot be read. Multiple assignments are allowed.

INOUT: Bi-directional, assignments can be made and data can be read. Multiple assignments are allowed. (not recommended inside a chip.)

BUFFER: An out port with read capability. May have at most one assignment. (is not recommended)

Declarations

Functionality

Interface

Page 35: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#35/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Signals

Used for communication inside the architecture, carry data

Ports in entity declaration are considered as signals

Can be interpreted as

wires

“wires with memory” (i.e., FFs, latches etc.)

VHDL allows many types of signals

Bit vectors, integers, even multidimensional arrays and records.

Declared in the architecture body's declaration section

Signal declaration:SIGNAL signal_name : data_type;

Signal assignment: signal_name <= new_value;

Functionality

Interface

Declarations

Page 36: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#36/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Other declarations

Functions, procedures (subprograms)

Much like in conventional programming

languages

Component declaration

”We will use this adder component”

Functionality

Interface

Declarations

Page 37: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#37/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Libraries and packages

Frequently used functions and types can be

grouped in a package

Libraries include several packages and other

design units

Packages typically contain

constants

Like header.h in conventional programming

languages

General-purpose functions

E.g. Log2(x)

Design-specific definitions

E.g own data types, records (structs)

Functionality

Interface

Declarations

Page 38: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#38/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

entity X

Architecture

Every entity has at least one architecture.

Architecture specifies the internals of a design unit and is coupled to a certain entity Defines functionality

One entity can have several architectures

Architectures can describe design on many levels Gate level

RTL (Register Transfer Level)

Structural

Behavioral level

Declarations

Functionality

Interface

XA_in

B_in

C_out

arch 1

”It is

logical

AND”

arch 2

”It is

logical

XOR”

etc.

Page 39: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#39/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Architecture (2)

Example:ARCHITECTURE gate OF comparator IS

BEGIN

eq_out <= ’1’ WHEN (a_in = b_in) ELSE ’0’;

END comparator1;

Two main approaches

Define new functionality with control statements, e.g. if-for-case, (rtl), shown above

Instantiate existing components and define interconnections between them (structural)

Page 40: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#40/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Usually one entity

and one

architecture per file

File name same as

entity name

Architectures

contains usually

either

instantiations, or

processesentity_name.vhd

entity declaration:

ports, generics

architecture

arch declarations:

signals,

functions,

types

arch body:

concurrent statements

component instantiations,

processes

(signal assignments,

if-for-case)

Structure of VHDL entity

in out

Page 41: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#41/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Adder

Multiplier

A

B

c

sel

A : IN

B : IN

Sel : IN

C : OUT

signal add, mul

Components +, *

declaration

Mux realization

Component instantiation

Signal assignments

GENERIC VHDL STRUCTUREExamplesRealization

Relation between circuit and

VHDL

0

1

add

mul

Page 42: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#42/137 Chapter 2

Even parity detection circuit

Input: a(2), a(1), a(0)

output: even

Page 43: TKT-1212 Part 1: Introduction to System design, VHDL … · Part 1: Introduction to System design, VHDL Basics Part 1: Introduction to System design, VHDL Basics Ari Kulmala Tampere

#43/137 TKT-1212 Dig.järj.tot., syksy 2008, A. Kulmala, TTY

Even parity detection circuit

Defines packages

that are used in the

design

The interface of a

block ”even_detector”

Input a, 3 bits

Output even, 1 bit

Signals used internally

Functionality of the

block (gate level

representation)