An Introduction to VHDL Using Altera’s Quartus II IDE

44
An Introduction to VHDL Using Altera’s Quartus II IDE Dr. William M. Jones Coastal Carolina University Numbers and Bytes Meeting 20 OCT 2008

description

An Introduction to VHDL Using Altera’s Quartus II IDE. Dr. William M. Jones Coastal Carolina University Numbers and Bytes Meeting 20 OCT 2008. Pre-Intro. VHDL Very Hard Difficult Language Jk VHSIC Hardware Description Language VHSIC Very High Speed Integrated Circuits Intended uses - PowerPoint PPT Presentation

Transcript of An Introduction to VHDL Using Altera’s Quartus II IDE

Page 1: An Introduction to VHDL   Using Altera’s Quartus II IDE

An Introduction to VHDL Using Altera’s Quartus II IDE

Dr. William M. JonesCoastal Carolina University

Numbers and Bytes Meeting20 OCT 2008

Page 2: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 2

Pre-Intro

• VHDL– Very Hard Difficult Language– Jk– VHSIC Hardware Description Language

• VHSIC– Very High Speed Integrated Circuits

• Intended uses– Circuit simulation– Circuit synthesis (realization)

• FPGA’s, (C)PLDs, ASICs

Page 3: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 3

Some Background

• VHDL vice Verilog• Altera and Xilinx • VHDL is a language

– But, is very different from traditional languages– In general, all statements are CONCURRENT (parallel)– Traditional is SEQUENTIAL – Typically referred to as code as opposed to a program– VHDL is not case sensitive

• PROCESS, FUNCTION, PROCEDURE – Only places were sequential behavior is seen

Page 4: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 4

Basic VHDL Code Parts

• LIBRARY– Like #include <stdio.h> in C or import in JAVA– Commonly used pieces of code– 2 are generally included by default

• ENTITY– List of specifications for input and output PORTS– Kinda like function prototypes in C (provides interface)

• ARCHITECTURE– Provides a description of how the circuit should behave

Page 5: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 5

LIBRARY

LIBRARY library_name;USE library_name.package_name.package_parts;

LIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY std; -- included by defaultUSE std.standard.all;

LIBRARY work; -- included by defaultUSE work.all;

Page 6: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 6

ENTITY (Modeling Interfaces) (VHDL-93)

• Entity declaration– describes the input/output ports of a module

entity reg4 isport ( d0, d1, d2, d3, en, clk : in bit;

q0, q1, q2, q3 : out bit );end entity reg4;

entity name port names port mode (direction)

port typereserved words

punctuation

Page 7: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 7

PORTS – Signal Modes

• IN– Unidirectional

• OUT– Unidirectional

• INOUT– Bidirectional

• BUFFER– Used when output signal needs to be used internally

Page 8: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 8

Putting Them Together

Page 9: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 9

A Simple Multiplexer

Page 10: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 10

MUX Implementation with Pure Logic

Page 11: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 11

Synthesized Hardware (Pure Logic)

But what do you do now?

Page 12: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 12

Altera DE 2 Board

Page 13: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 13

Page 14: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 14

Page 15: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 15

Page 16: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 16

Page 17: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 17

Page 18: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 18

Page 19: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 19

MUX Implementation with WHEN/ELSE

Page 20: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 20

Synthesized Hardware (WHEN/ELSE)

Page 21: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 21

A Simple ALU

Page 22: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 22

ALU Specifications

Page 23: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 23

ALU Part 1

Page 24: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 24

ALU Part 2

Page 25: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 25

ALU Part 3

Page 26: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 26

Page 27: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 27

Page 28: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 28

Page 29: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 29

Kickin’ It Up A Notch

Combinational v. Sequential LOGIC

Page 30: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 30

Concurrent v. Sequential Code

• Code placed inside a PROCESS, FUNCTION, or PROCEDURE is executed sequentially

• Otherwise the does is executed concurrently– In parallel– Order of statements would not matter– Often called ‘dataflow’ code

• With only a few exceptions purely concurrent code will only produce ‘combinational’ circuits

• Sequential code must be employed to produce sequential logic circuits (this code can produce both in fact)

Page 31: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 31

A Simple Counter (Sequential Code Intro)

Page 32: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 32

Simple Counter Code

Page 33: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 33

Synthesized Hardware (Counter)

Page 34: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 34

Counter (Zoom 1)

Page 35: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 35

Counter (Zoom 2)

Page 36: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 36

A Counter With A Display

Page 37: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 37

Counter With Display VHDL (Part 1)

Page 38: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 38

Counter With Display (Part 2)

Page 39: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 39

Counter With Display (Part 3)

Page 40: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 40

Counter With Display (Part 4)

Page 41: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 41

Synthesized HW (Partial)

Page 42: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 42

Creating A Symbol File (Schematic)

Page 43: An Introduction to VHDL   Using Altera’s Quartus II IDE

© 2007, William M. Jones, et. al.

VHDL Quick Start 43

Page 44: An Introduction to VHDL   Using Altera’s Quartus II IDE

End of N&B Presentation

Have a nice day!