Title: ECE 448 FPGA and ASIC Design with VHDL
1Lab 1 Introduction to Aldec Active HDL
Implementing Combinational Logic in VHDL
ECE 448 FPGA and ASIC Design with VHDL
George Mason University
2Part 1
Introduction to Aldec Active-HDL
Example Seven Segment Encoder
3(No Transcript)
4(No Transcript)
5Experiment 1 Problem 1 ALU of Motorola 68HC11
6Register structure of MC6811
Accumulators A and B or
A
B
7
7
0
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
0
7
S X H I N Z V C
7Condition 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
8Definition 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
9Definition of the Condition Code Register flags
(2)
Carry flag - C
out-of-range for unsigned numbers
C 1 if result gt MAX_UNSIGNED or
result lt 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 gt MAX_SIGNED or
result lt MIN_SIGNED
0 otherwise
where MAX_SIGNED 27-1 and MIN_SIGNED
-27
for 8-bit results
10Overflow for signed numbers (1)
Indication of overflow
Negative Negative Positive
Positive Positive Negative
11Addressing 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(IX56) ? A
ADDA 56, X ADDA 56, Y
A(IY56) ? A
12Assembly language vs. machine code
Assembly language
mnemonic operands
NEGB
ADDA 4A
ADDA 5B78
Machine code
opcode operands
50
8B 4A
BB 5B 78
13Arithmetic 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
14Arithmetic 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
15Part 2 Mini ALU
16(No Transcript)
17opcode
4
4
A
4
Mini ALU
4
R
B
4
M
18Block diagram
19Arithmetic 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
20Arithmetic 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)
-
- Clt A B
21Experiment 1 Problem 2 Variable Rotator
22Part 3 Variable rotator
23Function
C A ltltlt B
A 16-bit data input B - 4-bit rotation amount
24Interface
A
16
4
B
16
C
25Block diagram
26Fixed Rotations in VHDL
Altltlt1
A(3)
A(2)
A(2)
A(1)
A(0)
A(3)
A_rotL lt A(2 downto 0) A(3)