an introduction to vhdl using altera’s quartus ii ide dr. william m. jones coastal carolina...

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

Upload: allan-blake

Post on 28-Dec-2015

221 views

Category:

Documents


3 download

TRANSCRIPT

An Introduction to VHDL Using Altera’s Quartus II IDE

Dr. William M. Jones

Coastal Carolina University

Numbers and Bytes Meeting

20 OCT 2008

© 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

© 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

© 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

© 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;

© 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

© 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

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

VHDL Quick Start 8

Putting Them Together

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

VHDL Quick Start 9

A Simple Multiplexer

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

VHDL Quick Start 10

MUX Implementation with Pure Logic

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

VHDL Quick Start 11

Synthesized Hardware (Pure Logic)

But what do you do now?

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

VHDL Quick Start 12

Altera DE 2 Board

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

VHDL Quick Start 13

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

VHDL Quick Start 14

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

VHDL Quick Start 15

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

VHDL Quick Start 16

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

VHDL Quick Start 17

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

VHDL Quick Start 18

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

VHDL Quick Start 19

MUX Implementation with WHEN/ELSE

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

VHDL Quick Start 20

Synthesized Hardware (WHEN/ELSE)

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

VHDL Quick Start 21

A Simple ALU

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

VHDL Quick Start 22

ALU Specifications

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

VHDL Quick Start 23

ALU Part 1

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

VHDL Quick Start 24

ALU Part 2

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

VHDL Quick Start 25

ALU Part 3

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

VHDL Quick Start 26

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

VHDL Quick Start 27

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

VHDL Quick Start 28

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

VHDL Quick Start 29

Kickin’ It Up A Notch

Combinational v. Sequential LOGIC

© 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)

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

VHDL Quick Start 31

A Simple Counter (Sequential Code Intro)

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

VHDL Quick Start 32

Simple Counter Code

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

VHDL Quick Start 33

Synthesized Hardware (Counter)

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

VHDL Quick Start 34

Counter (Zoom 1)

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

VHDL Quick Start 35

Counter (Zoom 2)

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

VHDL Quick Start 36

A Counter With A Display

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

VHDL Quick Start 37

Counter With Display VHDL (Part 1)

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

VHDL Quick Start 38

Counter With Display (Part 2)

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

VHDL Quick Start 39

Counter With Display (Part 3)

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

VHDL Quick Start 40

Counter With Display (Part 4)

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

VHDL Quick Start 41

Synthesized HW (Partial)

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

VHDL Quick Start 42

Creating A Symbol File (Schematic)

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

VHDL Quick Start 43

End of N&B Presentation

Have a nice day!