[go: up one dir, main page]

0% found this document useful (0 votes)
7 views52 pages

07 - Combinational Logic - Comparators

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 52

Combinational Logic:

COMPARATORS

Digital Systems Design


OBJECTIVES
• Describe combinational logic circuits
• Design multiplexers and
demultiplexers
• Design decoders and encoders
• Design code converters
• Design comparison circuits
• Design Arithmetic circuits
• Write VHDL codes for basic
combinational circuits
ONE-bit comparator
ONE-bit comparator

Designed Circuit

Quartus Generated Circuit


TWO-bit comparator – Hierarchical implementation
THREE-bit comparator
• Two binary numbers are equal if their corresponding bits are equal.

x : IN STD_LOGIC_VECTOR (2 DOWNTO 0)
3
Comparator q : OUT STD_LOGIC

y : IN STD_LOGIC_VECTOR (2 DOWNTO 0)
3
THREE-bit comparator
• Two binary numbers are equal if their corresponding bits are equal.

x : IN STD_LOGIC_VECTOR (2 DOWNTO 0)
3
Comparator q : OUT STD_LOGIC

y : IN STD_LOGIC_VECTOR (2 DOWNTO 0)
3

𝑥 = 𝑦 ⇒ 𝑥(2)⨁𝑦(2) (𝑥1)⨁𝑦(1) 𝑥 0 ⨁𝑦(0) = 1


THREE-bit comparator
3-bit Comparator VHDL Code

Quartus Generated Circuit


GENERIC statement
• GENERIC is a way of specifying a generic parameter

• A static parameter that can be modified and adapted to different


applications.

• The purpose is to confer the code more flexibility and reusability.


GENERIC statement

• A GENERIC must be declared in the ENTITY.


• The specified parameter will then be truly global (that is, visible to the
whole design, including the ENTITY itself ).
Example:

• Design a combinational circuit that receives as input n-bit vector, and


its output will be ‘1’ if all bits of the input are 1´s.
Example: AND Reduction

N inputs
Example: AND Reduction

x(n-1)
´1´

x(2)
´1´

x(1)
´1´

x(0)
´1´
Example: AND Reduction
Example: AND Reduction
Example: AND Reduction
Example: AND Reduction
Example: AND Reduction
Example: AND Reduction
Example: AND Reduction
GENERATE Statement
• GENERATE is a concurrent statement.
• It allows a section of code to be repeated a number of times, thus
creating several instances of the same assignments.

• Notice that GENERATE must be labeled.


N-bit Equality

• Let´s go back to the problem of the generic N-bit equality

x : IN STD_LOGIC_VECTOR (N-1 DOWNTO 0)


N Lg/ls eq : OUT STD_LOGIC
Comparator
y : IN STD_LOGIC_VECTOR (N-1 DOWNTO 0)
N
N-bit Equality
x(n-1) in0
1-Bit eq
Comparator
y(n-1) in1

inN
eq
andReduction eq
x(1) in0
1-Bit
in1
eq
Comparator in0
y(1) in1

x(0) in0
1-Bit eq
Comparator
y(0) in1
N-bit Equality
N-bit Equality
N-bit Equality
N-bit Comparator Instantiation with 4-bits Quartus Generated Circuit
N-bit Equality
N-bit Comparator Instantiation with 8-bits Quartus Generated Circuit
GreaterThan – LessThan Comparator
• A circuit to determine whether one binary number is greater than
another, or less than another.

x : IN STD_LOGIC_VECTOR (2 DOWNTO 0) eq : OUT STD_LOGIC


3 Lg/ls
Comparator Lg : OUT STD_LOGIC
y : IN STD_LOGIC_VECTOR (2 DOWNTO 0)
3 Ls : OUT STD_LOGIC
GreaterThan – LessThan Comparator

x :=“101” x :=“101”

y :=“110” y :=“011”

x :=“011” x :=“010”

y :=“011” y :=“011”
GreaterThan – LessThan Comparator

x :=“101” ‘0’ x :=“101” ‘0’


‘0’ ‘1’
y :=“110” y :=“011”
‘1’ ‘0’

x :=“011” ‘1’ x :=“010” ‘0’


