Lab 1
Download
1 / 26

ECE 448 FPGA and ASIC Design with VHDL - PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on

Lab 1 Introduction to Aldec Active HDL Implementing Combinational Logic in VHDL. ECE 44 8 – FPGA and ASIC Design with VHDL. George Mason University. Part 1. Introduction to Aldec Active-HDL. Example: Seven Segment Encoder. S6. S5. S4. S3. S2. S1. S0. DP. Experiment 1

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ECE 448 FPGA and ASIC Design with VHDL' - karah


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Lab 1

Introduction to Aldec Active HDL

Implementing Combinational

Logic in VHDL

ECE 448 – FPGA and ASIC Design with VHDL

George Mason University


Part 1

Introduction to Aldec Active-HDL

Example: Seven Segment Encoder


S6

S5

S4

S3

S2

S1

S0

DP


Experiment 1

Problem 1

ALU of Motorola 68HC11


Register structure of MC6811

Accumulators A and B or

A

B

7

0

7

0

D

Double Accumulator D

0

15

X-index register

IX

0

15

Y-index register

IY

0

15

Stack Pointer

SP

0

15

Program Counter

PC

0

15

Condition Code Register

CCR

7

0

S X H I N Z V C


Condition Code Register

CCR

7

0

S X H I N Z V C

carry / borrow

overflow

zero

negative

I-interrupt mask

half-carry (from bit 3)

X-interrupt mask

stop disable


Definition of the Condition Code Register flags (1)

Zero flag - Z

zero result

Z = 1 if result = 0

0 otherwise

Negative flag- N

negative result

N = sign bit of the result

R7 - for an 8-bit result


Definition of the Condition Code Register flags (2)

Carry flag - C

out-of-range for unsigned numbers

C = 1 if result > MAX_UNSIGNED or

result < 0

0 otherwise

where MAX_UNSIGNED = 28-1

for 8-bit results

Overflow flag - V

out-of-range for signed numbers

V = 1 if result > MAX_SIGNED or

result < MIN_SIGNED

0 otherwise

where MAX_SIGNED = 27-1 and

MIN_SIGNED = -27

for 8-bit results


Overflow for signed numbers (1)

Indication of overflow

Negative

+ Negative

= Positive

Positive

+ Positive

= Negative


Addressing modes of the ADDA instruction

Immediate mode

A + $5C  A

ADDA #$5C

Direct mode

A+ ($001B)  A

ADDA $1B

Extended mode

A + ($6D00)  A

ADDA $6D00

M

Indexed mode

A+(IX+$56)  A

ADDA $56, X

ADDA $56, Y

A+(IY+$56)  A


Assembly language vs. machine code

Assembly language

mnemonic [operands]

NEGB

ADDA #$4A

ADDA $5B78

Machine code

opcode [operands]

$50

$8B $4A

$BB $5B $78


Arithmetic instructions (1)

N Z V C

1. addition Acc + M  Acc

ADD [A, B]

ADC [A, B]

2. subtraction Acc – M  Acc

SUB [A, B]

SBC [A, B]

IMM, DIR, EXT, IND

IMM, DIR, EXT, IND

3. negation -X

NEG [A, B]

NEG

INH

EXT, IND


Arithmetic instructions (2)

N Z V C

1. addition A + B  A

ABA

2. subtraction A – B  A

SBA

INH

INH

  • unsigned multiplication

  • A x B  D

  • MUL

– – –

INH


Part 2

Mini ALU


opcode

4

4

A

4

Mini ALU

4

R

B

4

M



Arithmetic functions in vhdl 1
Arithmetic Functions in VHDL (1)

To use arithmetic operations involving

std_logic_vectors you need to include the

following library packages:

library ieee;

use ieee.std_logic_1164.all;

use ieee.STD_LOGIC_UNSIGNED.ALL;


Arithmetic functions in vhdl 2
Arithmetic Functions in VHDL (2)

You can use standard +, - operators

to perform addition and subtraction:

signal A : STD_LOGIC_VECTOR(3 downto 0);

signal B : STD_LOGIC_VECTOR(3 downto 0);

signal C : STD_LOGIC_VECTOR(3 downto 0);

……

C<= A + B;


Experiment 1

Problem 2

Variable Rotator


Part 3

Variable rotator


Function
Function

C = A <<< B

A – 16-bit data input

B - 4-bit rotation amount


Interface
Interface

A

16

4

B

16

C



Fixed rotations in vhdl

A(1)

A(0)

Fixed Rotations in VHDL

A<<<1

A(3)

A(2)

A(2)

A(1)

A(0)

A(3)

A_rotL <= A(2 downto 0) & A(3)


ad