Tài liệu Kỹ thuật PLD & ASIC
173 trang |
Chia sẻ: hunglv | Lượt xem: 1402 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Kỹ thuật PLD & ASIC, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT TP.HCM
KHOA ÑIEÄN TÖÛ
BOÄ MOÂN VIEÃN THOÂNG
µ ¶
Bieân soaïn: Nguyeãn Ñình Phuù
TP.HCM 2007
Simpo PDF Merge and Split Unregistered Version -
TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT TP.HCM
KHOA ÑIEÄN TÖÛ
BOÄ MOÂN VIEÃN THOÂNG
µ ¶
Bieân soaïn: Nguyeãn Ñình Phuù
TP.HCM 2007
Simpo PDF Merge and Split Unregistered Version -
LÔØI NOÙI ÑAÀU
Caùc heä thoáng soá laäp trình ngaøy caøng hieän dieän trong nhieàu thieát bò ñieän töû daân duïng cuõng nhö
trong caùc thieát bò ñieàu khieån coâng nghieäp.
Öu ñieåm cuûa thieát bò soá laäp trình laø laøm cho maïch ñieän ngaøy caøng nhoû goïn do maät ñoä tích hôïp
cao, khoâng maát nhieàu thôøi gian cho vieäc keát noái vaø thöû nghieäm so vôùi IC rôøi, deã thay ñoåi yeâu caàu ñieàu
khieån cuûa maïch, chieám ít dieän tích khoâng gian, toác ñoä hay taàn soá laøm vieäc cao ñaùp öùng ñöôïc caùc
öùng duïng ñoøi hoûi veà toác ñoä hoaëc xöû lyù khoái löôïng döõ lieäu lôùn.
Noäi dung cuoán saùch naøy ñöôïc bieân soaïn goàm 4 chöông nhaèm phuïc vuï cho moân hoïc 2 tín chæ,
trong ñoù chöông 1 giôùi thieäu veà caùc thieát bò soá laäp trình ñöôïc, chöông 2 trình baøy ngoân ngöõ VHDL
duøng ñeå laäp trình cho heä thoáng soá, chöông 3 trình baøy caùch laäp trình cho caùc maïch ñieän toå hôïp,
chöông 4 trình baøy caùch laäp trình cho caùc maïch ñieän tuaàn töï.
Noäi dung trong cuoán saùch nhaèm trang bò caùc kieán thöùc cô baûn veà kyõ thuaät PLD vaø ASIC cho
sinh vieân ngaønh ñieän – ñieän töû.
Trong quaù trình bieân soaïn coù tham khaûo nhieàu taøi lieäu neân vaãn coøn sai soùt neân mong söï ñoùng
goùp xaây döïng ñeå baøi giaûng ñöôïc hoaøn thieän hôn xin haõy gôûi veà taùc giaû theo ñòa chæ
phu_nd@yahoo.com - xin chaân thaønh caûm ôn.
Simpo PDF Merge and Split Unregistered Version -
MUÏC LUÏC
LÔØI NOÙI ÑAÀU
CHÖÔNG 1. GIÔÙI THIEÄU CAÙC CAÁU TRUÙC LAÄP TRÌNH ÑÖÔÏC
I. GIÔÙI THIEÄU PLD 4
1. HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ PAL 4
2. HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ GAL 5
3. KÍ HIEÄU ÑÔN GIAÛN CHO SÔ ÑOÀ CUÛA PAL/GAL 5
4. SÔ ÑOÀ KHOÁI TOÅNG QUAÙT CUÛA PAL/GAL 7
5. MACROCELL 7
6. CAÙC SPLD THÖÏC TEÁ 9
7. CAÙC CPLD 10
II. CPLD CUÛA HAÕNG ALTERA 12
1. CPLD MAX 7000 12
2. MACROCELL 13
3. KHOÁI MÔÛ ROÄNG CHIA SEÛ 13
4. KHOÁI MÔÛ ROÄNG SONG SONG 15
5. CPLD MAX II 16
III. CPLD CUÛA HAÕNG XILINX 18
1. PLA (PROGRAMMABLE LOGIC ARRAY) 18
2. COOLRUNNER II 19
IV. LOGIC LAÄP TRÌNH FPGA 22
1. CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB 23
2. CAÙC MODULE LOGIC 24
3. FPGA DUØNG COÂNG NGHEÄ SRAM 25
4. CAÙC LOÕI CUÛA FPGA 26
V. FPGA CUÛA ALTERA 27
1. KHOÁI MAÛNG LOGIC (LAB: LOGIC ARRAY BLOCK) 27
2. MODULE LOGIC THÍCH NGHI ALM 28
3. CAÙC CHÖÙC NAÊNG TÍCH HÔÏP 30
VI. FPGA CUÛA XILINX 31
1. CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB (CONFIGURABLE LOGIC BLOCK) 31
2. CHUOÃI LIEÂN TIEÁP SOP 32
3. CAÁU TRUÙC FPGA TRUYEÀN THOÁNG VAØ CAÁU TRUÙC ASMBL 35
VII. PHAÀN MEÀM LAÄP TRÌNH 37
1. CAÙCH THIEÁT KEÁ 39
2. MOÂ PHOÛNG CHÖÙC NAÊNG 43
Simpo PDF Merge and Split Unregistered Version -
3. TOÅNG HÔÏP 44
4. LIEÄT KEÂ LÖÔÙI (NETLIST) 45
5. PHAÀN MEÀM THI HAØNH 46
6. MOÂ PHOÛNG THÔØI GIAN 47
7. LAÄP TRÌNH CHO THIEÁT BÒ – HAY NAÏP CHÖÔNG TRÌNH CHO THIEÁT 47
VIII. CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP 48
CHÖÔNG 2. NGOÂN NGÖÕ LAÄP TRÌNH VHDL 51
I. SÖÏ RA ÑÔØI NGOÂN NGÖÕ VHDL 55
II. CAÙC THUAÄT NGÖÕ CUÛA VHDL 55
III. MOÂ TAÛ PHAÀN CÖÙNG TRONG VHDL 53
1. ENTITY (THÖÏC THEÅ ) 53
2. ARCHITECTURE 54
3. CAÙC THIEÁT KEÁ COÙ CAÁU TRUÙC 56
4. HOAÏT ÑOÄNG TUAÀN TÖÏ 57
5. LÖÏA CHOÏN KIEÁN TRUÙC 58
6. CAÙC CAÂU LEÄNH CAÁU HÌNH 59
7. TOÙM TAÉT 60
IV. GIÔÙI THIEÄU VEÀ MOÂ HÌNH HAØNH VI 60
1. DELAY QUAÙN TÍNH VAØ DELAY TRUYEÀN 63
2. MOÂ PHOÛNG DELTA 65
3. DRIVER 68
4. GENERIC 69
5. CAÙC PHAÙT BIEÅU KHOÁI 71
6. TOÙM TAÉT 76
V. XÖÛ LYÙ TUAÀN TÖÏ 76
1. PHAÙT BIEÅU 76
2. GAÙN BIEÁN KHAÙC VÔÙI GAÙN TÍN HIEÄU 78
3. CAÙC PHAÙT BIEÅU TUAÀN TÖ 81
4. PHAÙT BIEÅU IF 81
5. PHAÙT BIEÅU CASE 82
6. PHAÙT BIEÅU LOOP 83
7. PHAÙT BIEÅU ASSERT 87
8. PHAÙT BIEÅU WAIT 88
VI. CAÙC KIEÅU ÑOÁI TÖÔÏNG TRONG VHDL 91
1. KHAI BAÙO TÍN HIEÄU 91
2. KHAI BAÙO BIEÁN 92
3. KHAI BAÙO HAÈNG SOÁ 93
VII. CAÙC KIEÅU DÖÕ LIEÄU TRONG VHDL 93
1. LOAÏI SCALAR 94
Simpo PDF Merge and Split Unregistered Version -
2. KIEÅU VAÄT LYÙ 103
3. CAÙC THUOÄC TÍNH 103
VIII. CAÙC TOAÙN TÖÛ CÔ BAÛN TRONG VHDL 106
1. CAÙC TOAÙN TÖÛ LOGIC 106
2. CAÙC TOAÙN TÖÛ QUAN HEÄ 107
3. CAÙC TOAÙN TÖÛ SOÁ HOÏC 108
4. CAÙC TOAÙN TÖÛ COÙ DAÁU 108
5. CAÙC TOAÙN NHAÂN CHIA 109
6. CAÙC TOAÙN TÖÛ DÒCH 106
7. CAÙC TOAÙN TÖÛ HOÃN HÔÏP 107
IX. CHÖÔNG TRÌNH CON VAØ GOÙI 107
1. CHÖÔNG TRÌNH CON 107
2. GOÙI 122
X. CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP 126
CHÖÔNG 3. THIEÁT KEÁ MAÏCH TOÅ HÔÏP BAÈNG VHDL 129
I. GIÔÙI THIEÄU 129
II. THIEÁT KEÁ MAÏCH GIAÛI MAÕ – MAÏCH MAÕ HOAÙ 129
1. THIEÁT KEÁ MAÏCH GIAÛI MAÕ 129
2. THIEÁT KEÁ MAÏCH MAÕ HOAÙ 131
3. THIEÁT KEÁ MAÏCH GIAÛI MAÕ LED 7 ÑOAÏN LOAÏI ANODE CHUNG 132
III. THIEÁT KEÁ MAÏCH ÑA HÔÏP – MAÏCH GIAÛI ÑA HÔÏP 134
1. THIEÁT KEÁ MAÏCH ÑA HÔÏP 134
2. THIEÁT KEÁ MAÏCH GIAÛI ÑA HÔÏP 135
IV. CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP 137
CHÖÔNG 4. CAÙC THANH GHI BOÄ ÑEÁM TRON VHDL 119
I. GIÔÙI THIEÄU 141
II. THIEÁT KEÁ CAÙC LOAÏI FLIP FLOP 141
1. THIEÁT KEÁ FLIP FLOP JK 141
2. THIEÁT KEÁ FLIP FLOP D COÙ ENABLE 144
III. THIEÁT KEÁ THANH GHI DÒCH N 146
1. THIEÁT KEÁ THANH GHI DÒCH 4 BIT 146
2. THIEÁT KEÁ THANH GHI DÒCH 8 BIT 148
3. THIEÁT KEÁ MAÏCH ÑEÁM JOHNSON 8 BIT 149
Simpo PDF Merge and Split Unregistered Version -
4. THIEÁT KEÁ MAÏCH ÑEÁM VOØNG 8 BIT 151
5. THIEÁT KEÁ MAÏCH ÑIEÀU KHIEÅN 8 LED SAÙNG DAÀN – TAÉT DAÀN 153
IV. THIEÁT KEÁ MAÏCH ÑEÁM 155
1. THIEÁT KEÁ MAÏCH ÑEÁM NHÒ PHAÂN 4 BIT – ÑEÁM LEÂN 155
2. THIEÁT KEÁ MAÏCH BCD – ÑEÁM LEÂN 156
3. THIEÁT KEÁ MAÏCH ÑEÁM BCD VAØ GIAÛI MAÕ HIEÅN THÒ LED 7 ÑOAÏN 157
4. THIEÁT KEÁ MAÏCH ÑEÁM BCD TÖØ 00 ÑEÁN 59 – HIEÅN THÒ TREÂN 2 LED 7 ÑOAÏN 159
5. THIEÁT KEÁ MAÏCH ÑEÁM BCD TÖØ 000 ÑEÁN 999 – HIEÅN THÒ TREÂN 3 LED 7 ÑOAÏN 161
V. CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP 163
Taøi lieäu tham khaûo. 166
Simpo PDF Merge and Split Unregistered Version -
Chöông 1
GIÔÙI THIEÄU CAÙC CAÁU TRUÙC LAÄP TRÌNH
ÑÖÔÏC
GIÔÙI THIEÄU PLD
HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ PAL
HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ GAL
KÍ HIEÄU ÑÔN GIAÛN CHO SÔ ÑOÀ CUÛA PAL/GAL
SÔ ÑOÀ KHOÁI TOÅNG QUAÙT CUÛA PAL/GAL
MACROCELL
CAÙC SPLD THÖÏC TEÁ
CAÙC CPLD
CPLD CUÛA HAÕNG ALTERA
CPLD MAX 7000
MACROCELL
KHOÁI MÔÛ ROÄNG CHIA SEÛ
KHOÁI MÔÛ ROÄNG SONG SONG
CPLD MAX II
CPLD CUÛA HAÕNG XILINX
PLA (PROGRAMMABLE LOGIC ARRAY)
COOLRUNNER II
LOGIC LAÄP TRÌNH FPGA
CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB
CAÙC MODULE LOGIC
FPGA DUØNG COÂNG NGHEÄ SRAM
CAÙC LOÕI CUÛA FPGA
FPGA CUÛA ALTERA
KHOÁI MAÛNG LOGIC (LAB: LOGIC ARRAY BLOCK)
MODULE LOGIC THÍCH NGHI ALM
Kieåu hoaït ñoäng bình thöôøng
Kieåu hoaït ñoäng LUT môû roäng
CAÙC CHÖÙC NAÊNG TÍCH HÔÏP
FPGA CUÛA XILINX
CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB (CONFIGURABLE LOGIC BLOCK)
CHUOÃI LIEÂN TIEÁP SOP
CAÁU TRUÙC FPGA TRUYEÀN THOÁNG VAØ CAÁU TRUÙC ASMBL
Caáu truùc truyeàn thoáng
Simpo PDF Merge and Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
2 Kyõ thuaät PLD vaø ASIC
Caáu truùc ASMBL
PHAÀN MEÀM LAÄP TRÌNH
CAÙCH THIEÁT KEÁ
MOÂ PHOÛNG CHÖÙC NAÊNG
TOÅNG HÔÏP
LIEÄT KEÂ LÖÔÙI (NETLIST)
PHAÀN MEÀM THiI HAØNH
MOÂ PHOÛNG THÔØI GIAN
LAÄP TRÌNH CHO THIEÁT BÒ – HAY NAÏP CHÖÔNG TRÌNH CHO THIEÁT BÒ
CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP
CAÂU HOÛI OÂN TAÄP
Hình 1-1. Caáu truùc cuûa PAL.
Hình 1-2. PAL sau khi laäp trình ñeå taïo haøm.
Hình 1-3. Caáu truùc cuûa GAL.
Hình 1-4. Kí hieäu ñôn giaûn cho PAL/GAL.
Hình 1-5. Hình cho ví duï 1-1.
Hình 1-6. Sô ñoà khoái cuûa PAL/GAL.
Hình 1-7. Sô ñoà maïch caùc Macrocell.
Hình 1-8. Sô ñoà khoái vaø hình daïng voû cuûa PAL16V8.
Hình 1-9. Sô ñoà khoái vaø hình daïng voû cuûa GAL22V10.
Hình 1-10. Sô ñoà khoái cuûa CPLD toång quaùt.
Hình 1-11. Caáu truùc CPLD MAX 7000
Hình 1-12. Sô ñoà khoái mcrocell ñôn giaûn cuûa MAX 7000.
Hình 1-13. Ví duï caùch môû roäng.
Hình 1-14. Minh hoïa cho vieäc chia seû.
Hình 1-15. Minh hoïa cho boä môû roäng song song.
Hình 1-16. Minh hoïa cho boä môû roäng song song töø macrocell khaùc.
Hình 1-17. Sô ñoà khoái cuûa MAX II.
Hình 1-18. Phaân bieät 2 kieåu xaây döïng haøm.
Hình 1-19. Phaân bieät 2 kieåu keát noái.
Hình 1-20. So saùnh PAL vôùi PLA.
Hình 1-21. Sô ñoà caáu truùc cuûa Coolrunner II.
Hình 1-22. Caáu truùc cuûa moät khoái chöùc naêng FB.
Hình 1-23. Minh hoïa cho ví duï 1-2.
Hình 1-24. Caáu truùc cô baûn cuûa FPGA.
Hình 1-25. Caùc khoái CLB cuûa FPGA.
Hình 1-26. Sô ñoà khoái cô baûn cuûa 1 module logic trong FPGA.
Hình 1-27. Khaùi nieäm cô baûn cuûa LUT ñöôïc laäp trình ñeå taïo SOP ngoõ ra .
Hình 1-28. Minh hoïa cho ví duï 1-3.
Hình 1-29. Khaùi nieäm veà FPGA bay hôi.
Hình 1-30. Khaùi nieäm chöùc naêng loõi phaàn cöùng trong FPGA.
Hình 1-31. Sô ñoà khoái cuûa caáu truùc LAB cuûa Stratix II vaø ALM
Hình 1-32. Sô ñoà khoái ALM cuûa Stratix II.
Hình 1-33. Caùc caáu hình coù theå coù cuûa LUT trong ALM ôû kieåu bình thöôøng.
Hình 1-34. Môû roäng ALM ñeå taïo ra haøm SOP 7 bieán trong kieåu LUT môû roäng.
Hình 1-35. Minh hoïa cho ví duï 1-4.
Hình 1-36. Sô ñoà khoái cuûa FPGA Stratic II.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 3
Hình 1-37. Minh hoïa caùc caáp logic ñònh caáu hình töø teá baøo logic cho ñeán CLB.
Hình 1-38. Ví duï caùch duøng chuoãi noái tieáp ñeå môû roäng bieåu thöùc SOP.
Hình 1-39. Minh hoïa cho ví duï 1-5.
Hình 1-40. Tích hôïp nhieàu chöùc naêng IP keát quaû laøm giaûm CLB vaø/hoaëc phaûi taêng kích thöôùc
chip.
Hình 1-41. Minh hoïa caáu truùc ASMBL cuûa FPGA platform.
Hình 1-42. Sô ñoà doøng thieát keá toång quaùt ñeå laäp trình cho SPLD, CPLD hoaëc FPGA.
Hình 1-43. Caùc thieát bò cô baûn ñeå laäp trình cho SPLD, CPLD hoaëc FPGA.
Hình 1-44. Minh hoïa cho 2 kieåu laäp trình.
Hình 1-45. Minh hoïa cho kieåu laäp trình töøng ñoaïn.
Hình 1-46. Löu thaønh khoái logic 3.
Hình 1-47. Maøn hình soaïn thaûo daïng soùng toång quaùt .
Hình 1-48. Thieát laäp caùc daïng soùng ngoõ vaøo.
Hình 1-49. Daïng soùng ngoõ vaøo vaø ra khi chaïy moâ phoûng.
Hình 1-50. Minh hoïa cho chöùc naêng toång hôïp.
Hình 1-51. Sô ñoà maïch vaø danh saùch lieät keâ.
Hình 1-52. Minh hoïa cho moâ phoûng thôøi gian.
Hình 1-53. Download thieát keá vaøo thieát bò laäp trình.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
4 Kyõ thuaät PLD vaø ASIC
I. GIÔÙI THIEÄU PLD:
Hai thaønh phaàn chính cuûa thieát bò logic laäp trình ñôn giaûn SPLD (Simple Programmable
Logic Device) laø PAL vaø GAL. PAL töôïng tröng cho logic maûng laäp trình (Programmable
Array Logic) vaø GAL töôïng tröng cho logic maûng toång quaùt (Generic Array Logic). Thöôøng
thì PAL chæ laäp trình 1 laàn coøn GAL thì cho pheùp laäp trình laïi, tuy nhieân coù nhieàu loaïi SPLD laäp
trình laïi vaãn coøn ñöôïc goïi laø PAL.
Thuaät ngöõ GAL laø teân do haõng Lattice Semeconductor ñaët vaø sau ñoù thì ñöôïc caáp pheùp cho
caùc nhaø saûn xuaát khaùc.
Caáu truùc cô baûn cuûa PAL vaø GAL laø maûng AND cho pheùp laäp trình vaø maûng OR coá ñònh toå
chöùc theo phöông phaùp toång cuûa caùc tích SOP (Sum-Of-Product). Vôùi CPLD (Complex
Programmable Logic Device) ñöôïc tích hôïp töø nhieàu SPLD ñeå coù chöùc naêng maïnh hôn cho caùc
thieát keá phöùc taïp.
Trong phaàn naøy chuùng ta seõ khaûo saùt hoaït ñoäng cuûa SPLD, phöông phaùp toång cuûa caùc tích
ñöôïc duøng trong PAL vaø GAL, giaûi thích ñöôïc sô ñoà logic cuûa PAL/GAL, moâ taû macrocell cô
baûn cuûa PAL/GAL, khaûo saùt PAL16V8 vaø GAL22V10, moâ taû CPLD cô baûn.
1. HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ PAL
PAL chöùa maûng coång AND laäp trình vaø ñöôïc noái vôùi maûng coång OR coá ñònh. Thöôøng thì
PAL duøng coâng ngheä xöû lyù caàu chì neân chæ cho pheùp laäp trình 1 laàn OTP (One-time-
Programmable).
Caáu truùc PAL cho pheùp thöïc hieän taát caû caùc haøm toång cuûa caùc tích vôùi caùc bieán ñaõ ñöôïc
xaùc ñònh. Caáu truùc cuûa moät PAL ñôn giaûn ñöôïc trình baøy nhö hình 1-1 cho 2 bieán ngoõ vaøo vaø 1
bieán ngoõ ra:
Hình 1-1. Caáu truùc cuûa PAL.
Moät maûng laäp trình laø moät ma traän caùc daây daãn goàm caùc haøng vaø caùc coät vaø chuùng coù theå
laäp trình ñeå noái vôùi nhau taïi ñieåm giao nhau. Moãi ñieåm noái laäp trình coù caáu taïo laø caàu chì ñoái
vôùi loaïi PAL vaø ñöôïc goïi laø moät teá baøo cell. Moãi haøng coù theå noái vôùi moät ngoõ vaøo cuûa coång
AND vaø moãi coät laø moät bieán ngoõ vaøo hoaëc bieán phuû ñònh. Baèng caùch laäp trình giöõ nguyeân caàu
chì hay phaù hoûng caàu chì thì coù theå taïo ra baát kyø haøm toå hôïp naøo töø caùc bieán ngoõ vaøo ñeå ñöa
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 5
ñeán coång AND taïo ra caùc thaønh phaàn tích mong muoán. Caùc coång AND ñöôïc keát noái vôùi coång
OR ñeå taïo neân caùc haøm ngoõ ra toång cuûa caùc tích.
Ví duï 1: Moät PAL ñöôïc laäp trình nhö hình 1-2 ñeå taïo ra thaønh phaàn AB , BA vaø BA .
Trong hình 1-2 ta coù theå nhìn thaáy moät soá caáu chì bò phaù hoûng vaø moät soá caàu chì coøn nguyeân ñeå
keát noái caùc bieán ngoõ vaøo vôùi caùc ngoõ vaøo cuûa caùc coång AND taïo ra haøm tích theo yeâu caàu vaø
sau cuøng laø haøm toång cuûa caùc tích:
BABAABX ++=
Hình 1-2. PAL sau khi laäp trình ñeå taïo haøm.
2. HOAÏT ÑOÄNG CUÛA SPLD CÔ BAÛN LAØ GAL
GAL veà cô baûn chính laø PAL coù theå laäp trình ñöôïc, GAL coù toå chöùc AND/OR gioáng nhö
PAL nhöng söï khaùc nhau cô baûn laø GAL duøng coâng ngheä xöû lyù cho pheùp laäp trình laïi gioáng nhö
EEPROM thay cho caàu chì ñöôïc trình baøy nhö hình 1-3.
Hình 1-3. Caáu truùc cuûa GAL.
3. KÍ HIEÄU ÑÔN GIAÛN CHO SÔ ÑOÀ CUÛA PAL/GAL
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
6 Kyõ thuaät PLD vaø ASIC
Caùc thieát bò laäp trình PAL vaø GAL coù caùc coång logic AND vaø OR vaø theâm moät soá phaàn töû
khaùc cuøng vôùi caùc bieán ngoõ vaøo vaø caùc bieán phuû ñònh. Haàu heát caùc PAL vaø GAL ñeàu coù sô ñoà kí
hieäu ñôn giaûn nhö hình 1-4:
Hình 1-4. Kí hieäu ñôn giaûn cho PAL/GAL.
Caùc bieán ngoõ vaøo cuûa PAL hoaëc GAL thöôøng coù maïch ñeäm ñeå ngaên chaën quaù taûi khi coù
quaù nhieàu coång AND noái tôùi ngoõ vaøo ñoù. Trong sô ñoà, khoái ñeäm laø khoái tam giaùc vöøa ñeäm tín
hieäu ngoõ vaøo vaø ñaûo tín hieäu ñeå taïo ra bieán phuû ñònh cuûa tín hieäu ñoù.
PAL vaø GAL ñeàu coù moät löôïng raát lôùn caùc ñöôøng laäp trình keát noái beân trong vaø moãi coång
AND coù nhieàu ngoõ vaøo. Thöôøng thì trong sô ñoà maïch cuûa PAL vaø GAL thay coång AND nhieàu
ngoõ vaøo baèng coång AND chæ coù moät ñöôøng ngoõ vaøo cho goïn nhöng treân ñoù coù ghi soá löôïng ngoõ
vaøo thöïc cho coång AND ñoù. Trong hình 1-4 thì moãi coång AND ñeàu coù 2 ngoõ vaøo.
Ñieåm noái laäp trình naèm trong ma traän ñöôïc xaùc ñònh baèng daáu × naèm treân caùc ñöôøng giao
nhau vaø caàu chì seõ ñöôïc giöõ nguyeân, coøn caùc ñieåm khoâng coù ñaùnh daáu × thì caàu chì seõ bò phaù
hoûng. Hình 1-4 cuûa ví duï ôû treân ñöôïc laäp trình ñeå taïo ra haøm BABAABX ++= .
Ví duï 1-2: Haõy veõ sô ñoà maïch cho moät PAL ñaõ laäp trình ñeå taïo ra haøm coù 3 bieán ngoõ vaøo
nhö sau: ACBACBACBAX +++=
Giaûi: Sô ñoà maïch cuûa PAL nhö hình 1-5:
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 7
Hình 1-5. Hình cho ví duï 1-1.
4. SÔ ÑOÀ KHOÁI TOÅNG QUAÙT CUÛA PAL/GAL
Sô ñoà khoái cuûa PAL hoaëc GAL ñöôïc trình baøy ôû hình 1-6. Neân nhôù raèng söï khaùc nhau cô
baûn laø GAL coù maûng cho pheùp laäp trình laïi coøn PAL thì chæ laäp trình moät laàn. Caùc ngoõ ra cuûa
maûng coång AND laäp trình ñöôïc ñöa ñeán caùc coång OR coá ñònh ñaõ ñöôïc keát noái ñeå taïo caùc haøm
logic ngoõ ra. Coång OR keát hôïp vôùi haøm logic ngoõ ra thöôøng ñöôïc goïi laø macrocell.
Hình 1-6. Sô ñoà khoái cuûa PAL/GAL.
5. MACROCELL
Moät macrocell goàm moät coång OR vaø caùc haøm logic ngoõ ra keát hôïp. Möùc ñoä phöùc taïp cuûa
macrocell tuyø thuoäc vaøo thieát bò cuï theå PAL hoaëc GAL. Moät macrocell coù theå ñöôïc ñònh caáu
hình cho moät haøm toå hôïp, haøm thanh ghi hoaëc cho caû hai.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
8 Kyõ thuaät PLD vaø ASIC
Haøm thanh ghi coù lieân quan ñeán flip flop chính vì theá trong macrocell cuõng coù flip flop ñeå
taïo ra caùc haøm tuaàn töï.
Hình 1-7 trình baøy 3 loaïi macrocell cô baûn vôùi caùc haøm toå hôïp.
(a)
(b)
(c)
Hình 1-7. Sô ñoà maïch caùc Macrocell.
Hình 1-7a trình baøy moät macrocell ñôn giaûn vôùi moät coång OR vaø moät coång ñaûo ba traïng
thaùi. Ngoõ ra cuûa coång ñaûo ba traïng thaùi coù theå hoaït ñoäng taïo ra möùc HIGH, möùc LOW vaø traïng
thaùi toång trôû cao xem nhö hôû maïch.
Hình 1-7b trình baøy moät macrocell coù theå hoaït ñoäng nhö ngoõ vaøo hoaëc ngoõ ra. Khi ngoõ vaøo
ñöôïc duøng nhö ngoõ ra thì coång ñaûo phaûi ôû traïng thaùi toång trôû cao ñeå hôû maïch vaø tín hieäu töø beân
ngoaøi ñöa ñeán boä ñeäm vaø keát noái vôùi maûng coång AND beân trong.
Hình 1-7c trình baøy moät macrocell coù theå laäp trình ñeå coù ngoõ ra tích cöïc möùc HIGH hoaëc
möùc tích cöïc möùc LOW vaø cuõng coù theå söû duïng nhö ngoõ vaøo. Moät ngoõ vaøo cuûa coång XOR (ex-
or) coù theå ñöôïc laäp trình ôû möùc HIGH hoaëc möùc LOW. Khi laäp trình ngoõ vaøo coång XOR ôû möùc
HIGH thì tín hieäu ngoõ ra cuûa coång OR seõ bò ñaûo vì : 110 =⊕ vaø 011 =⊕ . Töông töï khi laäp trình
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 9
ngoõ vaøo coång XOR ôû möùc LOW thì tín hieäu ngoõ ra coång OR khoâng bò ñaûo vì: 000 =⊕ vaø
101 =⊕ .
6. CAÙC SPLD THÖÏC TEÁ
Thöôøng thì hình daïng voû cuûa SPLD coù caáu hình chaân naèm trong khoaûng töø 20 ñeán 28 chaân.
Coù 2 thaønh phaàn giuùp chuùng ta xaùc ñònh PAL hoaëc GAL moät caùch thích hôïp cho caùc thieát keá
logic ñaõ cho laø soá löôïng ngoõ vaøo vaø ngoõ ra cuøng vôùi soá löôïng coång logic. Moät vaøi thoâng soá khaùc
caàn phaûi xem xeùt laø taàn soá hoaït ñoäng cöïc ñaïi, thôøi gian treå vaø nguoàn ñieän aùp cung caáp.
Caùc nhaø saûn xuaát Lattice, Actel, Atmel vaø Cypress laø caùc coâng ty saûn xuaát SPLD.
Caùc loaïi PAL vaø GAL thöôøng söû duïng laø PAL16V8 vaø GAL22V10. Caùc maõ soá cho bieát soá
löôïng ngoõ vaøo, soá löôïng ngoõ ra vaø loaïi ngoõ ra logic. Ví duï: PAL16V8 seõ cho bieát thieát bò naøy coù
16 ngoõ vaøo, 8 ngoõ ra vaø ngoõ ra laø bieán (V: variable). Chöõ H hoaëc chöõ L coù nghóa laø ngoõ ra tích
cöïc möùc HIGH hoaëc möùc LOW töông öùng. Sô ñoà khoái cuûa PAL16V8 vaø hình daïng voû ñöôïc trình
baøy ôû hình 1-8.
Hình 1-8. Sô ñoà khoái vaø hình daïng voû cuûa PAL16V8.
Moãi macrocell coù 8 ngoõ vaøo laáy töø maûng coång AND neân coù theå coù tôùi 8 thaønh phaàn tích
cho moãi ngoõ ra. Coù 10 ngoõ vaøo kí hieäu laø I, 2 ngoõ ra kí hieäu laø O vaø 6 chaân coù theå ñöôïc duøng
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
10 Kyõ thuaät PLD vaø ASIC
nhö laø ngoõ vaøo hoaëc ngoõ ra vaø kí hieäu laø I/O. Moãi ngoõ ra tích cöïc möùc LOW. PAL16V8 coù maät
ñoä tích hôïp khoaûng 300 coång.
Sô ñoà khoái cuûa GAL 22V10 vaø hình daïng voû nhö hình 1-9. GAL naøy coù 12 ngoõ vaøo vaø 10
chaân coù theå söû duïng nhö ngoõ vaøo hoaëc ngoõ ra. Caùc macrocell coù caùc ngoõ vaøo keát noái vôùi maûng
coång AND coù theå thay ñoåi soá löôïng keát noái töø 8 ñeán 16. GAL 22V10 coù maät ñoä tích hôïp khoaûng
500 coång.
Hình 1-9. Sô ñoà khoái vaø hình daïng voû cuûa GAL22V10.
7. CAÙC CPLD
Moät CPLD chöùa nhieàu maûng SPLD vôùi keát noái beân trong cho pheùp laäp trình nhö hình 1-10.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 11
Chuùng ta xem moãi maûng SPLD trong CPLD laø moät khoái maûng logic LAB (Logic Array
Block). Moät teân khaùc ñoâi khi cuõng ñöôïc duøng laø khoái chöùc naêng, khoái logic hoaëc khoái toång
quaùt.
Caùc keát noái laäp trình beân trong thöôøng ñöôïc goïi laø PIA (Programmable Interconnect
Array) nhöng moät soá nhaø cheá taïo nhö Xilinx duøng thuaät ngöõ AIM (Advance Interconnect
Matrix) hoaëc caùc thuaät ngöõ töông töï.
Caùc LAB vaø caùc keát noái beân trong ñöôïc laäp trình baèng phaàn meàm. Moät CPLD coù theå ñöôïc
laäp trình cho caùc chöùc naêng phöùc taïp döïa vaøo caáu truùc toång cuûa caùc tích cho moãi LAB ñoäc laäp
hay chính xaùc hôn laø moãi SPLD. Caùc ngoõ vaøo coù theå keát noái tôùi baát kyø khoái LAB naøo vaø caùc
ngoõ ra cuõng coù theå keát noái tôùi baát kyø LAB naøo thoâng qua PIA.
Hình 1-10. Sô ñoà khoái cuûa CPLD toång quaùt.
Haàu heát caùc nhaø cheá taïo ra moät chuoãi CPLD ñöôïc saép xeáp theo maät ñoä tích hôïp, coâng
ngheä xöû lyù, coâng suaát tieâu thuï, nguoàn cung caáp vaø toác ñoä. Caùc nhaø cheá taïo thöôøng cung caáp maät
ñoä CPLD theo caùc thaønh phaàn macrocell hoaëc LAB. Maät ñoä tích hôïp coù theå saép xeáp töø 10
macrocell ñeán 2000 macrocell trong moät voû coù theå leân ñeán vaøi traêm chaân.
PLD caøng phöùc taïp thì maät ñoä tích hôïp caøng cao. Moät vaøi CPLD coù theå laäp trình laïi vaø
duøng coâng ngheä xöû lyù EEPROM hoaëc SRAM cho caùc ñieåm keát noái laäp trình. Coâng suaát tieâu taùn
coù theå naèm trong khoaûng töø vaøi mili watt ñeán vaøi traêm mili watt. Nguoàn cung caáp DC thöôøng thì
naèm trong khoaûng töø 2,5V ñeán 5V tuyø thuoäc vaøo caùc chæ ñònh cuûa thieát bò. Coù nhieàu nhaø saûn
xuaát CPLD nhö Altera, Xilinx, Lattice vaø Cypress.
Trong phaàn tieáp theo chuùng ta seõ khaûo saùt caùc CPLD cuûa hai nhaø saûn xuaát laø Altera vaø
Xilinx bôûi vì hai coâng ty naøy ñang chieám lónh thò tröôøng. Caùc nhaø cheá taïo khaùc thì cuõng saûn xuaát
thieát bò vaø phaàn meàm töông töï.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
12 Kyõ thuaät PLD vaø ASIC
II. CPLD CUÛA HAÕNG ALTERA
Altera saûn xuaát ra nhieàu hoï CPLD nhö MAX II, MAX 3000 vaø MAX 7000. Trong phaàn
naøy chæ trình baøy chuû yeáu hoï MAX 7000.
Sau khi hoaøn taát phaàn naøy thì baïn coù theå: moâ taû ñöôïc hoï CPLD MAX, thaûo luaän veà caáu
truùc cuûa CPLD MAX 7000 vaø CPLS MAX II, giaûi thích caùch taïo caùc thaønh phaàn tích ñöôïc taïo ra
trong CPLD.
1. CPLD MAX 7000
Caáu truùc cuûa CPLD laø caùch thöùc maø caùc thaønh phaàn beân trong ñöôïc toå chöùc vaø ñöôïc saép
xeáp. Caáu truùc cuûa hoï CPLD MAX 7000 thì gioáng nhö sô ñoà khoái cuûa CLPD toång quaùt ñöôïc trình
baøy ôû hình 1-11.
Hình 1-11. Caáu truùc CPLD MAX 7000.
CPLD MAX 7000 coù caáu truùc lôùp PAL/GAL ñeå taïo ra caùc haøm SOP. Maät ñoä naèm trong
khoaûng töø 2 LAB ñeán 16 LAB tuyø thuoäc vaøo CPLD cuï theå. Neân nhôù laø moät LAB töông ñöông
vôùi moät SPLD duøng coâng ngheä xöû lyù EEPROM. Kieåu laäp trình trong heä thoáng ISP (In-System
Programmable) duøng giao tieáp chuaån JTAG.
Hình 1-11 trình baøy sô ñoà khoái toång quaùt CPLD hoï MAX 7000 cuûa Altera. Boán khoái LAB
ñöôïc trình baøy nhöng soá löôïng coù theå leân ñeán 16 khoái LAB. Moãi khoái LAB coù 16 macrocell,
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 13
nhieàu khoái LAB ñöôïc keát noái vôùi nhau thoâng qua PIA, PIA laø caáu truùc bus laäp trình toaøn cuïc
(cho taát caû caùc LAB) bao goàm caùc ngoõ vaøo coù cuøng chöùc naêng, I/O vaø caùc macrocell.
2. MACROCELL
Sô ñoà khoái macrocell ñôn giaûn cuûa hoï MAX 7000 ñöôïc trình baøy trong hình 1-12.
Macrocell chöùa moät maûng coång AND laäp trình goàm 5 coång AND, moät coång OR, moät ma traän löïa
choïn thaønh phaàn tích ñeå keát noái caùc ngoõ ra cuûa coång AND vôùi coång OR, vaø logic keát hôïp ñeå coù
theå laäp trình cho ngoõ vaøo, ngoõ ra logic toång hôïp hoaëc ngoõ ra thanh ghi dòch.
Hình 1-12. Sô ñoà khoái macrocell ñôn giaûn cuûa MAX 7000.
Maëc duø vaãn duøng cuøng moät khaùi nieäm nhöng macrocell naøy khaùc vôùi macrocell ñaõ trình
baøy ôû phaàn SPLD bôûi vì noù coù maûng coång AND laäp trình vaø ma traän löïa choïn thaønh phaàn tích.
Trong hình 1-12 coù 5 coång AND taïo ra caùc thaønh phaàn tích töø PIA vaøo ma traän löïa choïn thaønh
phaàn tích. Thaønh phaàn tích töø coång AND naèm döôùi cuøng coù theå ñöôïc hoài tieáp trôû laïi ma traän laäp
trình xem nhö phaàn môû roäng chia seû ñeå söû duïng bôûi caùc macrocell khaùc.
Caùc ngoõ vaøo môû roäng song song cho pheùp möôïn caùc thaønh phaàn tích khoâng duøng töø caùc
macrocell khaùc ñeå môû roäng bieåu thöùc SOP. Ma traän löïa choïn thaønh phaàn tích laø moät ma traän cuûa
caùc keát noái laäp trình ñöôïc duøng ñeå keát noái caùc ngoõ ra ñaõ löïa choïn töø maûng coång AND vaø töø ngoõ
vaøo môû roäng ñeán coång OR.
3. KHOÁI MÔÛ ROÄNG CHIA SEÛ
Buø cuûa thaønh phaàn tích ñöôïc duøng ñeå taêng soá löôïng thaønh phaàn tích trong bieåu thöùc SOP
thì coù theå duøng ñöôïc cho moãi macrocell trong LAB. Hình 1-13 minh hoaï caùch thöùc thaønh phaàn
môû chia seû töø macrocell khaùc coù theå ñöôïc duøng ñeå thieát laäp theâm caùc thaønh phaàn tích.
Trong tröôøng hôïp naøy moät trong 5 coång AND trong 1 maûng macrocell bò giôùi haïn, chæ coù 4
ngoõ vaøo vaø do ñoù coù theå taïo ra 1 thaønh phaàn tích coù 4 bieán khaùc nhau ñöôïc minh hoïa trong hình
(a). Hình (b) trình baøy phaàn môû roäng cho 2 thaønh phaàn tích.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
14 Kyõ thuaät PLD vaø ASIC
a. Coång AND 4 ngoõ vaøo taïo ra b. Coång AND ñöôïc môû roäng ñeå
thaønh phaàn tích 4 bieán. taïo ra 2 thaønh phaàn tích.
Hình 1-13. Ví duï caùch môû roäng.
Moãi macrocell cuûa MAX 7000 coù theå taïo ra 5 thaønh phaàn tích töø maûng coång AND. Neáu 1
macrocell caàn nhieàu hôn 5 thaønh phaàn tích cho haøm ngoõ ra SOP thì noù phaûi duøng theâm thaønh
phaàn môû roäng töø macrocell khaùc. Giaû söû thieát keá caàn bieåu thöùc SOP chöùa 6 thaønh phaàn tích.
Hình 1-14 trình baøy caùch thaønh phaàn tích töø macrocell khaùc coù theå ñöôïc duøng ñeå taêng bieåu thöùc
SOP ngoõ ra.
Hình 1-14. Minh hoïa cho vieäc chia seû.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 15
Macrocell thöù 2 taïo ra thaønh phaàn môû roäng chia seû )( FE + ñöôïc noái ñeán coång AND thöù 5
trong macrocell thöù 1 ñeå taïo ra bieåu thöùc SOP vôùi 6 thaønh phaàn tích. Caùc daáu keát noái × ñöôïc taïo
ra trong phaàn cöùng töø chöông trình thieát keá vaø phaàn meàm bieân dòch roài naïp vaøo chip.
4. KHOÁI MÔÛ ROÄNG SONG SONG
Moät phöông phaùp khaùc ñeå taêng soá löôïng caùc thaønh phaàn tích cho moät macrocell baèng caùch
duøng boä môû roäng song song – trong noù caùc thaønh phaàn tích môû roäng ñöôïc OR vôùi caùc thaønh
phaàn ñöôïc taïo ra macrocell thay vì duøng keát hôïp trong ma traän AND nhö ôû boä môû roäng chia seû.
Moät macrocell ñaõ cho coù theå möôïn caùc thaønh phaàn tích khoâng duøng töø caùc macrocell laân caän (coù
theå leân ñeán 5 thaønh phaàn töø caùc macrocell khaùc ñoái vôùi MAX 7000). Khaùi nieäm naøy ñöôïc minh
hoïa nhö hình 1-15 trong ñoù maïch ñieän ñôn giaûn ñöôïc taïo ra töø 2 thaønh phaàn tích möôïn theâm 3
thaønh phaàn tích môû roäng.
Hình 1-15. Minh hoïa cho boä môû roäng song song.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
16 Kyõ thuaät PLD vaø ASIC
Hình 1-16. Minh hoïa cho boä môû roäng song song töø macrocell khaùc.
Hình 1-16 trình baøy caùch moät macrocell coù theå möôïn caùc thaønh phaàn môû roäng song song töø
macrocell khaùc ñeå taêng bieåu thöùc ngoõ ra SOP. Macrocell thöù 2 duøng 3 thaønh phaàn tích töø
macrocell thöù 1 ñeå taïo ra bieåu thöùc SOP goàm 8 thaønh phaàn.
5. CPLD MAX II
Caáu truùc cuûa CPLD MAX II khaùc vôùi hoïc MAX 7000 vaø ñöôïc Altera goïi laø CPLD “Post-
macrocell”. Nhö ñaõ trình baøy trong sô ñoà khoái hình 1-17, thieát bò naøy chöùa caùc khoái LAB cuøng
vôùi nhieàu thaønh phaàn logic LE (Logic Elements). Moät LE laø moät ñôn vò thieát keá logic cô baûn vaø
töông töï nhö macrocell. Keát noái beân trong coù theå laäp trình ñöôïc saép xeáp theo haøng vaø coät chaïy
giöõa caùc LAB vaø caùc phaàn töû ngoõ vaøo/ngoõ ra (IOE: Input/Output Elements) ñöôïc ñònh höôùng
xung quanh. Caáu truùc cuûa hoï CPLD naøy gioáng nhö FPGA – coù theå xem MAX II laø FPGA coù maät
ñoä thaáp.
Söï khaùc nhau giöõa CPLD MAX II vaø caùc CPLD thieát keá töø SPLD laø caùch xaây döïng moät
haøm logic. CPLD MAX II söû duïng caùc baûng tra LUT (Look-Up Tables) thay cho ma traän
AND/OR. Moät LUT veà cô baûn laø loaïi boä nhôù coù theå laäp trình ñeå taïo ra caùc haøm SOP. Hai
phöông phaùp naøy ñöôïc minh hoïa nhö hình 1-18.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 17
Hình 1-17. Sô ñoà khoái cuûa MAX II.
Loaïi duøng LUT. Loaïi duøng logic maûng AND/OR
Hình 1-18. Phaân bieät 2 kieåu xaây döïng haøm.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
18 Kyõ thuaät PLD vaø ASIC
Nhö ñaõ ñeà caäp CPLD MAX II coù caùch saép xeáp haøng/coät cuûa caùc keát noái beân trong thay
cho caùch keát noái beân trong theo loaïi keânh coù trong haàu heát caùc CPLD. Coù 2 phöông phaùp ñöôïc
minh hoïa trong hình 1-19.
Keát noái beân trong duøng haøng/coät Keát noái theo kieåu keânh
Hình 1-19. Phaân bieät 2 kieåu keát noái.
Haàu heát caùc CPLD duøng coâng ngheä xöû lyù khoâng bay hôi cho caùc ñieåm noái laäp trình. Tuy
nhieân MAX II duøng coâng ngheä xöû lyù nhö SRAM neân chuùng coù theå bay hôi – taát caû caùc logic ñaõ
laäp trình seõ maát heát khi maát ñieän. Boä nhôù ñöôïc gaén vaøo beân trong chip ñeå löu tröõ döõ lieäu chöông
trình duøng coâng ngheä boä nhôù khoâng bay hôi vaø seõ ñònh caáu hình laïi cho CPLD khi coù ñieän.
III. CPLD CUÛA HAÕNG XILINX:
Cuõng gioáng nhö Altera, Xilinx saûn xuaát ra caùc hoï CPLD ñöôïc saép xeáp theo maät ñoä tích
hôïp, coâng ngheä xöû lyù, ñieän aùp nguoàn cung caáp vaø toác ñoä. Xilinx cheá taïo ra nhieàu hoï CPLD nhö
Cool Runner II, Cool Runner XPLA3 vaø XC9500. Hoï XC9500 thì coù caáu truùc gioáng nhö hoï
CPLD MAX 7000 cuûa Altera söû duïng caáu truùc loaïi PAL/GAL. Trong phaàn naøy chuùng ta chæ
phaân tích Cool Runner II.
Sau khi keát thuùc phaàn naøy baïn coù theå: moâ taû PLA vaø so saùnh vôùi PAL, thaûo luaän veà caáu
truùc CPLD Cool Runner II vaø moâ taû caùc khoái chöùc naêng.
1. PLA (PROGRAMMABLE LOGIC ARRAY)
Nhö ñaõ trình baøy, caáu truùc cuûa CPLD laø caùch maø caùc thaønh phaàn beân trong ñöôïc toå chöùc
vaø saép xeáp. Caáu truùc cuûa hoï Cool Runner II cuûa Xilinx thì döïa vaøo caáu truùc maûng logic laäp trình
PLA (Programmable Logic Array) toát hôn caáu truùc PAL (Programmable Array Logic). Hình 1-
20 so saùnh caáu truùc PAL vôùi caáu truùc PLA ñôn giaûn.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 19
Hình 1-20. So saùnh PAL vôùi PLA.
Nhö ñaõ trình baøy, PAL coù maûng coång AND laäp trình vaø theo sau laø maûng coång OR coá ñònh
ñeå taïo ra caùc bieåu thöùc SOP nhö hình 1-20a. PLA coù maûng coång AND laäp trình vaø theo sau laø
maûng coång OR laäp trình nhö hình 1-20b.
2. COOLRUNNER II
CPLD Cool Runner II duøng loaïi caáu truùc PLA. Cool Runner II coù nhieàu khoái chöùc naêng FB
(Function Block) töông töï nhö LAB trong CPLD MAX 7000 cuûa Altera. Moãi khoái chöùc naêng FB
chöùa 16 macrocell. Caùc khoái chöùc naêng ñöôïc keát noái beân trong bôûi moät ma traän keát noái beân
trong caûi tieán AIM töông töï nhö PIA trong MAX 7000. Sô ñoà caáu truùc cô baûn cho Cool Runner II
ñöôïc trình baøy ôû hình 1-21.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
20 Kyõ thuaät PLD vaø ASIC
Hình 1-21. Sô ñoà caáu truùc cuûa Cool runner II.
Sô ñoà khoái CPLD cuûa Xilinx vaø cuûa Altera gaàn nhö laø gioáng nhau tuy nhieân beân trong thì
khaùc nhau.
CPLD hoï Cool Runner II chöùa töø 32 macrocell ñeán 512 macrocell. Do coù 16 macrocell cho
moãi khoái chöùc naêng, soá löôïng khoái chöùc naêng naèm trong khoaûng töø 2 ñeán 32. Sô ñoà khoái cuûa
moät khoái chöùc naêng FB ñöôïc trình baøy nhö hình 1-22.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 21
Hình 1-22. Caáu truùc cuûa moät khoái chöùc naêng FB.
Maûng coång AND coù 56 coång AND vaø maûng coång OR laäp trình coù 16 coång OR. Vôùi caáu
truùc PLA thì baát kyø thaønh phaàn tích naøo cuõng coù theå noái tôùi coång OR ñeå taïo neân bieåu thöùc SOP
cho ngoõ ra. Vôùi khaû naêng cöïc ñaïi moãi khoái chöùc naêng coù theå taïo ra 16 ngoõ ra vaø moãi ngoõ ra coù
bieåu thöùc SOP chöùa 56 thaønh phaàn tích.
Ví duï 1-2: Haõy laäp trình keát noái beân trong khoái FB cuûa hình 1-22 ñeå taïo ra haøm chöùc naêng
SOP töø macrocell thöù 1 laø: DCABDCBAABCD ++ vaø haøm cho macrocell thöù 2 laø:
DABCCDBABCDADBCA +++
Giaûi: keát quaû nhö hình 1-23:
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
22 Kyõ thuaät PLD vaø ASIC
Hình 1-23. Minh hoïa cho ví duï 1-2.
IV. LOGIC LAÄP TRÌNH FPGA
Nhö ñaõ trình baøy ôû treân, caáu truùc phaân loaïi CPLD bao goàm caùc khoái logic loaïi PAL/GAL
hoaëc PLA vôùi caùc keát noái beân trong coù theå laäp trình. Veà cô baûn FPGA (Field Programmable
Gate Array) coù caáu truùc khaùc – khoâng duøng maûng loaïi PAL/PLA – coù maät ñoä tích hôïp cao hôn
nhieàu so vôùi CPLD. Caùc phaàn töû duøng ñeå taïo ra caùc haøm logic trong FPGA thöôøng thì nhoû hôn
nhieàu so vôùi caùc thaønh phaàn trong CPLD. Töông töï trong FPGA thì caùc keát noái beân trong ñöôïc
toå chöùc theo haøng vaø coät.
Sau khi keát thuùc phaàn naøy baïn coù theå: moâ taû caáu truùc cô baûn cuûa FPGA, so saùnh FPGA vôùi
CPLD, thaûo luaän veà LUT, thaûo luaän veà FPGA duøng caáu truùc SRAM vaø ñònh nghóa loõi cuûa
FPGA.
Coù 3 thaønh phaàn cô baûn trong FPGA laø khoái logic coù theå ñònh caáu hình logic CLB
(Configurable Logic Block), caùc keát noái beân trong vaø caùc khoái ngoõ vaøo/ra ñöôïc minh hoïa nhö
hình 1-24.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 23
Hình 1-24. Caáu truùc cô baûn cuûa FPGA.
Caùc khoái coù theå ñònh caáu hình logic CLB trong FPGA thì khoâng phöùc taïp baèng caùc khoái
LAB hoaëc FB trong CPLD nhöng thöôøng thì coù nhieàu thaønh phaàn hôn. Khi CLB khaù ñôn giaûn thì
caáu truùc FPGA ñöôïc goïi laø fine grained. Caùc khoái IO naèm xung quanh cuûa caáu truùc taïo ra söï
truy xuaát ngoõ vaøo, ngoõ ra hoaëc caû hai chieàu coù theå löïa choïn moät caùch ñoäc laäp ñeán theá giôùi beân
ngoaøi.
Ma traän phaân loaïi cuûa caùc keát noái beân trong coù theå laäp trình taïo ra caùc keát noái beân trong
cuûa CLB vaø keát noái ñeán caùc ngoõ vaøo vaø caùc ngoõ ra. Caùc FPGA lôùn coù theå coù 10000 CLB vaø coù
theâm boä nhôù vaø caùc nguoàn taøi nguyeân khaùc.
Haàu heát caùc nhaø cheá taïo caùc thieát bò logic laäp trình thöôøng saép xeáp thaønh chuoãi FPGA
phaân loaïi theo maät ñoä, coâng suaát tieâu taùn, ñieän aùp nguoàn cung caáp, toác ñoä vaø moät vaøi möùc ñoä
khaùc nhau veà caáu truùc. FPGA laø thieát bò coù theå laäp trình laïi vaø söû duïng coâng ngheä xöû lyù SRAM
hoaëc baùn caàu chì ñeå laäp trình cho caùc ñieåm noái. Maät ñoä coù theå naèm trong khoaûng töø vaøi traêm
module logic ñeán saép xæ khoaûng 180000 module logic trong 1 voû vôùi soá löôïng chaân leân ñeán
1000. Nguoàn cung caáp DC thöôøng naèm trong khoaûng 1,2V ñeán 2,5V tuyø thuoäc vaøo loaïi chip.
1. CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB
Thöôøng thì khoái logic cuûa FPGA chöùa moät vaøi module logic khaù nhoû töông töï nhö
macrocell trong CPLD. Hình 1-25 trình baøy caùc khoái CLB cô baûn naèm trong caùc keát noái beân
trong coù theå laäp trình haøng/coät toaøn cuïc – ñöôïc duøng ñeå keát noái caùc khoái logic. Moãi CLB ñöôïc
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
24 Kyõ thuaät PLD vaø ASIC
thieát laäp töø nhieàu module logic nhoû hôn vaø caùc keát noái beân trong coù theå laäp trình cuïc boä – ñöôïc
duøng ñeå keát noái caùc module logic vôùi CLB.
Hình 1-25. Caùc khoái CLB cuûa FPGA.
2. CAÙC MODULE LOGIC
Moät module logic trong moät khoái logic cuûa FPGA coù theå ñöôïc ñònh caáu hình cho haøm logic
toå hôïp, haøm logic thanh ghi hoaëc cho caû 2. Flip flop laø thaønh phaàn logic keát hôïp vaø ñöôïc duøng
cho caùc haøm logic thanh ghi. Sô ñoà khoái cuûa module logic tieâu bieåu duøng caáu truùc LUT ñöôïc
trình baøy nhö hình 1-26.
Hình 1-26. Sô ñoà khoái cô baûn cuûa 1 module logic trong FPGA.
Thöôøng thì toå chöùc cuûa moät LUT bao goàm moät soá caùc oâ nhôù baèng vôùi n2 , trong ñoù n laø soá
löôïng caùc bieán ngoõ vaøo. Ví duï: 3 ngoõ vaøo coù theå löïa choïn ñeán 8 oâ nhôù, do ñoù LUT vôùi bieán ngoõ
vaøo coù theå taïo ra bieåu thöùc SOP leân ñeán 8 thaønh phaàn tích. Moät moâ hình maãu cuûa 1 vaø 0 coù theå
ñöôïc laäp trình vaøo trong caùc oâ nhôù cuûa LUT ñöôïc minh hoïa nhö hình 1-27 ñeå taïo ra haøm SOP
theo chæ ñònh. Caùc oâ nhôù chöùa soá 1 coù nghóa laø thaønh phaàn tích ñöôïc keát hôïp trong bieåu thöùc
SOP cuûa ngoõ ra vaø oâ nhôù chöùa soá 0 coù nghóa laø thaønh phaàn tích keát hôïp khoâng xuaát hieän trong
bieåu thöùc SOP cuûa ngoõ ra.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 25
Keát quaû bieåu thöùc SOP ngoõ ra laø 012012012012 AAAAAAAAAAAA +++
Hình 1-27. Khaùi nieäm cô baûn cuûa LUT ñöôïc laäp trình ñeå taïo SOP ngoõ ra.
Ví duï 1-3: Haõy thieát laäp LUT coù 3 bieán cô baûn ñöôïc laäp trình ñeå taïo ra bieåu thöùc SOP theo
sau: 012012012012012 AAAAAAAAAAAAAAA ++++
Giaûi: keát quaû nhö hình 1-28:
Hình 1-28. Minh hoïa cho ví duï 1-3.
3. FPGA DUØNG COÂNG NGHEÄ SRAM
Caùc FPGA cuõng coù theå laø khoâng bay hôi neáu duøng coâng ngheä baùn caàu chì hoaëc coù theå bay
hôn neáu duøng coâng ngheä SRAM. Khaùi nieäm bay hôi coù nghóa laø taát caû caùc döõ lieäu ñaõ laäp trình
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
26 Kyõ thuaät PLD vaø ASIC
vaøo trong caùc khoái CLB seõ bò maát heát khi maát ñieän. Do ñoù, caùc FPGA duøng coâng ngheä SRAM
chöùa caû boä nhôù khoâng bay hôi tích hôïp beân trong chip ñeå löu tröõ chöông trình vaø döõ lieäu vaø ñònh
caáu hình laïi cho thieát bò moãi khi coù ñieän trôû laïi hoaëc chuùng duøng boä nhôù beân ngoaøi vôùi vieäc
chuyeån döõ lieäu ñöôïc ñieàu khieån vi xöû lyù chuû. Khaùi nieäm boä nhôù tích hôïp trong chip ñöôïc minh
hoïa nhö hình 1-29a vaø khaùi nieäm ñònh caáu hình laïi duøng vi xöû lyù ñöôïc trình baøy nhö hình 1-29b.
a. FPGA bay hôi ñònh laïi caáu hình duøng boä nhôù khoâng bay hôi beân trong.
b. FPGA bay hôi ñònh laïi caáu hình duøng boä nhôù khoâng bay hôi vaø vi xöû lyù.
Hình 1-29. Khaùi nieäm veà FPGA bay hôi.
4. CAÙC LOÕI CUÛA FPGA
Caùc FPGA veà cô baûn gioáng nhö caùc phieán traéng maø ngöôøi duøng coù theå laäp trình cho caùc
thieát keá logic. Caùc FPGA tieän lôïi khi maø noù chöùa caùc maïch logic “loõi phaàn cöùng” (hard core).
Moät maïch logic loõi phaàn cöùng laø moät phaàn logic trong FPGA ñöôïc ñaët vaøo beân trong bôûi nhaø
cheá taïo ñeå cung caáp caùc chöùc naêng ñaët bieät vaø khoâng theå laäp trình laïi. Ví duï neáu khaùch haøng
caàn moät vi xöû lyù nhoû nhö laø moät phaàn cuûa thieát keá heä thoáng thì noù coù theå ñöôïc laäp trình vaøo
trong FPGA cho khaùch haøng hoaëc noù coù theå ñöôïc cung caáp nhö laø moät loõi phaàn cöùng bôûi nhaø
cheá taïo. Neáu chöùc naêng ñöôïc tích hôïp vaøo beân trong coù vaøi caáu truùc coù theå laäp trình ñöôïc thì noù
ñöôïc xem nhö laø chöùc naêng “loõi meàm” (soft core).
Öu ñieåm cuûa phöông phaùp duøng loõi phaàn cöùng laø cuøng moät thieát keá coù theå thöïc hieän ñaày
ñuû duøng khaû naêng cuûa FPGA ít hôn neáu so vôùi caùch ngöôøi duøng söû duïng caùch laäp trình, keát quaû
laø khoâng gian treân chip nhoû hôn vaø thôøi gian thieát keá ngaén hôn.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 27
Khuyeát ñieåm cuûa phöông phaùp duøng loõi phaàn cöùng laø caùc thoâng soá kyõ thuaät laø coá ñònh
trong quaù trình cheá taïo vaø khaùch haøng phaûi coù khaû naêng duøng ñöôïc chöùc naêng ñoù. Noù khoâng theå
thay ñoåi veà sau.
Caùc loõi phaàn cöùng thöôøng coù taùc duïng cho caùc chöùc naêng maø chuùng ñöôïc söû duïng phoå bieán
trong caùc heä thoáng soá nhö vi xöû lyù, giao tieáp ngoõ vaøo/ngoõ ra vaø xöû lyù tín hieäu soá (Digital Signal
Processor). Coù nhieàu chöùc naêng loõi phaàn cöùng coù theå laäp trình trong FPGA. Hình 1-30 minh hoaï
cho khaùi nieäm loõi phaàn cöùng ñöôïc bao quanh bôûi CLB ñöôïc laäp trình bôûi ngöôøi söû duïng.
Hình 1-30. Khaùi nieäm chöùc naêng loõi phaàn cöùng trong FPGA.
Vieäc thieát keá caùc loõi phaàn cöùng thöôøng ñöôïc xaây döïng bôûi nhaø cheá taïo FPGA vaø chuùng
thuoäc sôû höõu cuûa nhaø cheá taïo. Caùc thieát keá rieâng bôûi nhaø cheá taïo ñöôïc ñaët teân laø Intellectual
Property (IP) – sôû höõu trí tueä. Moät coâng ty thöôøng lieät caùc loaïi sôû höõu trí tueä maø chuùng coù hieäu
löïc treân caùc website. Nhieàu sôû höõu trí tueä laø söï keát hôïp cuûa loõi phaàn cöùng vaø loõi phaàn meàm. Vi
xöû lyù laø moät ví duï minh hoïa – coù vaøi tính naêng meàm deûo trong löïa choïn vaø ñieàu chænh moät vaøi
thoâng soá bôûi ngöôøi duøng.
Caùc FPGA chöùa caùc vi xöû lyù tích hôïp moät trong hai hoaëc caû hai loõi phaàn cöùng vaø loõi phaàn
meàm vaø nhieàu chöùc naêng khaùc thì ñöôïc ñaët teân laø Platform FPGA bôûi vì chuùng coù theå ñöôïc
duøng ñeå ñieàu khieån moät heä thoáng ñaày ñuû maø khoâng caàn theâm moät thieát bò hoã trôï naøo.
V. FPGA CUÛA ALTERA
Altera saûn xuaát ra nhieàu hoï FPGA bao goàm Stratix II, Stratix , Cyclone vaø ACEX. Trong
phaàn naøy chuùng ta chæ khaûo saùt hoï Stratix II ñeå minh hoïa cho caùc khaùi nieäm.
Sau khi keát thuùc phaàn naøy chuùng ta coù theå:
Thaûo luaän veà caáu truùc cô baûn cuûa FPGA hoï Stratix II, giaûi thích caùch thaønh phaàn ñöôïc taïo
ra trong FPGA, thaûo luaän veà caùc chöùc naêng ñöôïc tích hôïp.
1. KHOÁI MAÛNG LOGIC (LAB – LOGIC ARRAY BLOCK)
Sô ñoà khoái cuûa FPGA toång quaùt ñaõ ñöôïc trình baøy nhö hình 1-24; caáu truùc cuûa Stratix II
vaø caùc hoï Altera khaùc thì gioáng nhau. Chuùng ñeàu coù caáu truùc loaïi LUT cho caùc module logic –
ñöôïc goïi laø module logic thích nghi ALM (Adaptive Logic Module) ñöôïc trình baøy trong thieát
bò toång quaùt LAB. Maät ñoä ñöôïc phaân loaïi töø 2000 LAB cho ñeán 22000 LAB tuyø thuoäc vaøo caùc
hoï cuï theå vaø moãi LAB coù 8 ALM. Kích thöôùc voû thay ñoåi töø 314 chaân ñeán 1173 chaân. Thieát bò
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
28 Kyõ thuaät PLD vaø ASIC
yeâu caàu söû duïng nguoàn DC cung caáp töø 1,2V; 1,5V vaø 2,5V. Hoï FPGA Stratix II söû duïng coâng
ngheä cuûa SRAM.
Hình 1-31 trình baøy sô ñoà khoái cuûa caáu truùc LAB cuûa Stratix II. Moãi LAB chöùa 8 ALM,
caùc LAB ñöôïc lieân keát vôùi nhau thoâng qua caùc keát noái haøng vaø coät beân trong. Caùc ñieåm keát noái
cuïc boä beân trong lieân keát caùc ALM vôùi moãi LAB.
Hình 1-31. Sô ñoà khoái cuûa caáu truùc LAB cuûa Stratix II vaø ALM
2. MODULE LOGIC THÍCH NGHI ALM
ALM laø ñôn vò thieát keá cô baûn trong FPGA Stratix II. Moãi ALM chöùa moät phaàn toå hôïp
logic duøng caáu truùc LUT vaø maïch logic keát hôïp coù theå ñöôïc laäp trình cho 2 ngoõ ra logic toå hôïp
hoaëc hai ngoõ ra thanh ghi dòch. Beân caïnh ñoù, ALM coù maïch coäng logic, caùc flip flop vaø caùc
maïch logic khaùc – cho pheùp thöïc hieän chöùc naêng tính toaùn soá hoïc, chöùc naêng ñeám vaø thanh ghi
dòch. Sô ñoà khoái ALM cuûa Stratix II ñöôïc trình baøy nhö hình 1-32.
Hoaït ñoäng cuûa ALM:
Moät ALM coù theå ñöôïc laäp trình cho ra nhieàu kieåu hoaït ñoäng nhö sau:
• Kieåu hoaït ñoäng bình thöôøng.
• Kieåu hoaït ñoäng LUT môû roäng.
• Kieåu tính toaùn soá hoïc.
• Kieåu tính toaùn soá hoïc duøng chung.
Ngoaøi 4 kieåu hoaït ñoäng thì ALM coù theå ñöôïc duøng nhö laø 1 chuoãi thanh ghi ñeå xaây döïng
boä ñeám vaø thanh ghi dòch. Trong phaàn naøy chuùng ta seõ khaûo saùt kieåu hoaït ñoäng bình thöôøng vaø
kieåu hoaït ñoäng LUT môû roäng.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 29
Hình 1-32. Sô ñoà khoái ALM cuûa Stratix II.
a. Kieåu hoaït ñoäng bình thöôøng
Ñöôïc söû duïng ñaàu tieân ñeå taïo caùc haøm logic toå hôïp. Moät ALM coù theå thöïc hieän moät hoaëc
hai haøm ngoõ ra toå hôïp vôùi hai LUT cuûa noù. Ví duï veà 4 caáu hình LUT ñöôïc minh hoïa ôû hình 1-33.
Hình 1-33. Caùc caáu hình coù theå coù cuûa LUT trong ALM ôû kieåu bình thöôøng.
Hai haøm SOP – moãi haøm coù 4 bieán hoaëc ít hôn – coù theå ñöôïc thöïc hieän trong moät ALM
maø khoâng caàn duøng caùc ngoõ vaøo chia seõ. Ví duï baïn coù theå coù “2 haøm 4 bieán”, “moät haøm coù 4
bieán vaø moät haøm 3 bieán” hoaëc “hai haøm 3 bieán”. Baèng caùch chia seõ caùc ngoõ vaøo, baïn coù theå coù
baát kyø toå hôïp naøo cuûa 8 ngoõ vaøo leân ñeán toái ña 6 ngoõ vaøo cho moãi LUT. Trong kieåu hoaït ñoäng
bình thöôøng thì baïn bò giôùi haïn laø caùc haøm SOP chæ coù toái ña laø 6 bieán.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
30 Kyõ thuaät PLD vaø ASIC
b. Kieåu hoaït ñoäng LUT môû roäng
Cho pheùp môû roäng haøm leân ñeán 7 bieán ñöôïc minh hoïa ôû hình 1-34. Maïch ñieän AND – OR
vôùi ngoõ vaøo ñaûo laø moät ví duï ñôn giaûn cuûa maïch doàn keânh. Maïch doàn keânh laø moät phaàn cuûa
maïch logic duøng rieâng trong ALM.
Hình 1-34. Môû roäng ALM ñeå taïo ra haøm SOP 7 bieán trong kieåu LUT môû roäng.
Ví duï 1-4: Moät ALM trong FPGA Stratix II ñöôïc ñònh caáu hình hoaït ñoäng ôû kieåu LUT môû
roäng ñöôïc trình baøy ôû hình 1-35. Haõy xaùc ñònh bieåu thöùc ngoõ ra SOP.
Hình 1-35. Minh hoïa cho ví duï 1-4.
Giaûi: bieåu thöùc ngoõ ra ôû treân thì AND vôùi bieán ngoõ vaøo 0A vaø bieåu thöùc ngoõ ra beân döôùi thì
AND vôùi 0A . Bieåu thöùc sau cuøng nhö sau:
023456023456023456012345012345012345 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +++++
3. CAÙC CHÖÙC NAÊNG TÍCH HÔÏP
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 31
Sô ñoà khoái toång quaùt cuûa FPGA Stratix II ñöôïc trình baøy ôû hình 1-36. FPGA chöùa caùc
thaønh phaàn boä nhôù vaø chöùc naêng xöû lyù tín hieäu soá DSP. Chöùc naêng cuûa DSP nhö caùc maïch loïc
soá thöôøng ñöôïc söû duïng nhieàu trong caùc heä thoáng. Khi quan saùt sô ñoà khoái, caùc khoái tích hôïp
beân trong ñöôïc saép xeáp ôû khaép nôi trong ma traän keát noái beân trong cuûa FPGA vaø caùc phaàn töû
ngoõ vaøo/ngoõ ra ñöôïc ñaët xung quanh chu vi FPGA.
Hình 1-36. Sô ñoà khoái cuûa FPGA Stratix II.
VI. FPGA CUÛA XILINX
Xilinx coù 2 hoï FPGA chính laø Spartan vaø Virtex vaø coù nhieàu loaïi khaùc nhau trong moãi hoï.
Ví duï Spartan 3 vaø Spartan IIE, Virtex-4, Virtex II vaø Virtex II Pro X. Xilinx ñònh roõ Virtex-4,
Virtex II vaø Virtex II Pro X laø caùc FPGA loaïi platform (neàn) bôûi vì chuùng tích hôïp nhieàu chöùc
naêng nhö boä nhôù, vi xöû lyù, boä thu phaùt vaø caùc phaàn cöùng khaùc vaø caùc loõi phaàn meàm IP. Caùc hoï
FPGA thöôøng thì khaùc veà maät ñoä tích hôïp vaø caùc thoâng soá kyõ thuaät. Haàu heát caùc thieát bò cuûa
Xilinx coù caáu truùc FPGA truyeàn thoáng, tuy nhieân Virtex II Pro X coù caùi goïi laø caáu truùc khoái
module chæ ñònh öùng duïng ASMBL (Application Specific Modular Block – ñöôïc phaùt aâm laø
assemble) coù treân 1 tæ transistor trong 1 chip ñôn.
1. CAÙC KHOÁI LOGIC COÙ THEÅ ÑÒNH CAÁU HÌNH CLB (CONFIGURABLE LOGIC BLOCK)
Vuøng logic ñònh caáu hình cuûa haàu heát caùc FPGA hoï Xilinx ñöôïc chia thaønh nhieàu khoái
logic coù theå ñònh caáu hình CLB vôùi moãi CLB chöùa nhieàu ñôn vò logic cô baûn ñöôïc laø caùc teá baøo
logic (logic cell - LC). Moãi teá baøo logic LC söû duïng maïch logic LUT truyeàn thoáng coù 4 ngoõ vaøo
vaø theâm maïch logic coäng vaø moät flip flop. Moät LUT coù 4 ngoõ vaøo coù theå taïo ra töø moät thaønh
phaàn tích cho ñeán haøm SOP chöùa 16 thaønh phaàn tích. Hai teá baøo logic LC gioáng nhau ñöôïc goïi
laø slice (laùt moûng). Hình 1-37 minh hoïa caùc caáp logic ñònh caáu hình töø teá baøo logic cho ñeán
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
32 Kyõ thuaät PLD vaø ASIC
CLB. Maät ñoä tích hôïp naèm trong khoaûng töø 2000 ñeán 74000 teá baøo logic LC trong moät thieát bò
Virtex ñôn.
Hình 1-37. Minh hoïa caùc caáp logic ñònh caáu hình töø teá baøo logic cho ñeán CLB.
2. CHUOÃI LIEÂN TIEÁP SOP
Slice ñôn giaûn (hai teá baøo logic LC) vôùi logic chuoãi lieân tieáp ñöôïc trình baøy ôû hình 1-38.
Coù maïch ña hôïp (MUX) daønh rieâng naèm trong maïch logic keát hôïp cuûa moãi LC – ñöôïc duøng
trong chuoãi lieân tieáp vaø moät coång OR daønh rieâng naèm trong slice.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 33
Hình 1-38a trình baøy ví duï caùch maø moät slice trong CLB coù theå ñöôïc ñònh caáu hình nhö laø
moät coång AND ñeå taïo ra thaønh phaàn tích 8 bieán. Hai slice coù theå ñöôïc ñònh caáu hình ñeå taïo ra
moät haøm SOP vôùi 2 thaønh phaàn tích 8 bieán ñöôïc trình baøy ôû hình 1-38b. Toaøn boä CLB cuûa 4
slice coù theå ñöôïc ñònh caáu hình thaønh moät chuoãi lieân tieáp ñeå taïo ra moät haøm SOP vôùi 4 thaønh
phaàn tích coù 8 bieán ñöôïc trình baøy nhö hình 1-38c. Bieåu thöùc SOP daøi hôn nöõa coù theå ñöôïc thöïc
hieän duøng theâm caùc CLB môû roäng.
(a)
(b)
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
34 Kyõ thuaät PLD vaø ASIC
(c)
Hình 1-38. Ví duï caùch duøng chuoãi noái tieáp ñeå môû roäng bieåu thöùc SOP.
Ví duï 1-5: Haõy trình baøy caùch coång AND coù 16 ngoõ vaøo coù theå taïo ra bieåu thöùc trong CLB.
Giaûi: Hai slice ñöôïc ñònh caáu hình ñöôïc trình baøy ôû hình 1-39 laø keát quaû cuûa coång AND coù
16 ngoõ vaøo.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 35
Hình 1-39. Minh hoïa cho ví duï 1-5.
3. CAÁU TRUÙC FPGA TRUYEÀN THOÁNG VAØ CAÁU TRUÙC ASMBL
a. Caáu truùc truyeàn thoáng
Nhö ñaõ bieát, caáu truùc FPGA truyeàn thoáng xuaát hieän nhö laø moät maûng cuûa caùc khoái logic
(CLB hoaëc LAB) ñöôïc bao boïc xung quanh bôûi caùc teá baøo ngoõ vaøo/ngoõ ra coù theå ñònh caáu hình.
Soá LCB trong FPGA tuyø thuoäc vaøo soá löôïng caùc phaàn töû IO – coù theå ñaët xung quanh. Khi loõi IP
nhö DSP vaø boä nhôù tích hôïp beân trong khi ñöôïc yeâu caàu thì moät löôïng logic ñònh caáu hình phaûi
maát ñi vaø taïi moät vaøi vò trí ñöôïc thay theá baèng IO neáu coù yeâu caàu. Khi nhieàu loõi IP ñöôïc theâm
vaøo thì kích thöôùc vaät lyù cuûa FPGA phaûi taêng leân ñeå ñaûm baûo soá löôïng logic caáu hình caàn thieát
vaø taêng theâm soá löôïng IO. Khaùi nieäm naøy ñöôïc minh hoïa baèng hình 1-40.
(a) FPGA vôùi logic ñònh hình ñaày ñuû. (b) FPGA cuøng kích thöôùc vôùi boä nhôù
vaø loõi IP (DSP) neân coù ít CLB hôn.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
36 Kyõ thuaät PLD vaø ASIC
(c) FPGA coù nhieàu boä nhôù, theâm loõi DSP vaø loõi vi xöû lyù seõ yeâu caàu kích thöôùc lôùn hôn.
Hình 1-40. Tích hôïp nhieàu chöùc naêng IP keát quaû laøm giaûm CLB vaø/hoaëc phaûi taêng kích
thöôùc chip.
Logic caáu hình trong FPGA caøng phöùc taïp thì caøng duøng nhieàu IO. Moái lieân heä raøng buoäc
giöõa logic vaø IO seõ daãn ñeán taêng kích thöôùc chip vaø taêng giaù thaønh. Ngoaøi ra moät vaán ñeà khaùc
vôùi FPGA platform laø khi theâm caùc chöùc naêng loõi IP tích hôïp beân trong neáu coù yeâu caàu thì phaûi
thieát keá laïi thaønh phaàn chính hoaëc thieát keá laïi moät phaàn trong caùch boá trí chip (layout) coù theå
ñöôïc yeâu caàu seõ laøm taêng theâm giaù thaønh.
a. Caáu truùc ASMBL
Xilinx ñaõ xaây döïng moät phöông phaùp meàm deûo cho FPGA platform ôû chip Virtex II Pro X
ñeå khaéc phuïc moät vaøi haïn cheá xuaát hieän trong caáu truùc truyeàn thoáng. Caáu truùc ASMBL laø caáu
truùc söû duïng coät thay vì duøng caáu truùc haøng/coät. Caùc IO ñöôïc ñaët raûi raùc khaép nôi toát hôn laø ñaët
xung quanh, daãn ñeán soá löôïng IO cuûa noù taêng maø khoâng caàn laøm taêng kích thöôùc chip. Moãi coät
veà cô baûn laø moät daûi logic coù theå ñöôïc thay theá baèng daûi logic khaùc maø khoâng caàn thieát keá laïi
caùch boá trí chip. Caùc ví duï veà caùc loaïi cuûa caùc daûi logic laø caùc khoái logic ñònh caáu hình CLB,
khoái IO, boä nhôù vaø caùc loõi phaàn cöùng vaø phaàn meàm nhö DSP vaø vi xöû lyù.
Soá löôïng khaùc nhau cuûa moãi loaïi daûi logic coù theå ñöôïc troän laïi ñeå töông thích vôùi caùc yeâu
caàu öùng duïng rieâng bieät. Ví duï, trong caáu hình ñôn giaûn nhaát thì coù theå pha troän caùc daûi CLB vaø
caùc daûi khoái IO ñöôïc minh hoïa nhö hình 1-41a. Nhieàu hoaëc ít hôn cuûa caû 2 cuõng coù theå ñöôïc söû
duïng tuyø thuoäc vaøo caùc yeâu caàu.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 37
Neáu caàn nhieàâu boä nhôù thì moät hoaëc nhieàu daûi CLB coù theå ñöôïc thay theá nhö hình 1-41b.
Neáu vuøng rieâng bieät trong öùng duïng laø xöû lyù tín hieäu soá thì coù theå theâm vaøo caùc loõi IP DSP troän
vôùi boä nhôù nhö hình 1-41c. Hình 1-41d trình baøy caùc loõi vi xöû lyù ñöôïc theâm vaøo.
(a) (b)
(c) (d)
Hình 1-41. Minh hoïa caáu truùc ASMBL cuûa FPGA platform.
VII. PHAÀN MEÀM LAÄP TRÌNH
Ñeå söû duïng thieát bò logic laäp trình thì phaûi coù phaàn cöùng vaø phaàn meàm keát hôïp vôùi nhau.
Taát caû caùc nhaø cheá taïo SPLD, CPLD vaø FPGA cung caáp phaàn meàm hoã trôï cho moãi thieát bò phaàn
cöùng. Caùc goùi phaàn meàm naèm trong danh saùch phaàn meàm ñöôïc duøng ñeå thieát keá döôùi söï giuùp ñôõ
cuûa maùy tính – CAD. Trong phaàn naøy phaàn meàm laäp trình ñöôïc giôùi thieäu moät caùch toång quaùt.
Sau khi keát thuùc phaàn naøy baïn coù theå: giaûi thích quy trình laäp trình cho caùc thaønh phaàn cuûa
thieát keá, moâ taû giai ñoaïn thieát keá, moâ taû giai ñoaïn moâ phoûng chöùc naêng, moâ taû giai ñoaïn toång
hôïp, moâ taû giai ñoaïn thi haønh, moâ taû moâ phoûng theo thôøi gian, moâ taû caùch taûi chöông trình.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
38 Kyõ thuaät PLD vaø ASIC
Quy trình laäp trình thieát keá ñöôïc xem nhö laø doøng thieát keá (design flow). Giaûn ñoà doøng
thieát keá cô baûn duøng ñeå thöïc hieän thieát keá logic cho thieát bò laäp trình ñöôïc trình baøy nhö hình 1-
42. Haàu heát caùc goùi phaàn meàm rieâng leû seõ keát hôïp caùc coâng ñoaïn cuûa quy trình laïi vôùi nhau vaø
quaù trình xöû lyù hoaøn toaøn töï ñoäng. Thieát bò ñeå ñöôïc laäp trình thöôøng ñöôïc xem laø thieát bò ñích
(target device)
Hình 1-42. Sô ñoà doøng thieát keá toång quaùt ñeå laäp trình cho SPLD, CPLD hoaëc FPGA.
Phaûi coù 4 thieát bò ñeå coù theå laäp trình cho thieát bò laø: maùy tính, phaàn meàm laäp trình, thieát bò
logic laäp trình (SPLD, CPLD hoaëc FPGA) vaø thieát bò keát noái maùy tính vôùi thieát bò laäp trình (caùp
hoaëc maïch naïp). Taát caû caùc thaønh phaàn naøy ñöôïc minh hoïa nhö hình 1-43.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 39
Hình 1-43. Caùc thieát bò cô baûn ñeå laäp trình cho SPLD, CPLD hoaëc FPGA.
1. CAÙCH THIEÁT KEÁ
Giaû söû raèng chuùng ta coù moät thieát keá maïch ñieän logic muoán ñieàu khieån baèng thieát bò laäp
trình thì chuùng ta coù theå thieát keá treân maùy tính baèng moät trong hai caùch cô baûn: thieát keá duøng sô
ñoà nguyeân lyù (schematic entry) vaø caùch duøng ngoân ngöõ (text entry).
Ñeå duøng caùch thieát keá baèng ngoân ngöõ thì phaûi laøm quen vôùi ngoân ngöõ HDL nhö VHDL,
Verilog, ABEL hoaëc AHDL. Haàu heát caùc nhaø cheá taïo thieát bò laäp trình cung caáp caùc goùi phaàn
meàm hoã trôï ngoân ngöõ VHDL vaø Verilog bôûi vì chuùng laø ngoân ngöõ HDL chuaån. Nhieàu nhaø cheá
taïo coøn cung caáp theâm ngoân ngöõ ABEL, AHDL.
Kieåu thieát keá duøng sô ñoà maïch cho pheùp chuùng ta ñaët caùc kí hieäu cuûa caùc coång logic vaø
caùc chöùc naêng logic khaùc töø thö vieän leân maøn hình vaø keát noái chuùng theo yeâu caàu cuûa thieát keá.
Vôùi kieåu thieát keá naøy thì caàn bieát caùc ngoân ngöõ HDL. Hình 1-44 minh hoïa cho caû 2 kieåu thieát keá
cho moät maïch ñieän logic AND-OR ñôn giaûn.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
40 Kyõ thuaät PLD vaø ASIC
Hình 1-44. Minh hoïa cho 2 kieåu laäp trình.
Xaây döïng sô ñoà logic:
Khi xaây döïng maïch ñieän logic ñaày ñuû treân maøn hình thì noù ñöôïc goïi laø sô ñoà phaúng “flat”.
Caùc maïch ñieän logic phöùc taïp hôn thì khoù maø töông thích vôùi maøn hình. Chuùng ta coù theå thieát keá
maïch ñieän logic thaønh nhieàu ñoaïn (segment), löu tröõ moãi ñoaïn nhö laø moät kí hieäu khoái vaø sau
ñoù keát noái caùc kí hieäu khoái laïi vôùi nhau ñeå taïo thaønh moät maïch ñieän hoaøn chænh – ñöôïc goïi laø
thieát keá coù thöù töï.
Ví duï thieát keá maïch ñieän coù bieåu thöùc SOP nhö sau:
( ) ( )01230123012301230123 AAAAAAAAAAAAAAAAAAAAZ ++++=
Chuùng ta duøng phöông phaùp thieát keá coù thöù töï vaø xaây döïng maïch logic cho 2 thaønh phaàn
toång trong phöông trình, laøm ñôn giaûn moãi maïch ñieän logic baèng moät kí hieäu duy nhaát, sau khi
thieát keá xong caû 2 maïch ñieän thì ñaët chuùng leân maøn hình vaø keát noái caùc ngoõ ra vôùi coång OR ñeå
taïo thaønh maïch hoaøn chænh – taát caû ñöôïc minh hoïa baèng hình 1-45.
a. Thieát keá thaønh phaàn thöù 1 goàm toång cuûa 2 tích.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 41
b. Laøm ñôn giaûn khoái maïch ñieän baèng kí hieäu logic 1.
c. Thieát keá thaønh phaàn thöù 2 goàm toång cuûa 3 tích.
d. Laøm ñôn giaûn khoái maïch ñieän baèng kí hieäu logic 2.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
42 Kyõ thuaät PLD vaø ASIC
e. Keát noái 2 khoái logic 1 vaø logic 2 baèng coång OR.
Hình 1-45. Minh hoïa cho kieåu laäp trình töøng ñoaïn.
Toaøn boä maïch ñieän treân coù theå ñaët leân maøn hình nhöng phöông phaùp thieát keá theo trình töï
raát tieän lôïi khi maïch ñieän logic lôùn vaø phaûi chia ra thaønh nhieàu phaàn.
ÔÛ hình 1-46e, maïch ñieän logic coù theå laøm ñôn giaûn baèng 1 kí hieäu khaùc vaø ñöôïc söû duïng
ñeå thieát keá maïch ñieän lôùn hôn hoaëc coù theå löu vaø duøng laïi cho caùc thieát keá khaùc ñöôïc minh hoïa
nhö hình 1-46.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 43
Hình 1-46. Löu thaønh khoái logic 3.
2. MOÂ PHOÛNG CHÖÙC NAÊNG
Muïc ñích cuûa chöùc naêng moâ phoûng trong doøng thieát keá laø ñeå ñaûm baûo chaéc chaén thieát keá
hoaït ñoäng ñuùng theo yeâu caàu tröôùc khi toång hôïp thaønh thieát keá phaàn cöùng. Veà cô baûn sau khi
maïch ñieän logic ñöôïc bieân dòch thì sau ñoù coù theå moâ phoûng baèng caùch cung caáp caùc daïng soùng
ñaàu vaøo vaø kieåm tra daïng soùng ngoõ ra cho caùc toå hôïp ngoõ vaøo coù theå coù duøng trình soaïn thaûo
daïng soùng.
Trình soaïn thaûo daïng soùng cho pheùp löïa choïn caùc nuùt (caùc ngoõ vaøo vaø caùc ngoõ ra) muoán
kieåm tra. Teân caùc ngoõ vaøo vaø ngoõ ra ñaõ choïn xuaát hieän treân maøn hình soaïn thaûo daïng soùng baèng
kí hieäu hoaëc teân khaùc ñeå xaùc ñònh cho moãi moät ngoõ vaøo hoaëc moät ngoõ ra – ñöôïc trình baøy ôû hình
1-47. Khi baét ñaàu thì taát caû caùc ngoõ vaøo maëc nhieân ôû möùc 0 vaø caùc ñöôøng cheùo song song töôïng
tröng cho tín hieäu chöa xaùc ñònh. Coù theå löïa choïn caùc khoaûng thôøi gian ñeå hieån thò.
Hình 1-47. Maøn hình soaïn thaûo daïng soùng toång quaùt .
Böôùc tieáp theo chuùng ta xaây döïng daïng soùng cho moãi ngoõ vaøo baèng caùch nhaäp vaøo 1 hoaëc
0 cho moãi khoaûng thôøi gian. Hình 1-48 trình baøy caùc daïng soùng ngoõ vaøo.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
44 Kyõ thuaät PLD vaø ASIC
Hình 1-48. Thieát laäp caùc daïng soùng ngoõ vaøo.
Sau khi thieát laäp caùc daïng soùng ngoõ vaøo thì môû cöûa soå ñieàu khieån moâ phoûng ñeå thieát laäp
thôøi gian baét ñaàu vaø thôøi gian keát thuùc cho vieäc moâ phoûng vaø chæ ñònh caùc khoaûng thôøi gian hieån
thò. Khi baét ñaàu moâ phoûng thì daïng soùng cuûa tín hieäu Z seõ ñöôïc hieån thò treân maøn hình daïng
soùng nhö hình 1-49.
Keát quaû daïng soùng ngoõ ra Z cuûa ví duï naøy seõ cho chuùng ta bieát thieát keá hoaït ñoäng ñuùng
hay khoâng ñuùng. Trong tröôøng hôïp naøy daïng soùng ngoõ ra laø ñuùng vôùi daïng soùng ngoõ vaøo ñaõ
choïn. Khi daïng soùng ngoõ ra khoâng ñuùng thì phaûi quay laïi kieåm tra thieát keá ban ñaàu cho ñeán khi
maïch hoaït ñoäng ñuùng.
Hình 1-49. Daïng soùng ngoõ vaøo vaø ra khi chaïy moâ phoûng.
3. TOÅNG HÔÏP
Moãi khi maïch logic ñöôïc xaây döïng vaø ñöôïc moâ phoûng chöùc naêng ñeå kieåm tra ñuùng sai cuûa
maïch logic thieát keá thì phaàn meàm bieân dòch ñaõ töï ñoäng thöïc hieän moät vaøi coâng ñoaïn ñeå chuaån bò
cho vieäc naïp thieát keá vaøo cho thieát bò laäp trình.
Trong coâng ñoaïn toång hôïp cuûa doøng thieát keá thì thieát keá ñöôïc toái öu theo caùc thaønh phaàn
ñeå laøm giaûm soá löôïng coång, thay theá caùc phaàn töû logic baèng caùc phaàn töû logic khaùc maø chuùng coù
theå thöïc hieän cuøng moät chöùc naêng nhöng hieäu quaû hôn vaø loaïi tröø caùc thaønh phaàn logic thöøa.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 45
Ngoõ ra cuoái cuøng töø coâng ñoaïn toång hôïp laø lieät keâ keát noái (netlist) – chuùng dieãn taû traïng
thaùi toái öu cuûa maïch ñieän logic.
4. LIEÄT KEÂ LÖÔÙI (NETLIST)
Lieät keâ löôùi veà cô baûn laø moät danh saùch lieät löôùi maø chuùng moâ taû caùc thaønh phaàn vaø caùch
keát noái vôùi nhau. Toång quaùt, lieät keâ löôùi chöùa caùc tham chieáu moâ taû caùc thaønh phaàn vaø caùc phaàn
töû ñöôïc söû duïng.
Moãi laàn moät thaønh phaàn nhö coång logic ñöôïc söû duïng trong lieät keâ löôùi thì noù ñöôïc goïi laø
instance. Moãi instance coù xaùc ñònh lieät keâ caùc keát noái. Caùc ñieåm keát noái ñöôïc goïi laø caùc caûng
(port) hoaëc caùc chaân (pin).
Thöôøng thì moãi instance seõ coù moät teân duy nhaát, ví duï nhö neáu coù 2 instance cuûa caùc coång
AND thì moät laø “and1” vaø coång coøn laïi laø “and2”. Ngoaøi teân ra coøn coù teân khaùc, caùc löôùi laø caùc
ñöôøng daây – noái vôùi nhau trong maïch ñieän. Baûng lieät keâ caùc löôùi thöôøng moâ taû taát caû caùc
instance vaø caùc thuoäc tính cuûa chuùng, sau ñoù moâ taû töøng löôùi vaø ñaët bieät laø caùc port noái vôùi moãi
instance.
Maïch ñieän logic AND-OR ñaõ thieát keá ôû treân ñöôïc trình baøy ôû hình 1-50a coù theå ñöôïc toái
öu thaønh maïch ñieän hình 1-50b. Trong phaàn minh hoïa naøy, trình bieân dòch thay theá caùc coång OR
vaø baèng moät coång OR coù 5 ngoõ vaøo, boû hai coång ñaûo thöøa trong maïch.
(a). Maïch ñieän thieát keá (b). Maïch toái öu sau khi toång hôïp
Hình 1-50. Minh hoïa cho chöùc naêng toång hôïp.
Phaàn meàm toång hôïp taïo ra danh saùch lieät keâ löôùi. Ñeå minh hoïa cho khaùi nieäm taïo ra danh
saùch löôùi thì hình 1-51a seõ trình baøy caùch gaùn teân cho löôùi, gaùn teân cho instance vaø gaùn teân cho
IO. Danh saùch lieät keâ löôùi ñöôïc trình baøy ôû hình 1-51b khoâng caàn thieát phaûi gioáng baát kyø danh
saùch lieät keâ naøo veà cuù phaùp vaø khuoân khoå. Danh saùch lieät keâ nhaèm xaùc ñònh caùc loaïi thoâng tin
caàn ñeå moâ taû maïch ñieän. Moät khuoân khoå ñöôïc duøng cho baûng lieät keâ caùc löôùi laø EDIF
(Electronic Design Interchange Format).
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
46 Kyõ thuaät PLD vaø ASIC
(a) (b)
Hình 1-51. Sô ñoà maïch vaø danh saùch lieät keâ.
5. PHAÀN MEÀM THI HAØNH
Sau khi thieát keá ñaõ ñöôïc toång hôïp thì trình bieân dòch thi haønh thieát keá – veà cô baûn coâng
vieäc naøy chính laø saép xeáp thieát keá ñeå noù coù theå töông thích vôùi thieát bò laäp trình ñaõ choïn baèng
caùch döïa vaøo caáu truùc vaø caáu hình chaân.
Quaù trình xöû lyù naøy goïi laø laøm cho töông thích (fitting). Ñeå keát thuùc coâng ñoaïn thi haønh
cuûa doøng thieát keá thì phaàn meàm phaûi bieát thieát bò roõ raøng vaø coù ñaày ñuû caùc thoâng tin chi tieát veà
chaân. Döõ lieäu ñaày ñuû cho taát caû caùc thieát bò thöôøng ñöôïc löu trong thö vieän cuûa boä nhôù vaø ngöôøi
thieát keá chæ caàn choïn ñuùng thieát bò laäp trình.
6. MOÂ PHOÛNG THÔØI GIAN
Phaàn naøy naèm trong doøng thieát keá ñöôïc thöïc hieän sau khi phaàn meàm thi haønh bieân dòch vaø
tröôùc khi naïp chöông trình vaøo thieát bò. Moâ phoûng theo thôøi gian ñeå kieåm tra maïch ñieän hoaït
ñoäng taïi taàn soá thieát keá vaø khoâng coù thôøi gian treå hoaëc caùc vaán ñeà veà thôøi gian khaùc laøm aûnh
höôûng ñeán hoaït ñoäng cuûa maïch.
Phaàn meàm thieát keá duøng caùc thoâng tin cuûa thieát bò laäp trình nhö thôøi gian trì hoaõn cuûa caùc
coång ñeå thöïc hieän moâ phoûng theo thôøi gian cuûa thieát keá.
Khi moâ phoûng chöùc naêng ñaõ ñöôïc thöïc hieän thì maïch ñieän seõ hoaït ñoäng ñuùng theo quan
ñieåm logic. Khi moâ phoûng chöùc naêng thì caùc thoâng soá chæ ñònh veà thieát bò ñích laø khoâng caàn thieát
nhöng khi moâ phoûng veà thôøi gian thì phaûi löïa choïn thieát bò ñích. Phaàn meàm soaïn thaûo daïng soùng
coù theå ñöôïc duøng ñeå xem keát quaû moâ phoûng cuõng nhö moâ phoûng chöùc naêng ñöôïc minh hoïa nhö
hình 1-52.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 47
Neáu khoâng coù vaán ñeà gì vôùi keát quaû moâ phoûng nhö ñöôïc trình baøy ôû hình 1-52a thì thieát keá
coù theå naïp vaøo thieát bò laäp trình. Tuy nhieân, giaû söû raèng caùc khoaûng moâ phoûng thôøi gian phaùt
hieän khoâng ñeàu hay khoâng gioáng nhau phuï thuoäc vaøo thôøi gian treå nhö ñöôïc trình baøy ôû hình 1-
52b.
Hình 1-52. Minh hoïa cho moâ phoûng thôøi gian.
Vieäc thöïc thi khoâng gioáng nhau chæ xaûy ra trong moät khoaûng thôøi gian raát ngaén trong daïng
soùng. Trong tröôøng hôïp naøy caàn phaûi phaân tích thieát keá moät caùch caån thaän ñeå tìm ra nguyeân
nhaân vaø sau ñoù hieäu chænh laïi thieát keá vaø laëp laïi caùc böôùc thieát keá.
7. LAÄP TRÌNH CHO THIEÁT BÒ – HAY NAÏP CHÖÔNG TRÌNH CHO THIEÁT BÒ
Sau khi kieåm tra moâ phoûng chöùc naêng vaø moâ phoûng theo thôøi gian vaø thieát keá ñaõ hoaït
ñoäng ñuùng thì coù theå tieán haønh download. Chuoãi bit nhò phaân ñöôïc taïo ra töôïng tröng cho thieát
keá vaø ñöôïc gôûi ñeán thieát bò ñích ñeå töï ñoäng ñònh caáu hình cho thieát bò. Sau khi thöïc hieän xong thì
thieát keá coù theå ñöôïc kieåm tra baèng maïch ñieän thöïc teá. Hình 1-53 trình baøy khaùi nieäm cho quaù
trình download.
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc SPKT – Nguyeãn Ñình Phuù
48 Kyõ thuaät PLD vaø ASIC
Hình 1-53. Download thieát keá vaøo thieát bò laäp trình.
VIII. CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP
Caâu 1-1. PAL töôïng tröng cho caùi gì ?
Caâu 1-2. GAL töôïng tröng cho caùi gì ?
Caâu 1-3. Söï khaùc nhau giöõa PAL vaø GAL laø gì ?
Caâu 1-4. Moät macrocell cô baûn chöùa caùc thaønh phaàn naøo?
Caâu 1-5. CPLD laø gì?
Caâu 1-6. LAB töôïng tröng cho caùi gì ?
Caâu 1-7. Moâ taû LAB trong CPLD MAX 7000 ?
Caâu 1-8. Muïc ñích cöûa boä môû roäng chia seõ laø gì ?
Caâu 1-9. Muïc ñích cöûa boä môû roäng song song laø gì ?
Caâu 1-10. CPLD MAX II khaùc vôùi MAX 7000 ôû ñieåm naøo ?
Caâu 1-11. Söï khaùc nhau cô baûn cuûa CPLD haõng Altera vaø haõng Xilinx laø gì?
Caâu 1-12. Haõy moâ taû PLA ?
Caâu 1-13. PLA khaùc vôùi PAL laø gì ?
Caâu 1-14. FB töôïng tröng cho caùi gì ?
Caâu 1-15. FPGA khaùc vôùi CPLD nhö theá naøo ?
Caâu 1-16. CLB töôïng tröng cho caùi gì ?
Caâu 1-17. Moâ taû LUT vaø cho bieát chöùc naêng cuûa noù ?
Caâu 1-18. Söï khaùc nhau giöõa keát noái beân trong toaøn cuïc vaø cuïc boä trong FPGA laø gì ?
Caâu 1-19. Loõi FPGA laø gì ?
Caâu 1-20. Ñònh nghóa thuaät ngöõ IP coù lieân ñeán nhaø saûn xuaát FPGA ?
Simpo PDF Merge nd Split Unregistered Version -
Chöông 1. Giôùi thieäu caùc caáu truùc laäp trình ñöôïc. SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 49
Caâu 1-21. Ñôn vò thieát keá logic cô baûn trong FPGA Stratix II laø gì?
Caâu 1-22. Coù bao nhieâu ALM trong LAB?
Caâu 1-23. Caùi gì taïo ra caùc haøm logic toå hôïp trong ALM?
Caâu 1-24. Coù bao nhieâu haøm SOP coù theå ñöôïc taïo ra töø moät ALM ?
Caâu 1-25. Haõy cho bieát teân cuûa 2 loaïi chöùc naêng tích hôïp trong Stratix II ?
Caâu 1-26. CLB trong FPGA cuûa Xilinx chöùa caùi gì ?
Caâu 1-27. LC chöùa caùi gì ?
Caâu 1-28. Haõy moâ taû slice trong FPGA cuûa Xilinx ?
Caâu 1-29. Chuoãi noái tieáp SOP laø gì ?
Caâu 1-30. ASMBL töôïng tröng cho caùi gì ?
Caâu 1-31. Haõy lieät keâ caùc coâng ñoaïn cuûa doøng thieát keá cho moät thieát bò laäp trình ?
Caâu 1-32. Haõy lieät keâ caùc phaàn töû cô baûn ñeå laäp trình cho CPLD vaø FPGA?
Caâu 1-33. Haõy cho bieát chöùc naêng cuûa baûng lieät keâ caù löôùi ?
Caâu 1-34. Coù bao nhieâu haøm SOP coù theå ñöôïc taïo ra töø moät ALM ?
Caâu 1-35. Haõy cho bieát teân cuûa 2 loaïi chöùc naêng tích hôïp trong Stratix II ?
end
Simpo PDF Merge nd Split Unregistered Version -
Kyõ thuaät PLD vaø ASIC 51
Chöông 2
NGOÂN NGÖÕ LAÄP TRÌNH VHDL
SÖÏ RA ÑÔØI NGOÂN NGÖÕ VHDL
CAÙC THUAÄT NGÖÕ CUÛA VHDL
MOÂ TAÛ PHAÀN CÖÙNG TRONG VHDL
ENTITY (THÖÏC THEÅ )
ARCHITECTURE
Gaùn Caùc Tín Hieäu Ñoàng Thôøi
Thôøi gian treå
Ñoàng boä leänh
CAÙC THIEÁT KEÁ COÙ CAÁU TRUÙC
HOAÏT ÑOÄNG TUAÀN TÖÏ
Caùc phaùt bieåu quaù trình
Vuøng khai baùo quaù trình
Thaønh phaàn phaùt bieåu quaù trình
Thöïc hieän quaù trình
Caùc phaùt bieåu tuaàn töï
LÖÏA CHOÏN KIEÁN TRUÙC
CAÙC CAÂU LEÄNH CAÁU HÌNH
TOÙM TAÉT
GIÔÙI THIEÄU VEÀ MOÂ HÌNH HAØNH VI
DELAY QUAÙN TÍNH VAØ DELAY TRUYEÀN
Delay quaùn tính
Delay truyeàn tín hieäu
Moâ hình Delay quaùn tính
Moâ hình Delay truyeàn
MOÂ PHOÛNG DELTA
DRIVER
Taïo driver
Moâ hình nhieàu driver xaáu
GENERIC
CAÙC PHAÙT BIEÅU KHOÁI
TOÙM TAÉT
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
52 Kyõ thuaät PLD vaø ASIC
XÖÛ LYÙ TUAÀN TÖÏ
PHAÙT BIEÅU
Danh saùch nhaïy
Ví duï veà quaù trình
GAÙN BIEÁN KHAÙC VÔÙI GAÙN TÍN HIEÄU
Ví duï moâ hình maïch ña hôïp khoâng ñuùng
Ví duï moâ hình maïch ña hôïp ñuùng
CAÙC PHAÙT BIEÅU TUAÀN TÖÏ
PHAÙT BIEÅU IF
PHAÙT BIEÅU CASE
PHAÙT BIEÅU LOOP
Phaùt bieåu voøng laëp LOOP cô baûn
Phaùt bieåu voøng laëp While – LOOP
Phaùt bieåu voøng laëp FOR – LOOP
Phaùt bieåu Next vaø Exit
PHAÙT BIEÅU ASSERT
PHAÙT BIEÅU WAIT
CAÙC KIEÅU ÑOÁI TÖÔÏNG TRONG VHDL
KHAI BAÙO TÍN HIEÄU
KHAI BAÙO BIEÁN
KHAI BAÙO HAÈNG SOÁ
CAÙC KIEÅU DÖÕ LIEÄU TRONG VHDL
LOAÏI SCALAR
Kieåu soá nguyeân INTEGER
Kieåu döõ lieäu ñaõ ñònh nghóa
Kieåu döõ lieäu do ngöôøi duøng ñònh nghóa
Kieåu döõ lieäu SUBTYPE
Kieåu döõ lieäu maûng ARRAY
Kieåu döõ lieäu maûng port
Kieåu döõ lieäu baûng ghi record
Kieåu döõ lieäu SIGNED vaø UNSIGNED
Kieåu soá thöïc REAL
Kieåu lieät keâ
KIEÅU VAÄT LYÙ
CAÙC THUOÄC TÍNH
Thuoäc tính tín hieäu
Thuoäc tính döõ lieäu scalar
Thuoäc tính maûng
CAÙC TOAÙN TÖÛ CÔ BAÛN TRONG VHDL
CAÙC TOAÙN TÖÛ LOGIC
CAÙC TOAÙN TÖÛ QUAN HEÄ
CAÙC TOAÙN TÖÛ SOÁ HOÏC
CAÙC TOAÙN TÖÛ COÙ DAÁU
CAÙC TOAÙN NHAÂN CHIA
Simpo PDF Mer e and Split Unregistered Version -
CAÙC TOAÙN TÖÛ DÒCH
CAÙC TOAÙN TÖÛ HOÃN HÔÏP
CHÖÔNG TRÌNH CON VAØ GOÙI
CHÖÔNG TRÌNH CON
Haøm
Haøm chuyeån ñoåi
Haøm phaân tích
Thuû tuïc
GOÙI
Khai baùo goùi
Khai baùo chöông trình con
CAÂU HOÛI OÂN TAÄP VAØ BAØI TAÄP
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
54 Kyõ thuaät PLD vaø ASIC
Hình vaø baûng
Hình 2-1. Coång A coù 2 ngoõ vaøo.
Hình 2-2. Kí hieäu cuûa mux coù 4 ngoõ vaøo.
Hình 2-3. Baûng traïng thaùi cuûa mux coù 4 ngoõ vaøo.
Hình 2-4. Daïng soùng coù delay quaùn tính cuûa boä ñeäm.
Hình 2-5. Daïng soùng coù delay truyeàn cuûa boä ñeäm.
Hình 2-6. So saùnh 2 cô caáu ñaùnh giaù.
Hình 2-7. So saùnh 2 cô caáu ñaùnh giaù.
Hình 2-8. Cô caáu ñaùnh giaù delay delta.
Hình 2-9. Kí hieäu maïch ña hôïp vaø baûng traïng thaùi.
Hình 2-10. Giaûn ñoà caùc loaïi döõ lieäu trong VHDL.
Hình 2-11. Caùc kieåu maûng döõ lieäu.
Baûng 2-1. Thuoäc tính tín hieäu.
Baûng 2-2. Thuoäc tính döõ lieäu scalar.
Baûng 2-3. Thuoäc tính maûng.
Baûng 2-4. Taát caû caùc toaùn töû.
Baûng 2-5. Caùc toaùn töû quan heä.
Baûng 2-6. Caùc toaùn töû soá hoïc.
Baûng 2-7. Caùc toaùn töû coù daáu.
Baûng 2-8. Caùc toaùn töû nhaân chia.
Baûng 2-9. Caùc toaùn töû dòch.
Baûng 2-10. Caùc toaùn töû hoãn hôïp.
Simpo PDF Mer e and Split Unregistered Version -
Kyõ thuaät PLD vaø ASIC 51
I. SÖÏ RA ÑÔØI NGOÂN NGÖÕ VHDL
VHDL (Very high speed integrated circuit Hardware Description Language) laø moät trong caùc
ngoân ngöõ moâ taû phaàn cöùng ñöôïc söû duïng roäng raõi hieän nay. VHDL laø ngoân ngöõ moâ taû phaàn cöùng
cho caùc vi maïch tích hôïp coù toác ñoä cao, ñöôïc phaùt trieån duøng cho chöông trình VHSIC (Very High
Speed Integrated Circuit) cuûa boä quoác phoøng Myõ.
Muïc ñích cuûa vieäc nghieân cöùu vaø phaùt trieån laø taïo ra moät ngoân ngöõ moâ phoûng phaàn cöùng
chuaån vaø thoáng nhaát, cho pheùp thöû nghieäm caùc heä thoáng soá nhanh hôn, hieäu quaû hôn, vaø nhanh
choùng ñöa caùc heä thoáng ñoù vaøo öùng duïng.
Thaùng 7 naêm 1983, ba coâng ty Internetic, IBM, Texas Instruments baét ñaàu nghieân cöùu. Sau
moät thôøi gian, phieân baûn ñaàu tieân cuûa ngoân ngöõ VHDL ñöôïc coâng boá vaøo thaùng 8 naêm 1985.
Vaøo naêm 1986, VHDL ñöôïc coâng nhaän nhö moät chuaån IEEE. VHDL ñaõ qua nhieàu laàn kieåm
nghieäm vaø chænh söûa cho ñeán khi ñöôïc coâng nhaän nhö moät chuaån IEEE 1076 vaøo thaùng 12 naêm
1987.
VHDL ñöôïc nghieân cöùu phaùt trieån nhaèm giaûi quyeát toác ñoä phaùt trieån, caùc thay ñoåi vaø xaây
döïng caùc heä thoáng ñieän töû soá. Vôùi moät ngoân ngöõ phaàn cöùng toát thì vieäc xaây döïng caùc heä thoáng ñieän
töû soá coù tính linh hoaït, phöùc taïp trôû neân deã daøng hôn. Vieäc moâ taû heä thoáng soá baèng ngoân ngöõ cho
pheùp xem xeùt, kieåm tra toaøn boä hoaït ñoäng cuûa heä thoáng trong moät moâ hình thoáng nhaát.
II. CAÙC THUAÄT NGÖÕ CUÛA VHDL
Caáu truùc cuûa moät chöông trình VHDL nhö sau:
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 07:52:37 09/26/2007
-- Design Name:
-- Module Name: mux - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
package typedef IS
SUBTYPE byte IS bit_vector (7 downto 0);
END ;
USE work.typedef.all
Comment
package
Use clause
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
52 Kyõ thuaät PLD vaø ASIC
ENTITY data_path IS
PORT (clk, rst, s_1: IN BOOLEAN;
s0, s1: IN BIT;
d0, d1, d2, d3: IN BYTE;
q: OUT BYTE);
END data_path;
ARCHITECTURE behavior OF data_path IS
SIGNAL reg, shft: BYTE;
SIGNAL sel: BIT_VECTOR (1 DOWNTO 0):
BEGIN
PROCESS (CLK, RST)
BEGIN
IF rst THEN -- async reset
Reg <= x ‘00’;
shft <= x ‘00’;
ELSIF clk and clk’event THEN -- define a clock
sel <= s1 & s0;
CASE sel IS
WHEN b “00” => reg <= d0;
WHEN b “01” => reg <= d1;
WHEN b “10” => reg <= d2;
WHEN b “11” => reg <= d3;
END CASE;
IF s_1 THEN
shft <= shft (6 downto 0) & shft(7);
ELSE clk and clk’event THEN
shft <= reg;
END IF;
END PROCESS;
q <= shft;
END behavior;
Ñeå tìm hieåu chöông trình thì chuùng ta caàn ñònh nghóa moät soá thuaät ngöõ ñöôïc söû duïng trong
ngoân ngöõ VHDL.
Entity (thöïc theå) taát caû caùc thieát keá ñeàu ñöôïc bieåu dieãn ôû daïng caùc thuaät ngöõ thöïc theå (entity).
Moät thöïc theå laø moät khoái xaây döïng cô baûn nhaát trong thieát keá. Möùc cao nhaát cuûa thöïc theå laø möùc
ñænh. Neáu thieát keá coù thöù baäc thì moâ taû ôû möùc cao nhaát seõ chöùa caùc moâ taû ôû möùc thaáp hôn naèm beân
trong. Nhöõng moâ taû ôû möùc thaáp hôn naøy seõ chöùa caùc thöïc theå ôû möùc thaáp hôn nöõa. Trong VHDL thì
thöïc theå duøng ñeå khai baùo caùc coång input_output cuûa caùc thaønh phaàn vaø teân cuûa noù.
Architecture (kieán truùc) taát caû caùc thöïc theå coù theå ñöôïc moâ phoûng ñeàu coù moät moâ taû kieán truùc.
Kieán truùc moâ taû haønh vi cuûa thöïc theå. Moät thöïc theå ñôn coù theå coù nhieàu kieán truùc. Moät kieán truùc coù
theå moâ taû haønh vi (behavioral description) trong khi ñoù moät kieán truùc khaùc coù theå moâ taû caáu truùc
(structural description).
Configuration (caáu hình) phaùt bieåu caáu hình ñöôïc söû duïng ñeå raøng buoäc moät theå hieän
(instance) thaønh phaàn vôùi moät caëp “thöïc theå - kieán truùc”. Moät caáu hình coù theå ñöôïc khaûo saùt gioáng
nhö moät danh saùch caùc thaønh phaàn cuûa moät thieát keá. Danh saùch caùc thaønh phaàn moâ taû haønh vi ñeå
söû duïng cho moãi thöïc theå, gioáng nhö danh saùch lieät keâ caùc phaàn moâ taû söû duïng cho moãi thaønh phaàn
trong thieát keá.
Entity
Architecture
Process
statement
Sequential
Statement
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 53
Package (goùi) moät goùi laø moät taäp hôïp caùc loaïi döõ lieäu ñöôïc duøng phoå bieán vaø caùc chöông
trình con (subprogram) ñöôïc söû duïng trong thieát keá. Xem package nhö laø moät hoäp coâng cuï chöùa
nhieàu coâng cuï ñöôïc duøng ñeå xaây döïng caùc thieát keá.
Driver (nguoàn kích) laø nguoàn kích cuûa moät tín hieäu. Neáu moät tín hieäu ñöôïc kích bôûi hai
nguoàn, thì caû hai nguoàn ñeàu ôû möùc tích cöïc, khi ñoù ta xem tín hieäu coù 2 driver.
Bus (nhoùm tín hieäu) thuaät ngöõ “bus” xem moät nhoùm caùc tín hieäu hoaëc moät phöông phaùp
truyeàn thoâng ñaëc bieät ñöôïc söû duïng trong thieát keá phaàn cöùng. Trong VHDL, bus laø loaïi tín hieäu ñaëc
bieät coù nhieàu nguoàn kích ôû traïng thaùi taét.
Attribute (thuoäc tính) laø döõ lieäu ñöôïc gaén cho caùc ñoái töôïng VHDL hoaëc döõ lieäu ñaõ ñònh
nghóa tröôùc lieân quan ñeán caùc ñoái töôïng VHDL. Ví duï laø khaû naêng kích doøng cuûa moät maïch ñeäm
hoaëc nhieät ñoä hoaït ñoäng cöïc ñaïi cuûa linh kieän.
Generic laø thuaät ngöõ cuûa VHDL duøng cho moät thoâng soá, thoâng soá naøy chuyeån thoâng tin ñeán
moät thöïc theå. Thí duï, neáu moät thöïc theå laø moät moâ hình coång coù trì hoaõn caïnh leân vaø trì hoaõn caïnh
xuoáng, caùc giaù trò cuûa caùc trì hoaõn leân vaø xuoáng coù theå ñöôïc chuyeån vaøo trong thöïc theå baèng caùc
duøng generic.
Process (quaù trình) quaù trình laø moät ñôn vò thöïc thi cô baûn trong VHDL. Taát caû caùc hoaït ñoäng
– ñöôïc thöïc hieän trong moâ phoûng cuûa moät moâ taû VHDL – thì ñöôïc chia ra thaønh moät hoaëc nhieàu
quaù trình xöû lyù.
III. MOÂ TAÛ PHAÀN CÖÙNG TRONG VHDL
Caùc moâ taû VHDL chöùa nhieàu ñôn vò thieát keá sô caáp vaø nhieàu ñôn vò thieát keá thöù caáp.
• Ñôn vò thieát keá sô caáp laø thöïc theå (Entity) vaø goùi (Package).
• Ñôn vò thieát keá thöù caáp laø caáu hình (Configuration) vaø thaân goùi (Package Body).
Caùc ñôn vò thieát keá thöù caáp thì luoân coù moái lieân heä vôùi ñôn vò thieát keá sô caáp. Caùc thö vieän
chöùa nhieàu caùc ñôn vò thieát keá sô caáp vaø thöù caáp.
1. ENTITY (THÖÏC THEÅ )
Entity duøng ñeå khai baùo teân cuûa thöïc theå, caùc port cuûa thöïc theå vaø caùc thoâng tin lieân quan ñeán
thöïc theå. Taát caû caùc thieát keá ñöôïc xaây döïng duøng moät hoaëc nhieàu thöïc theå.
Ví duï 2_1: Khai baùo ñôn giaûn veà thöïc theå:
ENTITY mux IS
PORT (a, b, c, d: IN BIT;
s0, s1: IN BIT;
x: OUT BIT);
END mux;
Töø khoaù ENTITY baùo cho bieát baét ñaàu moät phaùt bieåu thöïc theå.
Trong caùc moâ taû ñöôïc trình baøy trong toaøn boä taøi lieäu, caùc töø khoaù cuûa ngoân ngöõ vaø caùc loaïi
döõ lieäu ñöôïc cung caáp cho goùi chuaån (STANDARD) thì ñöôïc trình baøy ôû daïng chöõ hoa. Ví duï:
trong ví duï ñaõ trình baøy thì caùc töø khoaù laø ENTITY, IS, PORT, IN, INOUT, … Loaïi döõ lieäu chuaån
laø BIT. Teân cuûa caùc ñoái töôïng do ngöôøi duøng ñònh nghóa ví duï nhö mux trong ví duï treân laø ôû daïng
chöõ thöôøng.
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
54 Kyõ thuaät PLD vaø ASIC
Teân cuûa thöïc theå laø mux. Thöïc theå coù 7 port trong caâu leänh khai baùo PORT – 6 port cho kieåu
IN vaø 1 port cho kieåu OUT. 4 port döõ lieäu ngoõ vaøo (a, b, c, d) laø daïng BIT. Hai ngoõ vaøo löïa choïn
maïch ña hôïp (s0, s1) cuõng thuoäc kieåu döõ lieäu BIT. Ngoõ ra cuõng laø BIT.
Thöïc theå moâ taû giao tieáp vôùi theá giôùi beân ngoaøi. Thöïc theå chæ ñònh roõ bao nhieâu port, höôùng
tín hieäu cuûa port vaø loaïi döõ lieäu cuûa port.
2. ARCHITECTURE (KIEÁN TRUÙC)
Thöïc theå moâ taû giao tieáp vôùi moâ hình VHDL.
Kieán truùc moâ taû chöùc naêng cô baûn cuûa thöïc theå vaø chöùa nhieàu phaùt bieåu moâ phoûng haønh vi
cuûa thöïc theå. Kieán truùc luoân luoân coù lieân quan ñeán thöïc theå vaø caùc moâ taû haønh vi cuûa thöïc theå.
Moät kieán truùc cuûa boä ña hôïp ôû treân coù daïng nhö sau:
ARCHITECTURE dataflow OF mux IS
SIGNAL select: INTEGER;
BEGIN
Select <= 0 WHEN s0 = ‘0’ AND s1= ‘0’ ELSE
1 WHEN s0 = ‘1’ AND s1= ‘0’ ELSE
2 WHEN s0 = ‘0’ AND s1= ‘1’ ELSE
3;
x <= a AFTER 0.5 NS WHEN select = 0 ELSE
b AFTER 0.5 NS WHEN select = 1 ELSE
c AFTER 0.5 NS WHEN select = 2 ELSE
d AFTER 0.5 NS ;
END dataflow;
Töø khoaù ARCHITECTURE cho bieát phaùt bieåu naøy moâ taû kieán truùc cho moät thöïc theå. Teân
cuûa kieán truùc laø dataflow. Kieán truùc cuûa thöïc theå ñang ñöôïc moâ taû ñöôïc goïi laø mux.
Lyù do cho keát noái giöõa thöïc theå vaø kieán truùc laø moät thöïc theå coù theå coù nhieàu kieán truùc moâ taû
haønh vi cuûa thöïc theå. Ví duï moät kieán truùc coù theå laø moät moâ taû haønh vi vaø moät kieán truùc khaùc coù theå
laø moâ taû caáu truùc.
Vuøng kyù töï naèm giöõa töø khoaù ARCHITECURE vaø töø khoaù BEGIN laø nôi khai baùo caùc phaàn
töû vaø caùc tín hieäu logic cuïc boä ñeå sau naøy duøng. Trong ví duï treân bieán tín hieäu select ñöôïc khai baùo
laø tín hieäu cuïc boä.
Vuøng chöùa caùc phaùt bieåu cuûa kieán truùc baét ñaàu vôùi töø khoaù BEGIN. Taát caû caùc phaùt bieåu
naèm giöõa caùc caâu leänh BEGIN vaø END ñöôïc goïi laø caùc phaùt bieåu ñoàng thôøi bôûi vì taát caû caùc phaùt
bieåu ñöôïc thöïc hieän cuøng moät luùc.
a. Gaùn Caùc Tín Hieäu Ñoàng Thôøi
Trong ngoân ngöõ laäp trình thoâng thöôøng nhö C hoaëc C++ thì moãi phaùt bieåu gaùn thöïc hieän moät
laàn sau moät phaùt bieåu gaùn khaùc vaø theo moät thöù töï ñöôïc chæ ñònh. Thöù töï thöïc hieän ñöôïc xaùc ñònh
bôûi thöù töï cuûa caùc phaùt bieåu trong file chöông trình nguoàn.
Trong kieán truùc VHDL thì khoâng coù thöù töï chæ ñònh naøo cho caùc phaùt bieåu gaùn. Thöù töï thöïc
hieän ñöôïc chæ ñònh roõ bôûi söï kieän xaûy ra treân tín hieäu maø phaùt bieåu gaùn höôùng ñeán.
Khaûo saùt phaùt bieåu gaùn ñaàu tieân ñöôïc trình baøy nhö sau:
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 55
Select <= 0 WHEN s0 = ‘0’ AND s1= ‘0’ ELSE
1 WHEN s0 = ‘1’ AND s1= ‘0’ ELSE
2 WHEN s0 = ‘0’ AND s1= ‘1’ ELSE
3;
Gaùn tín hieäu ñöôïc thöïc hieän baèng kí hieäu <=. Tín hieäu select seõ ñöôïc gaùn giaù trò döïa vaøo giaù
trò cuûa s0 vaø s1. Phaùt bieåu gaùn naøy ñöôïc thöïc hieän baát kyø luùc naøo khi moät hoaëc hai tín hieäu s0 vaø s1
coù thay ñoåi.
Moät phaùt bieåu gaùn tín hieäu ñöôïc xem laø nhaïy vôùi caùc thay ñoåi treân baát kyø tín hieäu naøo naèm
beân phaûi cuûa kí hieäu gaùn <=. Phaùt bieåu gaùn tín hieäu cuûa ví duï treân thì nhaïy vôùi s0 vaø s1. Phaùt bieåu
gaùn tín hieäu khaùc trong kieán truùc dataflow nhaïy vôùi tín hieäu löïa choïn.
Chuùng ta seõ khaûo saùt caùch hai phaùt bieåu ôû treân hoaït ñoäng thöïc söï ra sao. Giaû söû raèng chuùng ta
coù ñieàu kieän oån ñònh khi s0 vaø s1 ñeàu coù giaù trò laø 0 vaø caùc tín hieäu hieän haønh a, b, c vaø d ñeàu coù
giaù trò laø 0. Tín hieäu x seõ coù giaù trò laø 0 vì noù ñöôïc gaùn cho giaù trò cuûa tín hieäu a.
Baây giôø giaû söû: chuùng ta taïo ra moät söï kieän thay ñoåi treân tín hieäu a töø giaù trò 0 leân 1.
Khi söï kieän tín hieäu a xaûy ra thì phaùt bieåu gaùn ñaàu tieân khoâng ñöôïc thöïc hieän bôûi vì phaùt bieåu
naøy khoâng nhaïy vôùi söï thay ñoåi cuûa tín hieäu a vì tín hieäu a khoâng naèm beân phaûi cuûa toaùn töû.
Phaùt bieåu gaùn thöù 2 seõ ñöôïc thöïc hieän bôûi vì noù nhaïy vôùi söï kieän xaûy ra treân tín hieäu a. Khi
phaùt bieåu gaùn thöù 2 ñöôïc thöïc hieän thì giaù trò môùi cuûa a seõ ñöôïc gaùn cho tín hieäu x. Ngoõ ra x baây
giôø seõ thay ñoåi sang 1.
Tieáp theo chuùng ta seõ khaûo saùt tröôøng hôïp khi tín hieäu s0 thay ñoåi. Giaû söû cho s0 vaø s1 ñeàu ôû
möùc 0 vaø caùc port a, b, c vaø d coù giaù trò theo thöù töï laø 0, 1, 0 vaø 1. Cho tín hieäu S0 thay ñoåi giaù trò töø
0 leân 1.
Phaùt bieåu gaùn tín hieäu ñaàu tieân nhaïy vôùi s0 neân noù seõ ñöôïc thöïc hieän.
Khi caùc phaùt bieåu ñoàng thôøi thöïc hieän, vieäc tính toaùn giaù trò bieåu thöùc seõ duøng giaù trò hieän
haønh cho taát caû caùc tín hieäu chöùa trong phaùt bieåu.
Khi phaùt bieåu ñaàu tieân thöïc hieän seõ tính giaù trò môùi ñeå ñöôïc gaùn cho select töø giaù trò hieän
haønh cuûa bieåu thöùc tín hieäu naèm beân phaûi cuûa kí hieäu gaùn <=. Vieäc tính toaùn giaù trò bieåu thöùc seõ
duøng giaù trò hieän haønh cho taát caû caùc tín hieäu chöùa trong phaùt bieåu.
Vôùi giaù trò cuûa s0 baèng 1 vaø s1 baèng 0 thì tín hieäu select seõ nhaän giaù trò môùi laø 1. Giaù trò môùi
cuûa tín hieäu select ñöôïc xem nhö söï kieän xaûy ra treân tín hieäu select, laøm phaùt bieåu gaùn thöù 2 cuõng
ñöôïc thöïc hieän theo. Phaùt bieåu gaùn thöù 2 seõ duøng giaù trò môùi cuûa tín hieäu select ñeå gaùn giaù trò cuûa
port b cho ngoõ ra x vaø x seõ thay ñoåi giaù trò töø 0 leân 1.
b. Thôøi gian treå
Vieäc gaùn tín hieäu cho tín hieäu x khoâng xaûy ra ngay laäp töùc. Moãi moät giaù trò ñöôïc gaùn cho tín
hieäu x ñeàu chöùa phaùt bieåu AFTER. Giaù trò cuûa x trong caùc phaùt bieåu gaùn ôû treân chæ ñöôïc nhaän giaù
trò sau khoaûng thôøi gian 0,5 ns.
c. Ñoàng boä leänh
Phaùt bieåu gaùn ñaàu tieân chæ ñöôïc thöïc hieän khi caùc söï kieän xaûy ra ôû caùc port s0 vaø s1. Phaùt
bieåu gaùn tín hieäu thöù 2 seõ khoâng thöïc hieän tröø khi söï kieän xaûy ra treân tín hieäu select hoaëc söï kieän
xaûy ra treân caùc tín hieäu a, b, c, d.
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
56 Kyõ thuaät PLD vaø ASIC
Hai phaùt bieåu gaùn tín hieäu trong kieán truùc behave hình thaønh moâ hình haønh vi (behavioral
model), hoaëc kieán truùc cho thöïc theå mux.
Kieán truùc dataflow thì khoâng coù caáu truùc.
3. CAÙC THIEÁT KEÁ COÙ CAÁU TRUÙC (STRUCTURAL DESIGNS)
Moät caùch khaùc ñeå vieát thieát keá mux laø xaây döïng caùc thaønh phaàn phuï maø chuùng thöïc hieän caùc
hoaït ñoäng nhoû hôn cuûa moâ hình ñaày ñuû. Vôùi moâ hình ñôn giaûn nhaát cuûa maïch ña hôïp 4 ngoõ vaøo
nhö chuùng ta ñaõ duøng laø moâ taû ôû caáp ñoä coång ñôn giaûn.
Kieán truùc ñöôïc trình baøy sau ñaây laø moâ taû caáu truùc cuûa thöïc theå mux.
ARCHITECTURE netlist OF mux IS
COMPONENT andgate
PORT(a, b, c: IN BIT; x: OUT BIT);
END COMPONENT;
COMPONENT inverter
PORT(in1: IN BIT; x: OUT BIT);
END COMPONENT;
COMPONENT orgate
PORT(a, b, c, d: IN BIT; x: OUT BIT);
END COMPONENT;
SIGNAL s0_inv, s1_inv, x1, x2, x3, x4: BIT;
BEGIN
U1: inverter (s0, s0_inv);
U2: inverter (s1, s1_inv);
U3: andgate (a, s0_inv, s1_inv, x1);
U4: andgate (b, s0, s1_inv, x2);
U5: andgate (c, s0_inv, s1, x3);
U6: andgate (d, s0, s1, x4);
U7: orgate (x2 => b, x1 => a, x4 => d, x3 => c, x => x);
END netlist;
Moâ taû naøy söû duïng moät soá caùc thaønh phaàn möùc thaáp hôn ñeå moâ hình hoaù haønh vi cuûa thieát bò
mux. Coù moät thaønh phaàn coång ñaûo inverter, moät thaønh phaàn coång andgate, vaø moät thaønh phaàn
orgate. Moät trong caùc thaønh phaàn naøy ñöôïc khai baùo trong phaàn khai baùo kieán truùc – naèm giöõa caâu
leänh kieán truùc vaø BEGIN.
Moät soá caùc tín hieäu ñöôïc duøng ñeå keát noái moät trong caùc thaønh phaàn ñeå thaønh laäp moâ taû kieán
truùc. Caùc loaïi tín hieäu naøy ñöôïc khai baùo duøng khai baùo SIGNAL.
Vuøng chöùa phaùt bieåu kieán truùc ñöôïc thieát laäp taïi vò trí ngay sau töø khoaù BEGIN. Trong ví duï
naøy coù moät soá phaùt bieåu cuûa caùc thaønh phaàn. Caùc thaønh phaàn naøy ñöôïc ñaët teân laø U1÷U7.
Phaùt bieåu U1 laø phaùt bieåu cho coång ñaûo. Phaùt bieåu naøy noái port s0 vôùi port ngoõ vaøo cuûa thaønh
phaàn coång ñaûo vaø tín hieäu s0_inv vôùi port ngoõ ra cuûa thaønh phaàn coång ñaûo.
Keát quaû laø port in1 cuûa coång ñaûo thì ñöôïc noái tôùi port s0 cuûa thöïc theå mux vaø port x cuûa coång
ñaûo ñöôïc noái tôùi tín hieäu cuïc boä s0_inv. Trong phaùt bieåu naøy thì caùc port ñöôïc noái tôùi theo thöù töï
maø chuùng xuaát hieän trong phaùt bieåu.
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 57
Chuù yù phaùt bieåu thaønh phaàn U7 – phaùt bieåu naøy duøng caùc kí hieäu nhö sau:
U7: orgate (x2 => b, x1 => a, x4 => d, x3 => c, x => x);
Phaùt bieåu naøy keát hôïp caùc teân ñeå töông thích vôùi caùc port. Ví duï port x2 cuûa coång orgate thì
ñöôïc noái tôùi port b cuûa thöïc theå cuûa phaùt bieåu keát hôïp ñaàu tieân. Söï keát hôïp vaø thöù töï coù theå khoâng
theo thöù töï nhöng khoâng neân thöïc hieän.
4. HOAÏT ÑOÄNG TUAÀN TÖÏ (SEQUENTIAL BEHAVIOR)
Coù moät caùch khaùc ñeå moâ taû chöùc naêng cuûa thieát bò mux trong ngoân ngöõ VHDL. Thöïc ra ngoân
ngöõ VHDL coù nhieàu caùch trình baøy cho chöùc naêng vôùi keát quaû töông töï. Caùch thöù 3 ñeå moâ taû chöùc
naêng cuûa mux laø söû duïng phaùt bieåu quaù trình (process) ñeå moâ taû chöùc naêng trình baøy theo thuaät
toaùn. Caùch naøy ñöôïc duøng cho kieán truùc sequential nhö sau:
ARCHITECTURE sequential OF mux IS
PROCESS (a, b, c, d, s0, s1)
VARIABLE sel: INTEGER;
BEGIN
IF s0 = ‘0’ and s1 = ‘0’ THEN sel:= 0 ;
ELSIF s0 = ‘1’ and s1 = ‘0’ THEN sel:= 1 ;
ELSIF s0 = ‘0’ and s1 = ‘1’ THEN sel:= 2 ;
ELSE sel:= 3 ;
END IF;
CASE sel IS
WHEN 0 => x <= a ;
WHEN 1 => x <= b ;
WHEN 2 => x <= c ;
WHEN OTHERS => x <= d ;
END CASE;
END PROCESS;
END sequential;
Kieán truùc naøy chæ chöùa 1 phaùt bieåu duy nhaát ñöôïc goïi laø phaùt bieåu quaù trình (process). Ñöôïc
baét ñaàu vôùi haøng coù töø khoaù PROCESS vaø keát thuùc vôùi haøng coù töø khoaù END PROCESS. Taát caû
caùc phaùt bieåu naèm giöõa hai haøng treân ñöôïc xem thaønh phaàn cuûa phaùt bieåu quaù trình.
a. Caùc phaùt bieåu quaù trình
Phaùt bieåu quaù trình chöùa nhieàu thaønh phaàn.
• Thaønh phaàn thöù nhaát ñöôïc goïi laø danh saùch caùc phaàn töû nhaïy.
• Thaønh phaàn thöù hai ñöôïc goïi laø thaønh phaàn khai baùo quaù trình.
• Thaønh phaàn thöù 3 laø caùc phaùt bieåu.
Trong ví duï treân thì danh saùch lieät keâ caùc tín hieäu naèm trong daáu ngoaëc sau töø khoaù
PROCESS ñöôïc goïi laø danh saùch nhaïy. Danh saùch naøy lieät keâ chính xaùc nhöõng tín hieäu laøm cho
phaùt bieåu quaù trình ñöôïc thöïc hieän. Trong ví duï naøy thì danh saùch chöùa caùc tín hieäu laø a, b, c, d, s0
vaø s1. Chæ coù nhöõng söï kieän xaûy ra treân caùc tín hieäu naøy laøm cho phaùt bieåu quaù trình ñöôïc thöïc
hieän.
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
58 Kyõ thuaät PLD vaø ASIC
b. Vuøng khai baùo quaù trình
Phaàn khai baùo quaù trình laø vuøng naèm giöõa: sau danh saùch nhaïy vaø töø khoaù BEGIN. Trong ví
duï treân phaàn khai baùo chöùa khai baùo bieán cuïc boä sel. Bieán naøy laø bieán cuïc boä chæ ñöôïc duøng ñeå
tính toaùn giaù trò döïa vaøo port s0 vaø s1.
c. Thaønh phaàn phaùt bieåu quaù trình
Thaønh phaàn phaùt bieåu quaù trình baét ñaàu vôùi töø khoaù BEGIN vaø keát thuùc vôùi haøng coù töø khoaù
END PROCESS. Taát caû caùc phaùt bieåu naèm trong vuøng quaù trình laø nhöõng phaùt bieåu tuaàn töï. Ñieàu
naøy coù nghóa laø phaùt bieåu naøy ñöôïc thöïc hieän xong thì caâu leänh tieáp theo seõ ñöôïc thöïc hieän gioáng
nhö moät ngoân ngöõ laäp trình bình thöôøng. Chuù yù: thöù töï caùc phaùt bieåu trong kieán truùc (architecture)
thì khoâng caàn vì chuùng thöïc hieän ñoàng thôøi, tuy nhieân trong quaù trình (process) thì caàn phaûi theo
thöù töï – thöù töï thöïc hieän trong quaù trình laø thöù töï caùc phaùt bieåu.
d. Thöïc hieän quaù trình
Chuùng ta xem caùch hoaït ñoäng quaù trình baèng caùch phaân tích hoaït ñoäng cuûa ví duï sequential
trong kieán truùc theo töøng haøng phaùt bieåu. Ñeå phuø hôïp chuùng ta giaû söû s0 thay ñoåi veà 0. Bôûi vì s0
naèm trong danh saùch nhaïy cuûa phaùt bieåu quaù trình.
Moãi phaùt bieåu trong quaù trình ñöôïc thöïc hieän theo trình töï. Trong ví duï treân, phaùt bieåu if ñöôïc
thöïc hieän ñaàu tieân vaø tieáp theo laø phaùt bieåu case.
Kieåm tra thöù nhaát xem s0 coù baèng 0 hay khoâng. Phaùt bieåu naøy seõ khoâng thöïc hieän neáu s0
baèng 1 vaø s1 baèng 0. Phaùt bieåu gaùn tín hieäu theo sau phaùt bieåu kieåm tra thöù nhaát seõ khoâng ñöôïc
thöïc hieän. Thay vaøo ñoù phaùt bieåu keá ñöôïc thöïc hieän. Phaùt bieåu naøy kieåm tra ñuùng traïng thaùi vaø
phaùt bieåu gaùn theo sau leänh kieåm tra s0 =1 vaø s1 = 0 ñöôïc thöïc hieän. Giaù trò sel:=1.
e. Caùc phaùt bieåu tuaàn töï
Phaùt bieåu seõ thöïc hieän tuaàn töï. Khi moät phaùt bieåu kieåm tra thoaû ñieàu kieän thì phaùt bieåu ñöôïc
thöïc hieän thaønh coâng vaø caùc böôùc kieåm tra khaùc seõ khoâng ñöôïc thöïc hieän. Phaùt bieåu IF ñaõ thöïc
hieän xong vaø baây giôø thì ñeán phaùt bieåu case seõ ñöôïc thöïc hieän.
Phaùt bieåu case seõ caên cöù vaøo giaù trò cuûa bieán sel ñaõ ñöôïc tính toaùn tröôùc ñoù ôû caâu leänh IF vaø
thöïc hieän ñuùng phaùt bieåu gaùn töông öùng vôùi giaù trò cuûa bieán sel. Trong tröôøng hôïp naøy thì giaù trò
cuûa sel = 1 neân caâu leänh gaùn x<= b seõ ñöôïc thöïc hieän.
Giaù trò cuûa port b seõ ñöôïc gaùn cho port x vaø quaù trình thöïc hieän seõ chaám döùt bôûi vì khoâng coøn
phaùt bieåu naøo trong kieán truùc.
5. LÖÏA CHOÏN KIEÁN TRUÙC
Cho ñeán baây giôø 3 kieán truùc ñaõ ñöôïc duøng ñeå moâ taû cho moät thöïc theå. Kieán truùc naøo seõ ñöôïc
duøng ñeå xaây döïng moâ hình cho thöïc theå thì tuyø thuoäc vaøo ñoä chính xaùc mong muoán vaø neáu thoâng
tin veà caáu truùc ñöôïc yeâu caàu.
Neáu moâ hình seõ ñöôïc duøng ñeå ñieàu khieån coâng cuï layout thì kieán truùc netlist laø löïa choïn hôïp
lyù.
Neáu moâ hình caáu truùc khoâng ñöôïc yeâu caàu vì nhieàu lyù do thì moâ hình hieäu suaát cao ñöôïc söû
duïng. Moät trong 2 phöông phaùp coøn laïi (kieán truùc dataflow vaø sequential) thì coù theå ñaït hieäu suaát
cao hôn veà yeâu caàu khoâng gian boä nhôù vaø toác ñoä thöïc hieän.
Simpo PDF Merge and Split Unregistered Version -
Chöông 2. Ngoân ngöõ laäp trình VHDL SPKT – Nguyeãn Ñình Phuù
Kyõ thuaät PLD vaø ASIC 59
Caùch ñeå löïa choïn giöõa 2 phöông phaùp naøy coù theå laøm naûy sinh moät caâu khoûi veà kieåu laäp
trình. Ngöôøi xaây döïng moâ hình thích vieát chöông trình VHDL theo kieåu ñoàng thôøi hay theo kieåu
trình töï?
Neáu ngöôøi xaây döïng moâ hình muoán vieát maõ VHDL kieåu ñoàng thôøi thì phaûi choïn kieåu kieán
truùc dataflow, ngöôïc laïi thì choïn kieåu kieán truùc sequential. Thöôøng thì ngöôøi xaây döïng moâ hình
quen vôùi kieåu laäp trình tuaàn töï nhöng kieåu ñoàng thôøi laø nhöõng coâng cuï maïnh ñeå vieát cho caùc moâ
hình nhoû hieäu suaát cao.
6. CAÙC PHAÙT BIEÅU CAÁU HÌNH
Moät thöïc theå coù theå coù nhieàu hôn moät kieán truùc nhöng laøm theá naøo ñeå ngöôøi xaây döïng moâ
hình choïn kieán truù
Các file đính kèm theo tài liệu này:
- Luận văn - Kỹ thuật PLD và ASIC.pdf