‘0’ ‘0’
y :=“011” y :=“011”
‘0’ ‘1’
THREE-bit GreaterThan
x2 x1 x0 y2 y1 y0 LG x2 x1 x0 y2 y1 y0 LG
0 0 0 0 0 0 0 1 0 0 0 0 0 1
0 0 0 0 0 1 0 1 0 0 0 0 1 1
0 0 0 0 1 0 0 1 0 0 0 1 0 1
0 0 0 0 1 1 0 1 0 0 0 1 1 1
0 0 0 1 0 0 0 1 0 0 1 0 0 0
0 0 0 1 0 1 0 1 0 0 1 0 1 0
0 0 0 1 1 0 0 1 0 0 1 1 0 0
0 0 0 1 1 1 0 1 0 0 1 1 1 0
0 0 1 0 0 0 0 1 0 1 0 0 0 1
0 0 1 0 0 1 0 1 0 1 0 0 1 1
0 0 1 0 1 0 0 1 0 1 0 1 0 1
0 0 1 0 1 1 0 1 0 1 0 1 1 1
0 0 1 1 0 0 0 1 0 1 1 0 0 1
0 0 1 1 0 1 0 1 0 1 1 0 1 0
0 0 1 1 1 0 0 1 0 1 1 1 0 0
0 0 1 1 1 1 0 1 0 1 1 1 1 0
0 1 0 0 0 0 1 1 1 0 0 0 0 1
0 1 0 0 0 1 1 1 1 0 0 0 1 1
0 1 0 0 1 0 0 1 1 0 0 1 0 1
0 1 0 0 1 1 0 1 1 0 0 1 1 1
0 1 0 1 0 0 0 1 1 0 1 0 0 1
0 1 0 1 0 1 0 1 1 0 1 0 1 1
0 1 0 1 1 0 0 1 1 0 1 1 0 0
0 1 0 1 1 1 0 1 1 0 1 1 1 0
0 1 1 0 0 0 1 1 1 1 0 0 0 1
0 1 1 0 0 1 1 1 1 1 0 0 1 1
0 1 1 0 1 0 1 1 1 1 0 1 0 1
0 1 1 0 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 0 0 1 1 1 1 0 0 1
0 1 1 1 0 1 0 1 1 1 1 0 1 1
0 1 1 1 1 0 0 1 1 1 1 1 0 1
0 1 1 1 1 1 0 1 1 1 1 1 1 0
THREE-bit comparator
x2 x1 x0 y2 y1 y0 LG x2 x1 x0 y2 y1 y0 LG
0 0 0 0 0 0 0 m0 1 0 0 0 0 0 1 m32 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 0 0 0 1 0 m1 1 0 0 0 0 1 1 m33 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 0 0 1 0 0 m2 1 0 0 0 1 0 1 m34 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 0 0 1 1 0 m3 1 0 0 0 1 1 1 m35 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 0 1 0 0 0 m4 1 0 0 1 0 0 0 m36
0 0 0 1 0 1 0 m5 1 0 0 1 0 1 0 m37
0 0 0 1 1 0 0 m6 1 0 0 1 1 0 0 m38
0 0 0 1 1 1 0 m7 1 0 0 1 1 1 0 m39
0 0 1 0 0 0 0 m8 1 0 1 0 0 0 1 m40 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 1 0 0 1 0 m9 1 0 1 0 0 1 1 m41 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 1 0 1 0 0 m10 1 0 1 0 1 0 1 m42 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 1 0 1 1 0 m11 1 0 1 0 1 1 1 m43 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 1 1 0 0 0 m12 1 0 1 1 0 0 1 m44 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 0 1 1 0 1 0 m13 1 0 1 1 0 1 0 m45
0 0 1 1 1 0 0 m14 1 0 1 1 1 0 0 m46
0 0 1 1 1 1 0 m15 1 0 1 1 1 1 0 m47
0 1 0 0 0 0 1 m16 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0 1 1 0 0 0 0 1 m48 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 0 0 1 1 m17 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0 1 1 0 0 0 1 1 m49 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 0 1 0 0 m18 1 1 0 0 1 0 1 m50 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 0 1 1 0 m19 1 1 0 0 1 1 1 m51 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 1 0 0 0 m20 1 1 0 1 0 0 1 m52 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 1 0 1 0 m21 1 1 0 1 0 1 1 m53 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 0 1 1 0 0 m22 1 1 0 1 1 0 0 m54
0 1 0 1 1 1 0 m23 1 1 0 1 1 1 0 m55
0 1 1 0 0 0 1 m24 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0 1 1 1 0 0 0 1 m56 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 0 0 1 1 m25 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0 1 1 1 0 0 1 1 m57 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 0 1 0 1 m26 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0 1 1 1 0 1 0 1 m58 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 0 1 1 0 m27 1 1 1 0 1 1 1 m59 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 1 0 0 0 m28 1 1 1 1 0 0 1 m60 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 1 0 1 0 m29 1 1 1 1 0 1 1 m61 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 1 1 0 0 m30 1 1 1 1 1 0 1 m62 → 𝑥2 𝑥1 𝑥0 𝑦2 𝑦1 𝑦0
0 1 1 1 1 1 0 m31 1 1 1 1 1 1 0 m63
THREE-bit GreaterThan
Table 1
Group minterm Binary
x2 x1 x0 y2 y1 y0 Minterm
0 - - - - - - -
0 1 0 0 0 0 m16
m16 0 1 0 0 0 0
0 1 0 0 0 1 m17 1
m32 1 0 0 0 0 0
0 1 1 0 0 0 m24
m17 0 1 0 0 0 1
0 1 1 0 0 1 m25
m24 0 1 1 0 0 0
0 1 1 0 1 0 m26
m33 1 0 0 0 0 1
1 0 0 0 0 0 m32 2
m34 1 0 0 0 1 0
1 0 0 0 0 1 m33
m40 1 0 1 0 0 0
1 0 0 0 1 0 m34
m48 1 1 0 0 0 0
1 0 0 0 1 1 m35
m25 0 1 1 0 0 1
1 0 1 0 0 0 m40
m26 0 1 1 0 1 0
1 0 1 0 0 1 m41
m35 1 0 0 0 1 1
1 0 1 0 1 0 m42
m41 1 0 1 0 0 1
1 0 1 0 1 1 m43
3 m42 1 0 1 0 1 0
1 0 1 1 0 0 m44
m44 1 0 1 1 0 0
1 1 0 0 0 0 m48
m49 1 1 0 0 0 1
1 1 0 0 0 1 m49
m50 1 1 0 0 1 0
1 1 0 0 1 0 m50
m52 1 1 0 1 0 0
1 1 0 0 1 1 m51
m43 1 0 1 0 1 1
1 1 0 1 0 0 m52
4 m51 1 1 0 0 1 1
m53 1 1 0 1 0 1
Table 2
Group minterm Binary

