ASIC 121: Practical VHDL Digital Design for FPGAs

23
ASIC 121: Practical VHDL Digital Design for FPGAs Tutorial 1 September 27, 2006

description

ASIC 121: Practical VHDL Digital Design for FPGAs. Tutorial 1 September 27, 2006. Contributions. I have taken some of the slides in this tutorial from Jeff Wentworth’s ASIC 120. Digital vs Analog. Analog: Continuous time varying signal. Application: Radio - PowerPoint PPT Presentation

Transcript of ASIC 121: Practical VHDL Digital Design for FPGAs

Page 1: ASIC 121: Practical VHDL Digital Design for FPGAs

ASIC 121: Practical VHDL Digital Design for FPGAs

Tutorial 1

September 27, 2006

Page 2: ASIC 121: Practical VHDL Digital Design for FPGAs

Contributions

• I have taken some of the slides in this tutorial from Jeff Wentworth’s ASIC 120

Page 3: ASIC 121: Practical VHDL Digital Design for FPGAs

Digital vs Analog

• Analog: Continuous time varying signal.– Application: Radio

• Digital: Abstraction. Two signals: 0 and 1.– Application: Computer Processors

Page 4: ASIC 121: Practical VHDL Digital Design for FPGAs

Switches

• Switches are the basic building block of Digital hardware

• Have 2 states:– On = 1, Off = 0

• Can be electrically controlled:– Ex. Relay, Vacuum Tube, Transistor

Page 5: ASIC 121: Practical VHDL Digital Design for FPGAs

Transistor

• Used in all modern digital hardware

• 3 Terminal Device

• Operation:– If C is high voltage (1) then

current flows between A and B

Transistor

A

B

C

Wires

Page 6: ASIC 121: Practical VHDL Digital Design for FPGAs

Logic Gates

• 2-input, 1-output devices

• Simpler than working with switches directly

• Inverter (NOT gate):

A X

0 1

1 0

Input OutputTruth Table

Page 7: ASIC 121: Practical VHDL Digital Design for FPGAs

Inverter Implementation

• When Input is 1:– Transistor 1: off– Transistor 2: on– Output: 0 (ground)

• When Input is 0:– Transistor 1: on– Transistor 2: off – Output: 1 (5V)

Transistor 1

5 V (1)

Input Output

Transistor 2

Ground (0)

Page 8: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: AND

A B X

0 0 0

0 1 0

1 0 0

1 1 1

Page 9: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: OR

A B X

0 0 0

0 1 1

1 0 1

1 1 1

Page 10: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: XOR

A B X

0 0 0

0 1 1

1 0 1

1 1 0

Page 11: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: NAND

A B X

0 0 1

0 1 1

1 0 1

1 1 0

Page 12: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: NOR, XNOR

A B X

0 0 1

0 1 0

1 0 0

1 1 0

A B X

0 0 1

0 1 0

1 0 0

1 1 1

Page 13: ASIC 121: Practical VHDL Digital Design for FPGAs

Building Combinational Circuits

A B C X

0 0 0 0

0 1 0 0

1 0 0 1

1 1 0 1

0 0 1 0

0 1 1 1

1 0 1 0

1 1 1 1

Page 14: ASIC 121: Practical VHDL Digital Design for FPGAs

Combinational Logic: MUX(multiplexer)

A B C X

0 0 0 0

0 1 0 0

1 0 0 1

1 1 0 1

0 0 1 0

0 1 1 1

1 0 1 0

1 1 1 1

Page 15: ASIC 121: Practical VHDL Digital Design for FPGAs

MUXs

• A MUX can be thought of as an if statement.

If C = 0 then

X = AElse if C = 1 then

X = B

• This will be useful later

Page 16: ASIC 121: Practical VHDL Digital Design for FPGAs

Binary Addition

• Adding 2 bits:– 0+0=0– 0+1=1– 1+0=1– 1+1=10

• So we need 2 inputs and 2 outputs

Page 17: ASIC 121: Practical VHDL Digital Design for FPGAs

Half Adder

A B S C

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Page 18: ASIC 121: Practical VHDL Digital Design for FPGAs

Full Adder (3-bit addition)

Page 19: ASIC 121: Practical VHDL Digital Design for FPGAs

Independent Tasks

• Modelsim – VHDL hardware simulator– Download evaluation copy from:

http://www.model.com/downloads/evaluations.asp

• Quartus II – FPGA Synthesis Tool– Download Web Edition from:

http://www.altera.com/products/software/products/quartus2web/sof-quarwebmain.html

Page 20: ASIC 121: Practical VHDL Digital Design for FPGAs

Development Boards

• For interested students there are development boards available

• Check out the DE2: http://www.altera.com/education/univ/materials/boards/unv-de2-board.html

• The DE2 comes with lab exercises and design examples

• Not cheap: $269 US

Page 21: ASIC 121: Practical VHDL Digital Design for FPGAs

Quartus II Exercise

• Open Quartus II, Select File->New Project Wizard, Select a valid working directory (should be an empty folder)

• Name the project and entity “half_adder”

• Click next for all other menus

• Select File->New. Select VHDL File

Page 22: ASIC 121: Practical VHDL Digital Design for FPGAs

Quartus II Exercise Cont• Save the file as half_adder.vhd, with the contents:

library ieee;use ieee.std_logic_1164.all;

entity half_adder is Port ( i_A, i_B : in STD_LOGIC; o_Sum, o_Carry : out STD_LOGIC );end half_adder;

architecture main of half_adder isbegin o_Sum <= i_A xor i_B; o_Carry <= i_A and i_B;end main;

Page 23: ASIC 121: Practical VHDL Digital Design for FPGAs

Quartus II Exercise Cont

• Select Processing->Start->Analysis and Synthesis

• Make sure it completes successfully

• Next Step– Read through the help file under “simulation”– Try Simulating the design