loCarb_VHDL_small.pdf

(486 KB) Pobierz
Microsoft Word - loCarb_VHDL_small.doc
The Low-Carb VHDL Tutorial
© Copyright: 2004 by Bryan Mealy (08-27-2004)
1
Table of Contents
TABLE OF CONTENTS
2
LIST OF FIGURES
5
LIST OF TABLES
7
LIST OF EXAMPLES
7
1 INTENT AND PURPOSE
8
2 INTRODUCTION
9
3 VHDL INVARIANTS
10
3.1 C ASE S ENSITIVITY
10
3.2 W HITE S PACE
10
3.3 C OMMENTS
10
3.4 P ARENTHESIS
11
3.5 VHDL S TATEMENTS
11
3.6 IF , CASE , AND LOOP S TATEMENTS
11
3.7 I DENTIFIERS
12
3.8 R ESERVED W ORDS
12
3.9 VHDL C ODING S TYLE
13
4 BASIC VHDL DESIGN UNITS
14
4.2 T HE A RCHITECTURE
14
5 THE VHDL PROGRAMMING PARADIGM
19
5.1 C ONCURRENT S TATEMENTS
19
5.2 T HE S IGNAL A SSIGNMENT O PERATOR “<=”
21
5.3 C ONCURRENT S IGNAL A SSIGNMENT S TATEMENTS
21
5.4 C ONDITIONAL S IGNAL A SSIGNMENT
25
5.5 S ELECTED S IGNAL A SSIGNMENT
28
5.6 T HE P ROCESS S TATEMENT
31
6 STANDARD ARCHITECTURES IN VHDL
32
2
4.1 T HE E NTITY
17
175171210.001.png
6.1 VHDL D ATAFLOW S TYLE A RCHITECTURE
32
6.2 VHDL B EHAVIOR S TYLE A RCHITECTURE
33
6.3 T HE P ROCESS S TATEMENT
33
6.4 S EQUENTIAL S TATEMENTS
34
6.4.1 S IGNAL A SSIGNMENT S TATEMENTS
35
6.4.2 IF S TATEMENTS
35
6.4.3 C ASE S TATEMENTS
39
7 VHDL OPERATORS
42
7.1 L OGICAL O PERATORS
42
7.2 R ELATIONAL O PERATORS
42
7.3 S HIFT O PERATORS
43
7.4 A LL THE R EST OF THE O PERATORS
43
7.4.1 T HE C ONCATENATION O PERATOR
44
7.4.2 T HE M ODULUS AND R EMAINDER O PERATORS
44
8 REVIEW
46
9 USING VHDL FOR SEQUENTIAL CIRCUITS
48
9.1 S IMPLE S TORAGE E LEMENTS U SING VHDL
48
10 FINITE STATE MACHINE DESIGN USING VHDL
53
10.1 O NE -H OT E NCODING FOR FSM S
63
11 STRUCTURAL MODELING USING VHDL
66
11.1 VHDL AND C OMPUTER P ROGRAMMING L ANGUAGES : E XPLOITING THE S IMILARITIES
12 DATA OBJECTS
73
12.1 T YPES OF D ATA O BJECTS
73
12.1.1 D ATA O BJECT D ECLARATIONS
73
12.1.2 V ARIABLES AND THE A SSIGNMENT O PERATOR :=
74
12.1.3 S IGNALS VS . V ARIABLES
74
12.2 D ATA T YPES
75
12.2.1 C OMMONLY U SED T YPES
75
12.2.2 I NTEGER T YPES
76
12.2.3 T HE STD _ LOGIC T YPE
77
13 LOOPING CONSTRUCTS
79
3
66
175171210.002.png
13.1 FOR AND WHILE L OOPS
79
13.1.1 FOR L OOPS
80
13.2 L OOP C ONTROL : NEXT AND EXIT S TATEMENTS
81
13.2.1 T HE NEXT S TATEMENT
81
13.2.2 T HE EXIT S TATEMENT
82
14 STANDARD DIGITAL CIRCUITS IN VHDL
83
14.1 RET D F LIP - FLOP
83
14.2 8-B IT R EGISTER WITH C HIP S ELECT
83
14.3 S YNCHRONOUS UP / DOWN COUNTER ( WITH OTHER FEATURES )
84
14.4 S HIFT R EGISTER WITH S YNCHRONOUS P ARALLEL L OAD
84
14.5 8-B IT C OMPARATOR
85
14.6 BCD TO 7-S EGMENT D ECODER
85
14.7 4:1 M ULTIPLEXER
86
14.8 3:8 D ECODER
86
A APPENDIX : VHDL RESERVED WORDS
87
4
13.1.2 WHILE L OOPS
81
175171210.003.png
List of Figures
Figure 1: An example of VHDL case insensitivity........................................................... 10
Figure 2: An example showing VHDL's indifference to white space. ............................. 10
Figure 3: Two typical uses of comments. ......................................................................... 10
Figure 4: An example of parenthesis use that produces clarity. ....................................... 11
Figure 5: Generic form of an entity declaration................................................................ 14
Figure 6: Syntax of the port_clause. ................................................................................. 15
Figure 7: Example black box and associated VHDL entity declaration. .......................... 15
Figure 8: An example of an input and output diagram of a circuit and its associated
VHDL entity. ............................................................................................................ 16
Figure 9: A few examples of bus signals of varying content............................................ 16
Figure 10: A black box example containing busses and its associated entity declaration.17
Figure 11: Some common circuit that is well known to "execute" parallel operations. ... 20
Figure 12: VHDL code that describes the circuit of Figure 11......................................... 20
Figure 13: Algorithm code similar to the code in Figure 12............................................. 21
Figure 14: Syntax for the concurrent signal assignment statement. ................................. 22
Figure 15: Solution to EXAMPLE 1 .................................................................................. 22
Figure 16: Solution to EXAMPLE 2 .................................................................................. 24
Figure 17: Alternative but functionally equivalent architecture for EXAMPLE 2 ............ 24
Figure 18: Snytax for the conditional signal assignment statement. ................................ 25
Figure 19: Solution to EXAMPLE 3. ................................................................................. 26
Figure 20: Solution for EXAMPLE 4 : A 4:1 MUX using a conditional signal assignment
statement. .................................................................................................................. 27
Figure 21: Syntax for the selected signal assignment statement....................................... 28
Figure 22: Solution to EXAMPLE 5 .................................................................................. 28
Figure 23: Solution to EXAMPLE 6 .................................................................................. 29
Figure 24: Solution to EXAMPLE 7 .................................................................................. 30
Figure 25: Syntax for the process statement. .................................................................... 33
Figure 26: Entity declaration for circuit performing XOR function................................. 34
Figure 27: Dataflow and behavioral descriptions of my_xor_fun entity........................... 34
Figure 28: Syntax for the if statement............................................................................... 35
Figure 29: Solution to EXAMPLE 8 .................................................................................. 36
Figure 30: An alternate solution for EXAMPLE 8 . .......................................................... 37
Figure 31: Solution to EXAMPLE 9 .................................................................................. 37
Figure 32: Solution to EXAMPLE 10 ................................................................................ 38
Figure 33: Syntax for the case statement. ......................................................................... 39
Figure 34: Solution to EXAMPLE 11 ................................................................................ 40
Figure 35: Solution to EXAMPLE 12 ................................................................................ 41
Figure 36: Examples of the concatenation operator. ........................................................ 44
Figure 37: Solution to EXAMPLE 13 ................................................................................ 49
Figure 38: Solution to EXAMPLE 14 ................................................................................ 50
Figure 39: Solution to EXAMPLE 15 ................................................................................ 51
Figure 40: Block diagram for a Moore-type FSM. ........................................................... 53
Figure 41: Model for VHDL implementations of FSMs. ................................................. 54
5
Zgłoś jeśli naruszono regulamin