THREE-bit GreaterThan 0
m16-m17
- -
0
-
1
- -
0 0
-
0
-
-
Table 1 m16-m24 0 1 - 0 0 0
Group minterm Binary m32-m33 1 0 0 0 0 -
1
0 - - - - - - - m32-m24 1 0 0 0 - 0
m16 0 1 0 0 0 0 m32-m40 1 0 - 0 0 0
1 m32-m48 1 - 0 0 0 0
m32 1 0 0 0 0 0
m17 0 1 0 0 0 1 m17-m25 0 1 - 0 0 1
m24 0 1 1 0 0 0 m24-m25 0 1 1 0 0 -
m33 1 0 0 0 0 1 m24-m26 0 1 1 0 - 0
2 m34-m35 1 0 0 0 1 -
m34 1 0 0 0 1 0
m40 1 0 1 0 0 0 m34-m42 1 0 - 0 1 0
m48 1 1 0 0 0 0 2 m40-m41 1 0 1 0 0 -
m25 0 1 1 0 0 1 m40-m42 1 0 1 0 - 0
m26 0 1 1 0 1 0 m40-m44 1 0 1 - 0 0
m35 1 0 0 0 1 1 m48-m49 1 1 0 0 0 -
m41 1 0 1 0 0 1 m48-m50 1 1 0 0 - 0
3 m42 1 0 1 0 1 0 m48-m52 1 1 0 - 0 0
m44 1 0 1 1 0 0 m35-m43 1 0 - 0 1 1
m49 1 1 0 0 0 1 m35-m51 1 - 0 0 1 1
m50 1 1 0 0 1 0 m41-m43 1 0 1 0 - 1
m52 1 1 0 1 0 0 m42-m43 1 0 1 0 1 -
3
m43 1 0 1 0 1 1 m49-m51 1 1 0 0 - 1
4 m51 1 1 0 0 1 1 m49-m53 1 1 0 - 0 1
m53 1 1 0 1 0 1 m50-m51 1 1 0 0 1 -
m52-m53 1 1 0 1 0 -
THREE-bit comparator Group minterm
Table 3
Binary
Table 2 m16-m17-m24-m25 0 1 0 0 0 -
Group minterm Binary
0 - - - - - - -
m16-m17-m48-m49 - 1 0 0 0 -
m16-m17 0 1 0 0 0 - m16-m24-m17-m25 0 1 - 0 0 -
m16-m24 0 1 - 0 0 0 m32-m33-m34-m35 1 0 0 0 - -
m32-m33 1 0 0 0 0 - 1 m32-m33-m40-m41 1 0 - 0 0 -
1
m32-m24 1 0 0 0 - 0
m32-m40 1 0 - 0 0 0
m32-m33-m48-m49 1 - 0 0 0 -
m32-m48 1 - 0 0 0 0 m32-m40-m34-m42 1 0 - 0 - 0
m17-m25 0 1 - 0 0 1 m32-m24 1 0 0 0 - 0
m24-m25 0 1 1 0 0 - m32-m48 1 - 0 0 0 0
m24-m26 0 1 1 0 - 0
m24-m26 0 1 1 0 - 0
m34-m35 1 0 0 0 1 -
m34-m42 1 0 - 0 1 0 m34-m35-m42-m43 1 0 - 0 1 -
2 m40-m41 1 0 1 0 0 - m34-m35-m50-m51 1 - 0 0 1 -
m40-m42 1 0 1 0 - 0 m34-m42-m35-m43 1 0 - 0 1 -
m40-m44 1 0 1 - 0 0
m40-m42-m41-m43 1 0 1 0 - -
m48-m49 1 1 0 0 0 -
m48-m50 1 1 0 0 - 0 2 m48-m49-m52-m53 1 1 0- 0-
m48-m52 1 1 0 - 0 0 m48-m52-m49-m53 1 1 0- 0-
m35-m43 1 0 - 0 1 1 m24-m26 0 1 1 0 - 0
m35-m51 1 - 0 0 1 1
m40-m42 1 0 1 0 - 0
m41-m43 1 0 1 0 - 1
m42-m43 1 0 1 0 1 - m40-m44 1 0 1 - 0 0
3
m49-m51 1 1 0 0 - 1 m48-m50 1 1 0 0 - 0
m49-m53 1 1 0 - 0 1 m35-m51 1 - 0 0 1 1
m50-m51 1 1 0 0 1 - 4
m49-m51 1 1 0 0 - 1
m52-m53 1 1 0 1 0 -
THREE-bit GreaterThan Table 4
Group minterm Binary m16 m17 m24 m25 m26 m32 m33 m34 m35 m40 m41 m42 m43 m44 m48 m49 m50 m51 m52 m53
m16-m17-m24-m25 0 1 - 0 0 - X X X X
m16-m17-m48-m49 - 1 0 0 0 - X X X X
m16-m24-m17-m25 0 1 - 0 0 - X X X X
m32-m33-m34-m35 1 0 0 0 - - X X X X
1 m32-m33-m40-m41 1 0 - 0 0 - X X X X
m32-m33-m48-m49 1 - 0 0 0 - X X X X
m32-m40-m34-m42 1 0 - 0 - 0 X X X X
m32-m24 1 0 0 0 - 0 X X
m32-m48 1 - 0 0 0 0 X X
m24-m26 0 1 1 0 - 0 X X
m34-m35-m42-m43 1 0 - 0 1 - X X X X
m34-m35-m50-m51 1 - 0 0 1 - X X X X
m34-m42-m35-m43 1 0 - 0 1 - X X X X
m40-m42-m41-m43 1 0 1 0 - - X X X X
2 m48-m49-m52-m53 1 1 0- 0 - X X X X
m48-m52-m49-m53 1 1 0- 0 - X X X X
m24-m26 0 1 1 0 - 0 X X
m40-m42 1 0 1 0 - 0 X X
m40-m44 1 0 1 - 0 0 X X
m48-m50 1 1 0 0 - 0 X X
m35-m51 1 - 0 0 1 1 X X
4
m49-m51 1 1 0 0 - 1 X X

