![Page 1: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/1.jpg)
Designing with VHDL and FPGA Instructor:
Dr. Ahmad El-Banna
1
lab# 2
Fall 2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 2: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/2.jpg)
Agenda
2
Fall
2016
VHDL language constructs
Data flow and Behavioral Implementation VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 3: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/3.jpg)
3
Remember! 3 ways to do the VHDL way
Dataflow Behavioral Structural
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 4: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/4.jpg)
4
Jumping right in to a Model
• lets look at a SR latch model -- doing it the dataflow way..... ignore the extra junk for now –
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 5: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/5.jpg)
5
Modeling Interfaces • Entity declaration
• describes the input/output ports of a module
entity reg4 is
port ( 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 type reserved words
punctuation
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 6: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/6.jpg)
Basic Constructs
• Comments
• Objects
• Signals
• Variables
• Constants
• Alias
6
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 7: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/7.jpg)
Data Types in vhdl
• IEEE1164_std_logic package contains the basic standard logic.
• IEEE numeric_std package contains the arithmetic operations.
• Examples of data types :
• integer: minimal range: -(231-1) to 231-1
• boolean: (false, true)
• bit: ('0', '1')
• bit_vector: a one-dimensional array of bits
7
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 8: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/8.jpg)
Data Types in vhdl..
IEEE std_logic_1164 package
• New data type: std_logic, std_logic_vector
• std_logic:
• '0', '1': forcing logic ‘0' and forcing logic 1
• 'Z': high-impedance, as in a tri-state buffer.
• 'L' , 'H': weak logic 0 and weak logic 1, as in wired logic.
• 'U': for uninitialized.
• '-': don't-care.
• std_logic_vector
• EX: signal a: std_logic_vector(7 downto 0);
8
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 9: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/9.jpg)
Operators in vhdl
9
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 10: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/10.jpg)
Operators in vhdl..
10
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 11: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/11.jpg)
Precedence of the VHDL Operators
11
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 12: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/12.jpg)
Precedence of the VHDL Operators
12
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 13: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/13.jpg)
VHDL vs. Boolean
13
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 14: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/14.jpg)
Overloaded Operators in vhdl
14
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
There may exist multiple functions with the same name, each for a different data type. This is known as overloading of a function or operator.
![Page 15: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/15.jpg)
Concatenation operator
15
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 16: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/16.jpg)
Array aggregate
16
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 17: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/17.jpg)
Designing with VHDL and FPGA Instructor:
Dr. Ahmad El-Banna
17
lab# 3
Fall 2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 18: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/18.jpg)
Agenda
18
Fall
2016
Type conversions
Functions in std package
Process, Signals and Variables
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 19: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/19.jpg)
Types Conversion
19
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 20: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/20.jpg)
Functions in std package
20
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 21: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/21.jpg)
21
Modeling the Behavior way
• Architecture body
• describes an implementation of an entity
• may be several per entity
• Behavioral architecture
• describes the algorithm performed by the module
• contains • process statements, each containing
• sequential statements, including
• signal assignment statements and
• wait statements
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 22: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/22.jpg)
VHDL Process
22
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
• Similar to function in C lang.
![Page 23: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/23.jpg)
A process with a sensitivity list
23
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 24: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/24.jpg)
example
24
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 25: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/25.jpg)
A process with wait statement
25
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 26: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/26.jpg)
Sequential signal assignment
26
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
signal Xtmp: bit;
![Page 27: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/27.jpg)
Variables vs. signals
27
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 28: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/28.jpg)
Variables vs. signals ..
28
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 29: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/29.jpg)
Designing with VHDL and FPGA Instructor:
Dr. Ahmad El-Banna
29
lab# 4
Fall 2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 30: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/30.jpg)
Agenda
30
Fall
2016
Sequential Statements
if, case, for loop, …etc
Examples
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 31: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/31.jpg)
If statement
31
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 32: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/32.jpg)
Example 2
32
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 33: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/33.jpg)
Example 3
33
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 34: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/34.jpg)
Comparison to conditional signal assignment
34
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
Note:
![Page 35: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/35.jpg)
example
35
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 36: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/36.jpg)
Case statement
36
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 37: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/37.jpg)
Example 2
37
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 38: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/38.jpg)
Example 3
38
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 39: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/39.jpg)
Case versus if choices
• Note
• Choice values can NOT be duplicated in case statements
• However, expressions can be duplicated in if statement.
39
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 40: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/40.jpg)
Comparison to selected signal assignment
40
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
Note:
![Page 41: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/41.jpg)
Comparison to selected signal assignment ..
41
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 42: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/42.jpg)
Designing with VHDL and FPGA Instructor:
Dr. Ahmad El-Banna
42
lab# 5
Fall 2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 43: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/43.jpg)
Simple for loop statement
43
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 44: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/44.jpg)
Example
44
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 45: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/45.jpg)
Example 2
45
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 46: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/46.jpg)
Example
46
my_ckt
A
B
S
X
Y
Example: my_ckt
Inputs: A, B, C
Outputs: X, Y
VHDL description: entity my_ckt is
port (
A: in bit;
B: in bit;
S: in bit;
X: out bit;
Y: out bit);
end my_ckt ;
Functional Spec. • Behavior for output X:
• When S = 0 X <= A
• When S = 1 X <= B
• Behavior for output Y: • When X = 0 and S =0
Y <= ‘1’ • Else
Y <= ‘0’
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 47: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/47.jpg)
47
VHDL Architecture
• VHDL description (sequential behavior): architecture arch_name of my_ckt is begin p1: process (A,B,S)
• begin
if (S=‘0’) then
X <= A;
else
X <= B;
end if;
if ((X = ‘0’) and (S = ‘0’)) then
Y <= ‘1’;
else
Y <= ‘0’;
end if;
end process p1; end;
Error: Signals defined as output ports can only be driven and not read
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 48: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/48.jpg)
48
VHDL Architecture..
architecture behav_seq of my_ckt is
signal Xtmp: bit;
begin p1: process (A,B,S,Xtmp)
begin
if (S=‘0’) then
Xtmp <= A;
else
Xtmp <= B;
end if;
if ((Xtmp = ‘0’) and (S = ‘0’)) then
Y <= ‘1’;
else
Y <= ‘0’;
end if;
X <= Xtmp;
end process p1;
end;
Signals can only be defined in this place before the begin keyword
General rule: Include all signals in the sensitivity list of the process which either appear in relational comparisons or on the right side of the assignment operator inside the process construct.
In our example: Xtmp and S occur in relational comparisons A, B and Xtmp occur on the right side of the
assignment operators Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 49: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/49.jpg)
49
Example: VHDL Architecture... • VHDL description (concurrent behavior):
architecture behav_conc of my_ckt is
signal Xtmp: bit;
begin
Xtmp <= A when (S=‘0’) else
B;
Y <= ‘1’ when ((Xtmp = ‘0’) and (S = ‘0’)) else
‘0’;
X <= Xtmp;
end ;
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 50: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/50.jpg)
EXAMPLES 50
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 51: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/51.jpg)
Comparator Example Behavior Code
---------------------------------------------------
-- n-bit Comparator (ESD book figure 2.5) by Weijun Zhang, 04/2001
-- this simple comparator has two n-bit inputs & three 1-bit outputs
---------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
---------------------------------------------------
entity Comparator is
generic(n: natural :=2);
port( A: in std_logic_vector(n-1 downto 0);
B: in std_logic_vector(n-1 downto 0);
less: out std_logic;
equal: out std_logic;
greater: out std_logic
);
end Comparator;
---------------------------------------------------
51
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 52: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/52.jpg)
Comparator Example.. Behavior Code & Simulation Waveforms
architecture behv of Comparator is
begin
process(A,B)
begin
if (A<B) then
less <= '1';
equal <= '0';
greater <= '0';
elsif (A=B) then
less <= '0';
equal <= '1';
greater <= '0';
else
less <= '0';
equal <= '0';
greater <= '1';
end if;
end process;
end behv;
---------------------------------------------------
52
Simulation Waveforms
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 53: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/53.jpg)
4x1 Multiplexer
-------------------------------------------------
-- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang, 04/2001
---- Multiplexor is a device to select different inputs to outputs. we use 3 bits vector to -- describe its I/O ports
-------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
-------------------------------------------------
entity Mux is
port( I3: in std_logic_vector(2 downto 0);
I2: in std_logic_vector(2 downto 0);
I1: in std_logic_vector(2 downto 0);
I0: in std_logic_vector(2 downto 0);
S: in std_logic_vector(1 downto 0);
O: out std_logic_vector(2 downto 0)
);
end Mux;
-------------------------------------------------
53
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 54: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/54.jpg)
4x1 Multiplexer .. architecture behv1 of Mux is
begin
process(I3,I2,I1,I0,S)
begin
-- use case statement
case S is
when "00" => O <= I0;
when "01" => O <= I1;
when "10" => O <= I2;
when "11" => O <= I3;
when others => O <= "ZZZ";
end case;
end process;
end behv1;
---------------
architecture behv2 of Mux is
begin
-- use when.. else statement
O <= I0 when S="00" else
I1 when S="01" else
I2 when S="10" else
I3 when S="11" else
"ZZZ";
end behv2;
--------------------------------------------------
54
Simulation Waveforms
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 55: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/55.jpg)
Decoder
------------------------------------------------- -- 2:4 Decoder (ESD figure 2.5)-- by Weijun Zhang, 04/2001 -- decoder is a kind of inverse process-- of multiplexor ------------------------------------------------- library ieee; use ieee.std_logic_1164.all; ------------------------------------------------- entity DECODER is port( I: in std_logic_vector(1 downto 0); O: out std_logic_vector(3 downto 0) ); end DECODER; -------------------------------------------------
55
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 56: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/56.jpg)
architecture behv of DECODER is
begin
-- process statement
process (I)
begin
-- use case statement
case I is
when "00" => O <= "0001";
when "01" => O <= "0010";
when "10" => O <= "0100";
when "11" => O <= "1000";
when others => O <= "XXXX";
end case;
end process;
end behv;
architecture when_else of DECODER is
begin
-- use when..else statement
O <= "0001" when I = "00" else
"0010" when I = "01" else
"0100" when I = "10" else
"1000" when I = "11" else
"XXXX";
end when_else;
-------------------------------------------------
56
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna
![Page 57: Designing with VHDL and FPGA - bu.edu.egbu.edu.eg/portal/uploads/Engineering, Shoubra/Electrical... · -- VHDL code for 4:1 multiplexor-- (ESD book figure 2.5)-- by Weijun Zhang,](https://reader030.vdocuments.us/reader030/viewer/2022021805/5bab350109d3f2b2778db616/html5/thumbnails/57.jpg)
• For more details, refer to:
• VHDL Tutorial: Learn by Example by Weijun Zhang
• http://esd.cs.ucr.edu/labs/tutorial/
• “Introduction to VHDL” presentation by Dr. Adnan Shaout, The University of Michigan-Dearborn
• The VHDL Cookbook, Peter J. Ashenden, 1st edition, 1990.
• For inquires, send to:
57
Fall
2016
VH
DL
in P
ract
ice
© A
hmad
El-B
anna