lecture10 seqcpld fpga - seoul national...
TRANSCRIPT
![Page 1: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/1.jpg)
CPLD, FPGA
![Page 2: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/2.jpg)
Modern Design Method
• Using CAD tools (like Xilinx) and programmable logic devices– Along with RAMs and ROMs– Complex Programmable Logic Devices (CPLDs)– Field Programmable Logic Devices (FPGAs)
• Xilinx XC9500 CPLD and XC4000 FPGA family– Can program wide range of combinational circuits– Can program wide range of sequential circuits– CAD tool automatically do (fitting/place-and-route)
from our high level specification
![Page 3: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/3.jpg)
PLD (Programmable Logic Device)
21
1212
1211
QQZQQXQD
YQQXQD
=+=
+=
![Page 4: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/4.jpg)
General CPLD Architecture
• PLD• Programmable Interconnect• I/O block
![Page 5: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/5.jpg)
Xilinx 9500-family architecture
![Page 6: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/6.jpg)
Function Block
![Page 7: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/7.jpg)
I/O Block
![Page 8: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/8.jpg)
Switch Matrix
ProgrammableSwitchMatrix
72
From
Macrocell outputs
69
From
External inputs
36
36
36
36
To FB1 AND array
To FB2 AND array
To FB3 AND array
To FB4 AND array
![Page 9: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/9.jpg)
Programmable elements• Many elements should be correctly programmed
– FBs• Programmable AND array• Product term allocator• Programmable Mux in macrocells
– I/O Blocks• Output enable selection for three-state driver output buffer
– Switch matrix• Programmable connection between switch inputs (macrocell outputs
and external inputs) to switch outputs (inputs to FB AND array)
• Fortunately, once we give a high-level design description (using schematic form and VHDL, etc), CAD’s fitting software automatically find the solution
![Page 10: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/10.jpg)
View of Fitted Design- XC9536-5-PC44 -
(elevator system controller)
![Page 11: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/11.jpg)
General FPGA chip architecture
• Larger number of small blocks (compare with CPLD)• 3 basic components
– Configurable Logic Block (CLB) – programmable logic– Input/Output Block (IOB) – around chip, associated with I/O pins
of the package– Programmable interconnects – interconnect CLBs and IOBs for
implementing larger functions
![Page 12: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/12.jpg)
Configurable Logic Block (CLB)
![Page 13: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/13.jpg)
3 Look Up Tables (G, F, H)
• Configured to implement any function of 4 (3 for H) inputs• Universal Function Generator
– How to build?– With SRAM
M
M
M
…
F1F2F3F4
Faddress data
•16x1 SRAM
•Store truth table of the Function (24 rows)
•SRAM loaded at config time – to make it work as a specific function
![Page 14: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/14.jpg)
Example Function using F, G, H
• Parity of 9 inputs: H = 1 if odd, H=0 if even
F1F2F3F4
F
0
G1G2G3G4
0000110100
000100100011010001010110
…
00000110100
000100100011010001010110
…G
0000110100
001010011100101110111 1
H1
H
![Page 15: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/15.jpg)
Power of F, G, H
• Any function of 4 inputs (F) + Any function of 4 inputs (G) + Any function of 3 inputs (H)
• Any function of 5 inputs (F+G+H) – how?• Any function of 4 inputs (F) + Some function of 6 inputs• Some function of 9 inputs (F+G+H)
)1),0,(),2,(()4,3,2,1()4,3,2,1(
HHGHFHHFFFFFFGGGGGG
===
![Page 16: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/16.jpg)
2 D f/fs
• D: F or G or H or DIN/H2 (Dx, Dy configured by M12, M7)
• CLK: K or K- (CLK_x, CLK_y configured by M14, M9)• EN: 1 or EC (ENx, ENy configured by M15, M10)• S/R control
– set or reset at configuration– Respond to global set/reset signal (not shown) or S/R line
![Page 17: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/17.jpg)
Outputs
• X = F or H• XQ = M4 or Qx (Dx = F or G or H or DIN)• Y = G or H• YQ = M6 or Qy (Dy = F or G or H or DIN)
![Page 18: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/18.jpg)
Example Configuration of CLBs
• Implementing 74x166 (8-bit parallel-in, serial-out shift register)
A B H…SER
QA QB QH
CLRENLD
HLDENQLDENQEND
BLDENQLDENQEND
ALDENSERLDENQEND
GHH
ABB
AA
⋅⋅+⋅⋅+⋅=
⋅⋅+⋅⋅+⋅=
⋅⋅+⋅⋅+⋅=
M
![Page 19: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/19.jpg)
Can implement any 5 variable functions?
ALDENSERLDENQEND AA ⋅⋅+⋅⋅+⋅=
FHGHH
ALDENSERLDENENHDF
ALDENSERLDENHDG
QH
A
A
A
⋅+⋅=
⋅⋅+⋅⋅+===
⋅⋅+⋅⋅===
=
11
)11(when
)01(when
1
How many CLBs for implementing 8-bit shift register x166?
-only 8 f/fs → 4 CLBs?
-But, all G, F, H in a CLB should be used for each D equation.
![Page 20: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/20.jpg)
I/O Block (IOB)
• 1 per I/O pin• 2 f/fs• Open collector, tri-state output, registered or not• Direct Input or Input through f/f (Synchronizer)
CLKEN
ICLK
![Page 21: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/21.jpg)
Programmable Interconnect
CLB
PSM
CLB
PSM
CLB
PSM
CLB
PSM
Direct
Double
Single
Long
![Page 22: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/22.jpg)
Detail Look
![Page 23: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/23.jpg)
Programmable Switch Matrix (PSM)
• PSM make possible variety of difficult interconnections– Can lengthen segments– Can turn corners
![Page 24: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/24.jpg)
Pretty Complex Interconnect
• Implement huge combination of Interconnects using– Direct wires – direct connect to adjacent CLB– Single wires – one hop connect to adjacent CLB through a PSM– Double wires – travel past 2 CLBs before hitting a switch– Long wires – travel length of chip– Programmable connections– Programmable switch matrix (PSM)
![Page 25: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/25.jpg)
Place and Routing
• Place (On which CLB, a specific function need to be implemented)
• Routing (How to interconnect CLBs?) – Avoid use of PSM as much as possible to reduce the delay
• Place and Routing is an inter-dependent complex problem• Fortunately, CAD tool will do for us
![Page 26: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/26.jpg)
Example
• Find Place and Routing for 74x194
74x194
RIN A B C D LIN
S1S0
CLK
QA QB QC QD
DSSLINSSQCSSQDSSDD
CSSQDSSQBSSQCSSDC
BSSQCSSQASSQBSSDB
ASSQBSSRINSSQASSDA
01010101
01010101
01010101
01010101
+++=
+++=
+++=
+++=
![Page 27: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/27.jpg)
QA
S1S0QARIN
S1S0QBA
QA
CLK
![Page 28: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/28.jpg)
QB
S1S0QBQA
S1S0QCB
QB
CLK
![Page 29: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/29.jpg)
QC
S1S0QCQB
S1S0QDC
QC
CLK
![Page 30: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/30.jpg)
QD
S1S0QDQC
S1S0LIND
QD
CLK
![Page 31: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/31.jpg)
QC
PSM
QD
PSM
QA
PSM
QB
PSM
IOB1
IOB2
IOB3
IOB4
Routing from inputs is not shown
From IOBsfor B, D, LIN
From IOBsfor A, C, RIN
From IOBsfor S1, S0, CLK
From IOBsfor S1, S0, CLK
![Page 32: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/32.jpg)
IOB for S1
S1
0
S1
S1
![Page 33: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/33.jpg)
IOB for QA
QA
1
QA
![Page 34: Lecture10 SeqCPLD FPGA - Seoul National Universityocw.snu.ac.kr/sites/default/files/NOTE/9290.pdf · 2018. 1. 30. · Microsoft PowerPoint - Lecture10_SeqCPLD_FPGA.ppt Author: cglee](https://reader035.vdocuments.mx/reader035/viewer/2022071015/5fce3c50c541ea4a936c314c/html5/thumbnails/34.jpg)
View of Placed Design- XC2VP2-7-FG256 –
(elevator system controller)