𝑓 = 𝑥2 𝑥1 𝑥0 𝑦1 𝑥0 +
THREE-bit GreaterThan Table 4
Group minterm Binary m16 m17 m24 m25 m26 m32 m33 m34 m35 m40 m41 m42 m43 m44 m48 m49 m50 m51 m52 m53
m16-m17-m24-m25 0 1 - 0 0 - X X X X
m16-m17-m48-m49 - 1 0 0 0 - X X X X
m16-m24-m17-m25 0 1 - 0 0 - X X X X
m32-m33-m34-m35 1 0 0 0 - - X X X X
1 m32-m33-m40-m41 1 0 - 0 0 - X X X X
m32-m33-m48-m49 1 - 0 0 0 - X X X X
m32-m40-m34-m42 1 0 - 0 - 0 X X X X
m32-m24 1 0 0 0 - 0 X X
m32-m48 1 - 0 0 0 0 X X
m24-m26 0 1 1 0 - 0 X X
m34-m35-m42-m43 1 0 - 0 1 - X X X X
m34-m35-m50-m51 1 - 0 0 1 - X X X X
m34-m42-m35-m43 1 0 - 0 1 - X X X X
m40-m42-m41-m43 1 0 1 0 - - X X X X
2 m48-m49-m52-m53 1 1 0- 0 - X X X X
m48-m52-m49-m53 1 1 0- 0 - X X X X
m24-m26 0 1 1 0 - 0 X X
m40-m42 1 0 1 0 - 0 X X
m40-m44 1 0 1 - 0 0 X X
m48-m50 1 1 0 0 - 0 X X
m35-m51 1 - 0 0 1 1 X X
4
m49-m51 1 1 0 0 - 1 X X

