pld (eg. palkth.s3-website-eu-west-1.amazonaws.com/.../f7kombinatorikkretsar_… · pld (eg. pal)...
TRANSCRIPT
![Page 1: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/1.jpg)
PLD (eg. PAL)
William Sandqvist [email protected]
Typically 8 logic elements Technology: AND-OR array
![Page 2: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/2.jpg)
CPLD (eg. MAX)
Typically 64 Macrocells
Technology : AND-OR array
(larger MAX circuits uses MUX-tree technique)
William Sandqvist [email protected]
![Page 3: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/3.jpg)
Gates with many inputs?
William Sandqvist [email protected]
VA
VB
VC
VQ
VDD
VSS
Everyone must lead to get "0" = slow when there are many inputs
PAL matrix has gates has so many inputs that you have to draw them in a "simplified way"
CMOS NAND
![Page 4: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/4.jpg)
As bad with CMOS NOR
William Sandqvist [email protected]
Everyone must lead to get "1" = slow when there are many inputs
(one of them must lead to get "0" = fast)
CMOS NOR
![Page 5: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/5.jpg)
Fast, but with high power dissipation
"Pull-Up" resistor provides "1" = Fast but "Power Hungry" when output is "0"
Just one must lead to get "0"? = Fast
NMOS NOR
William Sandqvist [email protected]
Can be used for many inputs, but NMOS will use much more power than the CMOS!
![Page 6: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/6.jpg)
Large programmable circuits
William Sandqvist [email protected]
There is therefore a need for other techniques not based on gates with many inputs, in order to be able to build large programmable circuits in CMOS technology!
![Page 7: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/7.jpg)
Typically 50000 logic elements
FPGA (eg. Cyclone II)
William Sandqvist [email protected]
Technology : MUX tree
![Page 8: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/8.jpg)
The Multiplexor MUX
William Sandqvist [email protected]
1
0
X
Y
S
Z
Z = SX + S Y
The multiplexer can select which input you are going to connect to the output. MUX is now the "standard component" in the development of Digital Logic.
![Page 9: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/9.jpg)
Multiplexer MUX
William Sandqvist [email protected]
1
0
X
Y
S
Z
Z = SX + S Y
To the right we have a MUX in rope technology - April 1-joke from Scientific American!
Did you recognize that it was a MUX that was the "secret" circuit at LAB1?
![Page 10: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/10.jpg)
Logical functions with MUX
William Sandqvist [email protected]
1
0
X
Y
S
Z
Z = SX + S Y
How can the following functions be implemented with a 2: 1 Multiplexer?
XORxxZORxxZ
ANDxxZNOTxZ
01
01
01
0
⊕=+=⋅=
=
?
![Page 11: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/11.jpg)
Quickie Question …
William Sandqvist [email protected]
How to connect the inputs of the MUX in order to implement an inverter?
Desired function:
![Page 12: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/12.jpg)
Invertering NOT with MUX
William Sandqvist [email protected]
1
0
0
1 Z
Input (x0)
1 0
x0 0 1
Specification: if input = ’1’ then result <= ’0’ if input = ’0’ then result <= ’1’;
0 00 0 1
Z S X S Y
x x x NOT
= ⋅ + ⋅ =
= ⋅ + ⋅ =
X
Y
S
![Page 13: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/13.jpg)
William Sandqvist [email protected]
Quickie Question … How to connect the inputs of the MUX in order to implement an and gate?
Desired function:
![Page 14: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/14.jpg)
AND-function with MUX
William Sandqvist [email protected]
1
0
x0
0 Z
x1
0 0
0 1
x0 x1
0 1
0 1
ANDxxZ 01 ⋅=
Specification:
01101 0 xxxxxYSSXZ ⋅=⋅+⋅=+=
X
Y
S
![Page 15: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/15.jpg)
OR-function with MUX
William Sandqvist [email protected]
1
0 x0
1 Z
x1
0 1
1 1
x0 x1
0 1
0 1
ORxxZ 01 +=
Specification:
1 01 0 0 1
0 11 0 0
11 0
{ } ( )
1
Z x x x x x x
SX SY x x x x x
x x x
= + + =
= + = + + ⋅ =
= ⋅ + ⋅
X
Y
S
![Page 16: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/16.jpg)
XOR-function with MUX
William Sandqvist [email protected]
1
0 Z
x1
0 1
1 0
x0 x1
0 1
0 1
XORxxZ 01 ⊕=
Specification:
010101 xxxxxx
YSSXZ
⊕=⋅+⋅=
=+=
0x
0x
X
Y
S
![Page 17: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/17.jpg)
Hierarchies of muxes
William Sandqvist [email protected]
1
0
x11
x10
Z
s1
1
0
1
0
x01
x00
s0
11 10 01 00
Z
x11 x10 x01 x00
s1s0
=
![Page 18: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/18.jpg)
Complex functions with MUXes
William Sandqvist [email protected]
1 1 0 0
0 1 1 0
x y z 00 01 11 10
0 1
x y
f
Choose any of the inputs as address inputs ...
... And minimize / implement function that occur? For each input. Draw new Karnaugh diagrams if necessary.
11 10 01 00
An (n + 1)-input function could be implemented with a MUX having n select-inputs!
zyyxxzf ++=z
z
10
![Page 19: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/19.jpg)
Shannon decomposition
William Sandqvist [email protected]
Claude Shannon mathematician / electrical engineer (1916 –2001)
f xn
x0 x1
f1 xn
1 x1
f0 xn
x1
f
x0 0
![Page 20: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/20.jpg)
Shannon decomposition
William Sandqvist [email protected]
f xn
x0 x1
f1 xn
1 x1
f0 xn
x1
f
x0
A Boolean function f(xn, …, x1, x0) can be divided to
0
)0,,...,()1,,...,(),,...,( 101001 xxfxxxfxxxxf nnn ⋅+⋅=
The function can then be implemented with a multiplexer.
![Page 21: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/21.jpg)
Recursively All Boolean functions f(xn, …, x1, x0) can be broken down (recursively) to
William Sandqvist [email protected]
)0,,...,()1,,...,(),,...,( 10011001 xxfxxxfxxxxf nnn ⋅+⋅=
1
0
f11
f10
f
x0
1
0
1
0
f01
f00
x1
1
0 f
x0
f1
f0
)0,,...,()1,,...,(),...,( 2101211111 xxfxxxfxxxf nnn ⋅+⋅=
and so on. f0000 …
f1
f0
![Page 22: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/22.jpg)
Proof
William Sandqvist [email protected]
Right hand side: if x0=1 so is the right term zero. Then the f is equal to the left term. if x0=0 so is the left term zero. Then the f is equal to the right term.
Left hand side:
if x0=1 so is f equal to f(xn,...,x1,1) (= left term on right side) if x0=0 so is f equal to f(xn,...,x1,0) (= right term on right side)
LHS=RHS
)0,,...,()1,,...,(),,...,( 101001 xxfxxxfxxxxf nnn ⋅+⋅=
![Page 23: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/23.jpg)
MUX networks
William Sandqvist [email protected]
1 0
z
1 0
1 0
y
1 0
1 0
1 0
1 0
x
111 1 011 0
101 0 001 1
110 0 010 1
100 1 000 0
Address Address pins
Value
0 1 0 1
1 0 1 0
yz x 00 01 11 10
0 1
One can see xyz as an address, to the squares in the Karnaughmap. With values 1/0 from the squares to the inputs of the MUX the function f is realized.
f
f
![Page 24: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/24.jpg)
Look-up-table (LUT)
William Sandqvist [email protected]
0/1
0/1
0/1
0/1
x1
x2
f
Two-input LUT
Programmable cells
1
0
1
0
1
0
A LUT with n inputs can realize all combinational functions with n inputs
![Page 25: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/25.jpg)
LUT for XOR-gate
William Sandqvist [email protected]
0
1
1
0
x1
x2
f
Two-input LUT
1
0
1
0
1
0
1 2
1 1 01 0 10 1 10 0 0
x x f
![Page 26: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/26.jpg)
A simple FPGA cell
William Sandqvist [email protected]
LUT D Q
CLK
A B C D M
RESET
S 0 1
The simplest FPGA cell consists of a single Look-Up-Table - LUT, a D flip-flop and a bypass mux. D flip-flop is a memory circuit for synchronization – it will come later in the course. With the bypass mux one can exclude the D flip-flop when not needed.
LUT A B C D
f
D-flipflop will be explained soon in this course
![Page 27: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/27.jpg)
LUT function number
MSB
LSB
69960123 "0101100110100110"),,,( fxxxxf ==
William Sandqvist [email protected]
Do you recognize the function ...?
The functions that are stored in a LUT are usually numbered after the number that is made up of the 1's in the truth table / Karnaugh map.
Bit # 15 Bit # 0 Bit # 1
![Page 28: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/28.jpg)
LUT function number 69960123 "0101100110100110"),,,( fxxxxf ==
William Sandqvist [email protected]
01236996 xxxxf ⊕⊕⊕=
Now you know which function that has the number 6996!
With a LUT, all functions are realized, so none of them are more difficult to make than any other!
Odd parity! No mergings are possible.
![Page 29: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/29.jpg)
William Sandqvist [email protected]
![Page 30: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/30.jpg)
Decoder
William Sandqvist [email protected]
en a 1 a 0 y 0 y 1 y 2 y 3
1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 - - 0 0 0 0
a0 a1 en
y3 y2 y1 y0
2-to-4 decoder
Mostly used as address decoder Only one output is active when the 'enable' (en) is active The active output is selected with a1a0
![Page 31: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/31.jpg)
Demultiplexer
William Sandqvist [email protected]
s1s0
y3 y2 y1 y0
The demultiplexer has basically the same function as the decoder, but is drawn differently ... The input is connected to a selected output
I0
f s 1 s 0 y 0 y 1 y 2 y 3
1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 - - 0 0 0 0
I0
Now en is namned I0!
![Page 32: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/32.jpg)
Read-only-memory (ROM)
William Sandqvist [email protected]
0/1 0/1 ... 0/1
0/1 0/1 ... 0/1
.
.
.
0/1 0/1 ... 0/1
a0 a1 ... am
Sel0
Sel1
.
.
.
Sel2m
En
dn-1 dn-2 ... d0
Threestate buffers Decoder
Programable bits
![Page 33: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/33.jpg)
Encoder
William Sandqvist [email protected]
2 n
inputs
w 0
w 2 n 1 –
y 0
y n 1 –
n outputs
Encoders have the opposite function as a decoder, ie it translates 2N bit input to a N-bitar code.
• The information is concentrated
Eg. Keyboard with 16 (24) keys
4-bit HEX-code for the pressed key
16:4
![Page 34: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/34.jpg)
Priorityencoder
William Sandqvist [email protected]
A Priority Encoder gives back the address of the input with the lowest (or highest) indices that are set to a one (or zero depending on what you are looking for). If all inputs are 0, the output f = 0, else f has the value = 1.
y0 y1 y2 y3 f a1 a0
1 - - - 1 0 00 1 - - 1 0 10 0 1 - 1 1 00 0 0 1 1 1 10 0 0 0 0 - -
Now it will be well-defined what happens if several inputs are active.
What if you press several keys at the same time?
![Page 35: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/35.jpg)
William Sandqvist [email protected]
![Page 36: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/36.jpg)
William Sandqvist [email protected]
Ex 8.4 7-4-2-1 code
(a variant of the 7-4-2-1 code is used today to store the bar code)
Codeconverter 7-4-2-1-code to BCD-code.
When encoding the digits 0 ... 9 sometimes a code with weights 7-4-2-1 was used instead of the binary code with the weights 8-4-2-1.
In cases where a digit of the code word could be selected in various ways, the code word containing the least number of ones is choosen.
You will construct such an encoder at exercice 3.
7421/BCD
![Page 37: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/37.jpg)
William Sandqvist [email protected]
![Page 38: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/38.jpg)
Code-converter
William Sandqvist [email protected]
Code-converters translates from one code to another. Typical examples are: • Binary to BCD (Binary-Coded Decimal) • Binary to Gray-code • BCD or BIN to 7-segment decoder
![Page 39: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/39.jpg)
Ex 8.5 One of the segments ”g”
William Sandqvist [email protected]
7-segment decoder consists of 7 different combinatorial circuits, one for each segment.
One should look at Karnaughmaps for all segments simultaneously. There could be groupings that are common to several segments! The optimal 7-segmentdecoder has
probably already been invented!
![Page 40: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/40.jpg)
William Sandqvist [email protected]
![Page 41: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/41.jpg)
Graycode or Binarycode ?
William Sandqvist [email protected]
Wind direction indicator usually use Gray code to provide safe decoding.
Wind direction Wind speed
![Page 42: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/42.jpg)
Binary Code disadvantage
William Sandqvist [email protected]
• Safe Data Registration use Graycode • Data Processing Binarycode
Binary code, adjacent code words 1-2 double change 3-4 triple change 5-6 double change 7-8 quadruple change! 9-A double change B-C quadruple change! D-E double change F-0 quadruple change!
But can two bits change at exactly the same time?
![Page 43: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/43.jpg)
William Sandqvist [email protected]
Graycode By changing the order of the code words, one can find codes where it is never more than one bit at a time that changes in the transitions from one codeword to the next. Such codes are called Gray Codes.
0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000
![Page 44: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/44.jpg)
can number the corners of a Boolean space
William Sandqvist [email protected]
N=4
1000 1010
1001
1101 1111
1011
1100
0000
0011 0001
0111 0101
0010
0110 0100
0110
With Gray codes one can number the "hyper-corners" in a Boolean space.
![Page 45: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/45.jpg)
can solve the “Towers of Hanoi”
William Sandqvist [email protected]
Gray code is also very helpful for those who want to solve the game "Towers of Hanoi“, constructed by the mathematician Edouard Lucas in 1883.
According to legend, three monks move 64 golden discs, of different sizes, from one bar to another. The discs should be moved one by one, and they must always be placed so that a smaller disc ports on a larger disc.
When the monks are done with their work the earth will go under - it will take 264 moves, so the whole thing will probably take a while ...
![Page 46: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/46.jpg)
William Sandqvist [email protected] William Sandqvist [email protected]
Conversion Binary-Gray
Binary → Gray: If Binary bit bn and bit bn-1 are different, the Graycode bit gn-1 ”1", else ”0".
Gray → Binary ( the most common transformation direction ): If Binary bit bn and Graycode bit gn-1 are different the Binary bit bn-1 is ”1", else ”0".
![Page 47: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/47.jpg)
William Sandqvist [email protected]
Logic Gate for the conversion XOR-gate is ”1” if the inputs are different!
4 bit code converter Gray cote to Binary code
Gray/Bin
![Page 48: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/48.jpg)
William Sandqvist [email protected]
![Page 49: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/49.jpg)
VHDL-introduction
VHDL is a language used to specify the hardware • HDL - Hardware Description Language • VHSIC - Very High Speed Integrated Circuit Used mostly in Europe • Verilog is also a language used to specify the
hardware Used mostly in the United States
William Sandqvist [email protected]
![Page 50: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/50.jpg)
Entity
William Sandqvist [email protected]
Cin A B
S Cout
FA
entity fulladder is port( A,B,Cin : IN std_logic; S,Cout : OUT std_logic); end fulladder;
The entity describes the ports to the outside of the circuit. The circuit as a block.
![Page 51: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/51.jpg)
Architecture
William Sandqvist [email protected]
Cin A B
S Cout
FA
architecture behave of fulladder is begin S <= A xor B xor Cin; Cout <= (A and B) or (A and Cin) or (B and Cin); end behave;
Architecture describes the function inside the circuit.
![Page 52: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/52.jpg)
Why VHDL?
William Sandqvist [email protected]
VHDL is used to • be able to verify that you have the right functioning by simulating the circuit • be able to describe large structures in a simple way and then generate the circuit by synthesis • enable structured descriptions of a circuit
VHDL increases the level of abstraction!
![Page 53: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/53.jpg)
Basics in VHDL
William Sandqvist [email protected]
There are two types of VHDL code
• VHDL for synthesis: The code is to be input to a synthesis tool which converts it into an implementation (for example, on an FPGA) • VHDL for modeling and simulation: The code is used to describe a system in an early stage. Since the code can be simulated you can check on the intended operation is correct.
![Page 54: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/54.jpg)
VHDL Hierarchie
William Sandqvist [email protected]
Generics Ports Entity
Architecture
Architecture
Architecture (structural)
Process
Sequential Statements
Concurrent Statements
Package
Concurrent Statements
![Page 55: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/55.jpg)
Entity
William Sandqvist [email protected]
Input Output Behavioral Entity
• The primary abstraction level in VHDL is called entity
• In a behavioral description one defines the entity through their responses to signals and inputs
• A behavioral model is the same as a "black box“ The inside is not visible from the outside – The entity's behavior is defined by the black box
functionality
![Page 56: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/56.jpg)
Entity
William Sandqvist [email protected]
• An entity describes a component's interface with the outside world
• The PORT-declaration indicates if it is an input or output.
• An entity is a symbol of a component.
ENTITY xor_gate IS PORT( x, y: IN bit; q: OUT bit); END xor_gate;
q xor_gate
Use English names for variable names in the code!
![Page 57: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/57.jpg)
VHDL Port
William Sandqvist [email protected]
• PORT declaration establishes the interface between the component and the outside world.
• A port declaration contains three things : – The name of the port – The direction of the port – The port's datatype
• Example : ENTITY test IS
PORT( name : direction data_type); END test;
![Page 58: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/58.jpg)
The most common data types
William Sandqvist [email protected]
• Scalars (signals/variables) – bit (’0’,’1’) – std_logic (’U’,’0’,’1’,’X’,’Z’,’L’,’H’,’W’,’-’) – integer – real – time
• Vectors (multivalued signals / variables)
– bit_vector – vector of bit’s – std_logic_vector – vector of std_logic
![Page 59: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/59.jpg)
Architecture
William Sandqvist [email protected]
• An architecture describes the function of the component. • An entity can have many architectures, but only one can be active at
a time. • An architecture corresponds to the component circuit diagram or
behavior. X y
q
ARCHITECTURE behavior OF xor_gate IS BEGIN q <= a xor b after 5 ns; END behavior;
Code for simulation
<=
means arrow
![Page 60: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/60.jpg)
VHDL-Examle: 4/1 multiplexer
William Sandqvist [email protected]
LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY Multiplexer_41 IS PORT(ce_n : IN std_logic; -- Chip En(active low) data_in : IN std_logic_vector(3 DOWNTO 0); sel : IN std_logic_vector(1 DOWNTO 0); data_out : OUT std_logic); -- TriState Output END ENTITY Multiplexer_41;
sel(1) sel(0)
data_out 11 10 01 00
data_in(3) data_in(2) data_in(1) data_in(0)
ce_n
∇
![Page 61: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/61.jpg)
VHDL-Example: 4/1 multiplexer
William Sandqvist [email protected]
ARCHITECTURE RTL OF Multiplexer_41 IS BEGIN PROCESS(ce_n, data_in, sel) BEGIN IF ce_n = '1' THEN data_out <= 'Z'; ELSE CASE sel IS WHEN "00"=> data_out <= data_in(0); WHEN "01"=> data_out <= data_in(1); WHEN "10"=> data_out <= data_in(2); WHEN "11"=> data_out <= data_in(3); WHEN OTHERS => null; END CASE; END IF; END PROCESS; END ARCHITECTURE RTL;
Threestate!
![Page 63: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/63.jpg)
More on VHDL
William Sandqvist [email protected]
• The study material on the synthesis shows a number VHDL constructs and the resulting hardware • The following images contain additional materials (optionally material) • The book gives many examples and detailed explanations of VHDL
![Page 65: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/65.jpg)
signal declaration
William Sandqvist [email protected]
Signal-declaration is used inside architectures to declare internal (local) signals : signal a,b,c,d : bit; signal a,b,sum : bit_vector(31 downto 0); Signal assignment is used to describing the behavior : sum <= a + b; -- assignment without delay
![Page 66: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/66.jpg)
VHDL description various styles
William Sandqvist [email protected]
• Data Flow Concurrent assignments
• Structural similar to how to connect components
• Sequential similar to how to write computer programs
![Page 67: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/67.jpg)
Sequential or Parallel Code
William Sandqvist [email protected]
• There are two types of code execution in VHDL: sequential and parallel
• Hardware can then be modeled in two different ways
• VHDL is supporting two different levels of abstraction.
• Sequential code describes the hardware from a programmer's point of view and are executed in the order it is written.
• The parallel code is executed regardless of the order it is in and is asynchronous.
![Page 68: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/68.jpg)
Sequential style
William Sandqvist [email protected]
XOR-gate x y
q
process(x,y) begin if (x/=y) then q <= ‘1’; else q <= ‘0’; end if; end process;
means not!
![Page 69: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/69.jpg)
Data flow style
William Sandqvist [email protected]
XOR-gate x y
q
q <= a xor b;
Or as ”behavioural dataflow style”
q <= ‘1’ when a/=b else ‘0’;
not equal
![Page 70: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/70.jpg)
Structural style
William Sandqvist [email protected]
x
y q
u1: not_gate port map (x,xi); u2: not_gate port map (y,yi); u3: and_gate port map (xi,y,t3); u4: and_gate port map (yi,x,t4); u5: or_gate port map (t3,t4,q);
yi
xi t3
t4
![Page 71: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/71.jpg)
Structural code
William Sandqvist [email protected]
• A component must be declared before it can be used
• Required, unless it is is already in a library somewhere
ARCHITECTURE test OF test_entity COMPONENT and_gate PORT ( in1, in2 : IN BIT; out1 : OUT BIT); END COMPONENT; ... more statements ...
in1
in2 out1
![Page 72: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/72.jpg)
Instantiation
William Sandqvist [email protected]
Component instantiation connects the component interface with the signals in the architecture.
ARCHITECTURE test OF test_entity COMPONENT and_gate PORT ( in1, in2 : IN BIT; out1 : OUT BIT); END COMPONENT; SIGNAL S1, S2, S3 : BIT; BEGIN Gate1 : and_gate PORT MAP (S1,S2,S3); END test;
in1
in2 out1
S1
S2 S3
![Page 73: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/73.jpg)
generate
William Sandqvist [email protected]
ENTITY adder IS GENERIC(N:integer) PORT(a,b:IN bit_vector(N-1 downto 0); sum:OUT bit_vector(N-1 downto 0)); END adder; ARCHITECTURE structural OF adder IS COMPONENT full_adder PORT(a,b,cin:IN bit;cout,s:OUT bit); END COMPONENT; signal c:bit_vector(N-2 downto 0); BEGIN G0:for i in 1 to N-2 generate U0:full_adder PORT MAP (a(i),b(i),c(i-1),c(i),s(i)); end generate; -- G0 U0:full_adder PORT MAP (a(0),b(0),’0’,c(0),s(0)); UN:full_adder PORT MAP (a(N-1),b(N-1),c(N-2),OPEN,s(N-1); END structural;
• Generate-statement connects many of the same elements
Generate an n-bit adder!
![Page 74: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/74.jpg)
generate n-bit adder
William Sandqvist [email protected]
FA
a1 b1
cin1 FA
a0 b0
cin0
s0 s1
FA
an-1 bn-1
cinn-1
sn-1
cut0 cutn-1
Five lines of code generates the ripple-carry n-bit adder from F5!
![Page 75: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/75.jpg)
Test Benches
William Sandqvist [email protected]
• To test if your design works so you have to create a test bench. It has three functions : – Generating stimuli for simulation – Apply these stimuli to an entity to be tested – Comparing the output values with expected values
You will use a test bench at LAB 3. A test bench program can try tirelessly through all input combinations!
![Page 76: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/76.jpg)
Testbench
William Sandqvist [email protected]
ENTITY testbench IS END testbench; ARCHITECTURE xor_stimuli_1 of testbench IS COMPONENT xor_gate PORT(x,y:IN bit; q:OUT bit); END COMPONENT; signal x,y,u1,ut2,ut3:bit; BEGIN x <= not(x) after 10 ns; y <= not(y) after 20 ns; U1:xor_gate PORT MAP (x,y,ut1); U2:xor_gate PORT MAP (x,y,ut2); U3:xor_gate PORT MAP (x,y,ut3); END example;
The ENTITY is empty!
Here are the test signals generated
The circuit under test is used as a component of the test bench program
![Page 77: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/77.jpg)
Testbench
William Sandqvist [email protected]
A test bench can mark when the desired events occur during the execution. Or mark when unwanted events occur The result of a run with a test bench can be saved in a file, as proof that everything is ok - or as a troubleshooting aid if it did not go well.
![Page 78: PLD (eg. PALkth.s3-website-eu-west-1.amazonaws.com/.../F7kombinatorikkretsar_… · PLD (eg. PAL) William Sandqvist william@kth.se Typically 8 logic elements Technology: AND-OR array](https://reader034.vdocuments.us/reader034/viewer/2022043007/5f925fc20e0fd852226d0ce8/html5/thumbnails/78.jpg)
William Sandqvist [email protected]