𝑓 = 𝑥2 𝑥1 𝑥0 𝑦1 𝑥0 + 𝑥2 𝑥1 𝑦2 𝑦1
THREE-bit GreaterThan Table 4
Group minterm Binary m16 m17 m24 m25 m26 m32 m33 m34 m35 m40 m41 m42 m43 m44 m48 m49 m50 m51 m52 m53
m16-m17-m24-m25 0 1 - 0 0 - X X X X
m16-m17-m48-m49 - 1 0 0 0 - X X X X
m16-m24-m17-m25 0 1 - 0 0 - X X X X
m32-m33-m34-m35 1 0 0 0 - - X X X X
1 m32-m33-m40-m41 1 0 - 0 0 - X X X X
m32-m33-m48-m49 1 - 0 0 0 - X X X X
m32-m40-m34-m42 1 0 - 0 - 0 X X X X
m32-m24 1 0 0 0 - 0 X X
m32-m48 1 - 0 0 0 0 X X
m24-m26 0 1 1 0 - 0 X X
m34-m35-m42-m43 1 0 - 0 1 - X X X X
m34-m35-m50-m51 1 - 0 0 1 - X X X X
m34-m42-m35-m43 1 0 - 0 1 - X X X X
m40-m42-m41-m43 1 0 1 0 - - X X X X
2 m48-m49-m52-m53 1 1 0- 0 - X X X X
m48-m52-m49-m53 1 1 0- 0 - X X X X
m24-m26 0 1 1 0 - 0 X X
m40-m42 1 0 1 0 - 0 X X
m40-m44 1 0 1 - 0 0 X X
m48-m50 1 1 0 0 - 0 X X
m35-m51 1 - 0 0 1 1 X X
4
m49-m51 1 1 0 0 - 1 X X

𝑓 = 𝑥2 𝑥1 𝑥0 𝑦1 𝑥0 + 𝑥2 𝑥1 𝑦2 𝑦1 + 𝑥2 𝑥1 𝑥0 𝑦2
THREE-bit GreaterThan Table 4
Group minterm Binary m16 m17 m24 m25 m26 m32 m33 m34 m35 m40 m41 m42 m43 m44 m48 m49 m50 m51 m52 m53
m16-m17-m24-m25 0 1 - 0 0 - X X X X
m16-m17-m48-m49 - 1 0 0 0 - X X X X
m16-m24-m17-m25 0 1 - 0 0 - X X X X
m32-m33-m34-m35 1 0 0 0 - - X X X X
1 m32-m33-m40-m41 1 0 - 0 0 - X X X X
m32-m33-m48-m49 1 - 0 0 0 - X X X X
m32-m40-m34-m42 1 0 - 0 - 0 X X X X
m32-m24 1 0 0 0 - 0 X X
m32-m48 1 - 0 0 0 0 X X
m24-m26 0 1 1 0 - 0 X X
m34-m35-m42-m43 1 0 - 0 1 - X X X X
m34-m35-m50-m51 1 - 0 0 1 - X X X X
m34-m42-m35-m43 1 0 - 0 1 - X X X X
m40-m42-m41-m43 1 0 1 0 - - X X X X
2 m48-m49-m52-m53 1 1 0- 0 - X X X X
m48-m52-m49-m53 1 1 0- 0 - X X X X
m24-m26 0 1 1 0 - 0 X X
m40-m42 1 0 1 0 - 0 X X
m40-m44 1 0 1 - 0 0 X X
m48-m50 1 1 0 0 - 0 X X
m35-m51 1 - 0 0 1 1 X X
4
m49-m51 1 1 0 0 - 1 X X

𝑓 = 𝑥2 𝑥1 𝑥0 𝑦1 𝑥0 + 𝑥2 𝑥1 𝑦2 𝑦1 + 𝑥2 𝑥1 𝑥0 𝑦2 + 𝑥2 𝑥1 𝑥0 𝑦1
GreaterThan – LessThan Comparator
• To determine whether one binary number is greater than another, the
most significant bits (MSBs) are tested first:
• If they were not equal, the number with an MSB of 1 is the larger number.
• If the MSBs are equal, the next bit positions are tested using the same
process.
• The complement of the process is used to determine whether one
binary number is less than another.
GreaterThan – LessThan Comparator
• To determine whether one binary number is greater than another, the
most significant bits (MSBs) are tested first:
• If they were not equal, the number with an MSB of 1 is the larger number.
• If the MSBs are equal, the next bit positions are tested using the same
process.
• The complement of the process is used to determine whether one
binary number is less than another.
GreaterThan – LessThan Comparator

• To determine whether one binary number is greater than another, the


most significant bits (MSBs) are tested first:
• If they were not equal, the number with an MSB of 1 is the larger number.
• If the MSBs are equal, the next bit positions are tested using the same
process.
• The complement of the process is used to determine whether one
binary number is less than another.
GreaterThan – LessThan Comparator

• To determine whether one binary number is greater than another, the


most significant bits (MSBs) are tested first:
• If they were not equal, the number with an MSB of 1 is the larger number.
• If the MSBs are equal, the next bit positions are tested using the same
process.
• The complement of the process is used to determine whether one
binary number is less than another.
GreaterThan – LessThan Comparator
𝑥 > 𝑦 ⇒ 𝑥 2 𝑦 2 + (𝑥 2 𝑦 2 ) 𝑥 1 𝑦 1 + (𝑥 1 𝑦 1 ) 𝑥 0 𝑦 0 =1
x2 x1 x0 y2 y1 y0 LG x2' x1' x0' y2' y1' y0' x1y1′ x1′y1 (x1′y1)' (x0y0′) (x1′y1)′(x0y0′) x1y1′ + (x1′y1)′(x0y0′) x2y2' x2'y2 (x2'y2)' G
0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0
0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0
0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0
0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0
0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0
0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0
0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1
0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0
0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0
0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0
0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0
0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0
0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0
0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1
0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1
0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0
0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0
0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0
0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0
0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0
0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1
0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1
0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1
0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0
0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0
0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0
0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0
0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0
GreaterThan – LessThan Comparator
𝑥 > 𝑦 ⇒ 𝑥 2 𝑦 2 + (𝑥 2 𝑦 2 ) 𝑥 1 𝑦 1 + (𝑥 1 𝑦 1 ) 𝑥 0 𝑦 0 =1
x2 x1 x0 y2 y1 y0 LG x2' x1' x0' y2' y1' y0' x1y1′ x1′y1 (x1′y1)' (x0y0′) (x1′y1)′(x0y0′) x1y1′ + (x1′y1)′(x0y0′) x2y2' x2'y2 (x2'y2)' G
1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1
1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 1 1
1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1
1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1
1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0
1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0
1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0
1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1
1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1
1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 1
1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1
1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0
1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0
1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0
1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1
1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1
1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1
1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1
1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1
1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1
1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0
1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1
1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1
1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1
1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1
1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1
1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1
1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1
1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
2-bit Lg-Ls Comparator

Lg

Ls
2-bit Lg-Ls Comparator

Lg

Ls
N-bit Equality
N-bit Generic Comparator VHDL Code

Quartus Generated Circuit


N-bit Equality
N-bit Generic Comparator VHDL Code

Quartus Generated Circuit

You might also like