BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO...

271
BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH BAØI GIAÛNG KYÕ THUAÄT SOÁ Ths. NGUYEÃN TROÏNG HAÛI LÖU HAØNH NOÄI BOÄ 05/2006

Transcript of BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO...

Page 1: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ

THAØNH PHOÁ HOÀ CHÍ MINH

BAØI GIAÛNG

KYÕ THUAÄT SOÁ

Ths. NGUYEÃN TROÏNG HAÛI

LÖU HAØNH NOÄI BOÄ 05/2006

Page 2: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

MUÏC LUÏC

TOÅNG QUAN.................................................................................................... Trang 1

CHÖÔNG 1. HEÄ THOÁNG SOÁ ÑEÁM ........................................................................... 4

1.1. Cô soá – chuyeån ñoåi cô soá ..................................................................................4

1.2. Caùc boä maõ hoùa soá heä möôøi thoâng duïng ..........................................................14

CHÖÔNG 2. ÑAÏI SOÁ BOOLEAN VAØ CAÙC COÅNG LOGIC .................................. 24

2.1. Khaùi nieäm veà logic hai traïng thaùi ...................................................................24

2.2. Baûng söï thaät ....................................................................................................24

2.3. Caùc pheùp toaùn cô baûn .....................................................................................25

2.4. Moâ taû caùc maïch logic theo phöông phaùp ñaïi soá .............................................25

2.5. Thöïc hieän caùc maïch logic töø bieåu thöùc Boolean.............................................25

2.6. Coång NOR vaø NAND .....................................................................................26

2.7. Pheùp toaùn XOR vaø pheùp toaùn töông ñöông ....................................................27

2.8. Caùc ñònh lyù cô baûn cuûa ñaïi soá Boolean...........................................................27

2.9. Logic döông vaø aâm .........................................................................................31

2.10. Caùc haøm cô baûn vaø phöông phaùp bieåu dieãn..................................................23

2.11. Toái thieåu haøm logic baèng bìa K ....................................................................38

CHÖÔNG 3. MAÏCH LOGIC TOÅ HÔÏP..................................................................... 45

3.1. Giôùi thieäu ........................................................................................................45

3.2. Thieát keá maïch logic toå hôïp .............................................................................45

3.3. Kyõ thuaät cöïc tieåu Quine-Mc Cluskey .............................................................47

3.4. Thieát keá maïch khoâng söû duïng baûng söï thaät....................................................49

3.5. Maïch giaûi maõ ..................................................................................................53

3.6. Maïch maõ hoùa ..................................................................................................59

3.7. Boä choïn keânh..................................................................................................62

3.8. Boä phaân keânh..................................................................................................65

3.9. Maïch soá hoïc....................................................................................................67

3.10. Maïch chuyeån maõ .........................................................................................69

Page 3: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

CHÖÔNG 4. HEÄ TUAÀN TÖÏ....................................................................................... 74

4.1. Toång quan .......................................................................................................74

4.2. Caùc phaàn töû hai traïng thaùi beàn........................................................................75

4.3. FlipFlop...........................................................................................................76

4.4. FlipFlop duøng xung clock................................................................................79

4.5. Caùc öùng duïng cuûa FlipFlop.............................................................................83

4.6. Maùy traïng thaùi ..............................................................................................104

4.7. Löu ñoà maùy traïng thaùi ..................................................................................105

4.8. Boä nhôù baùn daãn.............................................................................................116

4.9. ROM – thieát keá heä thoáng soá duøng ROM ......................................................118

4.10. PLD toå hôïp..................................................................................................127

4.11. PLD tuaàn töï.................................................................................................132

4.12. Caùc PLD tuaàn töï khaùc.................................................................................135

CHÖÔNG 5. CAÙC HOÏ VI MAÏCH SOÁ..................................................................... 146

5.1. Toång quan .....................................................................................................146

5.2. Caùc ñaëc tröng cuûa vi maïch soá .......................................................................146

5.3. Hoï RTL.........................................................................................................148

5.4. Hoï DTL.........................................................................................................148

5.5. Hoï TTL .........................................................................................................148

5.6. Caùc ñaëc ñieåm cuûa hoï TTL chuaån..................................................................149

5.7. Hoï TTL caûi tieán ............................................................................................150

5.8. Hoï TTL vôùi ngoõ ra cöïc thu hôû ......................................................................150

5.9. Hoï TTL ba traïng thaùi ....................................................................................151

5.10. Maïch logic MOS.........................................................................................151

5.11. Hoï CMOS ...................................................................................................151

5.12. Moät soá vi maïch thoâng duïng ........................................................................152

CHÖÔNG 6. GIAO TIEÁP TÖÔNG TÖÏ - SOÁ........................................................... 153

6.1. Bieán ñoåi ADC ...............................................................................................153

6.2. Bieán ñoåi DAC ...............................................................................................160

PHUÏ LUÏC A. TRA CÖÙU CAÙC IC THOÂNG DUÏNG..............................................167

PHUÏ LUÏC B. COÂNG CUÏ CAD TRONG THIEÁT KEÁ SOÁ .....................................251

Page 4: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Tổng quan

Trang 1

TOÅNG QUAN Caùc heä thoáng soá thöôøng söû duïng roäng raõi trong tính toaùn vaø xöû lyù data nhö trong caùc heä thoáng ñieàu khieån, trong thoâng tin, vaø trong ño löôøng vì caùc heä thoáng soá coù khaû naêng chính xaùc cao hôn caùc heä thoáng töông töï.

Trong moät heä thoáng soá, caùc tín hieäu vaät lyù coù theå xem nhö caùc giaù trò rôøi raïc, trong khi ôû heä thoáng töông töï caùc ñaïi löôïng naøy thay ñoåi lieân tuïc.

Ví dụ, ñieän aùp ngoõ ra cuûa moät heä thoáng soá coù theå ñöôïc bieán ñoåi sao cho ngoõ ra chæ coù 2 giaù trò 0 vaø 1, trong khi ñieän aùp ngoõ ra töø heä thoáng töông töï coù giaù trò thay ñoåi trong khoaûng töø Vmin ñeán Vmax

Do caùc heä thoáng soá laøm vieäc vôùi caùc ñaïi löôïng rôøi raïc, trong nhieàu tröôøng hôïp coù theå ñöôïc thieát keá vôùi keát quaû ngoõ vaøo vaø ngoõ ra moät caùch chính xaùc.

Ví dụ, neáu nhaân 2 soá goàm 5 chöõ soá söû duïng boä nhaân digital thì keát quaû laø moät soá coù 10 chöõ soá chính xaùc caû 10. Noùi caùch khaùc, ngoõ ra cuûa boä nhaân analog coù theå coù moät khoaûng sai soá (%) tuøy thuoäc vaøo ñoä chính xaùc cuûa caùc thaønh phaàn thieát laäp neân boä nhaân.

Thieát keá cuûa caùc heä thoáng soá coù theå chia ra 3 phaàn:

• Thiết kế hệ thống (system design) bao goàm vieäc chia nhoû moät heä thoáng lôùn thaønh caùc heä thoáng con vaø chæ roõ caùc ñaëc tính cuûa moãi heä thoáng con. Ví dụ, thieát keá heä thoáng cuûa moät maùy tính soá bao goàm vieäc chæ ra soá vaø daïng cuûa caùc ñôn vò nhôù, ñôn vò toaùn hoïc, caùc thieát bò vaøo ra cuõng nhö vieäc keát noái vaø ñieàu khieån cuûa caùc heä thoáng con naøy v.v...

• Thiết kế logic (logic design) bao goàm vieäc xaùc ñònh laøm theá naøo ñeå keát noái caùc khoái logic cô baûn ñeå hình thaønh haøm ñaëc bieät.

• Thiết kế mạch bao goàm vieäc chæ ra caùc keát noái beân trong cuûa caùc thaønh phaàn nhö ñieän trôû, diode, transistor ñeå hình thaønh moät coång, flipflop hoaëc caùc khoái logic khaùc. Haàu heát caùc thieát keá maïch hieän taïi ñöôïc thöïc hieän döôùi daïng maïch tích hôïp duøng coâng cuï thieát keá vôùi söï trôï giuùp cuûa maùy tính ñeå taïo caùc keát noái trong giöõa caùc thaønh phaàn treân moät chip silicon.

Nhieàu heä thoáng con coù daïng chuyeån maïch nhö sau:

Switching Network

X1X2

Xm

Z1

Z2

Zn

Inputs Outputs

Thiết kế hệ thống

Thiết kế Logic

Thiết kế Mạch

Page 5: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Tổng quan

Trang 2

Moät maïng chuyeån maïch coù moät hay nhieàu ngoõ vaøo vaø moät hay nhieàu ngoõ ra, 2 loaïi switching network thoâng thöôøng laø:

• Mạch tổ hợp, trong ñoù caùc tín hieäu ngoõ ra chæ leä thuoäc vaøo traïng thaùi ngoõ vaøo hieän taïi (khoâng leä thuoäc vaøo giaù trò ngoõ vaøo tröôùc ñoù).

• Mạch tuần tự, caùc ngoõ ra seõ tuøy thuoäc caû giaù trò tröôùc ñoù vaø giaù trò hieän taïi cuûa ngoõ vaøo. Noùi caùch khaùc, ñeå xaùc ñònh ngoõ ra cuûa maïch tuaàn töï, moät chuoãi caùc ngoõ vaøo phaûi ñöôïc xaùc ñònh. Maïch tuaàn töï ñöôïc goïi laø maïch coù nhôù vì noù phaûi nhôù moät soá traïng thaùi tröôùc ñoù cuûa ngoõ vaøo, trong khi maïch toå hôïp thì khoâng coù nhôù. Toång quaùt, maïch tuaàn töï laø keát hôïp cuûa moät maïch toå hôïp vôùi caùc phaàn töû nhôù.

Caùc khoái cô baûn söû duïng trong caùc maïch toå hôïp laø caùc cổng logic. Khi thieát keá logic, phaûi xaùc ñònh laøm theá naøo keát noái caùc coång naøy ñeå bieán ñoåi caùc tín hieäu ngoõ vaøo thaønh caùc tín hieäu ngoõ ra mong muoán.

Moái quan heä giöõa caùc tín hieäu ngoõ vaøo vaø ngoõ ra phaûi ñöôïc moâ taû toaùn hoïc, trong thieát keá soá goïi laø đại số Boolean.

Các bước thiết kế một mạch tổ hợp

• Thieát laäp moät baûng moâ taû moái quan heä giöõa ngoõ ra vaø toå hôïp ngoõ vaøo

• Thieát laäp bieåu thöùc logic toaùn hoïc moâ taû caùc ngoõ ra nhö moät haøm cuûa caùc ngoõ vaøo.

• Ruùt goïn bieåu thöùc logic moâ taû ngoõ ra duøng moät soá phöông phaùp thoâng duïng nhö bìa Karnaugh, Quine-McCluskey v.v...

• Thöïc hieän maïch

Caùc phaàn töû nhôù cô baûn trong thieát keá maïch tuaàn töï laø caùc FlipFlop. Caùc flipflop coù theå ñöôïc keát noái vôùi caùc coång ñeå hình thaønh moät maïch tuaàn töï.

Các bước thiết kế một mạch tuần tự

• Thieát laäp moät baûng moâ taû moái quan heä giöõa ngoõ ra hieän taïi vaø ngoõ ra keá tieáp.

• Thieát laäp bieåu thöùc logic toaùn hoïc moâ taû caùc ngoõ vaøo cuûa flipflop nhö moät haøm cuûa caùc ngoõ ra.

• Ruùt goïn bieåu thöùc logic moâ taû ngoõ vaøo duøng moät soá phöông phaùp thoâng duïng nhö bìa Karnaugh, Quine-McCluskey v.v...

• Thöïc hieän maïch

Phaân tích moät caùch toång quaùt veà caùc maïch tuaàn töï thöôøng duøng caùc giản đồ thời gian, máy trạng thái và graph.

Phần tử chuyển mạch duøng trong caùc heä thoáng soá thöôøng laø caùc phaàn töû 2 traïng thaùi, ngoõ ra chæ coù 2 giaù trò rôøi raïc khaùc nhau. Ví dụ relay, diode, transistor... Hai traïng thaùi cuûa relay laø ñoùng vaø môû tuøy thuoäc vaøo nguoàn cung caáp cho cuoän daây.

Page 6: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Tổng quan

Trang 3

Hai traïng thaùi cuûa diode laø traïng thaùi daãn vaø khoâng daãn. Hai traïng thaùi cuûa transistor laø baõo hoøa vaø taét, vì vaäy thöôøng duøng caùc soá nhò phaân trong caùc heä thoáng soá.

Baát cöù caùc thieát keá logic soá naøo cuõng coù theå ñöôïc thöïc hieän nhôø PLD (Programmable Logic Design). PLD laø teân goïi toång quaùt cuûa moät IC soá maø coù theå laäp trình ñöôïc ñeå thöïc hieän caùc haøm logic khaùc nhau vaø laø moät chip chöùa caùc caáu truùc maïch coù qui luaät cho pheùp ngöôøi thieát keá taïo caùc öùng duïng cuï theå

Quá trình thiết kế PLD như sau

Moät soá coâng cuï phaàn meàm hoã trôï trong thieát keá soá: MAX+PLUS II, ABEL, SYNARYO...

Moät soá ngoân ngöõ moâ taû phaàn cöùng: ABEL, VHDL, AHDL,...

Ý tưởng

Trình soạn thảo mạch

Trình soạn thảo văn bản

Trình biên dịch và mô phỏng

Kit nạp IC

Page 7: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 4

CHƯƠNG 1. HỆ THỐNG SỐ ĐẾM 1.1. CƠ SỐ - CHUYỂN ĐỔI CƠ SỐ 1.1.1. Khái niệm

Baát cöù moät soá nguyeân döông R (R>1) ñeàu coù theå ñöôïc choïn laøm cô soá cho moät heä thoáng soá.

Neáu heä thoáng coù cô soá R thì caùc soá töø 0 ñeán (R-1) ñöôïc söû duïng.

Ví duï: neáu R=8 thì caùc chöõ soá caàn thieát laø 0,1,2,3,4,5,6,7.

Caùc heä thoáng cô soá thoâng duïng trong kyõ thuaät soá:

• Thaäp phaân (cô soá 10).

• Nhò phaân (cô soá 2).

• Baùt phaân (cô soá 8).

• Thaäp luïc phaân (cô soá 16).

Một hệ thống với cơ số R được biểu diễn dưới dạng

(…a3a2a1a0 a-1a-2a-3…)R

Khai trieån theo haøm muõ cuûa R.

N =(a3a2a1a0a-1a-2a-3)R

= a3.R3 + a2.R2 + a1.R1 + a0.R0 + a-1.R-1 + a-2.R-2 + a-3.R-3

Vôùi caùc cô soá lôùn hôn 10 thì caàn phaûi theâm caùc kyù hieäu ñeå bieåu hieän caùc soá lôùn hôn 10. Ví duï heä thaäp luïc phaân (hex) coù cô soá 16 thì A bieåu thò 10, B bieåu thò 11,…, F bieåu thò 15.

Đổi giữa các cơ số Phần nguyên và phần thập phân được đổi một cách riêng biệt

Phần nguyên được đổi bằng cách sử dụng phép chia lặp cho cơ số mới và sử dụng chuỗi các số dư phát sinh để tạo ra số mới. Phép tính số học được thực hiện trên các số hạng của cơ số cũ

Phần thập phân được đổi bằng cách nhân lặp lại cho cơ số mới, sử dụng các số nguyên được tạo ra để biểu thị phân số được chuyển đổi, phép tính số học được thực hiện trên các cơ số cũ

Phần nguyên

Phần thập phân

Page 8: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 5

Ví dụ: Biến đổi phần nguyên trong hệ cơ số 10 sang hệ cơ số R

N = (anan-1…a2a1a0)R = an.Rn + an-1.Rn-1 + … + a2.R2 + a1.R1 + a0

Neáu chia N cho R, nhaän ñöôïc soá dö laø a0

RN = an.Rn-1 + an-1.Rn-2 + … + a2.R1 + a1 +

Ra 0 = Q1 + soá dö a0

Chia Q1 cho R

RQ1 = an.Rn-2 + an-1.Rn-3 + … + a3.R1 + a2 +

Ra1 = Q2 + soá dö a1

Quaù trình treân ñöôïc thöïc hieän tieáp tuïc cho ñeán khi tìm ñöôïc taát caû caùc heä soá an

Ví dụ: Biến đổi phần thập phân của hệ cơ số 10 sang hệ cơ số R

F = (a-1a-2a-3…a-m)R

= a-1.R-1 + a-2.R-2 + a-3.R-3 +… + a-m.R-m

Nhaân F vôùi R

FR = a-1 + a-2.R-1 + a-3.R-2 +… + a-m.R-m+1 = a-1 + F1

Vôùi a-1 laø phaàn nguyeân, F1 laø phaàn leû cuûa pheùp nhaân

Tieáp tuïc nhaân R vôùi F1

F1.R = a-2 + a-3.R-1 + a-4.R-2 + … + a-m.R-m+2 = a-2 + F2

Tieáp tuïc quaù trình cho ñeán khi xaùc ñònh heát caùc heä soá a-m

Biến đổi giữa 2 cơ số không phải là cơ số 10 có thể thực hiện dễ dàng bằng cách đầu tiên biến đổi sang cơ số 10 rồi biến đổi tiếp từ cơ số 10 sang cơ số mới.

1.1.2. Hệ thập phân (hệ cơ số 10)

Heä thaäp phaân ñöôïc keát hôïp bôûi 10 chöõ soá: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Moät chöõ soá trong heä thaäp phaân ñöôïc bieåu dieãn theo caùc soá muõ cuûa 10.

Soá mang troïng soá lôùn nhaát goïi laø MSD (most significant digit)

Soá mang troïng soá nhoû nhaát goïi laø LSD (least significant digit)

Ví dụ: Soá 5346,72 bieåu dieãn nhö sau:

5346,72 = 5.103 + 3.102 + 4.10 + 6 + 7.10-1 + 2.10-2

5 3 4 6 7 2

103

,

102 101 100 10-210-1

MSD Ñieåm thaäp phaân

LSD

Troïng soá

Page 9: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 6

• Ñeám trong heä thaäp phaân:

0 10 100 1 11 101 2 12 102 3 13 103 4 14 104 5 105 6 106 7 107 8 108 9 99 109

Toång quaùt vôùi N chöõ soá coù theå ñeám ñöôïc 10N soá khaùc nhau, bao goàm caû soá 0. Soá thaäp phaân lôùn nhaát laø 10N – 1.

1.1.3. Hệ nhị phân (hệ cơ số 2)

Heä nhò phaân duøng hai chöõ soá 0, 1.

Moät soá trong heä nhò phaân ñöôïc bieåu dieãn theo soá muõ cuûa 2.

Moät chöõ soá nhò phaân goïi laø bit.

Chuoãi 4 bit nhò phaân goïi laø nibble.

Chuoãi 8 bit goïi laø byte.

Chuoãi 16 bit goïi laø word.

Chuoãi 32 bit goïi laø double word.

Chöõ soá nhò phaân beân phaûi nhaát cuûa chuoãi bit goïi laø bit coù yù nghóa nhoû nhaát (least significant bit – LSB)

Chöõ soá nhò phaân beân traùi nhaát cuûa chuoãi bit goïi laø bit coù yù nghóa lôùn nhaát (most significant bit – MSB).

Thöôøng duøng chöõ B cuoái chuoãi bit ñeå xaùc ñònh ñoù laø soá nhò phaân.

Ví dụ: Soá 1011,101B bieåu dieãn giaù trò soá:

1011,101B = 1.23 + 0.22 + 1.21 +1.20 + 1.2-1 + 0.2-2 + 1.2-3

1 0 1 1 0 1

23

1

22 21 20 2-32-1

MSB Ñieåm nhò phaân

LSB

Troïng soá 2-2

Page 10: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 7

• Ñeám trong heä nhò phaân

Xeùt boä ñeám 4 bit, baét ñaàu vôùi taát caû caùc bit = 0

23 = 8 22 = 4 21 = 2 20 = 1

0 0 0 0

0 0 0 0

0 0 1 1

0 1 0 1

0 0 0 0

1 1 1 1

0 0 1 1

0 1 0 1

1 1 1 1

0 0 0 0

0 0 1 1

0 1 0 1

1 1 1 1

1 1 1 1

0 0 1 1

0 1 0 1

Cuõng nhö trong heä thaäp phaân, neáu duøng N bit seõ ñeám ñöôïc 2N laàn.

• Chuyeån soá nhò phaân thaønh soá thaäp phaân:

Phương pháp: Coäng troïng soá caùc bit 1

Ví dụ: 1011,11B = 1.23 + 0.22 + 1.21 + 1 + 1.2-1 + 1.2-2 = 11,75

• Chuyeån soá thaäp phaân thaønh soá nhò phaân: Phương pháp:

Phaàn nguyeân: Chia 2, nhôù laïi soá dö

Phaàn thaäp phaân: Nhaân 2, nhôù laïi phaàn nguyeân

Ví dụ: Chuyeån (25)10 ra soá nhò phaân

12225

= + soá dö 1

62

12= + soá dö 0

326= + soá dö 0

123= + soá dö 1

021= + soá dö 1

25 = 1 1 0 0 1

MSB LSB

Troïng soá

Page 11: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 8

Ví dụ: Chuyeån (0,625)10 thaønh soá nhò phaân

0,625 × 2 = 1,25

0,25 × 2 = 0,5

0,5 × 2 = 1,0

0,625 = 0,101B

1.1.4. Các phép toán số học trên số nhị phân

Caùc pheùp toaøn soá hoïc treân soá nhò phaân chuû yeáu vaãn gioáng caùc pheùp toaùn treân soá thaäp phaân, ngoaïi tröø pheùp coäng vaø pheùp nhaân thì ñôn giaûn hôn.

Baûng pheùp coäng cho soá nhò phaân

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0 nhôù 1 cho soá haïng keá tieáp

Ví dụ: coäng 1310 vôùi 1110 döôùi daïng nhò phaân 1111 ← caùc soá nhôù1310 = 11011110 = 1011 11000 =2410

Baûng pheùp tröø cho soá nhò phaân

0 - 0 = 0

0 - 1 = 1 möôïn 1 töø soá haïng keá tieáp

1 - 0 = 1

1 - 1 = 0

Möôïn1 töø 1 coät töông ñöông vôùi vieäc tröø 1 taïi coät ñoù

Ví dụ: (a) 1 (b) 1111 11101 10000 - 10011 - 11 1010

← (möôïn 1 töø coät thöù 3)

1101

← (möôïn)

Baûng pheùp nhaân cho soá nhò phaân

0 x 0 = 0

0 x 1 = 0

1 x 0 = 0

Page 12: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 9

1 x 1 = 1

Ví dụ: Nhaân 1310 vôùi 1110 ôû daïng nhò phaân 11011011

1101 1101 0000 1101

10001111 =14310

Ñoái vôùi maùy tính, pheùp nhaân ñöôïc thöïc hieän baèng phöông phaùp coäng vaø dòch traùi:

- Thaønh phaàn ñaàu tieân cuûa toång seõ chính laø soá bò nhaân neáu nhö LSB cuûa soá nhaân laø 1. Ngöôïc laïi, LSB cuûa soá nhaân baèng 0 thì thaønh phaàn naøy baèng 0.

- Moãi thaønh phaàn thöù i keá tieáp seõ ñöôïc tính töông töï vôùi ñieàu kieän laø phaûi dòch traùi soá bò nhaân i bit.

- Keát quaû caàn tìm chính laø toång caùc thaønh phaàn noùi treân.

Pheùp chia cho soá nhò phaân

Pheùp chia caùc soá nhò phaân cuõng töông töï nhö ñoái vôùi caùc soá thaäp phaân.

Ví dụ: 30/6 11110 110

110 101 011 000

110 110

0

Töông töï nhö ñoái vôùi pheùp nhaân, ta coù theå duøng pheùp tröø vaø pheùp dòch phaûi cho ñeán khi khoâng theå thöïc hieän pheùp tröø ñöôïc nöõa.

1.1.5. Số có dấu - không dấu

Heä thoáng soá ñöôïc chia laøm 2 loaïi: khoâng daáu vaø coù daáu.

Trong heä thoáng coù daáu: ñeå bieåu thò soá nhò phaân coù daáu thöôøng söû duïng bit MSB ñeå chæ daáu: bit 0 chæ soá döông, bit 1 chæ soá aâm, caùc bit coøn laïi ñeå chæ ñoä lôùn

Nhö vaäy, neáu ta duøng 8 bit ñeå bieåu dieãn thì seõ thu ñöôïc 256 toå hôïp öùng vôùi caùc giaù trò 0..255 (soá khoâng daáu) hay –127.. –0 +0 … +127 (soá coù daáu).

Tuy nhieân, khoâng ñôn giaûn laø cöù thay ñoåi bit MSB baèng 1 ñeå bieåu dieãn giaù trò aâm, ví duï nhö 01000001 (+65) thaønh 11000001 (-65), caùc pheùp tính soá hoïc seõ khoâng coøn ñuùng.

Giaù trò aâm ñöôïc moâ taû döôùi daïng soá buø 2.

Page 13: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 10

Soá buø 2 (2’s component)

Soá buø 2 cuûa moät soá nhò phaân xaùc ñònh baèng caùch laáy ñaûo caùc bit roài coäng theâm 1.

Ví dụ: Trong heä thoáng coù daáu 8bit

Soá +65 bieåu dieãn laø: 0100 0001 Soá buø 2 cuûa +65 laø: 1011 1110 + 1 = 1011 1111. (– 65) Nhöng neáu ñoåi ngöôïc 1011 1111 sang thaäp phaân seõ khoâng nhaän ñöôïc -65. Ñeå xaùc ñònh giaù trò tuyeät ñoái cuûa moät soá nhò phaân aâm, thöïc hieän laïi caùc böôùc treân -65 10111111 ñaûo bit 01000000 coäng 1 1 +65 01000001

Thöû laïi baèng caùch laáy toång cuûa +65 vaø –65, keát quaû phaûi baèng 0

+65-65

01000001+10111111

00 (1)00000000

Trong pheùp coäng vôùi soá buø 2, ta boû qua bit nhôù cuoái cuøng bôûi vì coù moät bit gaùn cho bit daáu neân keát quaû vaãn ñuùng

Khi bieåu dieãn theo soá buø 2, neáu söû duïng 8 bit ta seõ coù caùc giaù trò soá thay ñoåi töø

-128 ..127.

Pheùp tröø thoâng qua soá buø 2

Ngoaøi caùch tröø nhö treân, ta cuõng coù theå thöïc hieän pheùp tröø thoâng qua soá buø 2 cuûa soá tröø: A-B=A+(-B)

VD: 0110 1101 0110 1101 - 0011 0001 → + 1100 1111 1 0011 1100 Soá buø 1 Nhôù 1100 1110 + 1 = 1100 1111 (Soá buø 2)

Keát quaû 0011 1100, Bit MSB = 0 cho bieát keát quaû laø soá döông.

Xeùt khoaûng thay ñoåi sau +3 00000011 +2 00000010 +1 00000001

0 00000000 -1 11111111 -2 11111110 -3 11111101

Page 14: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 11

Thaáy raèng caùc bit 0 ôû soá nhò phaân aâm bieåu thò giaù trò thaäp phaân cuûa noù: tính giaù trò cuûa caùc bit 0 theo vò trí gioáng nhö vôùi bit 1, coäng caùc giaù trò laïi vaø coäng 1.

1.1.6. Hệ bát phân (hệ cơ số 8)

Heä baùt phaân ñöôïc keát hôïp bôûi 8 chöõ soá: 0, 1, 2, 3, 4, 5, 6, 7.

Vò trí cuûa moãi chöõ soá coù troïng soá nhö sau:

84 83 82 81 80 8-1 8-2 8-3 8-4 8-5

Ñeám trong heä baùt phaân 0 10 70 1 11 71 2 12 72 3 4 5 6 66 277 7 67 300

Vôùi N chöõ soá baùt phaân, ta coù theå ñeám töø 0 ñeán 8N-1, 8N laàn ñeám khaùc nhau.

Chuyeån soá baùt phaân sang soá thaäp phaân:

Ví dụ: (24.6)8 = 2.81 + 4.80 + 6.8-1 =(20.75)10

Chuyeån soá thaäp phaân sang baùt phaân:

Ví dụ: ñoåi (266)10 sang heä baùt phaân

338

266= + soá dö 2

4833

= + soá dö 1

084= + soá dö 4

26610 =

Ví dụ: Chuyeån 0,3125 thaønh soá baùt phaân

0,3125 × 8 = 2.5

0,5 × 8 = 4.0

( 0,3125 = 0,248 )

Ñieåm baùt phaân

4128

Page 15: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 12

Chuyeån soá baùt phaân sang soá nhò phaân:

Phương pháp: Bieán ñoåi moãi chöõ soá baùt phaân sang 3 bit nhò phaân töông öùng

Soá Octal 0 1 2 3 4 5 6 7 Soá nhò phaân töông ñöông

000 001 010 011 100 101 110 111

Ví dụ: Bieán ñoåi (472)8 sang soá nhò phaân nhö sau:

4 7 2 ↓ ↓ ↓ 100 111 010

Vaäy (472)8 chuyeån sang nhò phaân laø 100111010B.

Chuyeån soá nhò phaân sang soá baùt phaân.

Phương pháp: nhoùm töøng 3 bit baét ñaàu taïi LSB, sau ñoù chuyeån moãi nhoùm naøy sang soá baùt phaân töông öùng (theo baûng chuyeån ñoåi ôû treân).

Ví dụ: chuyeån 100111010B sang soá baùt phaân

1 0 0 1 1 1 0 1 0

↓ ↓ ↓ (4 7 2)8

Tröôøng hôïp caùc soá nhò phaân khoâng ñuû thaønh 1 nhoùm 3 bits, ta theâm 1 hoaëc 2 soá 0 veà beân traùi cuûa MSB.

Ví dụ: chuyeån 11010110 sang soá baùt phaân

0 1 1 0 1 0 1 1 0

↓ ↓ ↓ (3 2 6)8

Lôïi ích cuûa heä baùt phaân

Vieäc deã daøng chuyeån töø heä baùt phaân sang nhò phaân vaø ngöôïc laïi laøm cho heä baùt phaân raát coù lôïi trong vieäc ruùt ngaén caùc soá nhò phaân lôùn. Trong maùy tính, caùc soá nhò phaân naøy khoâng phaûi luoân luoân bieåu hieän moät con soá maø thöôøng bieåu thò döôùi daïng maõ mang thoâng tin, ví duï:

• döõ lieäu baèng soá thöïc • caùc soá töông öùng vôùi caùc vò trí (ñòa chæ) trong boä nhôù • maõ leänh • maõ bieåu thò soá hoïc vaø caùc ñaëc ñieåm khaùc • moät noùm caùc bit bieåu hieän traïng thaùi cuûa caùc thieát bò trong vaø ngoaøi

maøy tính

Khi giaûi quyeát moät löôïng lôùn caùc soá nhò phaân vôùi nhieàu bit, thöôøng duøng caùc soá döôùi daïng baùt phaân hôn laø nhò phaân ñeå taêng ñoä tieän lôïi, maëc duø caùc maïch soá vaø caùc heä thoáng soá laøm vieäc hoaøn toaøn treân soá nhò phaân.

Page 16: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 13

Ví dụ: Chuyeån soá 11710 sang heä baùt phaân roài chuyeån sang heä nhò phaân

Giaûi 228

177= + soá dö 1

2822

= + soá dö 6

082= + soá dö 2

Vaäy (177)10 =(261)8 = (10110001)2

Phöông phaùp chuyeån soá thaäp phaân thaønh soá nhò phaân naøy thöôøng nhanh hôn vieäc chuyeån thaúng töø thaäp phaân sang nhò phaân, ñaëc bieät ñoái vôùi caùc soá lôùn. Cuõng nhö vaäy ñoái vôùi vieäc chuyeån ngöôïc laïi töø nhò phaân sang thaäp phaân baèng caùch chuyeån sang soá baùt phaân

1.1.7. Hệ thập lục phân (hệ cơ số 16)

Trong heä thoáng naøy, ta duøng caùc soá 0..9 vaø caùc kí töï A..F ñeå bieåu dieãn cho moät giaù trò soá (töông öùng vôùi 10 ñeán 15 trong heä 10). Thoâng thöôøng, ta duøng chöõ H ôû cuoái ñeå xaùc ñònh ñoù laø soá thaäp luïc phaân.

Heä thaäp luïc phaân Heä thaäp phaân Heä nhò phaân 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Ñeám trong heä thaäp luïc phaân (hex)

Khi ñeám trong heä thaäp luïc phaân moãi chöõ soá taêng töø 0 ñeán F sau ñoù veà 0 vaø chöõ soá coù troïng soá lôùn hôn keá tieáp seõ taêng leân 1.

Page 17: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 14

0 10 20 9 19 FF A 1A 100 B C D E 1E 6FF F 1F 700

Chuyeån soá hex sang thaäp phaân

Ví dụ: 35616 = 3.162 + 5.161 + 6.160 = 85410

Chuyeån soá hex sang nhò phaân

Phương pháp: moãi chöõ soá hex ñöôïc bieán ñoåi thaønh soá nhò phaân 4 bit töông öùng.

Ví dụ: 9F216 = 9 F 2 ↓ ↓ ↓ 1001 1111 0010

Chuyeån ñoåi soá nhò phaân sang soá hex

Phương pháp: caùc bit nhò phaân ñöôïc nhoùm vaøo nhoùm 4 bit töø LSB, moãi nhoùm 4 bit ñöôïc bieán ñoåi sang soá hex töông öùng. Neáu soá bit khoâng ñuû 4, thì coäng theâm bit 0 vaøo MSB.

Ví dụ: 11101001102 = 0 0 1 1 1 0 1 0 0 1 1 0 = 3A616

3 A 6

Ví dụ: Chuyeån (378)10 sang soá hex roài chuyeån sang soá nhò phaân, nhaän xeùt

Ví dụ: Chuyeån B2F16 sang baùt phaân

1.2. CÁC BỘ MÃ HÓA SỐ HỆ MƯỜI THÔNG DỤNG

Khi caùc soá, maãu töï hoaëc caùc töø words ñöôïc bieåu thò döôùi daïng moät nhoùm caùc kyù hieäu khaùc, ta noùi raèng chuùng ñöôïc maõ hoùa vaø nhoùm kyù töï ñoù ñöôïc goïi laø moät maõ.

Moät trong nhöõng maõ thoâng duïng nhaát laø maõ Morse, chuùng bao goàm caùc chaám vaø gaïch ñeå bieåu hieän caùc maãu töï hay caùc chöõ caùi.

Baát cöù soá thaäp phaân naøo cuõng coù theå ñöôïc moâ taû baèng soá nhò phaân töông öùng, moät nhoùm caùc soá nhò phaân 0 vaø 1 coù theå ñöôïc xem laø moät maõ cho soá thaäp phaân. Khi moät soá thaäp phaân ñöôïc moâ taû baèng soá nhò phaân töông öùng vôùi noù, ngöôøi ta goïi laø maõ nhò phaân tröïc tieáp (straight binary code)

Page 18: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 15

Taát caû caùc heä thoáng soá duøng moät soá daïng caùc soá nhò phaân cho vieäc thöïc thi beân trong, nhöng caùc töø beân ngoaøi thì thöôøng laø thaäp phaân, nghóa laø coù moät söï bieán ñoåi thöôøng xuyeân töø thaäp phaân sang nhò phaân, söï bieán ñoåi töø thaäp phaân sang nhò phaân coù theå chieám moät khoaûng thôøi gian laâu vaø phöùc taïp ñoái vôùi moät soá lôùn. Vì lyù do ñoù, vieäc maõ hoùa caùc soá thaäp phaân baèng caùch keát hôïp moät vaøi chöùc naêng cuûa caû heä thoáng thaäp phaân vaø nhò phaân ñöôïc söû duïng trong caùc tình huoáng.

1.2.1. Mã BCD (Binary-Coded-Decimal Code)

Neáu moãi chöõ soá cuûa soá thaäp phaân ñöôïc moâ taû baèng soá nhò phaân töông öùng vôùi noù, keát quaû ta ñöôïc 1 maõ goïi laø maõ BCD, vì chöõ soá thaäp phaân lôùn nhaát laø 9, caàn 4 bit ñeå maõ hoùa.

Caùc soá 8,4,2,1 ñöôïc goïi laø troïng soá cuûa maõ vaø ñöôïc goïi laø maõ BCD 8-4-2-1.

Ñoâi khi troïng soá 8-4-2-1 toû ra khoâng thuaän tieän trong tính toaùn, moät soá troïng soá khaùc cuõng ñöôïc söû duïng nhö 2-4-2-1, 5-4-2-1, 7-4-2-1…

MÃ BCD

Trọng số Trọng số Trọng số Trọng số

Thập phân

8 4 2 1 7 4 2 1 2 4 2 1 5 1 2 1 0 1 2 3 4 5 6 7 8 9

0 0 0 0 0 0 0 0 1 1

0 0 0 0 1 1 1 1 0 0

0 0 1 1 0 0 1 1 0 0

0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1 1 1

0 0 0 0 1 1 1 0 0 0

0 0 1 1 0 0 1 0 0 1

0 1 0 1 0 1 0 0 1 0

0 0 0 0 0 1 1 1 1 1

0 0 0 0 1 0 1 1 1 1

0 0 1 1 0 1 0 0 1 1

0 1 0 1 0 0 0 1 0 1

0 0 0 0 0 1 1 1 1 1

0 0 0 0 1 0 0 0 0 1

0 0 1 1 0 0 0 1 1 1

0 1 0 1 0 0 1 0 1 1

Löu yù raèng caùc loaïi maõ 5-1-2-1 vaø 2-4-2-1 laø khoâng duy nhaát trong khi maõ 8-4-2-1 vaø 7-4-2-1 laïi duy nhaát

Ví dụ: Soá thaäp phaân 874 chuyeån sang töông ñöông nhò phaân nhö sau:

8 7 3 (thaäp phaân) ↓ ↓ ↓ 1000 0111 0011 (BCD 8-4-2-1) 1011 1010 0011 (BCD 5-1-2-1) hoaëc 1011 1101 0110 (BCD 5-1-2-1)

Moät laàn nöõa, moãi chöõ soá thaäp phaân ñöôïc bieán ñoåi tröïc tieáp sang soá nhò phaân töông öùng, löu yù raèng 4 bit luoân ñöôïc duøng cho moãi chöõ soá thaäp phaân

Page 19: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 16

Trong baøi giaûng naøy laáy maõ BCD 8-4-2-1 laøm ví du. Maõ BCD bieåu thò moãi chöõ soá cuûa soá thaäp phaân baèng soá nhò phaân 4 bit, söû duïng caùc soá nhò phaân 4 bit töø 0000 ñeán 1001, khoâng söû duïng caùc soá 1010, 1011, 1100, 1101, 1110 vaø 1111.

Ví dụ: Bieán ñoåi 0110100000111001 (BCD 8-4-2-1) sang giaù trò thaäp phaân

Giải

Chia soá BCD thaønh caùc nhoùm 4 bit vaø bieán ñoåi sang thaäp phaân

0110 1000 0011 1001 = 6839

So saùnh BCD vaø nhò phaân. Moät ñieàu quan troïng laø maõ BCD khoâng gioáng nhö maõ nhò phaân tröïc tieáp. Maõ nhò phaân tröïc tieáp bieán ñoåi soá thaäp phaân sang nhò phaân trong khi maõ BCD bieán ñoåi moãi chöõ soá trong soá thaäp phaân sang nhò phaân. Xeùt ví duï bieán ñoåi 137 sang maõ nhò phaân tröïc tieáp vaø sang BCD 8-4-2-1 nhö sau:

13710 = 100010012 (nhò phaân)

13710 = 0001 0011 0111 (BCD 8-4-2-1)

Maõ BCD caàn 12 bit trong khi maõ nhò phaân tröïc tieáp chæ caàn 8 bit ñeå bieåu thò soá 137. Maõ BCD caàn nhieàu bit hôn laø bôûi vì BCD khoâng duøng heát caùc khaû naêng cuûa caùc nhoùm 4 bit vaø vì vaäy coù phaàn naøo ñoù khoâng hieäu quaû.

Öu ñieåm chính cuûa BCD laø deã daøng chuyeån sang thaäp phaân. Chæ phaûi nhôù caùc nhoùm maõ 4bit cho caùc soá thaäp phaân töø 0 ñeán 9. Söï deã daøng chuyeån ñoåi naøy ñaëc bieät quan troïng theo quan ñieåm veà phaàn cöùng vì trong moät heä thoáng soá, noù laø caùc maïch logic ñeå taïo neân söï chuyeån ñoåi sang vaø töø thaäp phaân

1.2.2. Các phép toán số học với mã BCD

Cộng BCD

Coäng hai soá BCD coù ñieåm khaùc so vôùi coäng hai soá nhò phaân. Khi toång cuûa moãi soá haïng BCD ≤ 9 thì toång ñoù laø keát quaû cuoái cuøng

Ví dụ,

01010011 (53)

00100101 (25)

01111000 (78)

Khi toång hai soá nhò phaân 9≥ thì toång phaûi ñöôïc coäng theâm 6 vaø nhôù 1 leân haøng BCD coù nghóa cao hôn

Ví dụ,

0001 0111 (17) 0010 0101 (25) 0011 1100 Keát quaû 9≥ 0110 (6) 0100 0010 (42)

Page 20: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 17

Trừ BCD

Gioáng quy luaät tröø soá nhò phaân nhieàu bit, neáu soá bò tröø nhoû hôn soá tröø thì phaûi möôïn 1 ôû haøng coù nghóa lôùn hôn (gioáng tröø thaäp phaân)

Biểu diễn số BCD âm

Gioáng heä nhò phaân, ñeå bieåu dieãn soá aâm trong heä nhò phaân thöôøng duøng soá buø 2, ñeå bieåu dieãn soá BCD aâm thöôøng duøng soá buø 10.

Soá buø 10 baèng soá buø 9 coäng 1

Bit taän cuøng beân traùi laø bit daáu: 1 cho soá aâm vaø 0 cho soá döông

Ví dụ,

1.2.3. Mã quá 3 (excess-3code)

Maõ quaù 3 ñöôïc hình thaønh baèng caùch coäng theâm 3 ñôn vò vaøo maõ BCD 8421.

Ví dụ: bieán ñoåi 48 sang maõ quaù 3

4 8+ 3 + 3 Coäng 3 cho moãi chöõ soá

7 11↓ ↓

0111 1011 Chuyeån sang maõ nhò phaân 4 bit

Baûng lieät keâ maõ BCD vaø maõ quaù 3 töông öùng vôùi caùc chöõ soá thaäp phaân.

Thaäp phaân BCD Maõ quaù 3 0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

0101 0101 (55) 0100 1111 Möôïn 1 0001 1000 (18) ⇒ 0001 1000 0011 0111 (37)

+ 342 0 342 Soá döông

1 657 Soá buø 9 cuûa 342

+ 1

- 342 1 658 Soá buø 10 cuûa 342

Page 21: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 18

1.2.4. Mã Gray

Maõ Gray naèm trong nhoùm maõ thay ñoåi cöïc tieåu minimun-change codes, ôû ñoù chæ 1 bit trong nhoùm maõ thay ñoåi ôû khi ñi töø böôùc naøy qua böôùc khaùc.

Maõ Gray laø maõ khoâng coù troïng soá, nghóa laø moïi vò trí cuûa bit trong nhoùm maõ khoâng ñöôïc gaùn troïng soá naøo. Vì vaäy, maõ Gray khoâng phuø hôïp vôùi caùc bieåu thöùc soá hoïc nhöng phuø hôïp vôùi caùc thieát bò öùng duïng vaøo/ra & moät soá daïng bieán ñoåi analog - digital

Baûng chuyeån ñoåi maõ Gray töø soá thaäp phaân (0 ñeán 15) vôùi maõ nhò phaân tröïc tieáp

Thaäp phaân Nhò phaân Maõ Gray Thaäp phaân Nhò phaân Maõ Gray 0 1 2 3 4 5 6 7

0000 0001 0010 0011 0100 0101 0110 0111

0000 0001 0011 0010 0110 0111 0101 0100

8 9

10 11 12 13 14 15

1000 1001 1010 1011 1100 1101 1110 1111

1100 1101 1111 1110 1010 1011 1001 1000

1.2.5. Mã Johnson

Maõ naøy söû duïng naêm chöõ soá nhò phaân ñeå bieåu dieãn caùc chöõ soá heä möôøi.

Phương pháp: Khi chuyeån sang soá tieáp theo maõ seõ thay chöõ soá 0 baèng chöõ soá 1, baét ñaàu töø phaùi sang traùi, cho ñeán khi ñaït 11111 thì seõ baét ñaàu thay theá daàn chöõ soá 1 baèng chöõ soá 0 vaø cuõng theo chieàu töø phaûi sang traùi

Mã Johnson Hệ 10 J4 J3 J2 J1 J0

0 1 2 3 4 5 6 7 8 9

0 0 0 0 0 1 1 1 1 1

0 0 0 0 1 1 1 1 1 0

0 0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0 0

0 1 1 1 1 1 0 0 0 0

Ngoaøi ra coøn duøng caùc loaïi maõ coù chöõ soá lôùn hôn nhö 8 hoaëc 10 chöõ soá, nhöôïc ñieåm cuûa caùc loaïi maõ naøy laø ñoä daøi töø maõ lôùn neân chieám nhieàu thôøi gian trong keânh thoâng tin nhöng öu ñieåm laø coù theå phaùt hieän sai vaø trong nhieàu tröôøng hôïp coøn coù theå söûa sai, vì vaäy thöôøng goïi laø maõ choáng nhieãu (noäi dung naøy naèm trong lyù thuyeát thoâng tin)

Page 22: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 19

1.2.6. Các mã Alphanumeric (mã theo chữ cái và con số)

Ngoaøi caùc döõ lieäu soá, moät maùy tính phaûi coù khaû naêng xöû lyù caùc coâng tin khoâng soá. Noùi caùch khaùc, moät maùy tính phaûi nhaän ra caùc maõ bieåu thò caùc kyù töï cuûa chöõ caùi, caùc daáu chaám, vaø caùc kyù töï ñaëc bieät khaùc. Caùc maõ naøy ñöôïc goïi laø maõ alphanumeric. Moät maõ alphanumeric hoaøn taát bao goàm 26 chöõ caùi thöôøng, 26 chöõ caùi hoa, 10 chöõ soá, 7 chaám caâu, vaø töø 20 ñeán 40 kyù töï khaùc, nhö +, /, #, %, *,v.v…. Coù theå noùi raèng maõ alphanumeric bieåu thò taát caû caùc kyù töï khaùc nhau vaø caùc haøm tuøy thuoäc vaøo chuaån baøn phím cuûa maùy tính hay maùy ñaùnh chöõ

Maõ ASCII. Maõ alphanumeric duøng roäng raõi hieän nay laø maõ ASCII (American Standard Code for Information Interchange), söû duïng haàu heát trong caùc maùy vi tính, trong caùc theá heä maùy tính lôùn (mainframe). Maõ ASCII laø moät maõ 7 bit vaø vì vaäy noù coù 27 = 128 nhoùm maõ. Ñieàu naøy thì ñuû ñeå bieåu thò taát caû caùc kyù töï baøn phím chuaån cuõng nhö caùc haøm ñieàu khieån nhö (RETURN) vaø (LINEFEED)

Kyù töï ASCII Octal Hex Kyù töï ASCII Octal Hex A B C D E F G H I J K L

100 0001 100 0010 100 0011 100 0100 100 0101 100 0110 100 0111 100 1000 100 1001 100 1010 100 1011 100 1100

101 102 103 104 105 106 107 110 111 112 113 114

41 42 43 44 45 46 47 48 49 4A 4B 4C

Y Z 0 1 2 3 4 5 6 7 8 9

101 1001 101 1010 011 0000 011 0001 011 0010 011 0011 011 0100 011 0101 011 0110 011 0111 011 1000 011 1001

131 132 060 061 062 063 064 065 066 067 070 071

59 5A 30 31 32 33 34 35 36 37 38 39

M N O P Q R S T U V W X

100 1101 100 1110 100 1111 101 0000 101 0001 101 0010 101 0011 101 0100 101 0101 101 0110 101 0111 101 1000

115 116 117 120 121 122 123 124 125 126 127 130

4D 4E 4F 50 51 52 53 54 55 56 57 58

Blank . ( + $ * ) - /

= RETURN LINEFEED

010 0000 010 1110 010 1000 010 1011 010 0100 010 1010 010 1001 010 1101 0101111 010 1100 011 1101 000 1101 0001010

040 056 050 053 044 052 051 055 057 054 075 015 012

20 2E 28 2B 24 2A 29 2D 2F 2C 3D 0D 0A

Ví dụ: Thoâng ñieäp ñöôïc maõ hoùa trong ASCII nhö sau

1001000 1000101 1001100 1010000

Giải Keát quaû theo HEX laø 48 45 4C 50

Theo baûng ASCII, bieán ñoåi HEX sang kyù töï laø H E L P

Page 23: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 20

Maõ ASCII thöôøng duøng trong caùc boä truyeàn caùc thoâng tin alphanumeric giöõa moät maùy tính vaø caùc thieát bò vaøo ra nhö thieát bò video hay printer. Maùy tính cuõng söû duïng noù ñeå löu tröõ caùc thoâng tin nhö caùc daïng leänh.

Ñeå coù theå bieåu dieãn theâm nhieàu kyù töï khaùc (kyù hieäu khoâng phaûi laø chöõ La Ting nhö α, β, χ, δ…) maõ ASCII ñöôïc theâm 1bit nöõa ñeå coù maõ ASCII 8bit dieãn taû ñöôïc 256 kyù töï, ñaây laø maõ ASCII môû roäng (Extended ASCII)

Page 24: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 21

Bài tập chương 1 1.1. Đổi các số nhị phân sau sang số thập phân:

a. 10110 b. 10001101 c. 100100001001 d. 1111010111 e. 10111111

1.2. Đổi các giá trị thập phân sau sang nhị phân: a. 37 b. 14 c. 189 d. 205 e. 2313 f. 511

1.3. Giá trị thập phân lớn nhất của số nhị phân 8 bit là bao nhiêu,16 bit là bao nhiêu

1.4. Đổi các số bát phân sang số thập phân tương ứng: a. 743 b. 36 c. 3777 d. 257 e. 1204

1.5. Đổi các số thập phân sau sang số bát phân: a. 59 b. 372 c. 919 d. 65,535 e. 255

1.6. Đổi các số bát phân ở 1.4 thành số nhị phân. 1.7. Đổi các số nhị phân ở 1.1 thành số bát phân. 1.8. Hãy liệt kê các số bát phân liên tục từ 1658 đến 2008. 1.9.Khi các số thập phân lớn, để đổi sang nhị phân, trước tiên ta đổi sang bát

phân, sau đó đổi số bát phân thành số nhị phân. Hãy dùng cách này đổi số 231310 thành số nhị phân và so sánh với cách đổi dùng ở bài 1.2.

1.10. Đổi các giá trị hex sau thành số thập phân: a. 92

Page 25: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 22

b. 1A6 c. 37FD e. 2C0 f. 7FF

1.11. Đổi các giá trị thập phân sau sang Hex: a. 75 b. 314 c. 2048 d. 25,619 e. 4095

1.12. Đổi các giá trị nhị phân ở bài 1.1sang thập lục phân. 1.13. Đổi các giá trị Hex ở bài 1.10 sang nhị phân. 1.14.Trong máy vi tính, địa chỉ các vị trí ô nhớ được biểu diễn ở dạng thập lục

phân. Địa chỉ này là những số liên tục mà nó nhận dạng mỗi mạch nhớ a. Một máy tính cụ thể có thể chứa 1 số 8 bit trong mỗi vị trí nhớ. Nếu các

địa chỉ ô nhớ nằm trong khoảng từ 000016 đến FFFF16, có bao nhiêu vị trí nhớ?

b. Một bộ vi xử lý có 4096 vị trí nhớ thì khoảng địa chỉ Hex mà bộ vi xử lý này dùng là gì ?.

1.15. Hãy liệt kê những số hex trình tự từ 280 đến 2A0. 1.16. Hãy mã hóa các số thập phân sau thành số BCD:

a. 47 b. 962 c. 187 d. 42,689.627 e. 1204

1.17. Cần bao nhiêu bit để thể hiện các số thập phân trong khoảng từ 0 đến 999 dùng mã nhị phân chuẩn, mã BCD?

1.18. Đổi những số BCD sau thành số thập phân: a. 10010110101010010 b. 000110000100 c. 0111011101110101 d. 010010010010

1.19. Hãy thể hiện phát biểu sau "X = 25/Y" bằng mã ASCII, có kèm theo một bit chẵn lẻ.

1.20. Hãy thêm bit chẵn lẻ vào mã ASCII ở bài 1.19 và đưa kết quả về số Hex. 1.21. Các nhóm mã dưới đây được truyền đi, hãy thêm bit chẵn lẻ cho mỗi nhóm:

Page 26: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 1

GV: Nguyễn Trọng Hải Trang 23

a. 10110110 b. 00101000 c. 11110111

1.22. Hãy đổi số thập phân sau thành mã BCD, sau đó đổi sang số BCD âm: a. 74 b. 38 c. 165 d. 9201

1.23. Trong hệ thống số, số thập phân từ 000 đến 999 được thể hiện ở dạng mã BCD. Một bit chẵn lẻ lẻ cũng được đích kèm ở cuối mỗi nhóm mã. Hãy kiểm tra các nhóm mã bên dưới và giả sử rằng mỗi một mã được truyền từ vị trí này đến vị trí khác. Một vài nhóm có chứa lỗi. Giả sử không quá 2 lỗi trong mỗi nhóm. Hãy xác định nhóm mã nào có 1 lỗi đơn và nhóm mã nào có 1 lỗi kép:

a. 100101011000 b. 0100011101100 c. 011110000011 d. 1000011000101

1.24. Thực hiện các sự chuyển đổi dưới đây. Trong số đó, có thể thử 1 cách tốt nhất trong nhiều cách đã khảo sát. a. (1417)10 = (……………………….……..)2 b. (-255)10 = (………………………………)2 c. (1110101000100111)2 =(……………………………)10 e. (2497)10 = (……………………………..)8 g. (235)8 = (……………………………)10 i. (7A9)16 = (…………………………….)10 k. (1600,123)10 = (………………………………………)16 m. (865)10 =( …………………………………….)BCD n. (100101000111)BCD = (……………………………….)10

1.25. Thể hiện giá trị thập phân 37 theo những cách sau: a. Biến đổi thẳng nhị phân b. BCD c. ASCII d. Bát phân e. Hex

Page 27: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

GV: Nguyễn Trọng Hải Trang 24

CHƯƠNG 2. ĐẠI SỐ BOOLEAN VÀ CÁC CỔNG LOGIC 2.1. KHÁI NIỆM VỀ LOGIC HAI TRẠNG THÁI

Pheùp toaùn cô baûn trong thieát keá logic caùc heä thoáng soá laø ñaïi soá Boolean. Ñaïi soá Boolean coù nhieàu öùng duïng khaùc nhau bao goàm lyù thuyeát taäp hôïp vaø logic toaùn, vì taát caû caùc phaàn töû chuyeån maïch veà cô baûn ñeàu laø caùc phaàn töû hai traïng thaùi (nhö diode, transistor), cho neân seõ taäp trung khaûo saùt tröôøng hôïp ñaïi soá Boolean vôùi söï thay ñoåi giaû söû chæ ôû 1 trong 2 giaù trò. Ñaïi soá Boolean söû duïng 2 giaù trò naøy xem nhö ñaïi soá veà chuyeån maïch.

Phaàn naøy söû duïng caùc bieán Boolean nhö X hoaëc Y… ñeå bieåu dieãn ngoõ vaøo hoaëc ngoõ ra cuûa maïch chuyeån maïch, moãi bieán coù theå laáy 1 trong hai giaù trò. Kyù hieäu “0” vaø “1” ñöôïc duøng ñeå ñaïi dieän cho hai giaù trò khaùc nhau naøy. Vì vaäy, neáu X laø bieán chuyeån maïch hay bieán Boolean thì hoaëc X=0, hoaëc X=1

Maëc duø kyù hieäu “0” vaø “1” gioáng nhö soá nhò phaân, nhöng khoâng phaûi nhö vaäy. Ñaây chæ laø 2 kyù töï ñaïi dieän cho 2 giaù trò cuûa bieán chuyeån maïch vaø ñöôïc xem laø möùc logic, moät soá vò duï veà caùc hieän töôïng maø möùc logic ñaïi dieän nhö sau

LOGIC 0 LOGIC 1 Sai Taét

Möùc ñieän aùp thaáp Khoâng

Môû maïch

Ñuùng Môû

Möùc ñieän aùp cao Coù

Ñoùng maïch

Vì chæ coù hai giaù trò, neân ñaïi soá Boolean töông ñoái deã daøng hôn so vôùi ñaïi soá thoâng thöôøng. ÔÛ ñaïi soá Boolean, khoâng coù phaân soá, thaäp phaân, caên baäc hai, caên baäc ba, logarit, soá aûo, v.v. Ñaïi soá Boolean chæ coù 3 pheùp toaùn cô baûn: coäng (OR), nhaân (AND) vaø laáy buø (NOT).

2.2. BẢNG SỰ THẬT

Baûng söï thaät (Truth Table) moâ taû caùc ñaùp öùng ngoõ ra cuûa maïch logic öùng vôùi caùc toå hôïp khaùc nhau taïi ngoõ vaøo.

Ví dụ

Maïng chuyeån maïch

A

B X

Maïng chuyeån maïch

A

B X

Maïng

chuyeån maïch

A B

X

CC D

Page 28: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

GV: Nguyễn Trọng Hải Trang 25

Caùc baûng söï thaät tieâu bieåu öùng vôùi caùc maïng chuyeån maïch treân nhö sau:

ÔÛ moãi baûng söï thaät, caùc toå hôïp möùc logic 0 vaø 1 ñoái vôùi ngoõ vaøo (A, B, C, D) ñöôïc theå hieän beân traùi, möùc logic ôû ngoõ ra X ñöôïc theå hieän beân phaûi

Löu yù, neáu coù 2 ngoõ vaøo thì coù 4 khaû naêng xaûy ra, töông töï 8 khaû naêng cho 3 ngoõ vaøo vaø 16 khaû naêng cho 4 ngoõ vaøo. Seõ coù 2N khaû naêng xaûy ra ñoái vôùi N ngoõ vaøo. Taát caû caùc toå hôïp ngoõ vaøo ñöôïc theå hieän theo chuoãi ñeám nhò phaân.

2.3. CÁC PHÉP TOÁN CƠ BẢN 2.3.1. Phép toán OR và cổng OR

Goïi A vaø B laø 2 bieán logic ñoäc laäp. Khi A vaø B keát hôïp qua pheùp toaùn OR, keát quaû x ñöôïc moâ taû nhö sau:

X = A + B

Trong bieåu thöùc naøy, daáu “+” khoâng coù nghóa laø pheùp coäng thuaàn tuùy. Noù laø pheùp toaùn OR, keát quaû cuûa pheùp toaùn OR ñöôïc cho trong baûng söï thaät sau:

Keát luaän

• Pheùp toaùn OR seõ coù keát quaû baèng 1 neáu moät hay nhieàu bieán ngoõ vaøo baèng 1

• Coång OR chæ coù moät ngoõ ra vaø coù theå coù nhieàu hôn hai ngoõ vaøo

Ngoõ vaøo Ngoõ ra ↓ ↓ ↓ A B X 0 0 1 1

0 1 0 1

? ? ? ?

A B C X 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

? ? ? ? ? ? ? ?

A B C D X 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Coång OR

A

BY=A+B

A B X=A+B 0 0 1 1

0 1 0 1

0 1 1 1

Page 29: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 23

Kyù hieäu vaø baûng söï thaät cho coång OR 3 ngoõ vaøo

Ví dụ

Xaùc ñònh daïng soùng ngoõ ra coång OR khi ngoõ vaøo A, B thay ñoåi theo giaûn ñoà sau:

2.3.2. Phép toán AND và cổng AND

Neáu hai bieán logic A vaø B ñöôïc keát hôïp qua pheùp AND, keát quaû laø:

X= A.B

Baûng söï thaät cuûa pheùp nhaân 2 bieán A vaø B nhö sau:

Keát luaän

• Pheùp toaùn AND seõ coù keát quaû baèng 0 neáu moät hay nhieàu bieán ngoõ vaøo baèng 0

• Coång AND chæ coù moät ngoõ ra vaø coù theå coù nhieàu hôn hai ngoõ vaøo

Ví duï AND 3 ngoõ vaøo coù baûng söï thaät nhö sau

A B C

X=A+B+C

Coång AND

BA

X = AB

Coång AND

B A

X = ABC

C

A B C X = ABC 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1

A B C X = A + B + C 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 1 1 1 1 1 1 1

A B X=A.B 0 0 1 1

0 1 0 1

0 0 0 1

1

0

BA

Out

B

A

Page 30: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 24

Ví dụ

Xaùc ñònh daïng soùng ngoõ ra cuûa coång AND öùng vôùi caùc ngoõ vaøo nhö sau `

Trong ví duï naøy thaáy raèng, ngoõ ra x seõ baèng vôùi ngoõ vaøo A khi B ôû möùc logic 1. Vì vaäy ta coù theå xem ngoõ vaøo B nhö ngoõ vaøo ñieàu khieån, noù cho pheùp daïng soùng ôû ngoõ vaøo A xuaát hieän ôû ngoõ ra hay khoâng. Trong tröôøng hôïp naøy coång AND ñöôïc duøng nhö moät maïch cho pheùp, vaø ñaây laø öùng duïng raát quan troïng cuûa coång AND vaø seõ ñöôïc khaûo saùt sau.

2.3.3. Phép toán NOT và cổng NOT

Neáu bieán A ñöôïc ñöa qua pheùp toaùn NOT, keát quaû x seõ laø:

X= A

Ta coù 01 = vaø 10 = , baûng söï thaät cho pheùp toaùn NOT nhö sau:

A X= A 0 1

1 0

Coång NOT chæ coù moät ngoõ vaøo vaø moät ngoõ ra

2.4. MÔ TẢ CÁC MẠCH LOGIC THEO PHƯƠNG PHÁP ĐẠI SỐ

Baát cöù moät maïch logic naøo cuõng coù theå ñöôïc moâ taû baèng caùch söû duïng caùc pheùp toaùn Boolean ñaõ ñeà caäp ôû treân (coång OR, AND vaø NOT laø nhöõng khoái cô baûn trong moät heä thoáng soá).

Ví dụ, xeùt maïch sau

Maïch coù 3 ngoõ vaøo A, B vaø C vaø moät ngoõ ra x. Söû duïng caùc bieåu thöùc Boolean cho moãi coång ta xaùc ñònh ñöôïc bieåu thöùc ngoõ ra x = AB + C.

Ví dụ

B

A

B

AX = AB

A.BB A

C X = A.B + C

A+BB A

C X = (A+B).C

Coång NOT

X=AA

Page 31: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 25

Ví dụ xaùc ñònh haøm ngoõ ra cuûa maïch sau

2.5. THỰC HIỆN CÁC MẠCH LOGIC TỪ BIỂU THỨC BOOLEAN

Ví dụ thöïc hieän bieåu thöùc sau: y = AC+BC+ABC

Ví dụ veõ sô ñoà maïch thöïc hieän bieåu thöùc sau: x= AB+BC

Ví dụ veõ sô ñoà maïch thöïc hieän bieåu thöùc ( )x = ABC A+D söû duïng caùc coång coù soá

ngoõ vaøo nhoû hôn 3

2.6. CỔNG NOR VÀ CỔNG NAND

Coång NAND vaø coång NOR ñöôïc duøng raát roäng raõi trong caùc maïch soá. Thöïc söï caùc coång naøy ñeàu ñöôïc keát hôïp töø caùc pheùp toùan cô baûn AND, OR vaø NOT.

2.6.1. Cổng NOR

Coång NOR hoïat ñoäng gioáng nhö hai coång OR vaø NOT maéc noái tieáp nhö hình veõ vaø bieåu thöùc ngoõ ra laø x= A+B , baûng söï thaät nhö sau:

OR NOR

A B A+B A+B 0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

Ngoõ ra coång NOR laø ñaûo vôùi ngoõ ra coång OR

AC

C

B

BC

ABC

y=AC+BC+ABC

A

B

C

CB

A

Kyù hieäu ñaûo

X= A+B

X= A+B B

A

A

B

B

A

B

D

C

A

(a)

(b)

Page 32: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 26

Ví dụ, xaùc ñònh daïng soùng ngoõ ra cuûa coång NOR öùng vôùi ngoõ vaøo nhö sau

2.6.2. Cổng NAND

Coång NAND töông ñöông vôùi AND coäng vôùi NOT, ngoõ ra cuûa NAND seõ laø x= AB , baûng söï thaät cho nhö sau:

AND NAND

A B AB AB 0 0 1 1

0 1 0 1

0 0 0 1

1 1 1 0

Ngoõ ra coång NAND laø ñaûo vôùi ngoõ ra coång AND

Ví dụ, xaùc ñònh daïng soùng ngoõ ra cuûa coång NAND öùng vôùi ngoõ vaøo nhö sau

Ví duï, thöïc hieän maïch logic coù bieåu thöùc nhö sau: )( DCABx += chæ duøng coång NOR vaø NAND

Ví dụ xaùc ñònh möùc logic ngoõ ra cuûa ví duï treân vôùi A=B=C=1 vaø D=0

2.7. PHÉP TOÁN XOR (Exclusive-OR) và phép toán tương đương 2.7.1. Phép toán XOR và cổng XOR

Pheùp toaùn XOR (kyù hieäu ⊕) coù baûng söï thaät nhö sau:

X Y X ⊕ Y 0 0 1 1

0 1 0 1

0 1 1 0

Töø baûng söï thaät thaáy raèng X ⊕ Y =1 khi X≠ Y vaø X ⊕ Y =0 khi X= Y

Bieåu thöùc toaùn cuûa pheùp toaùn XOR: X ⊕ Y = XY+YX

Kyù hieäu ñaûo

X= A+B

X= A+B B

A

A

B

B

A

1

A

B

0

B

XAA

B

XY

X ⊕ Y

Cổng XOR

Page 33: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 27

2.7.2. Phép toán tương đương và cổng XNOR

Pheùp toùan töông ñöông (kyù hieäu ≡) coù baûng söï thaät nhö sau:

X Y X ≡ Y 0 0 1 1

0 1 0 1

1 0 0 1

Töø baûng söï thaät thaáy raèng X ≡ Y = 0 khi X≠ Y vaø X ≡ Y = 1 khi X= Y

Bieåu thöùc toaùn: X ≡ Y = YX⊕ = YXXY .+

2.8. CÁC ĐỊNH LÝ CƠ BẢN CỦA ĐẠI SỐ BOOLEAN

(1) X . 0 = 0

(2) X . 1 = X

(3) X . X = X

(4) X . X = 0

(5) X + 0 = X

(6) X + 1 =1

(7) X + X = X (8) X + X = 1

2.8.1. Phép giao hoán, kết hợp và phân phối

(9) X + Y = Y + X

(10) X . Y = Y . X

(11) X + (Y + Z) = (X + Y) + Z = X + Y + Z

(12) X(YZ) = (XY)Z = XYZ

(13) X(Y + Z) = XY + XZ

(14) (W + X)(Y + Z) = WY + XY + WZ + XZ

(15) X + XY = X (vì X(1+Y) = X)

(16) X + X Y = X + Y (vì X + X Y = (X + Y)(X + X ))

(17) (X + Y)(X + Y ) = X

2.8.2. Định lý DeMorgan

(18) YXYX .=+

(19) YXYX +=).(

2.8.3. Định lý Consensus

(20) YZZXXY ++ = ZXXY +

(21) ))(())()(( ZXYXZYZXYX ++=+++

2.8.4. Các định lý cho phép tóan XOR

(22) X ⊕ 0 = X

X

YX Y⊕

Cổng XNOR

Page 34: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 28

(23) X ⊕ 1 = X

(24) X ⊕ X = 0

(25) X ⊕ X = 1

(26) X ⊕ Y = Y ⊕ X (Giao hoaùn)

(27) (X ⊕ Y) ⊕ Z = X ⊕ (Y ⊕ Z) = X ⊕ Y ⊕ Z (Keát hôïp)

(28) X(Y ⊕ Z) = XY ⊕ XZ (Phaân phoái)

(29) YXXYYXYXYX .)( +=⊕=⊕=⊕

Ví dụ, ruùt goïn bieåu thöùc DBADBAy .+=

Giải. )( DDBAy += , söû duïng ñònh lyù (8): 1=+ DD

BABAy == 1.

Ví dụ, Ruùt goïn bieåu thöùc BCDAACDx +=

Ví dụ Ruùt goïn bieåu thöùc )DB).(CA(z ++=

Ví dụ Thöïc hieän maïch logic vôùi bieåu thöùc ngoõ ra CBAz ++= chæ duøng coång NAND vaø coång ñaûo

Ví dụ Ruùt goïn bieåu thöùc a.b+ac+bc+bc+ab

Ví dụ Ruùt goïn bieåu thöùc (a+b+c)(a+b+d)(b+c+d)

2.8.5. Các phép biến đổi trên cổng NAND và NOR

Taát caû caùc bieåu thöùc Boolean ñeàu coù theå ñöôïc thöïc hieän thoâng qua caùc coång OR, AND vaø NOT. Tuy nhieân, ñeå thöïc hieän caùc bieåu thöùc logic maø chæ duøng 1 loaïi coång NAND (hay coång NOR), ta seõ bieán ñoåi coång NAND (hay coång NOR) ñeå thöïc hieän caùc pheùp toaùn AND, OR, NOT nhö sau

Thực hiện các phép toán bằng cổng NAND

AA.Ax ==

BAB.Ax +==

A

A B

x=AB

A

B

Page 35: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 29

Thực hiện các phép toán bằng cổng NOR

Ví dụ. Thieát keá maïch thöïc hieän bieåu thöùc x=AB+CD, sao cho duøng ít IC nhaát. Giaû söû coù caùc IC sau

2.8.6. Biểu diễn qua lại giữa các cổng

ÔÛ treân ñaõ khaûo saùt 5 loaïi coång logic (AND, OR, NOT, NAND, NOR) vaø caùc kyù hieäu chuaån ñeå bieåu dieãn chuùng treân moät maïch logic. Maëc duø vaäy moät soá maïch cuõng söû duïng theâm moät soá caùch bieåu dieãn khaùc nhö sau:

AAAx =+=

B.ABAx =+=

A

A

B

x=A+B

A

B

1 2 3 4 5 6 7

89 10 11 12 13 14

7400

1 2 3 4 5 6 7

8 9 10 11121314

7408

GND

Vcc

1 2 3 4 5 6 7

891011121314

7432

GND

Vcc

Page 36: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 30

Khái nhiệm về mức logic tích cực.

Ví dụ,

ÔÛ coång NAND (a) coù theå dieãn giaûi: Ngoõ ra tích cöïc ôû möùc thaáp chæ khi A vaø B ôû möùc cao

ÔÛ coång NAND (b): Ngoõ ra tích cöïc ôû möùc cao khi A hoaëc B ôû möùc thaáp

Ví duï, dieãn giaûi yù nghóa ngoõ ra Z theo caùc ngoõ vaøo ABCD sau

`

ABBA =+AND

OR AB

BAB.A +=

AB ABBA =+ NAND

NOR AB

BAB.A +=BA +

A A ANOT

B A AB

B A A+B

B A

B A

A

BA

BA

(a) (b)

AB ABBA =+ BA

BA

(a)

C D

B Z

A

A A A A

A tích cực mức 1

A tích cực mức 0

A tích cực cạnh lên

A tích cực cạnh xuống

Page 37: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 31

Löu yù: khi hoaùn chuyeån caùc coång, moät nguyeân lyù chung laø: Keát noái ngoõ ra ñaûo cuûa coång naøy vaøo ngoõ vaøo ñaûo cuûa coång kia (hình b), vaø ngoû ra khoâng ñaûo cuûa coång naøy naøo ngoõ ra khoâng ñaûo cuûa coång kia (hình c)

2.9. LOGIC DƯƠNG VÀ LOGIC ÂM

ÖÙng vôùi ñieàu kieän hoïat ñoäng bình thöôøng, ñieän aùp cung caáp cho caùc ngoõ vaøo cuûa coång logic ñöôïc haïn cheá ñeå coù ñöôïc moät trong hai giaù trò 0 vaø 1. Khi möùc ñieän aùp ngoõ vaøo ñuùng cung caáp cho moät coång logic thì ñieän aùp ngoû ra seõ nhaän moät trong hai giaù trò.

Logic döông: Möùc ñieän aùp cao trong hai möùc ñieän aùp bieåu thò möùc logic 1 vaø möùc ñieän aùp thaáp trong hai möùc ñieän aùp bieåu thò möùc logic 0

Logic aâm: Möùc ñieän aùp thaáp trong hai möùc ñieän aùp bieåu thò möùc logic 1 vaø möùc ñieän aùp cao trong hai möùc ñieän aùp bieåu thò möùc logic 0

Ví duï cho coång logic vaø quan heä giöõa ngoõ vaøo vaø ngoõ ra nhö sau:

E1 E2 E3 E0

0 0 0 0

+V +V +V +V

0 0

+V +V 0 0

+V +V

0 +V 0

+V 0

+V 0

+V

0 0 0 0 0 0 0

+V

Coång Logic

E1

E2

E3

E0

(b)

(c)

C

A

B A

Z B

D

C D

Z

Page 38: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 32

Baûng traïng thaùi logic döông ñöôïc moâ taû nhö sau

E1 E2 E3 E0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1

Thaáy raèng E0 = 1 neáu E1, E2 vaø E3 = 1, nghóa laø: E0 = E1E2E3

Töø ñoù thaáy raèng, coång treân töông ñöông vôùi coång AND cho maïch logic döông

Neáu chuyeån baûng traïng thaùi sang logic aâm, ñöôïc nhö sau

E1 E2 E3 E0

1 1 1 1 0 0 0 0

1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0

1 1 1 1 1 1 1 0

E0 = 1 neáu E1 hoaëc E2 hoaëc E3 = 1, nghóa laø: E0 = E1+E2+E3

Töø ñoù thaáy raèng, coång treân töông ñöông vôùi coång OR cho maïch logic aâm

Neáu coù moät haøm ñoái vôùi maïch logic döông, deã daøng xaùc ñònh haøm cho maïch ñoù nhöng öùng vôùi logic aâm baèng caùch aùp duïng ñònh lyù logic aâm

Định lý logic âm

Neáu moät maïch toå hôïp coù haøm F quan heä giöõa ngoõ ra vaø ngoõ vaøo theo logic döông, thì maïch toå hôïp ñoù seõ coù haøm ñoái ngaãu vôùi haøm F khi ngoõ vaøo vaø ngoõ ra ñöôïc ñònh nghóa theo logic aâm baèng caùch bieán ñoåi AND thaønh OR vaø ngöôïc laïi

Ví dụ. Xeùt maïch toå hôïp sau:

Giaû söû haøm G ñöôïc ñònh nghóa theo logic döông laø

G= CBACAB .+

A

B

C

G

Page 39: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 33

thì haøm G ñònh nghóa theo logic aâm seõ laø

G = ( CBACAB .+ )D = ))(( CBACBA ++++

Ví dụ. ÖÙng duïng ñònh lyù logic aâm, tìm ñoái ngaãu cuûa haøm XOR

2.10. CÁC HÀM CƠ BẢN CỦA ĐẠI SỐ BOOLEAN VÀ CÁC PHƯƠNG PHÁP BIỂU DIỄN

2.10.1. Hàm logic cơ bản

Moät haøm y=f(x1, x2, …, xn) vôùi caùc bieán x1, x2, …, xn chæ nhaän hai giaù trò 0 hoaëc 1 vaø haøm y cuõng chæ nhaän hai giaù trò 0 hoaëc 1 ñöôïc goïi laø haøm logic

(1) Hàm logic một biến: y=f(x)

Vì bieán x seõ nhaän moät trong hai giaù trò: 0 hoaëc 1, neân haøm y coù 4 khaû naêng hay thöôøng goïi laø 4 haøm y0, y1, y2, y3, vaø baûng chaân lyù nhö sau:

Baûng chaân lyù Teân haøm x 0 1

Thuaät toùan logic Ghi chuù

Haøm khoâng y0 0 0 y0 = 0 Haøm luoân baèng 0 Haøm ñaûo y1 1 0 y1 = x Haøm laëp y2 0 1 y2 = x Haøm ñôn vò y3 1 1 y3 = 1

y3= xx + Haøm luoân baèng 1

(2) Haøm logic hai bieán y=f(x1, x2)

Vôùi hai bieán logic x1, x2, moãi bieán nhaän hai giaù trò laø 0, 1, nhö vaäy coù 16 toå hôïp logic taïo thaønh 16 haøm. Baûng toùm taét 16 haøm töø y0 – y15

Baûng chaân trò x1 1 1 0 0

Teân haøm

x2 1 0 1 0

Thuaät toaùn logic Ghi Chuù

Haøm khoâng y0 0 0 0 0 Y0 = 0 Haøm Piec y1 0 0 0 1 Y1= 21 x.x = 21 xx + Haøm caám x1 y2 0 0 1 0 Y2= 21xx Haøm ñaûo x1 y3 0 0 1 1 Y3 = 1x Haøm caám x2 y4 0 1 0 0 Y4= 12xx Haøm ñaûo x2 y5 0 1 0 1 Y5 = 2x Haøm XOR y6 0 1 1 0 Y6= 21 xx + 21 x.x Haøm Cheffer y7 0 1 1 1 Y7= 21 xx + = 21xx Haøm AND y8 1 0 0 0 Y8 = x1x2 Haøm XNOR y9 1 0 0 1 Y9 = x1x2 + 21 x.x Haøm laëp theo x2 y10 1 0 1 0 y10 = x2 Haøm keùo theo x2 y11 1 0 1 1 Y11= 1x +x2

Page 40: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 34

Haøm laëp theo x1 y12 1 1 0 0 y12= x1 Haøm keùo theo x1 y13 1 1 0 1 y13= x1+ 2x Haøm OR y14 1 1 1 0 y14 = x1 + x2 Haøm ñôn vò y15 1 1 1 1 y15=1

(3) Hàm logic n biến y=f(x1, x2,…, xn)

Vôùi haøm logic n bieán, moãi bieán nhaän moät trong hai giaù trò 0 hoaëc 1 neân ta coù 2n toå hôïp bieán, moãi toå hôïp bieán laïi nhaän hai giaù trò 0 hoaëc 1, do vaäy soá haøm logic taát caû laø

n22 . Vôùi 1 bieán coù 4 khaû naêng taïo haøm, vôùi 2 bieán coù 16 khaû naêng taïo haøm, vôùi 3 bieán coù 256 khaû naêng taïo haøm, nhö vaäy khi soá bieán taêng thì soá haøm coù khaû naêng taïo thaønh raát lôùn. Tuy nhieân taát caû khaû naêng naøy ñeàu ñöôïc bieåu hieän qua caùc khaû naêng toång logic, tích logic vaø nghòch ñaûo logic cuûa caùc bieán.

Trong taát caû caùc haøm ñöôïc taïo thaønh, ñaëc bieät chuù yù ñeán haøm toång chuaån vaø haøm tích chuaån.

Haøm toång chuaån laø haøm chöùa toång caùc tích maø moãi tích coù ñuû taát caû caùc bieán cuûa haøm.

Haøm tích chuaån laø haøm chöùa tích caùc toång maø moåi toång ñeàu coù ñuû taát caû caùc bieán cuûa haøm

2.10.2. Các phương pháp biểu diễn hàm logic (1) Phương pháp biểu diễn thành bảng

ÔÛ ñaây caùc giaù trò cuûa haøm phuï thuoäc vaøo caùc bieán ñöôïc trình baøy trong moät baûng goïi laø baûng söï thaät.

Ví dụ. moät haøm 2 bieán vôùi giaù trò haøm ñaõ cho ñöôïc bieåu dieãn thaønh baûng nhö sau:

Giá trị thập phân của tổ hợp biến

X2

X1

Y

0 1 2 3

0 0 1 1

0 1 0 1

1 X 0 1

Ghi chuù: daáu X laø giaù trò haøm khoâng xaùc ñònh (coù theå 0 hay 1)

Öu ñieåm cuûa caùch bieåu dieãn haøm baèng baûng laø deã nhìn, ít nhaàm laãn.

Nhöôïc ñieåm cuûa phöông phaùp naøy laø coàng keành, ñaëc bieät khi soá bieán lôùn

(2) Phương pháp hình học

ÔÛ ñaây mieàn xaùc ñònh cuûa haøm ñöôïc bieåu dieãn trong khoâng gian n chieàu. Moãi toå hôïp bieán ñöôïc bieåu dieãn thaønh 1 ñieåm ôû trong khoâng gian ñoù, öùng vôùi moãi ñieåm seõ ghi 1 giaù trò cuûa haøm. Hai ñieåm naèm treân cuøng moät truïc chæ khaùc nhau bôûi söï thay ñoåi giaù trò cuûa moät bieán.

Page 41: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 35

Sau ñaây minh hoïa caùch bieåu dieãn haøm logic 1 bieán, 2, 3 bieán döôùi daïng hình hoïc

(3) Phương pháp biểu thức đại số

Moät haøm logic n bieán baát kyø bao giôø cuõng coù theå bieåu dieãn thaønh haøm toång chuaån ñaày ñuû vaø tích chuaån ñaày ñuû

Cách viết hàm dưới dạng tổng chuẩn đầy đủ

• Chæ quan taâm ñeán toå hôïp bieán maø haøm coù giaù trò baèng 1. Soá laàn haøm baèng 1 seõ chính laø soá tích (minterm) cuûa caùc toå hôïp bieán

• Trong moãi tích, caùc bieán coù giaù trò baèng 1 ñöôïc giöõ nguyeân, coøn caùc bieán coù giaù trò baèng 0 thì ñöôïc laáy giaù trò ñaûo

• Haøm toång chuaån ñaày ñuû seõ laø toång caùc tích ñoù

Ví dụ, Thöù töï toå hôïp bieán A B C F Minterm

0 1 2 3 4 5 6 7

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 1 0 0 0 1

→ → →

ABC ABC

ABC

Vaäy F =ΣABC (2,3,7) = ABC + ABC + ABC

Cách viết hàm dưới dạng tích chuẩn đầy đủ

• Chæ quan taâm ñeán toå hôïp bieán maø haøm coù giaù trò baèng 0. Soá laàn haøm baèng 0 seõ chính laø soá toång (maxterm) cuûa caùc toå hôïp bieán

• Trong moãi toång caùc bieán coù giaù trò 0 ñöôïc giöõ nguyeân, coøn caùc bieán coù giaù trò 1 ñöôïc laáy ñaûo.

• Haøm tích chuaån ñaày ñuû seõ laø tích caùc toång ñoù

0 1 x

(a)

00

x2

01

10 11

x1

(b)

000

x2

100

010 110

x1

101 001

011111

(c)x3

Page 42: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 36

Ví dụ, Thöù töï toå hôïp bieán A B f Maxterm

0 1 2 3

0 0 1 1

0 1 0 1

0 1 0 0

A+B

A+B A+B

Vaäy f= ΠAB(0,2,3) = (A+B) ( A+B)( A+B )

(4) Phương pháp biểu diễn bằng bìa Karnaugh

• Ñeå bieåu dieãn haøm logic n bieán, caàn thaønh laäp moät baûng coù 2n oâ, moãi oâ töông öùng vôùi moät toå hôïp bieán. Ñaùnh soá thöù töï cuûa caùc oâ trong baûng töông öùng vôùi giaù trò cuûa toå hôïp bieán

• Caùc oâ caïnh nhau hoaëc ñoái xöùng nhau chæ cho pheùp khaùc nhau veà giaù trò cuûa moät bieán

• Trong caùc oâ ghi giaù trò cuûa haøm töông öùng vôùi giaù trò cuûa toå hôïp bieán ñoù

Mô tả hàm f hai biến bằng bìa Karnaugh

0 1

0

1

Moãi moät oâ vuoâng bieåu dieãn moät minterm cuûa haøm f neáu noù coù giaù trò 1, vaø bieåu dieãn moät maxterm neáu coù giaù trò 0. Ñoïc giaù trò minterm, maxterm naøy gioáng nhö ñoái vôùi baûng söï thaät

Ví dụ, Haøm f ñöôïc bieåu dieãn baèng baûng söï thaät vaø baèng bìa Karnaugh nhö sau

Töø bìa Karnaugh ta cuõng coù theå vieát laïi haøm f = BAB.A +

AB

A=0, B=0

A=0, B=1

A=1, B=0

A=1, B=1

f

A B f 0 0 1 1

0 1 0 1

1 1 0 0

0 1

0 1 0

1 1 0

AB

0 1

0 1 0

1 1 0

A B

A.B

AB

f f

Page 43: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 37

Mô tả hàm f ba biến bằng bìa Karnaugh

Lưu ý: caùc oâ caïnh nhau hoaëc ñoái xöùng nhau chæ cho pheùp khaùc nhau veà giaù trò cuûa moät bieán

Mô tả hàm f 4 biến bằng bìa Karnaugh

Ví dụ, Moâ taû haøm f(a,b,c,d) = dbaacd ++

Mô tả hàm f 5 biến bằng bìa Karnaugh

Moät bìa 5 bieán coù theå ñöôïc xaây döïng treân khoâng gian 3 chieàu baèng caùch ñaët moät bìa 4 bieán treân moät bìa thöù hai. Soá haïng lôùp döôùi ñöôïc ñaùnh soá töø 0 ñeán 15, soá haïng ôû lôùp treân ñöôïc ñaùnh soá töø 16 ñeán 31. Vì vaäy soá haïng nhoùm döôùi chöùa A vaø soá haïng nhoùm treân chöùa A

A B C f 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 1 1 0 1 0

A B C f 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 1 1 0 1 0

0 1

00 0 1

01 0 0

11 1 0

10 1 1

ABC

ABC=110 thì f=1

f

00 01 11 10

00 1 1 1 1

01 1 1 1 1

11 0 1 1 1

10 0 1 0 0

ab

cd

f

00 01 11 10

00

01

11

10

BCDE

A 1/0

0

1

3

2

4

5

7

6

8

9

11

10

12

13

14

15

16

17

19

18

20

23

22

28

2921

31

30

24

25

27

26

11 1

11

11

11

1

1 1

1 1 1 1

A.BCDE

A.B.CDE

f

Page 44: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 38

Ngoaøi ra ta coù theå moâ taû haøm 5 bieán nhö sau:

Mô tả hàm f 6 biến bằng bìa Karnaugh

2.11. TỐI THIỂU HÓA HÀM LOGIC BẰNG BÌA KARNAUGH

Các bước thực hiện

Bước 1. Bieåu dieãn haøm ñaõ cho thaønh baûng Karnaugh

Bước 2. Xaùc ñònh nhoùm caùc tích cöïc tieåu hoaëc caùc toång cöïc tieåu (nhoùm 2k oâ keá caän hoaëc ñoái xöùng vôùi ñieàu kieän trong moãi nhoùm phaûi coù ít nhaát 1 oâ chöa ñöôïc nhoùm bôûi caùc nhoùm khaùc)

Bước 3. Trong moãi nhoùm, caùc bieán coù giaù trò gioáng nhau thì giöõ laïi, caùc bieán coù giaù trò khaùc nhau thì ñôn giaûn, sau ñoù vieát haøm keát quaû theo toång hoaëc theo tích

A=0 A=1

00 01 11 11 10 11 01 00

00 0 2 6 4 5 7 3 1

01 8 10 14 12 13 15 11 9

11 24 26 30 28 29 21 27 25

10 16 18 22 20 21 23 19 17

BC DE

f

000 001 011 010 110 111 101 100

000 0 1 3 2 6 7 5 4 001 8 9 11 10 14 15 13 12 011 24 25 27 26 30 21 29 28 010 16 17 19 18 22 33 21 20

110 48 49 51 50 54 55 53 52 111 56 57 59 58 62 63 61 60 101 40 41 43 42 46 47 45 44 100 32 33 35 34 38 39 37 36

ABC

DEF

f

Page 45: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 39

Ví dụ, tích cực tiểu 2 ô kế cận

Ví dụ, ruùt goïn bìa K sau

Ví dụ, tích cực tiểu 4 ô kế cận

Ví dụ, ruùt goïn bìa K sau

C C A.B 0 0 A.B 1 0 AB 1 0

AB 0 0 (a)

C C

A.B 0 0 A.B 1 X AB 0 0

AB 0 0 (b)

x

x=ABC+ABC =BC

x

x=ABC+ABC = AB

C C A.B 1 X A.B 0 X AB 0 0

AB 1 0 (c)

x C.D CD CD CD

A.B 0 0 1 1 A.B 0 0 0 0 AB 0 X 0 0 AB 1 0 0 X

(d)

x

C C A.B 0 1 A.B 0 X AB X 1

x = C

AB 0 1 (a)

x C.D CD CD CD

A.B 0 0 X 0 A.B 0 0 0 0 AB 1 1 X 1 AB 0 0 0 0

x=AB

(b)

x

C.D CD CD CD A.B 1 0 0 0 A.B 0 1 1 0 AB 0 X 1 0 AB X 0 0 0

(c)

C.D CD CD CD A.B 0 0 X 1 A.B 0 0 0 0 AB X 0 0 1 AB 1 0 X 1

(d)

x x

C.D CD CD CD A.B 1 0 0 1 A.B 0 1 0 0 AB 0 0 0 0 AB 1 X X X

(e)

x

Page 46: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 40

Ví dụ, tích cực tiểu 8 ô kế cận

Ví dụ, ruùt goïn bìa K sau

C.D CD CD CD

A.B 1 1 1 1 A.B X 0 0 X AB 0 0 0 0 AB 1 1 1 1

(c)

C.D CD CD CD A.B 1 0 0 1 A.B 1 0 0 1 AB 1 0 0 1 AB 1 0 0 1

(d)

C.D CD CD CD A.B 0 0 X 0 A.B 1 1 1 1 AB 1 1 X 1 AB 0 0 X 0

x=B

(a)

C.D CD CD CD BA. 1 1 0 0 BA. X X 0 X

AB 1 1 0 0 BA 1 1 0 0

x=C

(b)

x x

x x

Page 47: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 41

Bài tập chương 2

2.1. Vẽ dạng sóng ngõ ra cho mạch hình sau 2.2. Giả sử ngõ vào A (bài 2.1) = 0, vẽ dạng sóng ngõ ra. 2.3. Giả sử ngõ vào A (bài 2.1) = 1, vẽ dạng sóng ngõ ra. 2.4. Có bao nhiêu tổ hợp ngõ vào của cổng OR 5 ngõ vào làm cho ngõ ra ở

mức cao? 2.5. Thay đổi cổng OR ở bài 2.1 thành cổng AND

a. Vẽ sóng ngõ ra b. Vẽ sóng ngõ ra nếu ngõ vào A nối mass c. Vẽ sóng ngõ ra nếu ngõ vào A nối +5V

2.6. Thêm cổng đảo ở ngõ ra của cổng OR (bài 2.1). Vẽ dạng sóng tại ngõ ra của cổng đảo.

2.7. Viết biểu thức Boolean cho ngõ ra X. Xác định gia trị của X ứng với các điều kiện ngõ vào có thể và liệt kê các giá trị vào bảng sự thật.

2.8. Làm lại với các yêu cầu tương tự bài 2.7

(A)

(C)

(B)(B)

(A)

(C)X

A

B

C X

D

X

A

B

C

Page 48: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 42

2.9. Xác định bảng sự thật đầy đủ cho mạch ở bài 2.8 bằng cách tìm mức logic hiện điện tại ngõ ra ứng với mỗi sự kết hợp của ngõ vào.

2.10. Thay cổng OR thành cổng AND, cổng AND thành cổng OR ở bài 2.8, viết biểu thức ngõ ra.

2.11. Ứng với mỗi biểu thức bên dưới, xây dựng mạch logic tương ứng, dùng cổng AND, OR, cổng đảo

a. )( DCABx +=

b. DCBEDCBAz +++= )( c. QPNMy ++= )(

d. QPWx += e. )( NPMNz +=

2.12. Vẽ dạng sóng ngõ ra

2.13. Làm lại bài 2.12 với cổng NAND 2.14. Viết biểu thức ngõ ra cho mạch sau và xác định bảng sự thật

2.15. Thay đổi mạch điện được xây dựng trong bài 2.15 chỉ dùng cổng NAND 2.16. Hoàn tất các biểu thức sau

a. A + 1 = b. A . A = c. B . B = d. C + C = e. X . 0 = f. D . 1 = g. D + 0 = h. C + C = i. G + GF = j. y + wy =

(A)

(C)

(B)

(A) (B) (C)

X

A B

C

X

Page 49: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 43

2.17. Đơn giản biểu thức sau a. x ABC AC= + b. ( )( )y Q R Q R= + +

c. w ABC ABC A= + + d. ( )q RST R S T= + +

e. x ABC ABC ABC ABC ABC= + + + + f. ( ) ( )z B C B C A B C= + + + +

g. x=(M+N)(M+P)(N+P) h. z=ABC+ABC+BCD i. ( )y C D ACD ABC ABCD ACD= + + + + +

2.18. Hãy chứng minh định lý DeMorgan bằng tất cả các cách có thể. 2.19. Đơn giản biểu thức bên dưới dùng định lý DeMorgan:

a. ABC b. A+BC c. ABCD

d. A(B+C)D

e. (M+N)(M+N)

f. ABCD

2.20. Trình bày cách tạo cổng NAND 2 ngõ vào từ cổng NOT 2 ngõ vào. 2.21. Trình bày cách tạo cổng NOR 2 ngõ vào từ cổng NAND 2 ngõ vào. 2.22. Hoàn tất bảng sự thật cho mạch sau

2.23. Chỉ ra cách thực hiện x = A BC bằng 1 cổng NOR 2 ngõ vào và 1 cổng NAND 2 ngõ vào.

2.24. Thực hiện biểu thức Y = ABCD sử dụng các cổng NAND 2 ngõ vào.

A B

C

D

E

X

Page 50: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 2

Trang 44

2.25 Rút gọn bìa Karnaugh sau

2.26 Rút gọn hàm bài 2.17 dùng bìa Karnaugh

D.C DC CD DC

BA. 0 0 1 0 BA. 1 1 1 1

AB 1 1 0 0 BA 0 0 0 0

(b)

D.C DC CD DC

BA. X 1 0 0 BA. 0 1 X 1

AB 1 X 1 0 BA 0 0 1 0

(c)

D.C DC CD DC

BA. 0 0 0 1 BA. X 1 1 0

AB 0 1 X 0 BA 0 0 1 0

(a)

Page 51: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 45

CHƯƠNG 3. MẠCH LOGIC TỔ HỢP 3.1. GIỚI THIỆU

Chöông 2 ñaõ khaûo saùt caùc pheùp toaùn cuûa taát caû caùc coång logic vaø vieäc söû duïng ñaïi soá Boolean ñeå moâ taû vaø phaân tích caùc maïch keát hôïp töø caùc coång logic. Caùc maïch naøy ñöôïc goïi laø maïch logic toå hôïp, vì möùc logic ngoõ ra chæ phuï thuoäc vaøo toå hôïp logic ngoõ vaøo hieän taïi.

Moät maïch toå hôïp thì khoâng coù ñaëc tính nhôù

Caùc phöông phaùp toái thieåu hoùa thöôøng ñöôïc söû duïng trong thieát keá soá laø:

• Söû duïng caùc ñònh lyù cuûa ñaïi soá Boolean

• Caùc kyõ thuaät duøng bìa (Karnaugh, Quine Mc. Cluskey)

Mô hình mạch tổ hợp với n đầu vào và m đầu ra

3.2. THIẾT KẾ MẠCH LOGIC TỔ HỢP 3.2.1. Các bước thiết kế mạch logic tổ hợp

• ÖÙng vôùi moãi toå hôïp ngoõ vaøo, ñaët caùc möùc logic ngoõ ra theo yeâu caàu thieát keá, taát caû caùc khaû naêng ngoõ ra cuûa moät maïch logic coù theå ñöôïc bieåu dieãn thoâng qua baûng söï thaät.

• Töø baûng söï thaät suy ra bieåu thöùc Boolean cho maïch caàn thieát keá

• Ruùt goïn bieåu thöùc Boolean

• Chuyeån bieåu thöùc Boolean thaønh maïch toå hôïp

Ví dụ,

Thieát keá moät maïch logic 3 ngoõ vaøo, A, B, C vôùi yeâu caàu: ngoõ ra seõ ôû möùc cao khi coù ít nhaát 2 ngoõ vaøo ôû möùc cao Giải.

Bước 1. Thieát laäp moät baûng söï thaät, coù taát caû 8 khaû naêng ñoái vôùi ngoõ vaøo. Döïa vaøo yeâu caàu baøi toaùn, ngoõ ra seõ ôû möùc 1 khi coù 2 hay 3 ngoõ vaøo ôû möùc 1, caùc tröôøng hôïp coøn laïi ngoõ ra ôû möùc 0.

MẠCH TỔ HỢP

X1

X2

Xn

Y1

Y2

Ym

Page 52: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 46

A B C X Minterm 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 1 0 1 1 1

BCA.

CBA CAB

ABC

Bước 2. Vieát bieåu thöùc ngoõ ra döôùi daïng minterm (cho moãi tröôøng hôïp X=1)

X = A.BC + ABC + ABC+ ABC

Bước 3. Coù theå vieát laïi

X=ABC+ABC+ABC+ABC+ABC+ABC

Nhoùm caùc soá haïng laïi vôùi nhau

X=BC(A+A)+AC(B+B)+AB(C+C)=BC+AC+AB

Bước 4. Bieåu thöùc ngoõ ra ñöôïc thöïc hieän nhö sau:

Hình (a) Hình (b)

Ngöôøi ta cuõng co theå bieán ñoåi bieåu thöùc treân thaønh x=C(B + A) + AB, vaø maïch logic ñöôïc thöïc hieän nhö hình (b)

Maïch (b) coù phaàn ñôn giaûn hôn vì chæ söû duïng caùc coång 2 ngoõ vaøo thay vì phaûi söû duïng coång OR 3 ngoõ vaøo nhö maïch (a). Treân thöïc teá ngöôøi thieát keá vaãn choïn maïch (a) bôûi vì nhieàu lyù do, moät trong nhöõng lyù do laø tín hieäu ngoõ vaøo A, B ôû maïch (b) phaûi qua 3 coång logic tröôùc khi ñöôïc ñöa ra ngoõ ra. Ñieàu naøy coù theå aûnh höôûng raát lôùn trong moät heä thoáng soá toác ñoä cao.

Ví dụ, Thieát keá moät maïch logic 4 ngoõ vaøo, A, B, C, D (trong ñoù A öùng vôùi MSB, vaø D öùng vôùi LSB) vôùi yeâu caàu ngoõ ra seõ ôû möùc cao khi giaù trò thaäp phaân cuûa caùc ngoõ vaøo ABCD > 610

74LS08

B C

A X

74LS08

1

74LS08

BA

X

C

Page 53: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 47

3.2.2. Một số điểm quan trọng khi thực hiện thiết kế cuối cùng

Trong caùc ví duï veà thieát keá treân, caùc maïch ñöôïc thöïc hieän thoâng qua caùc coång AND vaø OR, trong ñoù moät hay nhieàu coång AND laùi moät coång OR do vieäc bieåu dieãn haøm döôùi daïng minterm. Khi bieåu dieãn haøm döôùi daïng minterm ta coù theå deã daøng chuyeån ñoåi caùc coång logic thaønh moät coång NAND duy nhaát (löu yù xem laïi phaàn chuyeån ñoåi ñaõ khaûo saùt ôû chöông 2), bôûi vì coång NAND laø coång logic coù ñaùp öùng nhanh nhaát trong hoï logic TTL, ñaây laø moät ñaëc tính quan troïng caàn phaûi löu yù.

Ví dụ, bieán ñoåi maïch cuûa 2 ví duï treân duøng coång NAND

3.3. KỸ THUẬT CỰC TIỂU QUINE-Mc CLUSKEY

Caùc heä thoáng soá hieän ñaïi ñöôïc thieát keá baèng caùch söû duïng caùc thieát bò logic phöùc taïp, do ñoù ñoøi hoûi moät kyõ thuaät toái hieåu hoùa haøm logic vôùi söï hoã trôï cuûa maùy tính thay vì laøm baèng tay vôùi caùc yeâu caàu:

• Coù khaû naêng xöû lyù moät soá lôùn caùc bieán

• Khoâng phuï thuoäc vaøo khaû naêng cuûa ngöôøi duøng trong vieäc nhaän bieát caùc phaàn töû nguyeân toá

• Ñaûm baûo bieåu thöùc ñöôïc cöïc tieåu hoùa

• Phuø hôïp cho giaûi phaùp baèng maùy tính

Phương pháp: Bước 1. Chuyển hàm về dạng minterm

Bước 2. Sắp xếp các số hạng minterm của hàm theo từng nhóm có chung số bit 1

Bước 3. Áp dụng định lý A+A =1 cho 2 minterm chỉ sai khác nhau 1 bit 1. Lặp lại cho đến khi nhóm xong các minterm

Bước 4. Quan sát bảng các nguyên tố cơ bản được rút gọn, xác định cột chỉ chứa một minterm

Bước 5. Viết hàm dưới dạng tổng chuẩn rút gọn của các minterm đó

Ví dụ. Ruùt goïn haøm Boolean sau duøng phöông phaùp Quin McCluskey

ABCDY= (0,1,2,3,5,7,8,9,11,14)∑

74LS08

B C

A X

BC

A X

Page 54: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 48

Bước 2.

Caùc bieán Nhoùm (soá bit 1) Minterm

A B C D 1 1

2 8

0 0 1

0 0 0

0 1 0

1 0 0

2 3 5 9

0 0 1

0 1 0

1 0 0

1 1 1

3 7 11 14

0 1 1

1 0 1

1 1 1

1 1 0

Bước 3. Nhoùm caùc minterm chæ sai khaùc 1 bit

Caùc bieán Nhoùm

Minterm A B C D

1 0,1 0,2 0,8

0 0 -

0 0 0

0 - 0

- 0 0

2 1,3 1,5 1,9 2,3 8,9

0 0 - 0 1

0 - 0 0 0

- 0 0 1 0

1 1 1 - -

3 3,7 3,11 5,7

9,11

0 - 0 1

- 0 1 0

1 1 - -

1 1 1 1

4 14 1 1 1 0

Laëp laïi böôùc 3, tieáp tuïc nhoùm caùc minterm chæ sai khaùc 1 bit

Caùc bieán Nhoùm

Minterm A B C D

Nguyeân toá cô baûn

1 0,1,2,3 0,1,8,9

0 -

0 0

- 0

- -

A B B C

2 1,3,5,7 1,3,9,11

0 -

- 0

- -

1 1

A D BD

3 14 1 1 1 0 ABCD

Bước 4. Quan saùt caùc nguyeân toá vaø tìm caùc coät chæ chöùa moät gaïch cheùo (kyù hieäu ⊗)

Page 55: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 49

Caùc minterm Caùc nguyeân toá

Caùc soá thaäp phaân 0 1 2 3 5 7 8 9 11 14

ABCD 14 ⊗

A B 0,1,2,3 X X ⊗ X

B C 0,1,8,9 X X ⊗ X

A D 1,3,5,7 X X ⊗ ⊗

BD 1,3,9,11 X X X ⊗

Thaáy raèng, taát caû caùc nguyeân toá ñeàu coù ⊗, ñaây laø caùc minterm ñaõ cöïc tieåu hoùa, vaäy haøm cuoái cuøng laø

Y= ABCD + A B +B C + A D +BD

Ví dụ. Ruùt goïn haøm Boolean sau duøng phöông phaùp Quin McCluskey

ABCDY= (2,4,5,6,10,12,13,14)∏

3.4. THIẾT KẾ MẠCH KHÔNG SỬ DỤNG BẢNG SỰ THẬT

Moät soá baøi toaùn thieát keá ñoâi khi coù theå giaûi quyeát tröïc tieáp maø khoâng qua caùc böôùc thieát keá treân, ñoái vôùi nhöõng baøi toaùn naøy ñoøi hoûi phaûi hieåu roõ nhöõng pheùp toaùn logic, caùc coång logic vaø caùc tính chaát cuûa coång logic. Xeùt moät vaøi ví duï sau ñaây

3.4.1. Mạch so sánh số nhị phân 2 bit Bài toán

Thieát keá maïch sao cho ngoõ ra seõ ôû möùc cao khi x1x0 = y1y0

Giaûi.

Coù theå giaûi baøi toaùn baèng caùch laäp baûng söï thaät roài ruùt goïn haøm

Tuy nhieân, neáu ta xeùt ñeán ñaëc ñieåm cuûa pheùp toaùn töông ñöông hay coång XNOR (ngoõ ra seõ ôû möùc cao neáu 2 ngoõ vaøo baèng nhau) ta seõ thaáy vaán ñeà caàn giaûi quyeát seõ ñôn giaûn hôn nhieàu.

x1 x0 y1 y0 z 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Mạch so

sánh

x1

x0

y1

y0

z

Page 56: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 50

Coát loõi cuûa baøi toaùn laø so saùnh x0 vôùi y0 vaø x1 vôùi y1, ta seõ coù maïch nhö sau:

3.4.2. Mạch tạo và kiểm tra chẵn lẻ

Khi truyeàn döõ lieäu töø maùy phaùt sang maùy thu, coù nhieàu caùch ñeå kieåm tra loãi trong khi truyeàn, moät trong nhöõng caùch ñôn giaûn nhaát laø theâm 1 bit vaøo döõ lieäu ñöôïc truyeàn ñi, bit ñoù goïi laø bit chaün leû (parity bit).

Parity bit coù hai giaù trò 0 hay 1 tuøy thuoäc vaøo soá bit 1 coù trong nhoùm maõ. coù hai phöông phaùp taïo bit parity.

Phương pháp parity chẵn

Giaù trò cuûa bit parity ñöôïc choïn sao cho toång caùc chöõ soá 1 trong nhoùm maõ laø soá chaün.

Neáu soá bit 1 trong nhoùm maõ laø leû thì bit parity theâm vaøo laø 1

Neáu soá bit 1 trong nhoùm maõ laø chaün thì bit parity theâm vaøo laø 0

Ví duï maõ ASCII cuûa chöõ C laø 1000011, nhoùm maõ naøy coù 3 bit 1 vì vaäy seõ ñaët theâm parity bit laø 1 ñeå sao cho nhoùm maõ taïo ra coù soá bit 1 laø chaün (4 bit 1)

1 1 0 0 0 0 1 1

maõ ASCII cuûa chöõ A laø 1000001, bit parity theâm vaøo seõ laø bit 0 (01000001)

Maïch taïo Parity chaün döïa treân phöông phaùp so saùnh soá bit 1

Ngoõ ra coång XOR ôû möùc cao khi soá bit 1 ôû ngoõ vaøo laø leû

Ta coù theå thieát keá maïch duøng baûng söï thaät vaø keát quaû cuõng gioáng nhö treân

74LS08

X1

X0

Y1

Y0

Z

Bit parity theâm vaøo

D3 D2 D1 D0

Parity (P)

To Receiver

Page 57: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 51

Phương pháp Parity lẻ

Giaù trò cuûa bit parity ñöôïc choïn sao cho toång caùc chöõ soá 1 trong nhoùm maõ laø soá leû.

Neáu soá bit 1 trong nhoùm maõ laø leû thì bit parity theâm vaøo laø 0

Neáu soá bit 1 trong nhoùm maõ laø chaün thì bit parity theâm vaøo laø 1

Ví duï maõ ASCII cuûa chöõ C laø 1000011, nhoùm maõ naøy coù 3 bit 1 vì vaäy seõ ñaët theâm parity bit laø 0 ñeå sao cho nhoùm maõ taïo ra coù soá bit 1 laø leû

0 1 0 0 0 0 1 1

maõ ASCII cuûa chöõ A laø 1000001, bit parity theâm vaøo seõ laø bit 1 (11000001)

Mạch kiểm tra chẵn lẻ

Maïch kieåm tra chaün töông töï nhö maïch phaùt parity chaün, cuõng döïa treân nguyeân lyù cuûa coång XOR, ngoõ ra seõ ôû möùc cao neáu caùc ngoõ vaøo coù soá bit 1 laø chaün. Nghóa laø khi ngoõ ra ôû möùc 1: khoâng coù loãi, khi ngoõ ra ôû möùc 0: coù loãi trong khi truyeàn. Maïch nhö hình sau

Maïch chæ kieåm tra caùc bit goác coù bò loãi hay khoâng chöù khoâng bieát ñöôïc bit naøo loãi trong tröôøng hôïp phaùt hieän ñöôïc loãi

3.4.3. Mạch cho phép/cấm

Moãi coång logic cô baûn coù theå ñöôïc söû duïng ñeå ñieàu khieån cho pheùp hoaëc khoâng cho pheùp caùc tín hieäu ñi qua coång ñoù.

ÔÛ ñaây ta söû duïng moät ngoõ vaøo laøm chaân ñieàu khieån cho pheùp hoaëc caám, ngoõ coøn laïi caáp tín hieäu

Bit parity theâm vaøo

P D3 D2 D1 D0

Error (E)

1=error 0=no error

Control

Traïng thaùi caám (ñoùng coång)

Cổng logic

Control

Traïng thaùi cho pheùp (môû coång)

Cổng logic

Không thay đổi trạng thái

Page 58: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang 52

Ví dụ,

Thieát keá maïch logic cho pheùp tín hieäu ñi qua chæ khi hai ngoõ ñieàu khieån B vaø C ñeàu ôû möùc cao, caùc tröôøng hôïp coøn laïi ngoõ ra ôû möùc thaáp

Giải.

Ví dụ

Thieát keá maïch logic cho pheùp tín hieäu ñi qua chæ khi 2 ngoõ vaøo ñieàu khieån coù möùc logic khaùc nhau.

Ví dụ,

Thieát keá maïch logic vôùi tín hieäu ngoõ vaøo taïi A, ñieàu khieån taïi B, ngoõ ra X vaø Y nhö sau:

Khi B=1 ngoõ ra X = A, Y = 0

Khi B=0 ngoõ ra X = 0, Y= A

74LS11

ABC

X

Page 59: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

3.5. MẠCH GIẢI MÃ (Decoder)

Laø maïch logic giaûi maõ N-bit nhò phaân ngoõ vaøo thaønh M ñöôøng ngoõ ra, chæ duy nhaát moät ñöôøng ngoõ ra ôû möùc tích cöïc öùng vôùi moät toå hôïp N-bit ngoõ vaøo. Goïi boä giaûi maõ laø boä phaùt hieän maõ

Moät soá maïch giaûi maõ khoâng söû duïng heát taát caû caùc khaû naêng cuûa ngoõ vaøo, vì vaäy öùng vôùi toå hôïp ngoõ vaøo khoâng söû duïng thì khi thieát keá khoâng coù ngoõ ra naøo tích cöïc

AN-1

A2

A1

A0

OM-1

O2

O1

O0

Decoder N

input M

output

3.5.1. Mạch giải mã 3 sang 8

Maïch coù 3 ngoõ vaøo vaø 8 ngoõ ra, coøn ñöôïc goïi laø maïch giaûi maõ nhò phaân sang octal (binary to octal decoder), vôùi ngoõ ra tích cöïc möùc 1, coù baûng söï thaät nhö sau

Bảng sự thật

C B A Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1

Q0 = A.B.C

C(MSB)

B

A(LSB)

Q0 = C.B.AQ1 = A.B.C

Q1 = C.B.AQ2 = AB.C

Q3 = BA.C Q2 = C.BAQ4 = A.BC

Q3 = C.BA Q5 = A.BC

Q6 = A.CB Q4 = CB.AQ7 = CBA

Q5 = CB.A Tröôøng hôïp ngoõ ra tích cöïc möùc 0 laøm töông töï Q6 = CB.A

Q7 = CBA

Trang 53

Page 60: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

3.5.2. Ngõ vào cho phép

Ña soá caùc boä giaûi maõ ñeàu coù moät hoaëc nhieàu ngoõ vaøo cho pheùp ñeå ñieàu khieån hoaït ñoäng cuûa boä giaûi maõ.

Ví dụ, xeùt boä giaûi maõ ôû treân, keát noái moãi coång AND ngoõ ra vôùi chaân ñieàu khieån cho pheùp chung ENABLE. Khi ENABLE=1, cho pheùp coång AND hoaït ñoäng bình thöôøng ôû cheá ñoä giaûi maõ, khi ENABLE ôû möùc thaáp ngoõ ra cuûa caùc coång AND ñöôïc ñaët ôû möùc 0, nghóa laø maïch cho pheùp giaûi maõ öùng vôùi ngoõ ENABLE=1 vaø khoâng cho pheùp öùng vôùi ENABLE=0

3.5.3. Giải mã 3 sang 8 dùng IC74LS138

G2A G2B G1 Output

0

1

x

x

0

x

1

x

1

x

x

0

Ngoõ ra tích cöïc theo maõ cuûa A2A1A0

Khoâng giaûi maõ, ngoõ ra ôû möùc cao

Khoâng giaûi maõ, ngoõ ra ôû möùc cao

Khoâng giaûi maõ, ngoõ ra ôû möùc cao Y7Y6Y5Y4Y3Y2Y1Y0

G2BG2AG1

CBA

74LS138

74LS11

2Y 1Y 0Y

2AG

3Y 4Y 5Y Y6 7Y

A1 A0 (LSB) (MSB) A2 2BG G1

Ví dụ

Xaùc ñònh ngoõ ra naøo cuûa 74LS138 tích cöïc öùng vôùi caùc ngoõ vaøo nhö sau:

G2A = 0; G2B = G1=1 ; A2 = A1 = 1 ; A0 = 0

G2A = G2B = 0 ; G1=1 ; A2 = 0 ; A1 = A0 = 1

Trang 54

Page 61: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

3.5.4. Ghép các bộ giải mã liên tầng

Coù theå gheùp caùc boä giaûi maõ lieân taàng ñeå coù theå giaûi maõ ñöôïc töø maõ lôùn hôn.

Ví dụ, keát hôïp 2 boä giaûi maõ 3 sang 8 ñeå taïo thaønh 1 boä giaûi maõ 4 sang 16

EN=0 cho pheùp maïch giaûi hoaït ñoäng Ñoái vôùi caùc boä giaûi maõ lôùn hôn, coù theå theâm vaøo 1 boä giaûi maõ nhö sau

74LS138

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

A3

A0

HI

74LS138

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

A2 A1

EN 74LS138

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

A3 EN

A0

HI

74LS138

A2 A1

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

ABC

DEC0 DEC1 DEC2 DEC3 DEC4 DEC5 DEC6 DEC7

DEC0 DEC1 DEC2 DEC3 DEC4 DEC5 DEC6 DEC7

DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15

DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15

EN3

74LS138

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

EN2

A0

A4 74LS139A

G A B

Y0 Y1 Y2 Y3

EN1

A3

ABC

G1G2AG2B

Y0

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

ABC

Y1Y2Y3Y4Y5Y6Y7

A2 A1

DEC0 DEC1 DEC2 DEC3 DEC4 DEC5 DEC6 DEC7

DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15

DEC16 DEC17 DEC18 DEC19 DEC20 DEC21 DEC22 DEC23

DEC24 DEC25 DEC26 DEC27 DEC28 DEC29 DEC30 DEC31

Ví dụ

Söû duïng 4 IC 74LS138 vaø moät coång ñaûo, thieát keá maïch giaûi maõ 5 sang 32

Trang 55

Page 62: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

3.5.5. Sử dụng bộ giải mã tạo các minterm

Caùc ngoõ ra cuûa boä giaûi maõ (ôû cheá ñoä cho pheùp) töông öùng vôùi caùc minterm cuûa caùc ngoõ vaøo.

Ví dụ caùc minterm cuûa caùc ngoõ ra 74LS138 nhö sau A.B.CY0 = , AB.CY1 = , v.v.

Neáu moät haøm logic coù caùc minterm nhö ngoõ ra cuûa boä giaûi maõ thì ta coù theå söû duïng boä giaûi maõ ñoù ñeå xaây döïng haøm treân

Ví dụ

Xeùt haøm F = ZYXYZXZYXZYXZYX

+++=∑ ,,..)5,3,2,0(

Coù theå thieát laäp haøm nhö sau:

74LS20

FZ

X HI

YY0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

A B C

S13874L

Quaù trình thieát keá coù theå choïn caùch thieát keá naøy hoaëc caùch thieát keá khaùc tuøy thuoäc vaøo toác ñoä, giaù thaønh ... Giaûi phaùp söû duïng boä giaûi maõ raát thuaän tieän vì coù theå deã daøng thay ñoåi caùc minterm. Ngoaøi ra coù theå thieát keá nhieàu haøm logic ngoõ ra, ví duï söû duïng boä giaûi maõ vaø coång NAND thöïc hieän caùc haøm sau

F = , G = ∑ ZYX ,,)5,4,2( ∑ ZYX ,,

)3,1,0( , H = ∑ ZYX ,,)7,6,3(

HI

74LS138

Y0Y1Y2Y3Y4Y5Y6Y7

A

G2B

BC

G1

G2A

74LS10

XYZ

F

G

H

3.5.6. Giải mã 7 đoạn

Boä giaûi maõ 7 ñoaïn coù 4 ngoõ vaøo theo maõ BCD vaø 7 ngoõ ra öùng vôùi maõ 7 ñoaïn

Boä hieån thò 7 ñoaïn coù theå laø LED 7 ñoaïn hoaëc baèng tinh theå loûng (LCD liquid– crystal display) ñöôïc söû duïng trong caùc maùy tính tay hieån thò giaù trò thaäp phaân. LED 7 ñoaïn coù 2 loaïi: loaïi anode chung vaø loaïi cathode chung

d

gf

e c

b

a

Trang 56

Page 63: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

LED 7 ñoaïn Cathode chung LED 7 ñoaïn Anode chung

+Vcc

gf ed

c ba

gf ed

c ba

74LS49

ABCD

BI OAOBOCODOEOFOG

Ví dụ

74LS49 coù ngoõ ra tích cöïc möùc cao, LED töông öùng laø cathode chung nhö hình beân

Bảng sự thật của 74LS49 (tra phần phụ lục)

Ví dụ:

74LS47 vôùi ngoõ ra tích cöïc möùc thaáp, söû duïng LED töông öùng laø cathode chung nhö sau

74LS47

C D

RB ILT

A BC D EFG

BI/RBO

B A

HI

Tính toaùn caùc giaù trò ñieän trôû baèng coâng thöùc sau

R = LED

LEDCC

IVV −

VLED khoaûng 2,7V, ILED khoaûng 10mA, vaäy R = 230Ω

LED tinh thể lỏng LCD

g f e d c b a

LCD hoaït ñoäng vôùi möùc ñieän aùp thaáp (khoaûng 3 ñeán 15VRMS) taàn soá hoaït ñoäng thaáp (25 ñeán 60hz) vaø doøng cung caáp raát beù vaø cuõng ñöôïc theå hieän 7 ñoaïn gioáng nhö LED 7 ñoaïn

Blackblane

Trang 57

Page 64: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

Ñieän aùp ac caàn ñeà laøm töøng ñoaïn saùng laø ñieän aùp giöõa ñoaïn ñoù vôùi blackblane. Giöõa segment vaø blackblane hình thaønh moät ñieän dung. Taàn soá thaáp nhaát cuûa ñieän aùp ac laø 25hz

LCD söû duïng doøng ít hôn LED vaø thöôøng ñöôïc söû duïng ôû caùc thieát bò duøng pin nhö maùy tính… vaø noù caàn theâm nguoàn naêng löôïng ngoaøi laø aùnh saùng ñeå coù theå thaáy ñöôïc.

Ñeå laùi moät LCD, theo nguyeân taéc 1 segment seõ saùng khi coù moät ñieän aùp ac ñaët giöõa segment vaø blackblane, vaø segment seõ taét khi khoâng coù aùp ac naøy. Ñeå coù moät ñieän aùp ac ngöôøi ta taïo ra moät soùng vuoâng nhö sau

Segmen

Blackblane

4070

Control

40hz signal

Phöông phaùp ñeå laùi moät LCD 7 ñoaïn nhö sau

40hz

4511

A B C D LT BI LE

ABCDEFG

Blackblane

LCD

4070

3.5.7. Giải mã BCD sang 10 dùng IC74LS42

Caùch thieát keá maïch giaûi maõ BCD sang thaäp phaân thì töông töï nhö caùch thieát keá maïch 3 sang 8 (xem nhö moät baøi taäp veà nhaø).

IC giaûi maõ BCD sang thaäp phaân: 74LS42 baûng söï thaät tra phaàn phuï luïc

Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9

D

C

B

A

74LS42

Trang 58

Page 65: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

3.6. MAÏCH MAÕ HOÙA (ENCODER)

Ngöôïc vôùi quaù trình giaûi maõ laø quaù trình maõ hoùa vaø ñöôïc thöïc hieän bôûi maïch logic maõ hoùa. Chæ moät ngoõ vaøo cuûa boä maõ hoùa ñöôïc tích cöïc, vaø töø maõ N-bit ngoõ ra tuøy thuoäc vaøo ngoõ vaøo naøo ñöôïc tích cöïc

AN-1

A2

A1

A0

OM-1

O2

O1

O0

Encoder M output

N input

3.6.1. Maõ hoùa 8 sang 3 (octal sang nhò phaân)

Baûng sö thaät vaø maïch logic cho maïch maõ hoùa octal – binary vôùi ngoõ vaøo tích cöïc möùc thaáp

A0 A1 A2 A3 A4 A5 A6 A7 Q2 Q1 Q0

x x x x x x x x

1 0 1 1 1 1 1 1

1 1 0 1 1 1 1 1

1 1 1 0 1 1 1 1

1 1 1 1 0 1 1 1

1 1 1 1 1 0 1 1

1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

8 input A3

A4

Q2

A0

A6

A2

Q1

Q0

A5

A7

A1

MSB

LSB

Löu yù raèng A0 khoâng keát noái trong maïch vì ngoõ ra boä maõ hoùa maëc ñònh baèng 000 khi khoâng coù ngoõ vaøo naøo tích cöùc möùc thaáp

Ví dụ

Xaùc ñònh caùc ngoõ ra cuûa boä giaûi maõ treân khi A3 =A5 =0

3.6.2. Maõ hoùa öu tieân

Töø ví duï treân thaáy raèng khi coù 2 ngoõ vaøo tích cöïc cuøng luùc ñoái vôùi moät boä maõ hoùa ñôn giaûn seõ daãn ñeán keát quaû khoâng mong muoán.

Trang 59

Page 66: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

Ñeå traùnh tình traïng treân, thöôøng söû duïng boä maõ hoùa öu tieân. Khi coù 2 hay nhieàu ngoõ vaøo cuøng tích cöïc thì ngoõ ra seõ töông öùng vôùi ngoõ vaøo coù ñoä öu tieân cao nhaát.

Ví dụ

Khi A3 =A5 =0 thì ngoõ ra eõ töông öùng vôùi A5 nghóa laø 101.

Xeùt moät heä thoáng vôùi 2n ngoõ vaøo, moãi ngoõ vaøo bieåu thò cho moät yeâu caàu cuûa moät thieát bò nhö sau:

Request encoder

REQ 1REQ 2REQ 3

REQ N

Request for service

Requestor’s number

Ñaây laø moät caáu truùc thöôøngñöôïc söû duïng trong moät heä thoáng con input/output cuûa boä vi xöû lyù, ôû ñaây caùc ngoõ vaøo laø caùc yeâu caàu ngaét.

Ñeå giaûi baøi toaùn öu tieân ñoái vôùi caùc ngoõ vaøo nghóa laø khi coù nhieàu yeâu caàu cuøng moät luùc, ta vieát bieåu thöùc logic cho ngoõ ra cuûa boä maõ hoùa öu tieân.

Ví dụ

Vôùi maïch maõ hoùa öu tieân 8-3 nhö sau

I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0 1 x x x x x x x

0 1 x x x x x x

0 0 1 x x x x x

0 0 0 1 x x x x

0 0 0 0 1 x x x

0 0 0 0 0 1 x x

0 0 0 0 0 0 1 x

0 0 0 0 0 0 0 1

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

Ñònh nghóa 8 bieán trung gian H0 ñeán H7 nhö sau:

H7 = I7 H6 = 7I6I

H5 = 7I.6I5I … H0 = 7I.6I.5I.4I.3I.2I.1I.0I

Töø bieåu thöùc trung gian, vieát laïi bieåu thöùc ngoõ ra nhö sau:

A2 = H4 + H5 + H6 + H7 A1 = H2 + H3 + H6 + H7 A0 = H1 + H3 + H5 + H7

Trang 60

Page 67: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

74148 laø boä maõ hoùa öu tieân octal to binary IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN 7EI

A0 A1 A2 GS E0

I7 coù ñoä öu tieân cao nhaát.

74LS148 coù hai ngoõ ra GS vaø E0.

Ngoõ GS (Group Select) tích cöïc möùc 0 khi maïch hoaït ñoäng ôû cheá ñoä maõ hoùa vaø coù 1 trong soá caùc ngoõ vaøo ñang tích cöïc. E0 (enable output) tích cöïc möùc 0 khi EI tích cöïc möùc 0 vaø khoâng coù ngoõ vaøo naøo tích cöïc.

74LS148

Ví dụ

Söû duïng 74LS148 thieát keá maïch maõ hoùa öu tieân 32 ngoõ vaøo, 5bit ngoõ ra: RA4 ñeán RA0

74147 laø boä maõ hoùa öu tieân 10 ñöôøng sang BCD IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9

D

C

A

B

74LS147

Khi khoâng coù ngoõ vaøo naøo ñöôïc taùc ñoäng, ngoõ ra seõ laø 1111, vì ngoõ ra laø ngoõ ra ñaûo neân ñaûo cuûa 1111 laø 0000, giaù trò BCD laø 0 neân IC 74LS147 khoâng coù ngoõ vaøo IN0, khi ngoõ vaøo IN9 ôû möùc thaáp, thì ngoõ ra töông öùng laø 0110, ñaûo laïi 1001 töông öùng vôùi maõ BCD laø 9.

Vì caùc ngoõ ra laø ñaûo cho neân ñeå coù ñöôïc maõ BCD ñuùng ôû ngoõ ra ngöôøi ta theâm caùc coång ñaûo cho moãi ngoõ ra

Maõ hoùa baøn phím

S7

S2

HI

74LS147

B

A

C

D

IN1IN2IN3IN4IN5IN6IN7IN8IN9

S4

74LS04

S8

S9

S1

S5

S0

S3

S6

BCD

Caùc phím coù theå laø baøn phím töø 0 ñeán 9 trong maùy tính. Khi moät phím ñöôïc nhaán, ngoõ ra seõ laø maõ BCD cuûa phím nhaán ñoù. Khi coù 2 phím ñöôïc nhaán cuøng luùc thì phím ngoõ ra seõ laø maõ BCD cuûa phím öu tieân cao nhaát

Trang 61

Page 68: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

62

3.7. BOÄ CHOÏN KEÂNH (MULTIPLEXERS)

Moät boä choïn keânh töông töông vôùi boä chuyeån maïch soá, noù keát noái data töø n nguoàn khaùc nhau. Ngoõ ra seõ choïn moät trong caùc nguoàn data ngoõ vaøo tuøy thuoäc vaøo caùc ngoõ löïa choïn

Vôùi 2n ngoõ vaøo thì caàn n bit select

3.7.1. Maïch choïn keânh 2 ngoõ vaøo cô baûn

0 1Z=I .S+I .S

3.7.2. Maïch choïn keânh 4 ngoõ vaøo

S1 S0 Output

0 0 1 1

0 1 0 1

Z=I0 Z=I1 Z=I2 Z=I3

S

I0

I1

Z74LS08

74LS04

1

74LS32

1

Z

I1

S0

I0

74LS11

I2

SELECT

74LS04

I3

S1

EN Enable

SEL s

Select

s

s

s

n data sources

D0

D1

Dn-1

sY

Data output

Multiplexer

Selector Enable

D0

Dn-1

D1

Data output

s

s

s

s

Select Output 0 1

Z=I0 Z=I1

Page 69: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

63

3.7.3. Maïch choïn keânh 8 ngoõ vaøo 74LS151

G C B A Y 1 0 0 0 0 0 0 0 0

x 0 0 0 0 1 1 1 1

x 0 0 1 1 0 0 1 1

x 0 1 0 1 0 1 0 1

0 D0 D1 D2 D3 D4 D5 D6 D7

W= Y Ví dụ

Duøng 2 IC 74ls151 vaø 1 coång ñaûo, moät coång OR thieát keá maïch choïn keânh 16 ngoõ vaøo, 1 ngoõ ra vaø 4 ngoõ select S0, S1, S2, S3

3.7.4. Maïch choïn keânh 2 nhoùm ngoõ vaøo 74LS157

74LS157 chöùa 2 nhoùm ngoõ vaøo nhö hình sau

G A /B 1Y 2Y 3Y 4Y 1 0 0

X 0 1

0 1A 1B

0 2A 2B

0 3A 3B

0 4A 4B

3.7.5. Caùc öùng duïng cuûa maïch choïn keânh

Caùc boä choïn keânh coù nhieàu öùng duïng khaùc nhau trong caùc heä thoáng soá. Caùc öùng duïng bao goàm: choïn data, hoïat ñoäng tuaàn töï, chuyeån ñoåi song song sang noái tieáp, taïo daïng soùng, taïo caùc haøm logic... phaàn naøy seõ ñeà caäp ñeán moät soá öùng duïng, moät soá coøn laïi seõ ñöôïc xeùt ñeán ôû caùc chöông sau

Mạch tạo hàm logic

Ví dụï. Thöïc hieän baûng söï thaät sau söû duïng multiplexer

C B A Z 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 1 1 0 0 0 0 1

Z=A.B.C+ABC+ABC

74LS157

1A 1B 2A 2B 3A 3B 4A 4B A/B G

1Y 2Y 3Y 4Y

74LS151

G

A B C

W

Y D0 D1

D4 D3

D5 D6 D7

D2

74LS151

D0D1D2 D3 D4 D5 D6 D7 A BCG

WY=Z

HICác biến ngõ vào

Z=A.B.C+ABC+ABC

Page 70: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

64

Mux coù theå ñöôïc duøng ñeå thöïc hieän caùc haøm logic tröïc tieáp töø baûng söï thaät maø khoâng caàn ñôn giaûn hoaù haøm logic. Khi söû duïng Mux vaøo muïc ñích naøy, caùc ngoõ select ñöôïc söû duïng nhö caùc bieán logic vaø moãi ngoõ vaøo data ñöôïc noái vôùi möùc 1 hay 0 sao cho thoûa maõn baûng söï thaät.

Định hướng data

MUX coù theå ñònh höôùng data töø nhieàu nguoàn data thaønh 1 nguoàn ñích.

Ví dụ, söû duïng 74LS157 ñeå choïn vaø hieån thò noäi dung cuûa hai boä ñeám BCD.

Moãi boä ñeám bao goàm 2 soá ñeám BCD. Khi select=1, ngoõ ra cuûa boä ñeám 1 seõ hieån thò leân LED 7 ñoaïn, khi select=0, ngoõ ra cuûa boä ñeám 2 seõ hieån thò leân LED 7 ñoaïn. Baèng caùch naøy, noäi dung cuûa caùc boä ñeám seõ ñöôïc hieån thò thoâng qua ngoõ select.

Maïch ñònh höôùng naøy thöôøng ñöôïc öùng duïng trong caùc ñoàng hoà ñieän töû soá, ôû ñoù coù caùc boä ñeám vaø caùc thanh ghi nhö giaây, phuùt, giôø, thaùng, vaø baùo thöùc, v.v… Moät maïch MUX nhö treân seõ cho pheùp caùc data khaùc nhau ñöôïc hieån thò leân treân maøn hình coù soá LED hieån thò laø giôùi haïn

Clock 2Clock 1

BCD counter

BCD counter

BCD counter

BCD counter

Counter 2 Counter 1

select display

74LS157

1A1B2A2B

3A3B4A4BA/BG

1Y2Y3Y4Y74LS1571A 1B

2A 2B3A 3B

4A4BA/BG

1Y 2Y 3Y4Y

74LS47LT RBI RB0ABCD

ABCDEFG

74LS47LT RBI RB0 ABCD

ABC D EFG

Page 71: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

65

Muïc ñích cuûa kyõ thuaät Multiplex laø ñeà chia seû thôøi gian hieån thò giöõa hai hay nhieàu boä ñeám, vaø ñieàu quan troïng hôn nöõa laø tieát kieäm ñöôïc naêng löôïng, bôûi vì moät löôïng lôùn caùc boä giaûi maõ vaø LED hieån thò seõ tieâu toán moät doøng lôùn

Tuy nhieân kyõ thuaät naøy cuõng coù nhöôïc ñieåm laø noäi dung cuûa caùc boä ñeám chæ hieån thò 1 laàn taïi moät thôøi ñieåm, tuy nhieân trong nhieàu öùng duïng, ñieàu naøy coù theå boû qua

Mạch chuyển đổi song song sang nối tiếp (parallel to serial converter)

Nhieàu heä thoáng soá xöû lyù caùc data nhò phaân ôû daïng song song (xöû lyù caùc bit ñoàng thôøi) vì toác ñoä xöû lyù nhanh hôn. Khi data ñöôïc truyeàn treân moät khaûng caùch xa, giaûi phaùp truyeàn song song seõ caàn ñeán moät löôïng daây noái lôùn. Vì lyù do naøy, caùc data nhò phaân hoaëc caùc thoâng tin ôû daïng song song ñöôïc chuyeån thaønh daïng noái tieáp tröôùc khi ñöôïc truyeàn treân moät khoaûng caùch xa. Moät phöông phaùp ñeå bieán ñoåi song song sang noái tieáp laø söû duïng boä Multiplexer nhö sau:

Moät boä ñeám 3 bit ñöôïc söû duïng ñeå cung caáp caùc bit maõ choïn CBA töø 000 ñeán 111, baèng caùch naøy ngoõ ra cuûa Mux seõ choïn töøng keânh Xi theo moãi xung clock, ví duï, xung clock ñaàu tieân CBA = 000 ngoõ ra seõ laø X0, xung clock thöù hai CBA = 001 ngoõ ra seõ laø X1, cöù nhö theá ngoõ ra Z seõ laø caùc ngoõ vaøo nhö ôû daïng noái tieáp X7X6X5X4X3X2X1X0 vôi X0 laø LSB ñöôïc truyeàn tröôùc vaø X7 laø MSB ñöôïc truyeàn cuoái cuøng

3.8. MAÏCH PHAÂN KEÂNH (DEMULTIPLEXERS)

X4

X1

X6

X2X0

X3

Z X7

74LS151

D0D1D2D3D4D5D6D7

ABCG

W

YX5

Mạch đếm 3 bit

EN Enable

SEL s

Select

s

s

s

O0

O1

On-1

s Data Intput

DeMux

Selector

O0

O1

`On-1

Data intput

s

s

s

s

Page 72: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

66

Maïch phaân keânh ngöôïc laïi vôùi maïch choïn keânh. DeMUX coù moät ngoõ vaøo vaø nhieàu ngoõ ra. Ngoõ vaøo ñieàu khieån choïn (select) seõ xaùc ñònh ngoõ ra maø ngoõ vaøo seõ ñöôïc truyeàn ñeán

3.8.1. Maïch phaân keânh 1 sang 8

Select Output S2 S1 S0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 In

0 0 0 0 0 0 In 0

0 0 0 0 0 In 0 0

0 0 0 0 In 0 0 0

0 0 0 In 0 0 0 0

0 0 In 0 0 0 0 0

0 In 0 0 0 0 0 0

In 0 0 0 0 0 0 0

Töø baûng söï thaät vieát ñöôïc caùc bieåu thöùc ngoõ ra nhö sau

)SSS.(InY 0127 = , )SSS.(InY 0126 = , )SSS.(InY 0125 = , …

3.8.2. Maïch phaân keânh 1 sang 8 vaø maïch choïn xung clock duøng 74LS138

Phaàn tröôùc ñaõ khaûo saùt 74LS138 laøm nhieäm vuï giaûi maõ, ñeán ñaây seõ tieáp tuïc öùng duïng 74LS138 laøm boä phaân keânh data vaø maïch choïn xung clock

S0

HI

74LS138

A B C

G1 G2A G2B

Y0Y1Y2Y3Y4Y5Y6Y7

S2 S1

DATA

Y1

S1

Y0

S0

S2

In Y7

S0

HI

74LS138

ABC

G1G2AG2B

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

Shift RegisterCounter

S2 S1

Page 73: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

67

3.8.3. Maïch choïn xung clock

Coù raát nhieàu öùng duïng döïa vaøo nguyeân lyù DeMUX. Sau ñaây söû duïng 74LS138 laøm boä choïn clock

3.9. MAÏCH SOÁ HOÏC

3.10.1. Maïch coäng baùn phaàn

S=AB+AB

COUT = AB

3.10.2. Maïch coäng toaøn phaàn

Ví dụ, Thieát keá maïch coäng toaøn phaàn töø maïch coäng baùn phaàn

Ví dụ, Thieát keá maïch coäng hai soá nhò phaân 4 bit (a3a2a1a0 + b3b2b1b0 =S4S3S2S1S0 ) töø maïch coäng baùn phaàn vaø toaøn phaàn

IC cộng toàn phần

A

B

S

COUT

A B S COUT

0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

B S

Cout

A

CIN A B S COUT

0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

AB

S

COUTCIN

B S

Cout

Cin

A

74LS83 Cộng toàn phần 4 bit

A4 A3 A2 A1 B4 B3 B2 B1 Cin

Cout

S4

S3

S2

S1 74LS183

Cộng toàn phần 1 bit

Cin

B

A

Cout

S

Page 74: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

68

3.10.3. Maïch coäng nhìn tröôùc soá nhôù

ÔÛ maïch coäng nhieàu bit, pheùp coäng haøng cao hôn caàn soá nhôù laàn coäng haøng keá tröôùc. Thôøi gian trì hoaõn naøy laø lôùn ñoái vôùi caùc pheùp tính nhanh. Ñeå khaéc phuïc phaûi theâm maïch logic ñeå taïo tröïc tieáp soá nhôù goïi laø maïch coäng nhìn tröôùc soá nhôù (toác ñoä coäng ñoäc laäp vôùi soá bit)

Goïi

i i iP=A B⊕

i i iG =A B

⇒ phöông trình coäng toaøn phaàn

i i-1S =P Ci ⊕

i i i i-1C =G +PC

Ñeå hieåu roõ yù nghóa cuûa coäng nhìn tröôùc soá nhôù, vieát phöông trình C0, C1, C2, C3 vaø nhaän xeùt caùc bieán logic chöùa trong caùc phöông trình ñoù (xem nhö moät baøi taäp)

3.10.4. Maïch coäng BCD

Ñoái vôùi maïch coäng BCD, neáu ñaàu ra toång khoâng phaûi laø soá BCD thì keát quaû phaûi ñöôïc coäng theâm 6

B S

Ci

Ci-1

A Pi

Gi

A0A3A2A1

C4

B0B3B2B1

S0S3S2S1Cin

A0A3A2A1

C4

B0B3B2B1

S0S3S2S1Cin

BCD A

BCD B

BCD thứ nhất

BCD thứ hai

Page 75: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

69

3.10. MAÏCH CHUYEÅN MAÕ

Maïch chuyeån ñoåi maõ thay ñoåi döõ lieäu nhò phaân töø daïng naøy sang daïng khaùc

Ví dụ,

• BCD - LED 7 ñoaïn

• BCD – nhò phaân

• Nhò phaân – BCD

• Nhò phaân – Gray

• Gray – nhò phaân

3.10.5. Maïch chuyeån ñoåi BCD sang nhò phaân

Bước 1. Xaùc ñònh soá bit nhò phaân cho maïch chuyeån ñoåi.

Ví dụ, ñeå chuyeån ñoåi 2 chöõ soá BCD caàn 7bit nhò phaân, vì giaù trò lôùn nhaát 99 cuûa BCD ñoåi sang nhò phaân laø 1100011

Bước 2. Tính toång cuûa caùc soá nhò phaân töông ñöông vôùi bit 1 (theo troïng soá cuûa maõ BCD)

Ví dụ, (52)10 coù maõ BCD laø 01010010, toång nhò phaân laø

80 40 20 10 8 4 2 1 Troïng soá BCD 0 1 0 1 0 0 1 0 BCD 0000010 (maõ nhò phaân cho 2) 0001010 (maõ nhò phaân cho 10) 0101000 (maõ nhò phaân cho 40) 0110100 (maõ nhò phaân cho 52)

Bước 3. Xaây döïng maïch söû duïng maïch coäng nhò phaân

Ví dụ, Baûng coäng cho soá BCD coù 2 chöõ soá Maõ nhò phaân töông ñöông

Bit BCD Troïng soá b6 b5 b4 b3 b2 b1 b0

A0 1 0 0 0 0 0 0 1 B0 2 0 0 0 0 0 1 0 C0 4 0 0 0 0 1 0 0 D0 8 0 0 0 1 0 0 0 A1 10 0 0 0 1 0 1 0 B1 20 0 0 1 0 1 0 0 C1 40 0 1 0 1 0 0 0 D1 80 1 0 1 0 0 0 0

Vaäy b0 = A0; b1 = B0 + A1; b2 = C0 + B1; b3 = D0 + A1 + C1;

b4 = B1 + D1; b5 = C1; b6 = D1;

Page 76: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

70

IC 74184. Chuyeån maõ BCD sang nhò phaân

Ví dụ, Tra baûng hoïat ñoäng cuûa 74184, ñöa ra sô ñoà noái daây chuyeån maõ BCD sang maõ buø 9 cuûa noù

Ví dụ, Töø 2 IC 74184, thieát keá maïch ñoåi moät soá BCD 2 chöõ boá sang 7bit nhò phaân

3.10.6. Maïch chuyeån ñoåi nhò phaân sang BCD

A0A3A2A1

C4

B0B3B2B1

S0S3S2S1

Cin

B0B3B2B1

A0 A3 A2 A1 C4

B0B3 B2B1

S0S3 S2S1

Cin

B0 B3 B2 B1

D1 C1 B1 A1 D0 C0 B0 A0

b6 b5 b4 b3 b2 b1 b0

A B C D E

G

Y1

Y2

Y3 Y4 Y5

Y6 Y7 Y8

A0

B0

C0

D0

A1

B1

b1

b2

b3b4b5

b0Các đầu vào BCD

từ 00 đến 39

Các đầu

ra nhị phân

74184

ABCDE

G

Y1

Y2

Y3 Y4 Y5

Y6 Y7 Y8

ABCD

Các đầu vào BCD

1TA

TB

TCTD

Các đầu

bù 10 của BCD

74184

ABCDEG

Y1

Y2

Y3Y4Y5

Y6

A0

B0

C0

D0A1

B1

b1

b2

b3

b4

b5

b0Các đầu vào nhị

phân 6 bit

Các đầu ra

BCD

74185

C1

Page 77: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

71

Bài tập chương 3 3.1. Đơn giản mạch sau dùng đại số Boolean 3.2. Thiết kế mạch điện logic tương ứng với bảng sự thật sau

A B C Y

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 0 1 1 1 0 0 1

3.3. Thiết kế mạch điện logic có 3 ngõ vào A, B và C.Ngõ ra ở mức HIGH chỉ khi có 2 ngõ vào là mức LOW.

3.4. Một số nhị phân 4 bit được ký hiệu là A3A2A1A0, với A0 là bit LSB, thiết kế mạch logic mà ngõ ra ở mức HIGH khi các số nhị phân lớn hơn 0010 và nhỏ hơn 1000.

3.5. Thực thi mạch điện ở bài 3.3 dùng tất cả là cổng NAND 3.6. Thực thi mạch điện ở bài 3.4 dùng tất cả là cổng NAND 3.7. Một bộ đếm BCD với ngõ ra 4 bit mã BCD hiển thị số xung được đưa vào bộ

đếm. Thí dụ, sau 4 xung, ngõ ra của bộ đếm là DCBA = 01002 = 410. Bộ đếm Reset về 0000 tại xung thứ 10 và bắt đầu đếm trở lại. Nói cách khác, ngõ ra DCBA không bao giờ biểu diễn giá trị lớn hơn 10012 = 910. Hãy thiết kế mạch logic với ngõ ra ở mức HIGH khi đếm số 2, 3, 9.

3.8. Hình sau biểu diễn 4 công tắc trong mạch điều khiển máy copy. Thông

thường các công tắc này mở (open). Khi có giấy đi qua công tắc thì đóng (close). Công tắc 1 và 4 không thể đóng (close) tại cùng 1 thời điểm. Hãy thiết

X

M

ON

BCD Counter

Logic circuit

X

D C B A

Page 78: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

72

kế 1 mạch logic với ngõ ra mức HIGH khi 2 công tắc hay nhiều hơn cùng đóng.

3.9. Hình sau thể hiện mạch nhân hai số nhị phân 2 bit x1x0 và y1y0, ngõ ra là số

nhị phân z3z2z1z0 tương đương với tích đại số của 2 số ngõ vào. Hãy thiết kế mạch logic cho mạch nhân.

3.10. Một mã BCD được truyền tới thiết bị nhận ở xa, các bit là A3A2A1A0, với A3

là bit MSB. Mạch nhận gồm 1 mạch phát hiện lỗi BCD để kiểm tra mã nhận. Thiết kế mạch kiểm tra tạo mức HIGH nếu có bất kỳ điều kiện lỗi nào xảy ra.

3.11. Thiết kế mạch logic với điều kiện: tín hiệu ngõ vào A đến ngõ ra Y chỉ khi ngõ vào điều khiển B ở mức LOW và ngõ vào điều khiển C ở mức HIGH, các trường hợp còn lại ngõ ra ở mức LOW.

3.12. Thiết kế mạch logic điều khiển sự đi qua của 1 tín hiệu A theo các yêu cầu sau: 1. Ngõ ra X = A khi ngõ vào điều khiển B và C giống nhau. 2. X duy trì mức HIGH khi B và C khác nhau.

3.13. Thiết kế mạch logic có yêu cầu cho ở hình sau. 3.14. Trong máy tính, bộ vi xử lý (microprocessor unit = MPU) luôn được kết nối

với 1 trong các phần sau: (1) bộ nhớ truy cập ngẫu nhiên (RAM = random-access memory), lưu trữ các chương trình và dữ liệu mà nó có thể được thay đổi 1 cách nhanh chóng; (2) bộ nhớ chỉ đọc (read-only memory), lưu trữ các chương trình và dữ liệu mà không khi nào thay đổi; (3) thiết bị vào ra bên

Multipliercircuit

X1

X0

Y1

Y0

Z3

Z2

Z1

Z0 LSB

MSB

Logiccircuit

SW1

X

+5V

+5V

+5V

+5V

SW2

SW3

SW4

Multiplexer

A0

A1

Z

S

S Z 0 1

A0 A1

Page 79: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 3

GV: Nguyễn Trọng Hải Trang

73

ngoài (I/O) chẳng hạn như keyboard, máy in. Khi thực thi 1 chương trình, MPU sẽ tạo ra một mã địa chỉ mà nó chọn loại thiết bị (RAM,ROM or I/O) muốn thực thi. Hình sau chỉ ra 1 cách kết nối tiêu biểu ở đó MPU xuất ra 1 mã địa chỉ 8 bit A15-A8. Thực ra MPU xuất ra 1 mã địa chỉ 16 bit, nhưng các bit thấp A7-A0 không dùng cho quá trình chọn thiết bị. Mã địa chỉ được cấp tới 1 mạch logic để tạo ra các tín hiệu chọn thiết bị RAM, ROM, và I/O.

Phân tích mạch và xác định những điều sau: (a) Khoảng địa chỉ A15-A8 mà nó tích cực RAM (b) Khoảng địa chỉ A15-A8 mà nó tích cực I/O (c) Khoảng địa chỉ A15-A8 mà nó tích cực ROM

Hãy biểu diễn các địa chỉ ở nhị phân và hex.

3.15. Cho haøm Boolean sau: Y = )9,8,7,4()15,14,13,12,11,6,5,3( dDCBA

+∏

a). Ruùt goïn haøm Y, bieåu dieãn haøm Y duøng coång logic

b). Töø haøm Y ruùt goïn, bieán ñoåi laïi maïch logic duøng toaøn coång NOR

c). Thöïc hieän haøm Y duøng MUX 8 sang 1 (74LS151)

3.16. Cho haøm Boolean sau: Y = )6,3()4,1,0( dABC

+∑

a). Ruùt goïn haøm Y, bieåu dieãn haøm Y duøng coång logic

b). Töø haøm Y ruùt goïn, bieán ñoåi laïi maïch logic duøng toaøn coång NAND

c). Thöïc hieän haøm Y duøng giaûi maõ 3 sang 8 (74LS138)

I/O

A13

A9

A11

MPU

A8

A15

RAMA14

ROM

A10

A12

Page 80: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 74

CHÖÔNG 4. HEÄ TUAÀN TÖÏ 4.1. TOÅNG QUAN

Maïch logic tuaàn töï laø maïch coù caùc ngoõ ra tuøy thuoäc khoâng chæ vaøo traïng thaùi hieän taïi cuûa caùc ngoõ vaøo maø coøn tuøy thuoäc vaøo moät chuoãi caùc ngoõ vaøo tröôùc ñoù.

Vieäc moâ taû moät maïch tuaàn töï baèng caùch laäp baûng quan heä ngoõ ra laø moät haøm cuûa chuoãi caùc ngoõ vaøo töø caùc traïng thaùi tröôùc ñoù ñeán traïng thaùi hieän taïi thöôøng thì khoâng thuaän tieän hay khoâng theå thöïc hieän ñöôïc.

Traïng thaùi cuûa moät maïch tuaàn töï laø moät söï taäp hôïp caùc bieán traïng thaùi maø giaù trò cuûa noù taïi baát cöù moät thôøi ñieåm naøo ñeàu chöùa ñöïng taát caû caùc thoâng tin veà caùc traïng thaùi tröôùc ñoù ñeå giaûi thích caùc taùc ñoäng sau ñoù cuûa maïch

Caùc bieán traïng thaùi khoâng caàn phaûi coù yù nghóa vaät lyù tröïc tieáp, vaø thöôøng coù nhieàu caùch choïn chuùng ñeå moâ taû moät maïch tuaàn töï ñaõ cho.

Trong caùc maïch logic soá, caùc bieán traïng thaùi coù giaù trò nhò phaân töông öùng vôùi tín hieäu logic naøo ñoù trong maïch. Moät maïch vôùi n bieán traïng thaùi nhò phaân seõ coù 2n traïng thaùi xaûy ra, vaø 2n luoân laø giaù trò giôùi haïn, vì vaäy maïch tuaàn töï cuõng thöôøng goïi laø maùy traïng thaùi giôùi haïn (finite-state machines)

Thôøi ñieåm ñeå caùc traïng thaùi cuûa haàu heát caùc maïch tuaàn töï thay ñoåi ñöôïc quyeát ñònh bôûi xung clock. Hình sau minh hoïa caùc sô ñoà thôøi gian vaø caùc thuaät ngöõ cho caùc xung clock thoâng duïng. Theo quy öôùc, moät xung clock tích cöïc möùc cao neáu caùc thay ñoåi traïng thaùi trong maïch xuaát hieän taïi caïnh leân cuûa xung clock hay taïi möùc cao cuûa xung clock, vaø tích cöïc möùc thaáp cho tröôøng hôïp coøn laïi. Chu kyø boån phaän laø phaàn traêm thôøi gian xung clock tích cöïc treân moät chu kyø. Thoâng thöôøng trong moät heä thoáng soá ngöôøi ta söû duïng dao ñoäng thaïnh anh ñeå taïo caùc xung clock. Taàn soá xung clock khoaûng 32768 khz (cho ñoàng hoà) ñeán 400 Mhz (cho supercomputer). Caùc heä thoáng thoâng thöôøng söû duïng caùc phaàn töû CMOS vaø TTL coù taàn soá xung clock vaøo khaûng töø 1 ñeán 25Mhz.

Hai loaïi maïch tuaàn töï thöôøng aùp duïng chính trong caùc thieát keá thöïc teá:

Tper

tLtH

CLK

Chu kyø boån phaän=tH/Tper

Tper

tL tH

CLK

Chu kyø boån phaän=tL/Tper

Page 81: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 75

Maïch tuaàn töï coù hoài tieáp: söû duïng caùc coång thoâng thöôøng vaø caùc voøng hoài tieáp ñeå taïo khaû naêng nhôù trong maïch logic, baèng caùch ñoù taïo ra caùc khoái maïch tuaàn töï nhö flip-flop vaø maïch choát ñeå thieát keá caùc maïch ôû möùc cao hôn

Maùy traïng thaùi vôùi xung clock ñöôïc ñoàng boä: söû duïng caùc phaàn töû nhôù, ñaëc bieät laø D flipflop, ñeå taïo ra nhöõng maïch maø ngoõ ra seõ thay ñoåi ñoàng thôøi vôùi xung Clock

Caùc daïng maïch tuaàn töï khaùc nhö daïng ña xung, ña phase thöôøng öùng duïng trong caùc heä thoáng coù tính naêng cao vaø VLSI

4.2. CAÙC PHAÀN TÖÛ HAI TRAÏNG THAÙI BEÀN

4.2.1. Maïch Ñaûo

Moät transistor coù theå laøm chöùc naêng maïch ñaûo nhö sô ñoà hình sau

Khi VI ôû möùc ñieän aùp cao thì BJT chaïy baõo hoøa vaø doøng IC qua RC taïo suït aùp neân V0 ≈ 0.2V (VCESAT) öùng vôùi möùc ñieän aùp thaáp

Khi VI ôû möùc ñieän aùp thaáp thì BJT phaân cöïc ngöôïc ôû ngoõ vaøo neân ngöng daãn, doøng IC =0 neân khoâng giaûm aùp qua RC neân V0 ≈ VCC öùng vôùi möùc ñieän aùp cao

4.2.2. Maïch Hai Traïng Thaùi Beàn

Moät maïch tuaàn töï ñôn giaûn nhaát bao goàm hai coång ñaûo vôùi voøng hoài tieáp. Noù khoâng coù ngoõ vaøo vaø coù 2 ngoõ ra nhö sau:

Vout1

Vout2

Vin1

Vin2

Q

Q

Rc1 Rc2

-VBB

R2

Vcc

Rb2

-VBB

Rb1

R1

Vcc

4K

-12V

2.2K

+12V

2.2K

Page 82: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 76

Maïch ñöôïc veõ laïi nhö sau

Giaû thieát coù maïch ñoái xöùng (T1 vaø T2 cuøng teân, caùc ñieän trô phaân cöïc cho 2 transistor cuøng trò soá) nhöng do 2 transistor khoâng theå caân baèng moät caùch tuyeät ñoái neân seõ coù moät transistor chaïy maïnh hôn vaø moät transistor chaïy yeáu hôn

Giaû thieát T1 chaïy maïnh hôn T2 neân IC1 lôùn hôn neân VRC1 lôùn laøm ñieän aùp VC1 giaûm. VC1 qua ñieän trôû R2 phaân cöïc cho T2 giaûm laøm T2 chaïy caøng yeáu hôn laøm IC2 nhoû hôn daãn ñeán VC2 taêng, ñieän aùp VC2 taêng qua R1 laøm taêng phaân cöïc cho T1 daãn ñeán T1 chaïy maïnh hôn nöõa, cuoái cuøng T1 seõ tieán ñeán traïng thaùi baõo hoøa, T2 tieán ñeán traïng thaùi ngöng daãn. Neáu khoâng coù moät taùc ñoäng naøo khaùc thì maïch ñieän seõ ôû maõi traïng thaùi naøy. Ñaây laø moät traïng thaùi cuûa maïch Flip Flop

Ngöôïc laïi, neáu giaû thieát T2 chaïy maïnh hôn T1 lyù luaän töông töï cuoái cuøng T2 seõ tieán ñeán traïng thaùi baõo hoøa, T1 tieán ñeán traïng thaùi ngöng daãn. Neáu khoâng coù moät taùc ñoäng naøo khaùc thì maïch ñieän seõ ôû maõi traïng thaùi naøy. Ñaây laø traïng thaùi thöù hai cuûa maïch Flip Flop

Maïch FF seõ ôû moät trong hai traïng thaùi treân neân ñöôïc goïi laø maïch löôõng oån

4.3. FLIPFLOP

Phaàn töû nhôù quan troïng nhaát laø FlipFlop, noù ñöôïc taïo töø caùc coång Logic. Caùc coång logic thì töï noù khoâng coù tính naêng nhôù, nhöng ta coù theå keát noái chuùng vôùi nhau ñeå taïo neân khaû naêng nhôù

Sô ñoà khoái cho moät FF nhö sau:

Thaáy raèng FF coù 2 ngoõ ra vaø 1 hay nhieàu ngoõ vaøo. Caùc ngoõ vaøo thöôøng ñöôïc söû duïng ñeå chuyeån ñoåi giöõa caùc khaû naêng ngoõ ra, ta seõ thaáy raèng khi moät ngoõ vaøo nhaän xung laøm thay ñoåi traïng thaùi ngoõ ra vaø traïng thaùi ngoõ ra naøy seõ vaãn giöõ

FlipFlop

Q

Q

Ngõ ra nhớ

Ngõ ra đảo

Các ngõ vào

RC1 R2

T1

RC2

T2

RB1

+VCC

R1

-VBB

RB2

Page 83: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 77

nguyeân khoâng thay ñoåi khi ngoõ vaøo naøy khoâng coøn xung nöõa, vì vaäy ta goïi FF coù ñaëc tính nhôù

FlipFlop coøn coù caùc teân goïi khaùc laø choát (latch) vaø maïch hai traïng thaùi beàn (bistable multivibrator)

4.3.1. RS-FF duøng Coång NOR

Baûng söï thaät

SET RESET Output

0 0 Khoâng thay ñoåi

1 0 Q = 1

0 1 Q = 0

1 1 Khoâng söû duïng

Khi SET = RESET= 0. Ñaây laø traïng thaùi nhôù vaø khoâng laøm thay ñoåi caùc traïng thaùi ngoõ ra. Vì ñaây laø maïch hai traïng thaùi beàn neân seõ coù hai tröông hôïp ban ñaàu xaûy ra, tröông hôïp Q =0, Q =1 vaø tröôøng hôïp Q =1, Q =0.

Tröôøng hôïp Q=0, Q =1

Q=0 daãn ñeán ngoõ ra coång NOR1 =1, Q =1 naøy ñöa veà ngoõ vaøo coång NOR2, ngoõ ra coång NOR2=0, nhö vaäy maïch vaãn giöõ nguyeân traïng thaùi Q=0, Q =1

Tröôøng hôïp Q=1, Q =0

Q=1 daãn ñeán ngoõ ra coång NOR1 =0, Q =0 naøy ñöa veà ngoõ vaøo coång NOR2, ngoõ ra coång NOR2=1, nhö vaäy maïch vaãn giöõ nguyeân traïng thaùi Q=1, Q =0

Nhö vaäy vôùi hai tröôøng hôïp, ngoõ ra seõ phuï thuoäc vaøo traïng thaùi tröôùc cuûa maïch khi SET = RESET =0

Thieát laäp caùc thay ñoåi cho FF

• Khi SET = 1, RESET = 0.

Ngoõ ra Q luoân = 0, Q luoân baèng 1 vaø vaãn giöõ nguyeân traïng thaùi Q=1 khi SET ñöôïc ñaët trôû laïi 0 (LATCH)

SET

RESET Q

Q

SET

RESET

Q

Q

FF

S

R

Q

Q

Page 84: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 78

• Khi SET = 0, RESET = 1. Ngoõ ra Q luoân = 0 vaø vaãn giöõ nguyeân traïng thaùi Q=0 khi CLEAR ñöôïc ñaët trôû laïi 0 (LATCH)

• Khi SET = CLEAR = 1: ñieàu kieän naøy laøm cho ngoõ ra Q = Q = 0, roõ raøng ñaây laø ñieàu kieän khoâng mong muoán hôn nöõa neáu caùc ngoõ vaøo trôû laïi möùc 0 ñoàng thôøi, keát quaû ngoõ ra seõ khoâng theå ñoaùn ñöôùc ñöôïc. Traïng thaùi naøy khoâng ñöôïc duøng vaø goïi laø traïng thaùi caám.

IC 4044 - 4 NOR RS-FF

4.3.2. RS FlipFlop duøng coång NAND

RS – FF duøng coång NAND (töông töï, chæ löu yù söï hoaùn chuyeån ngoõ ra Q vaø Q vaø caùc ñieàu kieän ngoõ vaøo)

SET RESET Output

1 1 Khoâng thay ñoåi

0 1 Q = 1

1 0 Q = 0

0 0 Caám

• Bieán ñoåi caùch bieåu thò khaùc cuûa coång NAND

Ta ñöôïc maïch nhö sau

RESET

SET Q

Q

Q

Q

SET

RESET

FF

S

R

Q

Q

S R E Q X X 0 HiZ 0 0 1 Khoâng thay ñoåi 0 1 1 0 1 0 1 1 1 1 1 Caám

Page 85: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 79

Ví dụ. Caáp daïng soùng sau vaøo ngoõ SR cuûa maïch choát duøng NAND, veõ daïng soùng ngoõ ra Q, giaû söû ban ñaàu Q=0

Vì duï treân chæ ra raèng ngoõ ra maïch choát “nhôù traïng thaùi ngoõ vaøo tích cöïc tröôùc ñoù” vaø seõ khoâng thay ñoåi traïng thaùi cho ñeán khi ngoõ vaøo coøn laïi tích cöïc. Noù ñöôïc öùng duïng vaøo caùc coâng taéc choáng doäi (debounce switch).

So saùnh tröôøng hôïp söû duïng coâng taéc bình thöôøng vaø tröôøng hôïp söû duïng coâng taéc choáng doäi nhö sau

IC 74279 4 RS-FF

4.4. FLIPFLOP DUØNG XUNG CK

Caùc heä thoáng soá coù theå hoaït ñoäng ñoàng boä hay khoâng ñoàng boä.

Moät heä thoáng khoâng ñoàng boä, ngoõ ra cuûa maïch logic coù theå thay ñoåi traïng thaùi baát cöù luùc naøo khi moät hay nhieàu ngoõ vaøo thay ñoåi

Moät heä thoáng ñoàng boä, söï thay ñoåi ôû ngoõ ra ñöôïc ñoàng thôøi vôùi tín hieäu goïi laø xung clock

Haàu heát caùc heä thoáng soá ñeàu döïa vaøo nguyeân lyù ñoàng boä vì maïch ñoàng boä deã thieát keá

FF CK

Q

Q

input

CK tích cöïc caïnh leân

FF CK

Q

Q

input

CK tích cöïc caïnh xuoáng

Q

SET

RESET

Vcc 1

Vout

0

S

R

Q

Vcc

Vcc

R

R

Vout

Q

Page 86: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 80

4.4.1. Clock RS – FlipFlop

S R CK Q 0 1 0 1

0 0 1 1

↑ ↑ ↑ ↑

Q0 (khoâng ñoåi) 1 0

Caám

• Sô ñoà beân trong cuûa clock SR- FlipFlop

Maïch phaùt hieän söôøn xung leân hay xuoáng seõ taïo moät xung heïp ôû ngoõ ra (CK*). Xung naøy seõ xuaát hieän taïi caïnh leân hay caïnh xuoáng cuûa CK vaø taùc ñoäng môû coång cho 2 coång NAND, maïch phaùt hieän söôøn xung nhö sau

4.4.2. Caùc bieán theå cuûa RS – FF

Ñeå söû duïng ñöôïc caû toå hôïp R=S=1, thöôøng söû duïng caùc bieán theå cuûa RS-FF. Bao goàm: R-FF, S-FF, E-FF.

R-FF öùng vôùi toå hôïp caám S=R=1 thì Q=0 vaø Q=1, sô ñoà cuûa R-FF nhö sau

S

R

Q

Q

CLK

1

CK

RESET

SET

Phát hiện cạnh

Q

Q

CK CK CK

CK* CK

CK*

CK CK

CK*

CKCK

CK*

1CK

RESET

SET

Phát hiện cạnh

Q

Q

Page 87: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 81

S-FF öùng vôùi toå hôïp caám S=R=1 thì Q=1 vaø Q=0 , sô ñoà cuûa S-FF nhö sau

E-FF öùng vôùi toå hôïp caám S=R=1 thì Q vaø Q giöõ nguyeân traïng thaùi (gioáng toå hôïp R=S=0), sô ñoà cuûa E-FF nhö sau

4.4.3. Clock JK – FlipFlop

• Sô ñoà beân trong cuûa clock JK – FF

J

K

CK Phát hiện cạnh

Q

Q

1CK

RESET

SET

Phát hiện cạnh

Q

Q

1CK

RESET

SET

Phát hiện cạnh

Q

Q

J

K

Q

Q

CK

J K CK Q 0 1 0 1

0 0 1 1

↑ ↑ ↑ ↑

Q0 (khoâng ñoåi) 1 0

0Q

Page 88: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 82

4.4.4. D FlipFlop

Ví dụ, taïo D-FF töø RS-FF

4.4.5. Bieán theå cuûa D – FF

Trong thực tế coøn söû duïng moät bieán theå cuûa D-FF laø DV-FF, kyù hieäu vaø baûng söï thaät nhö sau

Vaäy V gioáng nhö chaân ñieàu khieån: khi V=1, FF hoaït ñoäng gioáng D-FF, khi V=0 FF seõ khoâng ñoåi traïng thaùi

4.4.6. T FlipFlop

4.4.7. Caùc ngoõ vaøo khoâng ñoàng boä

Vôùi caùc FF ôû treân, caùc ngoõ vaøo S-R, J-K, D xem nhö caùc ngoõ ñieàu khieån, vaø ñöôïc goïi laø caùc ngoõ vaøo ñoàng boä (synchronous input) vì taùc ñoäng cuûa chuùng ñoái vôùi ngoõ ra thì ñoàng boä vôùi CK

Ngoaøi ra haàu heát caùc FF cuõng coù 1 hay nhieàu ngoõ vaøo khoâng ñoàng boä (asynchronous input) hoaït ñoäng ñoäc laäp vôùi ngoõ vaøo ñoàng boä vaø xung clock. Caùc ngoõ vaøo khoâng ñoàng boä naøy ñöôïc söû duïng ñeå ñaët ngoõ ra cuûa FF leân 1 (PRESET) hay xoùa ngoõ ra cuûa FF veà 0 (CLR) baát chaáp caùc ñieàu kieän cuûa ngoõ vaøo

D Q

Q CK

1

Q

Q

D

CKPhát hiện cạnh

D

V

Q

Q

CK

V D CK Q 0 0 1 1

0 1 0 1

↑ ↑ ↑ ↑

Q0 (khoâng ñoåi) Q0 (khoâng ñoåi)

0 1

D CK Q 0 1

↑ ↑

0 1

CK

Q

Q

T CK T Q

Khoâng coù CK ↓ ↓

x 0 1

Q0

Q0

0Q

Page 89: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 83

4.5. CAÙC ÖÙNG DUÏNG CUÛA FLIPFLOP

4.5.1. Ñoàng boä hoùa duøng FF

Haàu heát caùc heä thoáng soá ñeàu döïa treân nguyeân lyù ñoàng boä trong hoaït ñoäng cuûa chuùng (traïng thaùi tín hieäu thay ñoåi ñoàng boä vôùi xung clock). Trong moät soá tröôøng hôïp seõ coù moät soá tín hieäu khoâng ñöôïc ñoàng boä vôù xung clock, noùi caùch khaùc laø baát ñoàng boä. Caùc tín hieäu naøy thöôøng xuaát hieän ôû tröôøng hôïp nhaán moät phím taïi moät thôøi ñieåm ngaãu nhieân so vôùi xung clock, söï ngaãu nhieân naøy coù theå ñöa ñeán moät keát quaû khoâng mong muoán. Ñeå khaéc phuïc ñieàu naøy ta seõ xeùt ví duï sau:

Ví dụ,

4.5.2. Maïch phaùt hieän moät chuoãi ngoõ vaøo tuaàn töï

Trong moät soá öùng duïng, caàn nhaän bieát chuoãi xung naøo ñeán tröôùc trong hai chuoãi xung, giaû söõ ngoõ ra seõ ôû möùc cao neáu ngoõ vaøo A ôû möùc cao tröôùc ngoõ vaøo B

Ta choïn B laøm xung CK kích caïnh leân cho maïch FF

A

Clock

X

Khóa chống dội

Xung khoâng mong muoánClock

A X

PR CLR Ngoõ ra 1 0 1 0

1 1 0 0

hoaït ñoäng theo CKQ=1 Q=0

khoâng söû duïng 7474

D

CK Q

Q

PR

CLR

D-FF

7476

J

CK

Q

Q

PR

CLRK

JK-FF

A

Q

D CLK

Q

Q

PR

CLR

X

Clock

XKhóa chống

dội

Clock

Xung ñoàng boä

A

X B

X

B

A

B

XA J

CLK K

Q

Q

PR

CLR

Page 90: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 84

4.5.3. Thanh ghi dòch

Caùc daïng cuûa thanh ghi dòch goàm

• Vaøo song song/ ra song song

• Vaøo noái tieáp/ra noái tieáp

• Vaøo song song/ra noái tieáp

• Vaøo noái tieáp/ ra song song

a. Vaøo song song/ ra song song (74174, 74374)

• 74174. Sô ñoà beân trong cuûa 74174 (6bit ghi dòch, ngoõ vaøo töø D0 ñeán D5 ngoõ ra töø Q0 ñeán Q5)

• 74374. thanh ghi dòch 8 bit vaøo song song/ 8 bit ra song song

OC CLK D Output

0 ↑ 1 1

0 ↑ 0 0

0 0 X QO

1 X X HiZ

b. Vaøo noái tieáp/ ra noái tieáp

Ñeå caát n döõ lieäu vaøo thanh ghi ta caàn n xung CK, thôøi gian ghi chaäm. Töông töï, ñeå xuaát döõ lieäu caàn n-1 xung, thôøi gian xuaát chaäm. Lôïi ñieåm: ít sai

D4D5

D

CLK

Q

Q

PR

CL

Q4

D

CLK

Q

Q

PR

CL

D1

Q5

D0 CK

Q0Q1

MR

D

CLK

Q

Q

PR

CL

D CLK

Q

Q

PR

CL

74LS174

1D 2D 3D 4D 5D

CLK CLR

1Q2Q

4Q5Q

3Q

6D 6Q

74LS374

D0 D1 D2 D3 D4 D5 D6 D7 OC CLK

Q0Q1Q2Q3Q4Q5Q6Q7

OsD CLK

Q

Q

PR

CL

D

CLK

Q

Q

PR

CL

Ds CK

D

CLK

Q

Q

PR

CL

D CLK

Q

Q

PR

CL

Page 91: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 85

4731. CMOS thanh ghi dòch 256bit (4 boä ghi dòch 64bit noái tieáp)

c. Vaøo song song/ ra noái tieáp

• 74LS166 laø loaïi IC naïp döõ lieäu vaøo song song (8bit), xuaát döõ lieäu ra noái tieáp (Döõ lieäu ñöôïc naïp vaøo töø chaân A,…,H vaø xuaát ra tuaàn töï ôû chaân SER OUT. Ngoaøi ra 74166 coøn coù 1 ngoõ vaøo data noái tieáp SER

CKI laø chaân cho pheùp xung CK, CKI=[0]: cho pheùp xung CK, CKI=[1] : caám xung CK.

SH/LD=[0]: naïp döõ lieäu, SH/LD=[1]: dòch döõ lieäu.

Sau khi dòch 1 bit ra khoûi haøng döõ lieäu (veà höôùng bit H), bit A seõ troáng vaø bit SR (Serial in) seõ dòch vaøo thanh choát cuûa bit A.

d. Vaøo noái tieáp / ra song song 74164

74164. thanh ghi dòch 8bit, A vaø B laø ngoõ vaøo data cho D-FF

Ví dụ. Giaû söû raèng ban ñaàu traïng thaùi thanh ghi 74164 laø 00000000, xaùc ñònh chuoãi traïng thaùi keá tieáp cuûa maïch sau

DS

CP

64bit

Q DS

CP64bit

Q DS

CP64bit

Q DS

CP64bit

Q

74LS166

SERABCDEFGH

CLKINHSH/LDCLR

QH

74LS164

A B CLK

QA QB QC QD QE QF QG QH

CLR

A

BD

CLK

Q

Q

PR

CL

1CK

74LS164ABCLK

ABCDEFGHCLR

1

Page 92: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 86

4.5.4. Öùng duïng Trong microcomputer

Hình treân laø moät ñôn vò vi xöû lyù (MPU) vôùi caùc ngoõ ra duøng ñeå truyeàn data nhò phaân ñeán thanh ghi X (4 D-FF). Haàu heát caùc MPU coù ít nhaát 16 ñöôøng ñòa chæ, nhöng thöôøng seõ khoâng söû duïng heát. ÖÙng duïng MPU ñeå truyeàn soá nhò phaân töø thanh ghi trong MPU ñeán thanh ghi ngoaøi X. Ñeå thöïc hieän ñieàu naøy, MPU thöïc hieän caùc böôùc sau:

• Ñaët soá nhò phaân ra ngoõ ra D3D2D1D0

• Ñaët maõ ñòa chæ ñuùng töø A15 ñeán A8 ñeå choïn thanh ghi X

• Khi data vaø ñòa chæ ngoõ ra ñaõ oån ñònh, MPU seõ taïo xung clock caáp cho thanh ghi X ñeå hoaøn taát quaù trình truyeàn song song töø MPU ñeán thanh ghi X

Caùc FF trong thanh ghi X coù theå söû duïng cho nhieàu nuïc ñích khaùc nhau. Ví duï, sau khi MPU thöïc hieän caùc pheùp tính vaø hieån thò keát quaû, moãi FF seõ ñöôïc noái vôùi 1 LED vaø data keát quaû naøy coù theå thaáy ñöôïc. Ví duï khaùc, moãi FF thaønh phaàn coù theå ñieàu khieån taét/môû caùc thieát bò khaùc nhö motor hay role döïa treân cô sôû maõ nhò phaân truyeàn töø MPU ra

4.5.5. Boä Chia Taàn Soá

Số MOD: laø soá traïng thaùi ngoõ ra cuûa moät maïch ñeám

Ví dụ: moät maïch ñeám coù chuoãi traïng thaùi ngoõ ra sau laø maïch ñeám MOD 4

Ví dụ: xeùt maïch sau

000 010 101 111MOD 4

J

CLK K

Q

Q

PR

CL

2

J

CLK

K

Q

Q

PR

CL

A LSB

J

CLK K

Q

Q

PR

CL

1

B C MSB

1

1

1

1

1

1

1

1

1

1

1

A15

A14

A13

A12

A11

A10

A9

A8

CP

D CLK

Q

D CLK

Q

D CLK

Q

D CLK

QD3

D2

D1

D0

MPU

X3

X2

X1

X0

Page 93: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 87

QA seõ thay ñoåi traïng thaùi baèng Q tröôùc ñoù taïi caïng xuoáng cuûa xung CK

=> TQA=2TCK => CKQA f21f =

QB seõ thay ñoåi traïng thaùi baèng Q tröôùc ñoù taïi caïng xuoáng cuûa QA

=> TQB=2TQA => QAQB f21f =

QC seõ thay ñoåi traïng thaùi baèng Q tröôùc ñoù taïi caïng xuoáng cuûa QB

=> TQC=2TQB => QBQC f21f =

Nhö vaäy moãi FF chia taàn soá ngoõ vaøo CK cuûa noù 2 laàn. Toång quaùt vôùi n FF thì

CKnQout f21f =

ÖÙùng duïng boä chia taàn laøm boä ñeám nhò phaân. Döïa vaøo giaûn ñoà xung treân, ñöa ra ñöôïc baûng söï thaät sau. Giaû söû ban ñaàu CBA =000

C B A CK 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

Ban ñaàu Sau xung CK1 Sau xung CK2 Sau xung CK3 Sau xung CK4 Sau xung CK5 Sau xung CK6 Sau xung CK7

0 0

0 0

0 1

Sau xung CK8 Sau xung CK9

• Boä ñeám ôû treân coù 23 traïng thaùi khaùc nhau töø 000 ñeán 111, noù ñöôïc goïi laø boä ñeám MOD 8

• Vôùi n FF coù 2n traïng thaùi khaùc nhau, soá MOD toái ña laø MOD 2n

000

001

010

011

100

110

111

101

8

B

5 9 1174 6 10 32

Clock 1

C

A

0 1 2 3 4 5 6 7 0 1 2

Page 94: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 88

4.5.6. MAÏCH ÑEÁM

a. Ñeám khoâng ñoàng boä vôùi MOD 2n

• Moâ hình ñeám leân

• Moâ hình ñeám xuoáng

• Ñieàu kieän +0Q = Q

Ví dụ, boä ñeám leân nhò phaân 4 bit duøng JK-FF vôùi CK kích caïnh xuoáng nhö sau

Q

Q

Q0 LSB

CK Q

Q

CK Q

Q

Qn MSB

CK

Q1

Q

Q

Q0 LSB

CK Q

Q

CK Q

Q

Qn MSB

CK

Q1

Q

Q

Q0 LSB

CK Q

Q

CK Q

Q

Qn MSB

CK

Q1

Q

Q

Q0 LSB

CK Q

Q

CK Q

Q

Qn MSB

CK

Q1

J

K

Q

Q

CK PR

CL

1

1

T Q

Q

CK

PR

CL

1 D Q

Q

CK PR

CL

B

J

CK

K

Q

Q

PR

CL

A

1

1

J

CK

K

Q

Q

PR

CL

C

J

CK K

Q

Q

PR

CL

D

J

CK

K

Q

Q

PR

CL

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Page 95: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 89

• Xung clock ñöôïc ñöa vaøo ngoõ CK cuûa FF -A, vì vaäy FF-A seõ thay ñoåi traïng thaùi sau moãi xung clock (löu yù laø taát caû caùc ngoõ vaøo J=K=1)

• Ngoõ ra cuûa FF-A ñöôïc ñöa vaøo ngoõ vaøo CLK cuûa FF-B, vì vaäy FF-B thay ñoåi traïng thaùi khi ngoõ ra QA thay ñoåi töø 1 xuoáng 0. Töông töï cho FF-C vaø FF-D

• Baûng sau moâ taû caùc ngoõ ra cuûa caùc FF sau moãi xung CK, sau xung clock thöù 16 caùc ngoõ ra seõ trôû veà 0000 vaø laëp laïi trang thaùi ban ñaàu

D C B A Xung CK 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

0 0 0 0 16 (laëp laïi)

Daïng maïch ñeám maø ngoõ ra FF ñöôïc söû duïng nhö CK cho taàng sau ñöôïc goïi laø maïch ñeám khoâng ñoàng boä, vì taát caû caùc FF khoâng thay ñoåi traïng thaùi ñoàng boä vôùi xung clock, chæ coù FF-A thay ñoåi töông öùng vôùi xung clock

Ví dụ, thiết kế boä ñeám leân nhò phaân 4 bit duøng FF nhö sau

QC QD

QB QA CK

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0

D CLK

Q

Q

PR

CL

T

CLK

Q

Q

PR

CL

(a) (b)

Page 96: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 90

Ví dụ, thiết kế boä ñeám xuoáng nhò phaân 4 bit duøng FF nhö sau

Ví dụ, xaây döïng maïch taïo xung 1Hz töø ñieän löôùi 50Hz nhö sau:

Ñieän aùp löôùi ac coù taàn soá 50hz qua boä bieán ñoåi sin sang soùng vuoâng, sau ñoù cho qua boä chia 50 (MOD 50 counter) ñöôïc xung 1hz

Vaán ñeà ñaët ra laø caàn bao nhieâu FF cho boä chia 50. Vôùi 6 FF ta ñöôïc maïch chia 26=64. Nhö vaäy söû duïng giaûi phaùp ñeám MOD 2n laø khoâng thích hôïp.

b. Ñeám khoâng ñoàng boä vôùi MOD < 2n Các bước thiết kế

Bước 1. Thöïc hieän choïn daïng maïch

Bước 2. Xaùc ñònh soá FF caàn toái thieåu

Goïi n laø soá FF caàn

Choïn n sao cho 2n-1 < MOD < 2n

Bước 3. Aùp duïng tính chaát cuûa caùc ngoõ vaøo baát ñoàng boä (Pr, Cl) ñeå xaùc ñònh traïng thaùi xoùa theo trình töï sau:

Laäp baûng traïng thaùi cho caùc ngoõ ra vaø caùc ngoõ vaøo baát ñoàng boä

Vieát haøm cho caùc ngoõ Pr vaø Cl

Ruùt goïn haøm Pr vaø Cl (duøng bìa K, ñaïi soá Boolean)

Veõ maïch hoaøn chænh

Ví dụ, Thieát keá maïch ñeám leân nhò phaân MOD6 duøng JK-FF nhö sau

Xaùc ñònh soá FF toái thieåu: 22 < 6 < 23 ⇒ soá FF caàn laø 3

Schmitt Trigger

MOD 50 counter

50Hz 50Hz 1Hz

D CLK

Q

Q

PR

CL

T

CLK

Q

Q

PR

CL

(a) (b)

J CLK

Q

Q

PR

CL

(c)

K

J

CLK

Q

Q

PR

CLK

Page 97: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 91

Baûng traïng thaùi ñeám

QC QB QA Cl Pr 0 0 0 0 1 1

0 0 1 1 0 0

0 1 0 1 0 1

1 1 1 1 1 1

1 1 1 1 1 1

0 0 0 0 1

Vaäy

Cl = CB QQ + = CBQQ , Pr = 1

Daïng maïch ñeám leân MOD 6

Sinh viên vẽ dạng sóng ABC để kiểm chứng

Ví dụ, Thieát keá maïch ñeám xuoáng MOD 12 duøng FF sau

c. Treã trong maïch ñeám khoâng ñoàng boä

Maïch ñeám khoâng ñoàng boä laø daïng ñôn giaûn nhaát cuûa caùc boä ñeám nhò phaân vì caùc thaønh phaàn ñeå taïo ra maïch ñeám laø ít nhaát. Tuy nhieân cuõng coù moät soá vaán ñeà lieân quan ñeán maïch. FF sau seõ thay ñoåi traïng thaùi öùng vôùi söï thay ñoåi traïng thaùi ngoõ ra cuûa FF tröôùc. Do moãi FF coù thôøi gian treã truyeàn ñaït (tpd), nghóa laø FF thöù 2 seõ khoâng ñaùp öùng trong khoaûng thôøi gian tpd khi FF ñaàu tieân nhaän ñöôïc xung clock, töông töï FF thöù 3 seõ khoâng ñaùp öùng trong khoaûng thôøi gian 2tpd khi FF ñaàu tieân nhaän ñöôïc xung clock, cuoái cuøng FF thöù N seõ khoâng ñaùp öùng trong khoaûng thôøi gian Ntpd khi FF ñaàu tieân nhaän ñöôïc xung clock

0 1

00 1 1

01 1 1

11 0 X

10 1 1

QA QCQB

Cl

B

J

CLK

K

Q

Q

PR

CL 1

1

A

J CLK

K

Q

Q

PR

CL

C

J

CLK

K

Q

Q

PR

CL1

1

1

1

1 1 1

D CLK

Q

Q

PR

CL

T

CLK

Q

Q

PR

CL

(a) (b)

J

CLK Q

Q

PR

CL

(c)

K

Page 98: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 92

Xeùt tröôøng hôïp sau

Neáu chu kyø xung clock T= 2tpd. Nhö ñaõ thaáy treân hình veõ, traïng thaùi ñeám seõ töø 000, 001 roài xuoáng 000, 010, 011, 010, 000, 101, …

Thaáy raèng caùc traïng thaùi ñeám khoâng coøn tuaân thuû ñeám leân, vaø khoâng bao giôø coù traïng thaùi 100

Ñeå khaéc phuïc, chu kyø xung clock phaûi lôùn hôn thôøi gian treã lôùn nhaát cuûa maïch ñeám nghóa laø

Tclock ≥ Ntpd

hoaëc fmax = pd

1Nt

(taàn soá cöïc ñaïi cho pheùp)

Vôùi maïch ñeám khoâng ñoàng boä 4 bit

cho thôøi gian treã cuûa JK-FF (tpd = 24ns) => fmax = 1 =10.4Mhz4.24ns

Khi soá FF taêng thì taàn soá cöïc ñaïi cuûa maïch giaûm xuoáng

d. Caùc vi maïch ñeám khoâng ñoàng boä

• 7493, 74293

74LS93 coù 2 boä ñeám beân trong: moät boä ñeám 2 vôùi ngoõ vaøo xung CKA, moät boä ñeám 8 vôùi ngoõ vaøo xung CKB

Sinh vieân tra baûng söï thaät cuûa 7493 vaø lieät keâ chuoãi ñeám khi noái QA veà CKB vaø chuoãi ñeám khi noái QD veà CKA

tpd 2tpd 3tpd

QA

QB

QC

CK

1

0

0 0

1

0

0

0

0

1

0

1

0 0

0

0

0

0

0 1 0 1

10

tpd tpd tpd

T

74LS93

CKA CKB R01 R02

QA

QB

QC

QD

Page 99: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 93

• 74LS90

74LS90 coù 2 boä ñeám beân trong: moät boä ñeám 2 vôùi ngoõ vaøo CKA, moät boä ñeám 5 vôùi ngoõ vaøo CKB

Sinh vieân tra baûng söï thaät cuûa 7493 vaø lieät keâ chuoãi ñeám khi noái QA veà CKB vaø chuoãi ñeám khi noái QD veà CKA

• CD4024, CD4040

4024 laø boä ñeám nhò phaân 7bit (MOD128), 4040 laø boä ñeám nhò phaân 12bit (MOD4096)

e. Ñeám ñoàng boä vaø maïng tuaàn töï

Ñeå khaéc phuï nhöôïc ñieåm thôøi gian treã cuûa xung CK, ôû maïng ñoàng boä, taát caû caùc FF ñeàu söû duïng chung xung CK. Vì vaäy, caùc ngoõ ra seõ thay ñoåi ñoàng thôøi theo xung CK

Phương pháp thiết kế

Bước 1, thieát laäp baûng moâ taû moái quan heä giöõa ngoõ ra hieän taïi (Q) vaø ngoõ ra keá tieáp (Q+)

Bước 2, Thieát laäp caùc traïng thaùi ngoõ vaøo cho FF ñeå thoûa maõn caùc thay ñoåi ngoõ ra töø baûng treân

Bước 3, Ruùt goïn caùc phöông trình ngoõ vaøo cho FF

Bước 4, Thöïc hieän maïch

ÔÛ böôùc 2, ñeå thieát laäp traïng thaùi ngoõ vaøo theo ngoõ ra, caùc baûng söï thaät tröôùc cuûa FF phaûi thay ñoåi.

Ví dụ, baûng söï thaät cho SR-FF

Ví dụ, Töông töï, baûng söï thaät cho JK-FF, D-FF, T-FF

74LS90

R91R92

R01R02

CKA

CKB

QA

QB

QCQD

Q Q+ S R0 0 0 1 1 1

0 0 1 0 0 1

0 0 1 0 0 1

0 1 0 1 0 0

Q Q+ S R0 0 1 1

0 1 0 1

0 1 0 x

x 0 1 0

S R Q Q+

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 1 0 0 1 1 - -

Q Q+ J K 0 0 1 1

0 1 0 1

0 1 x x

x x 1 0

Q Q+ T 0 0 1 1

0 1 0 1

0 1 1 0

Q Q+ D 0 0 1 1

0 1 0 1

0 1 0 1

Page 100: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 94

Ví dụ, Thieát keá maïch ñeám coù chuoãi ñeám sau duøng T-FF

Bước 1,2,

Bước 3,

TC = CB+CB TB = CA+CB TA = C+B

Maïch cuoái cuøng vaø giaûn ñoà traïng thaùi cho maïch nhö sau

Maëc duø baûng traïng thaùi cho maïch hình treân khoâng chæ ra heát caùc tröôøng hôïp, caùc traïng thaùi keá cuûa traïng thaùi 001, 101, 110 cuõng ñöôïc chæ roõ trong quaù trình thieát keá maïch.

000

100

111010

011

0 1

00 1 0

01 x x

11 0 1

10 0 x

C BA

TC

0 1

00 0 1

01 x x

11 1 0

10 0 x

C BA

TB

0 1

00 0 1

01 x x

11 1 1

10 1 x

C BA

TA

C C A

CKTB

CK

A

TC

C

TA

Q

B

B

QQCKCK

C

B C B C B

1

TA

1

001

0

0

1

B0

1

01

TB

0

Tc

A

CK

1

0

0

0

0C

Ngoõ ra hieän taïi Ngoõ ra keá tieáp Ngoõ vaøo C B A C+ B+ A+ TC TB TA

0 0 0 0 1 1 1

0 0 1 1 0 0 1

0 1 0 1 0 1 0

1 - 0 0 1 - -

0 - 1 0 1 - -

0 - 1 0 1 - -

1 - 0 0 0 - -

0 - 0 1 1 - -

0 - 1 1 1 - -

Page 101: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 95

Ví dụ, neáu caùc FF ñöôïc ñaët giaù trò ban ñaàu C=0, B=0, A=1 vaø coù xung Clock, töû phöông trình T-FF suy ra TA = TB =1 vaø traïng thaùi seõ chuyeån thaønh 111, vaø khi nhaän xung ck keá tieáp, maïch seõ hoaït ñoäng nhö boä ñeám ñaõ thieát keá

ÔÛ traïng thaùi ban ñaàu khi caáp nguoàn cho maïch, traïng thaùi ñaàu tieân cuûa FF laø khoâng ñoaùn ñöôïc. Vì lyù do naøy, taát caû caùc traïng thaùi don’t care trong boä ñeám phaûi ñöôïc kieåm tra ñeå chaéc chaén raèng noù seõ ñöa ñeán chuoãi ñeám chính neáu khoâng coù moät taùc ñoäng reset naøo cho maïch

Ví dụ, thieát keá laïi ví duï treân duøng SR-FF

Keát quaû: RC = A, SC = B

RB = CA , SB = C

RA = A, SA = CA+BA

Ví dụ, thieát keá laïi ví duï treân duøng D-FF

Ñoái vôùi D-FF, Q+ =D, vì vaäy bìa ngoõ vaøo D töông öùng vôùi bìa traïng thaùi keá. Vì vaäy, bieåu thöùc cho D coù theå ñoïc tröïc tieáp töø bìa Q+.

Keát quaû: DC = C+ = B

DB = B+ = C+BA

DA = A+ = CA+BA

Ví dụ, thieát keá laïi ví duï treân duøng JK-FF

Keát quaû: JC = B , KC = A

JB = C, KB = CA

JA = C+B, KA = 1

• Phương pháp nhanh để xác định biểu thực ngõ vào cho JK-FF

Töø ví duï treân thaáy raèng JA vaø KA khoâng chöùa bieán A, töông töï JB vaø KB ñoäc laäp vôùi B, JC vaø KC ñoäc laäp vôùi C. Toång quaùt, haøm cöïc tieåu cho J vaø K cuûa FF Q

000

100

111010

011

100

Q Q+ J K 0 0 1 1

0 1 0 1

0 1 x x

x x 1 0

Page 102: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 96

khoâng phuï thuoäc vaøo Q, ñieàu naøy laø bôûi vì Q=1 trong bìa J laø don’t care, vì vaäy baát cöù 1 ôû phía Q=0 cuûa bìa J coù theå ñöôïc keát hôïp vôùi 1 don’t care laøm trieät tieâu bieán Q, bìa K thì cuõng töông töï vì taát caû Q=0 trong bìa K ñeàu laø don’t care.

Töø baûng traïng thaùi keá cho JK, khi Q=0 thì J=Q+, vì J ñoäc laäp vôùi Q, neân coù theå ñoïc J tröïc tieáp töø Q=0 treân bìa Q+, töông töï khi Q=1 thì K =Q+ neân coù theå ñoïc tröïc tieáp K töø Q=1 treân bìa Q+

Xeùt ví duï treân

Keát quaû: JC = B , KC = A

JB = C, KB = CA

JA = C+B, KA = 1

Phöông phaùp treân coù 2 thuaän lôïi:

(1) Vieäc taùch thaønh 2 bìa J, K laø khoâng caàn thieát.

(2) Soá bieán trong haøm giaûm ñi 1 do JQ vaø KQ ñoäc laäp vôùi Q).

Ví dụ, thieát keá maïch chuyeån maõ 8-4-2-1 BCD sang maõ quaù 3 duøng JK-FF

Baûng traïng thaùi chuyeån ñoåi cho nhö sau

BCD 8-4-2-1 Quaù 3 A B C D A+ B+ C+ D+

0 0 0 0 0 0 0 0 1 1

0 0 0 0 1 1 1 1 0 0

0 0 1 1 0 0 1 1 0 0

0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 1 1 1 1 1

0 1 1 1 1 0 0 0 0 1

1 0 0 1 1 0 0 1 1 0

1 0 1 0 1 0 1 0 1 0

0 1

00 1 1

01 x x

11 0 0

10 0 x

C BA

C+

0 1

00 0 1

01 x x

11 0 1

10 1 x

C BA

B+

0 1

00 0 1

01 x x

11 0 0

10 1 x

C BA

A+

JC CK

JB

BK

JA

JA

AK

Page 103: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 97

Keát quaû: JA = BC+BD KA=0 JB = C+D KB=C+D

JC = D KC=D JD= 1 KD =1

Ví dụ, Thieát keá maïch ñeám leân/ xuoáng ñoàng boä MOD8 duøng JK-FF

Maïch ñeám leân MOD8

Maïch ñeám xuoáng MOD8

Maïch ñeám leân/xuoáng MOD8

Keát hôïp 2 maïch treân ñeå taïo thaønh maïch ñeám leân/ xuoáng nhö sau:

clock

1

J

CLK

K

Q

Q

PR

CL

1J CLK

K

Q

Q

PR

CL 74LS76

J CLK

K

Q

Q

PR

CL

1 11

1 1 1

1

clock

J

CLK

K

Q

Q

PR

CL

1J

CLK K

Q

Q

PR

CL

74LS76

J

CLK K

Q

Q

PR

CL

1

1

1

1

1

1

1

Count-down

J

CLK

K

Q

Q

PR

CL

Count-up

1J

CLK K

Q

Q

PR

CL

74LS76

J

CLK

K

Q

Q

PR

CL

clock

1

1

1

1

1

1

Page 104: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 98

Ví dụ, Thieát keá maïch ñeám coù khaû naêng ñaët traïng thaùi (presetable counter)

Nhieàu maïch ñeám ñoàng boä ñöôïc thieát keá coù khaû naêng ñaët traïng thaùi baét ñaàu cho boä ñeám. Khaû naêng naøy coù theå ñoàng boä hoaëc khoâng ñoàng boä vôùi xung CK.

Minh hoaï maïch ñeám leân 3 bit coù khaû naêng ñaët traïng thaùi khoâng ñoàng boä

Nhieàu IC söû duïng ñaët traïng thaùi ñoàng boä vôùi xung clock.

f. Moät soá IC ñeám ñoàng boä thoâng duïng

• 74163, boä ñeám leân 4bit, Pr vaø CLR ñoàng boä, coù khaû naêng ñaët tröôùc traïng thaùi

• 74192, boä ñeám leân/xuoáng ñoàng boä MOD10, Pr vaø CLR baát ñoàng boä

• 74193, boä ñeám leân/xuoáng ñoàng boä 4bit, Pr vaø CLR baát ñoàng boä

1

P0

J

CLK

K

Q

Q

PR

CL

1

P1

LOAD

J

CLK

K

Q

Q

PR

CL

74LS76

J

CLK

K

Q

Q

PR

CL

clock

P2

74LS163

CLR

A B C D CLK ENT ENP LOAD

QA QB QC QD

RCO

74LS192

UPDOWNCLRLOAD

ABCD

QAQBQCQDBOCO

74LS193

A B C D UP DN LOAD CLR

QAQBQCQD

COBO

Page 105: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 99

g. Maïch ñeám voøng

Ñöôïc xeùt treân cô sôû cuûa maïch ñeám ñoàng boä, boä ñeám voøng coù caáu truùc cuûa thanh ghi dòch nhöng coù theâm hoài tieáp. Thoâng thöôøng söû duïng D-FF hay JK-FF

Traïng thaùi ban ñaàu ñaët cho maïch laø A=0, B=0, C=1

Maïch coù chu trình ñeám MOD3 baèng vôùi soá FF coù trong maïch. Caùc traïng thaùi cuûa FF ñöôïc chuyeån daàn töø C -> A -> B.

• Boä ñeám voøng Johnson

B

D CLK

Q

Q

PR

CL

C

D CLK

Q

Q

PR

CL

D

CLK

Q

Q

PR

CL

CK

A

B C

A CK

CK

B

1

D CLK

Q

Q

PR

CL

C

D CLK

Q

Q

PR

CL

1

D

CLK

Q

Q

PR

CL

A

1

111

CB

J

CLK

Q

Q

PR

CL

J

CLK

Q

Q

PR

CL

J

CLK

Q

Q

PR

CL

CK

A

K K K

Page 106: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 100

Baûng traïng thaùi CK A B C 0 1 2 3 4 5 6

0 1 1 1 0 0 0

0 0 1 1 1 0 0

0 0 0 1 1 1 0

Maïch söû duïng 3-FF neân soá MOD = 6

Toång quaùt, vôùi maïch söû duïng n-FF thì soá MOD laø 2n

• Vi maïch ñeám voøng Johnson laø 4017 MOD10

4.5.7. Öùng duïng boä ñeám:

a. Ñeám taàn soá

B C

A ck

Display

Unknow freq.

Counter

Counter

Clear

SAMPLEpulses

t0 t1 t2T.gian lấy mẫu

SAMPLE pulses

Clear

Unknow freq

Z

CD4017

O0O1O2O3O4O5O6O7O8O9

CLK

CKI

RESETCOUT

Page 107: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 101

Maïch ñeám taàn soá laø maïch ño vaø hieån thò taàn soá cuûa tín hieäu.

Ngoõ vaøo coång AND bao goàm caùc xung vôùi taàn soá chua bieát fx vaø 1 xung laáy maãu ñieàu khieån thôøi gian cho pheùp xung qua coång AND vaøo boä ñeám.

Maïch ñeám seõ ñeám soá xung xuaát hieän trong thôøi gian laáy maãu. Gía trò hieån thò cuûa boä ñeám laø taàn soá cuûa tín hieäu caàn ño (neáu thôøi gian laáy maãu t2 – t1 =1s thì ñôn vò cuûa taàn soá laø Hz)

Söï chính xaùc cuûa phuông phaùp naøy tuøy thuoäc vaøo khoaûng thôøi gian laáy maãu. Phöông phaùp thöôøng söû duïng ñeå nhaän ñöôïc 1 xung laáy maãu chính xaùc laø söû duïng boä dao ñoäng thaïch anh ñeå taïo ra taàn soá chính xaùc (ví duï 100khz) sau ñoù ngöôøi ta chia xuoáng theo caùc thang ño nhö sau

Cuoái cuøng boä ñeám taàn soá hoaøn taát nhö sau

Dao động thạch anh

Biến đổi sin-

vuông

Bộ đếm10 Chia 10

Bộ đếm10 Chia 10

Bộ đếm10 Chia 10

Bộ đếm10 Chia 10

Bộ đếm10 Chia 10

100kh 100kh 10khz 1khz 100hz 10hz 1hz

SAMPLE pulse

1

1 J

CLK

K

Q

Q

PR

CL

Q T

RT CT

Tp =100ns

CLEAR

1

Decoder/

Unknow freq

SAMPLE pulse

Display

1

J

CLK

K

Q

Q

PR

CL

Counter

Page 108: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 102

b. Ñoàng hoà soá

Moät trong nhöõng öùng duïng thoâng duïng nhaát cuûa boä ñeám laø ñoàng hoà soá, hieån thò thôøi gian trong ngaøy nhö giôø, phuùt, giaây.

Ñeå taïo moät ñoàng hoà soá chính xaùc yeâu caàu taàn soá xung clock caáp cho ñoàng hoà phaûi chính xaùc. Ñoái vôùi nhöõng ñoàng hoà soá söû duïng pin, thöôøng söû duïng thaïch anh ñeå taïo taàn soá cô baûn. Ñoái vôùi ñoàng hoà soá söû duïng ñieän löôùi ac, duøng taàn soá cuûa ñieän löôùi ñeå taïo taàn soá cô baûn. Trong caùc tröôøng hôïp treân taàn soá cuûa thaïch anh hay ñieän löôùi ñöôïc chia xuoáng thaønh taàn soá 1hz caáp cho ñoàng hoà

Pulse shaper

50hz Chia 50

50hz 1hz

BCD counter

MOD6 counter

Decoderdisplay

Decoder display

0-9 Unit

0-5 ten

Second section

BCD counter

MOD6counter

Decoderdisplay

Decoderdisplay

0-9 Unit

0-5 ten

Minutesection

BCD counter

MOD2 1-FF

Decoderdisplay

Decoder display

0-9 Unit

0-1 ten

Hours section

counterclear

counter

iscounter

stop display

show freq

count clear

counter

is

Q

SAMPLE pulse

output

Input pulse

T

Page 109: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 103

Ñoái vôùi maïch ñeám giôø coù moät soá tình huoáng sau:

Khi soá haøng chuïc ôû giaù trò 0, thì boä ñeám haøng ñôn vò laø boä ñeám BCD

Khi soá haøng chuïc ôû giaù trò 1, thì boä ñeám haøng ñôn vò chæ ñeám MOD3 (hieån thò giaù trò giôø töø 10 ñeán 12 roài trôû laïi 1 (cho neân maïch naøy phaûi coù khaû naêng ñaët tröôùc soá ñeám)

Maïch cho boä ñeám giôø nhö hình beân

4.5.8. Boä nhôù truy caäp ngaãu nhieân

Baûng chöùc naêng

Ngoõ vaøo Ai R/W Di

Cheá ñoä

0 X X Nhôù, D0 = 0 1 0 0 Nhôù 0 vaøo oâ nhôù, D0 = 0 1 0 1 Nhôù 0 vaøo oâ nhôù, D0 = 0 1 1 X Ñoïc oâ nhôù, D0 = bit nhôù

Display

J

CLK

K

Q

Q

PR

CL74LS192

CK-UPCK-D CLR PL

A BCD

A B C D BOCO

Decoder

0

1

Unit of hours

1

0

Display

1 0

Tens ofhours

D

CLK

Q

Q

PR

CL

DiDO

Xuất data

Nhập data

R/W Ai

Địa chỉ ô nhớ

Page 110: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 104

4.6. MÁY TRẠNG THÁI

Heä tuaàn töï coøn coù teân goïi khaùc laø maùy traïng thaùi (State Machine), teân naøy thöôøng söû duïng khi duøng moät heä tuaàn töï ñeå ñieàu khieån 1 heä thoáng soá thöïc hieän moät thuû tuïc hoaëc moät thuaät toaùn töøng böôùc moät. Coù theå ñònh nghóa caùc maùy traïng thaùi baèng caùc giaûn ñoà traïng thaùi, hoaëc moät kieåu löu ñoà ñaëc bieät ñöôïc goïi laø löu ñoà maùy traïng thaùi hay löu ñoà SM (State Machine) duøng ñeå moâ taû ñaëc tính laøm vieäc cuûa moät maùy traïng thaùi

Trong thieát keá soá, thöôøng söû duïng töø maùy traïng thaùi ñeå chæ caùc maïch ñoàng boä nhö mạch đếm… ở ñoù caùc giaù trò ra thay ñoåi töø moät traïng thaùi nhò phaân naøy sang moät traïng thaùi nhò phaân khaùc khi maïch ñöôïc cung caáp xung clock.

SM coù hai loaïi: Moore vaø Mealy.

4.6.1. Máy trạng thái kiểu MOORE

Sô ñoà khoái maùy traïng thaùi kieåu Moore vaø moät maïch counter nhò phaân 2bit laø moät ví duï cho maùy traïng thaùi kieåu Moore

Caùc FF

Giaûi maõ ngoõ ra

Caùc t/hieäu ngoaøi

Clock

Giaûi maõ t.thaùi keá

Löu tröõ t.thaùi hieän taïi

+kQ

+2Q

+1Q Q1Maïng toå

hôïp

X1 X2

Xm Q1 Q2

Qk

D1CK

Q2D2CK

QkDkCK

Clock

Heä toå hôïp (cho caùc ngoõ ra)

Z2

Z1

Zn

Page 111: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 105

4.6.2. Máy trạng thái kiểu MEALY

Sô ñoà khoái maùy traïng thaùi Mealy

4.7. LƯU ĐỒ MÁY TRẠNG THÁI

Caùc löu ñoà SM coøn ñöôïc goïi laø löu ñoà ASM (Algorithmic State Machine). Löu ñoà SM cho nhieàu thuaän lôïi trong vieäc deã hieåu hôn hoaït ñoäng cuûa moät heä thoáng soá baèng caùch quan saùt thay vì laø giaûn ñoà traïng thaùi töông ñöông. Coù theå chuyeån moät löu ñoà SM cho tröôùc thaønh nhieàu daïng töông ñöông, vaø moãi daïng daãn tröïc tieáp ñeán moät caøi ñaët phaàn cöùng.

Ba thaønh phaàn chính cuûa moät löu ñoà SM

Logic traïng thaùi

keá

Boä nhôù traïng thaùi

Ngoõ CK

Logic ra

G

Clock

Traïng thaùi hieän haønh

Kích thích

Caùc giaù trò ra (Output)Giaù trò

vaøo

Q1

Z2 HEÄTOÅ

HÔÏP

X1 X2

Xm

Q1

Q2

Qk

Z1

Zn

CK

Q2 D2CK

Qk DkCK

Clock

+1Q

+2Q

+kQ

D1

Mã trạng thái

tên trạng thái

(a) Hoäp traïng thaùi

điều kiện

nhánh đúng

1

nhánh sai

0

(b) Hoäp quyeát ñònh

danh sách xuất theo điều

kiện

(c) Hoäp xuaát theo ñk

Page 112: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 106

• Traïng thaùi cuûa moät heä thoáng ñöôïc bieåu dieån baèng hoäp traïng thaùi (state box), hoäp traïng thaùi coù theå chöùa moät danh saùch giaù trò ra. Maõ traïng thaùi coù theå ñaët beân caïnh hoäp ôû phaàn treân. Teân traïng thaùi ñöôïc ñaët trong hình troøn beân traùi hoäp traïng thaùi.

• Hoäp quyeát ñònh (decision box) ñöôïc bieåu dieãn baèng moät kyù hieäu hình thoi vôùi caùc nhaùnh ñuùng vaø sai. Ñieàu kieän ñaët trong hoäp laø moät bieåu thöùc Boolean ñöôïc xaùc ñònh ñeå laáy nhaùnh naøo.

• Hoäp xuaát theo ñieàu kieän (conditional output box) chöùa danh saùch vaø caùc giaù trò ra theo ñieàu kieän phuï thuoäc vaøo caû traïng thaùi cuûa heä thoáng vaø caùc giaù trò vaøo

Moät löu ñoà SM ñöôïc xaây döïng töø caùc khoái SM (SM block) moãi khoái SM chöùa chính xaùc moät hoäp traïng thaùi cuøng vôùi caùc hoäp quyeát ñònh vaø caùc hoäp xuaát theo ñieàu kieän lieân heä vôùi traïng thaùi ñoù.

Moät khoái SM coù chính xaùc moät ñöôøng vaøo vaø moät hoaëc nhieàu ñöôøng ra vaø moâ taû hoaït ñoäng cuûa maùy trong thôøi gian maø maùy ñang trong traïng thaùi.

Khi moät heä thoáng soá ñi vaøo traïng thaùi lieân heä vôùi moät khoái SM cho tröôùc, caùc giaù trò ra ôû danh saùch xuaát trong hoäp traïng thaùi seõ trôû thaønh ñuùng. Caùc ñieàu kieän trong caùc hoäp quyeát ñònh seõ ñöôïc ñònh trò ñeå xaùc ñònh xem ñöôøng naøo ñi theo qua khoái SM. Khi treân ñöôøng ñi coù gaëp moät hoäp xuaát theo ñieàu kieän thì caùc giaù trò ra töông öùng seõ trôû thaønh ñuùng. Moät ñöôøng daãn qua khoái SM töø ngoõ vaøo ñeán ngoõ ra ñöôïc goïi laø ñöôøng daãn noái gheùp (link path)

Ví dụ, moät khoái SM

khi vaøo traïng thaùi S1, caùc giaù trò ra Z1 vaø Z2 = 1. Neáu giaù trò vaøo X1 vaø X2 ñeàu baèng 0 thì Z3 vaø Z4 baèng 1 vaø ôû cuoái thôøi gian traïng thaùi, maùy ñi vaøo traïng thaùi

Z1, Z2 S1

X1

X3Z3, Z4

0 1

0 1

Z5 X3

0 1

1 2 3 n

n ñöôøng ra

nhaùnh a nhaùnh b

Page 113: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 107

keá qua ñöôøng ra 1, ngöôïc laïi neáu X1 =1 vaø X3 = 0, giaù trò ra Z5 = 1 vaø ñi vaøo traïng thaùi keá qua ñöôøng ra 3

Toång quaùt thì moät khoái SM coù theå ñöôïc veõ baèng nhieàu daïng khaùc nhau. Hai khoái SM sau laø töông ñöông.

Ví dụ, Veõ moät khoái SM töông ñöông vôùi khoái SM sau. `

Phaûi tuaân theo moät soá quy taéc nhaát ñònh khi xaây döïng moät khoái SM:

Thöù nhaát, vôùi moïi keát hôïp caùc bieán vaøo hôïp leä phaûi coù chính xaùc moät ñöôøng ra ñöôïc ñònh nghóa. Ñieàu naøy laø caàn thieát vì moãi toå hôïp vaøo ñöôïc cho pheùp phaûi daãn ñeán 1 traïng thaùi keá duy nhaát.

Thöù hai, khoâng cho pheùp coù ñöôøng hoài tieáp noäi trong moät khoái SM.

A

Z1

1

C

B

0

0

1

0

1

Z1 S1

X3

Z2

0 1

0 1

S2 S3

Z1 S1

X2

Z2

0 1

S2 S3

X1

0

1

Z2

X1 1

0

X1

Page 114: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 108

Ví dụ, 1 caùch veõ sai vaø 1 caùch veõ ñuùng ñoái vôùi 1 khoái SM coù ñöôøng hoài tieáp

Moät khoái SM coù theå coù nhieàu ñöôøng song song maø daãn ñeán cuøng moät ñöôøng ra, vaø hôn moät ñöôøng trong caùc ñöôøng naøy coù theå tích cöïc ñoàng thôøi. Ngoaøi ra cuõng coù theå bieåu dieãn baèng moät khoái SM noái tieáp töông ñöông. Trong khoái noái tieáp naøy coù theå coù moät ñöôøng daãn noái gheùp tích cöïc duy nhaát giöõa ngoû vaøo vaø ra. Vôùi baát cöù toå hôïp naøo cuûa caùc giaù trò vaøo, caùc giaù trò ra seõ gioáng nhö trong daïng song song töông ñöông.

Ví dụ,

(a) Sai (b) Ñuùng

Z1

X2 X1

Z2

1

0 Z3 0

1

Z4

1

0

X3

(a) daïng song song

Z1

X1

Z2

X2

Z3

X3

Z3

(b) daïng noái tieáp

Page 115: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 109

Coù theå chuyeån moät giaûn ñoà traïng thaùi cuûa maùy tuaàn töï sang löu ñoà SM töông ñöông moät caùch deã daøng.

Ví dụ, Giaûn ñoà traïng thaùi

Vaø löu ñoà SM töông ñöông

Giaûn ñoà ñònh thì cho löu ñoà SM

S0

Za

S1

Zb

S2

Zc

1/0

0/0

1/0

0/Z1

0/0 1/Z2

Za

X

Zb

X

Zc

X

Z1 Z2

00

01

11

0 1

0 1

0 1

link 1

link 2

S0

S1

S1

link 3

clock

traïng thaùi X

S0 S1 S2 S2 S0 S0

Za

Zb

Zc

Z1

Z2

Page 116: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 110

ÔÛ giaûn ñoà traïng thaùi, coù caû 2 giaù trò ra Moore vaø Mealy, löu ñoà SM töông ñöông coù 3 khoái, moät khoái öùng vôùi moät traïng thaùi. Caùc giaù trò ra Moore (Za, Zb, Zc) ñöôïc ñaët trong caùc hoäp traïng thaùi, töø ñoù chuùng khoâng phuï thuoäc vaøo giaù trò vaøo. Caùc giaù trò ra Mealy (Z1, Z2) xuaát hieän trong caùc hoäp xuaát theo ñieàu kieän, chuùng phuï thuoäc vaøo caû traïng thaùi vaø giaù trò vaøo. Trong ví duï naøy, moãi khoái SM chæ coù moät hoäp quyeát ñònh, do ñoù chæ phaûi kieåm tra 1 bieán vaøo. Ñoái vôùi caû hai giaûn ñoà traïng thaùi vaø löu ñoà SM, Zc luoân baèng 1 trong traïng thaùi S2. Neáu X=0 trong traïng thaùi S2, Z=1 vaø traïng thaùi keá laø S0. Neáu X=1, Z2 =1 vaø traïng thaùi keá laø S2

ÔÛ giaûn ñoà ñònh thì cho löu ñoà SM, vôùi chuoãi vaøo X=1,1,1,0,0,0. Taát caû caùc thay ñoåi traïng thaùi xaûy ra ngay sau caïnh leân cuûa xung nhòp. Vì caùc giaù trò Moore phuï thuoäc vaøo traïng thaùi vaø chæ coù theå thay ñoåi töùc thôøi sau 1 thay ñoåi traïng thaùi hoaëc moät thay ñoåi giaù trò vaøo. Noùi chung, taát caû caùc giaù trò ra seõ coù giaù trò ñuùng cuûa chuùng ôû caïnh tích cöïc cuûa xung nhòp

Ví dụ, Laäp löu ñoà SM cho boä chia nhò phaân song song cho caùc soá nhò phaân döông, soá bò chia (dividend) 6 bit cho soá chia (divisor) 3 bit ñeå coù ñöôïc thöông 3 bit.

Minh hoïa quaù trình chia

Pheùp chia coù theå thöïc hieän baèng pheùp toaùn tröø vaø dòch. ñeå xaây döïng boä chia seõ söû duïng thanh ghi soá bò chia 7 bit vaø thanh ghi soá chia 3 bit nhö sau

Trong quaù trình chia thay vì dòch soá chia sang phaûi tröôùc moãi laàn tröø, ôû ñaây seõ dòch soá bò chia sang traùi. Chuù yù laø caàn theâm 1 bit ôû ñaàu beân traùi thanh ghi soá bò

x7 x6 x5 x4 x3 x2 x1

Thanh ghi số bị chia

Bộ trừ và so sánh

y3 y2 y1

Số chia

Điều khiển

Sh

Su

C (so sánh)

clock

V

Chỉ báo tràn trên

start

100010 110 110 101 101 000 1010 110 100

Page 117: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 111

chia ñeå cho khoâng maát 1 bit khi dòch traùi soá bò chia. Thay vì duøng 1 thanh ghi ñeå chöùa thöông soá, coù theå ñöa thöông soá töøng bit moät vaøo ñaàu beân phaûi cuûa thanh ghi soá bò chia khi dòch traùi soá bò chia

Neáu ban ñaàu x7x6x5x4 ≥ y3y2y1 (nghóa laø neáu 4 bit traùi cuûa thanh ghi soá bò chia vöôït quaù hoaëc baèng soá chia) thöông soá seõ lôùn hôn 8 vaø traøn treân xaûy ra. Chuù yù laø neáu

8yyy

8xxxxyyy

0000xxxxyyy

xxxxxxx

123

4567

123

4567

123

1234567 ≥=≥

baùo traøn vì thöông soá chæ coù 3 bit (toái ña baèng 7)

Tín hieäu dòch (Sh = shift) seõ dòch soá bò chia sang traùi moät vò trí. Tín hieäu tröø (Su = Subtract) seõ tröø soá chia cho 4 bit taän cuøng beân traùi cuûa thanh ghi soá bò chia vaø ñaët bit thöông soá (bit taän cuøng beân phaûi thanh ghi soá bò chia) leân 1. Neáu soá chia lôùn hôn 4 bit taän cuøng beân traùi cuûa soá bò chia, ngoõ ra cuûa boä so saùnh laø C=0, ngöôïc laïi C=1. Maïch ñieàu khieån taïo ra chuoåi caùc tín hieäu dòch vaø tröø mong muoán. Baát cöù luùc naøo C=1, tín hieäu tröø ñöôïc taïo ra vaø bit thöông soá ñöôïc ñaët leân

Giaûn ñoà traïng thaùi cuûa maïch ñieàu khieån

Ban ñaàu soá bit chia 6 bit vaø soá chia 3 bit ñöôïc ñöa vaøo caùc thanh ghi thích hôïp. Maïch vaãn ôû traïng thaùi döøng Stop (S0) cho ñeán khi coù tín hieäu Start. Neáu giaù trò ban ñaàu cuûa C=1, thöông soá seõ caàn 4 bit trôû leân. Vì khoâng gian chæ cung caáp cho thöông soá 3 bit, ñieàu kieän naøy laøm traøn treân do ñoù boä chia döøng vaø boä chæ traøn seõ ñaët leân 1 baèng ngoõ ra traøn treân.

Bình thöôøng giaù trò ban ñaàu cuûa C=0, vì vaäy dòch seõ xaûy ra ñaàu tieân vaø maïch seõ ñi vaøo traïng thaùi S1. Roài neáu C=1 thì xaûy ra tröø. Sau khi hoaøn taát tröø C seõ luoân luoân baèng 0 vì vaäy xung nhòp keá seõ taïo ra dòch. Quaù trình naøy tieáp tuïc cho ñeán khi xaûy ra 3 laàn dòch vaø ñieàu khieån oå trong traïng thaùi S3. Roài pheùp tröù cuoái cuøng xaûy ra neáu caàn, vaø ñieàu khieån quay veà traïng thaùi döøng. Vôùi vd naøy seõ giaû söø laø khi tín hieäu baét ñaàu (start) xaûy ra noù seõ laø 1 trong thôøi gian 1 clock vaø roài giöõ laø 0 cho ñeán khi heä ñieàu khieån quay veà traïng thaùi S0. Do ñoù Start seõ luoân laø 0 trong caùc traïng thaùi S1, S2, S3

S0 Stop

S1

S2

S3

C.Start/VStart’/0

C’/0

C’.Start/Sh

C/Su

C’/Sh

C/Su

C’/Sh

C/Su

Page 118: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 112

Töø ñoù suy ra löu ñoà SM nhö sau

S0 laø traïng thaùi baét ñaàu, neáu Start=1, tín hieäu so saùnh C ñöôïc kieåm tra, neáu C=1, thöông soá lôùn hôn 3 bit, vì vaäy baùo traøn V=1 ñöôïc taïo ra vaø khoâng coù söï thay ñoåi xaûy ra. Neáu C=0, Sh=1, ôû xung nhòp keá soá bò chia ñöôïc dòch sang traùi vaø traïng thaùi chuyeån sang S1. C ñöôïc kieåm tra trong traïng thaùi S1. Neáu C=1 coù theå coù pheùp tröø, Su=1 vaø khoâng coù söï thay ñoåi traïng thaùi. Neáu C=0, Sh=1 vaø soá bò chia ñöôïc dòch khi traïng thaùi chuyeån sang S2. Hoaït ñoäng ôû S2 thì gioáng S1. Trong traïng thaùi S3 traïng thaùi keá luoân laø S0, vaø C=1 laøm cho pheùp tröø xaûy ra

Ví dụ, Laäp löu ñoà Sm cho ñieàu khieån boä nhaân song song cho caùc soá nhò phaân döông.

Nhaân nhò phaân chæ caàn pheùp toaùn dòch vaø coäng. Thay vì ban ñaàu taïo ra taát caû caùc tích boä phaän roài coäng laïi, thì moãi tích boä phaän (partial product) ñöôïc coäng moãi khi ñöôïc taïo ra vaø do ñoù khoâng caàn coäng moät laàn hôn 2 soá nhò phaân

Nhaân 2 soá 4 bit caàn 1 thanh ghi soá bò nhaân (multiplicant register) 4bit, moät thanh ghi soá nhaân 4 bit vaø thanh ghi 8bit cho soá haïng tích. Thanh ghi tích soá laøm vieäc nhö thanh ghi tích luõy laø tích luõy toång caùc tích boä phaän. Thay vì dòch soá bò nhaân sang traùi tröôùc khi coäng, ôû ñaây seõ dòch thanh ghi tích sang phaûi

S0

Start

C

V

0

1

1

0

Sh

S1

C

Su

0

1 Sh

S2

C

Su

0 1

Sh

S3

C

Su

0

1

00

01

10

11

Page 119: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 113

Soá bò nhaân Soá nhaân

→ →

1101 1011

Caùc tích boä phaän 1101 1101

10111 0000

100111 1101

Tích soá 10001111

Sô ñoà khoái cuûa boä nhaân song song

Ví duï, nhaân 13 x 11 ñöôïc laøm laïi sau ñaây chæ vò trí caùc bit trong caùc thanh ghi ôû moãi thôøi ñieåm xung nhòp

Noäi dung ban ñaàu cuûa t.ghi tích luõy (coäng soá bò nhaân vì M=1)

000001011 1101

M(11) (13)

Sau khi coäng Sau khi dòch phaûi

Coäng soá bò nhaân vì M=1

011011011 001101101 1101

M=1

Sau khi coäng Sau khi dòch phaûi

100111101 010011110

M=0

Boû qua coäng vì M=0 Sau khi dòch

coäng soá bò nhaân vì M=1

001001111 1101

M=1

Sau khi coäng Sau khi dòch (ñaùp soá)

100011111 010001111

Ñöôøng chaám chaám laø ñöôøng chia giöõa boä nhaân vaø tích soá

Maïch ñieàu khieån phaûi ñöôïc thieát keá ñeå cho ra chuoãi caùc tín hieäu coäng vaø dòch ñuùng.

Thanh ghi tích luõy

Boä coäng

Soá bò nhaân

Ñieàu khieån Ad

N

PC

C

Thanh ghi tích soá

Soá nhaân

PC

Sh

M=1: coäng &dòch M=0: dòch

Ad: tín hieäu coäng Sh: tín hieäu dòch PC: xung clock M: bit boä nhaân N: tín hieäu start C: soá nhôù

Page 120: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 114

Giaûn ñoà traïng thaùi cho ñieàu khieån boä nhaân, SV giaûi thích töông töï nhö maïch chia

Laäp löu ñoà SM cho ñieàu khieån boä nhaân, ñieàu khieån naøy taïo ra chuoãi caùc xung coäng vaø dòch mong muoán cuûa boä nhaân nhò phaân. Boä ñeám seõ ñeám soá laàn dòch vaø xuaát K=1 tröôùc khi laàn dòch cuoái cuøng xaûy ra. Löu ñoà SM cho ñieàu khieån boä nhaân töông öùng vôùi giaûn ñoà traïng thaùi hình (c)

S0

S2 S6

S4

S7 S1

S3 S5

MN/Ad

- /Sh

M/Ad

- /ShM/Ad

- /Sh

M/Ad

- /Sh

N’/0

M’N/Sh

M’N/ShM’N/Sh

M’N/Sh

Ñieàu khieån Coäng - dòch

N

PC

Ad

Sh

Boä ñeám

K=1 neáu n-1 laàn dòch

S0

S0 S0

M’N/ShMN/Ad

N’/0

M/Ad

- /Sh

M’/Sh

(a) Ñieàu khieån boä nhaân(b) Giaûn ñoà traïng thaùi cuûa ñieàu khieån coäng dòch

S0

S0 S0

M’N/ShMN/Ad

N’/0

K/Sh

K’/Sh M’K’/Sh

(c) Giaûn ñoà traïng thaùi cuoái cuûa ñieàu khieån coäng dòch M’K/Sh

M/Ad

Page 121: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 115

S0

N

M

ShAd

Sh

K M

Ad Sh

M

S1 S2

0

11 0

1 0 1 0

1 0

Page 122: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 116

4.8. BỘ NHỚ BÁN DẪN

Boä nhôù baùn daãn chia laøm hai loaïi chính

• Boä nhôù baûng (table memory)

• Boä nhôù haøm (function memory)

Vôùi

RAM = Random Access Memory ROM = Read Only Memory PLD = Programmable Logic Device PLA = Programmable Logic Array PAL = Programmable Array Logic LCA = Logic Cell Array M = Mask programed P = Programmable EP = Erasable and Programmable EEP = Electrically Erasable and Programmable

Bộ nhớ bảng,

• Đòa chæ A ñöôïc ñònh nghóa trong daõy 0≤ A ≤ 2N –1

Vôùi ñoä roäng töø cuûa ñòa chæ laø N, giaù trò cuûa N phuï thuoäc vaøo kích thöôùc cuûa boä nhôù. Coù theå caát döõ lieäu ôû moät ñòa chæ trong 2N ñòa chæ. Ñoä roäng töø döõ lieäu laø m = 1…16 bit

• Dung löôïng boä nhôù K ñöôïc xaùc ñònh bôûi: K=mxn (bit)

Vôùi m laø ñoä roäng töø döõ lieäu, n laø soá ñòa chæ

Tính theo byte (K/8) cho caùc ñoä roäng töø döõ lieäu laø 8 hay 16 bit

Boä nhôù baùn daãn

Boä nhôù baûng Boä nhôù haøm

RAM ROM

Tónh Ñoäng

MROM PROM EPROM EPROM

PLD

PLA PAL PPAL EPPAL EEPPAL

LCA EPLD PEEL (Pro. elec. erasablelogic

GAL (generic array logic)

Page 123: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 117

Ví dụ, Baûng cho ROM coù N=3bit ñòa chæ, m=2 bit döõ lieäu

Ñòa chæ Döõ lieäu Giaù trò thaäp phaân a2 a1 a0 d1 d0

0 1 2 3 4 5 6 7

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

d01

d11 d21

d31

d41

d51

d61

d71

d00

d10 d20

d30

d40

d50

d60

d70

D0 D1

D2

D3

D4

D5

D6

D7

Bộ nhớ hàm • Chöùa caùc haøm logic (Boolean) thay vì laø caùc baûng. Moãi bieán cuûa baûng chaân

trò coù theå ñöôïc bieåu dieãn baèng haøm logic.

Vieát döôùi daïng tích chuaån thì haøm logic cuûa bieán d0 ôû ví duï treân laø

0 2 1 0 00 2 1 10 2 1 0 70d = a .a .a d +a .a .d +...+a a a d = m0d00 + m1d10+…+m7d70 (vôùi mi: minterm thöù i)

neáu trong baûng coù ít dio = 1 thì vieäc söû duïng boä nhôù haøm tieän lôïi hôn boä nhôù baûng

Các thiết bị logic lập trình được PLD (Programmable Logic device)

• PLD laø teân goïi toång quaùt cuûa moät IC soá maø ngöôøi ta coù theå laäp trình ñöôïc noù ñeå thöïc hieän caùc haøm logic khaùc nhau.

Vì haøm logic ñöôïc bieåu dieãn döôùi daïng toång caùc tích hay tích caùc toång neân caáu truùc maïch trong PLD thoâng thöôøng laø moät daõy AND vaø OR ñoàng daïng (identical cell) maø coù theå laäp trình töøng coång ñöôïc.

• Caùc thieát keá duøng PLD coù caùc öu ñieåm sau: Taêng khaû naêng tích hôïp. coù theå giaûm khoái löôïng veà maïch thieát keá trong

khi vaãn coù theå taêng chöùc naêng cho maïch Coâng suaát thaáp. CMOS vaø moät soá ít hôn caùc maïch keát hôïp seõ laøm giaûm

ñaùng keå coâng suaát nguoàn cung caáp Taêng ñoä tin caäy. Nguoàn cung caáp thaáp vaø vieäc giaûm toái ña caùc maïch lieân

keát ôû ngoaøi laøm cho vieäc truyeàn giöõa caùc khoái ñaùng tin caäy hôn Giaù thaønh thaáp. Deã söû duïng. Deã daøng thay ñoåi. Khi caàn coù söï thay ñoåi trong thieát keá, khoâng caàn phaûi

theâm thaét caùc “daây noái”, taát caû laø thay ñoåi beân trong cuûa PLD vaø coù theå thöïc hieän caùc thay ñoåi ñoù moät caùch nhanh choùng.

Page 124: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 118

4.9. ROM - THIẾT KẾ HỆ THỐNG SỐ DÙNG ROM 4.9.1. ROM

ROM laø moät maïch toå hôïp coù n ngoõ vaøo vaø m ngoõ ra. Caùc ngoõ vaøo ñöôïc goïi laø ñòa chæ (address input) vaø thöôøng ñöôïc ñaët laø A0A1…An-1. Caùc ngoõ ra ñöôïc goïi laø caùc ngoõ ra döõ lieäu (data output) vaø thöôøng ñöôïpc ñaët teân laø D0D1D2…Dm-1

Hình 1-2. Caáu truùc cô baûn cuûa moät ROM 2n x m

ROM chöùa baûng chaân trò cuûa moät haøm logic toå hôïp n ngoõ vaøo, m ngoõ ra.

Ví dụ, baûng chaân trò cuûa haøm toå hôïp 3 ngoõ vaøo 4 ngoõ ra vaø ta coù theå chöùa noù trong 1 ROM 23 x 4 (8x 4). Boû qua caùc trì hoaõn veà thôøi gian, caùc ngoõ ra döõ lieäu cuûa moät ROM ôû moïi luùc laø caùc bit ra cuûa haøng trong baûng chaân trò ñöôïc choïn bôûi caùc ngoõ vaøo ñòa chæ

Chú ý

• Coù theå duøng ROM nhö baát cöù phaàn töû logic toå hôïp naøo

• ROM laø boä nhôù khoâng boác hôi (nonvolatile memory) vì noäi dung cuûa noù vaãn giöõ ñöôïc ngay caû khi khoâng caáp ñieän

• Vaán ñeà hoaùn vò caùc coät bit trong baûng chaân trò cuûa haøm caàn ghi ROM

• Khi duøng ROM ñeå chöùa moät baûng chaân trò cho tröôùc, caùc tín hieäu input vaø output ñoïc töø phaûi sang traùi trong baûng chaân trò thöôøng ñöôïc gaùn vaøo caùc ngoõ vaøo ñòa chæ vaø ngoõ ra data cuûa ROM vôùi vôùi caùc nhaõn theo thöù töï taêng daàn

Ví dụ, Duøng ROM ñeà thöïc hieän haøm nhaân nhò phaân khoâng daáu cho 2 soá nhò phaân 4 bit. Neáu duøng maïch rôøi ta duøng caùc IC 74284 vaø 74285, coøn duøng ROM thì söû duïng ROM 28 x 8 (256 x 8) vôùi keát noái nhö hình 1-5

2n x m ROM

A0

A1A2

An-1

D0

D1D2

Dm-1

addressinput

(n đường)

address output (m đường)

Input Output A2 A1 A0 D3 D2 D1 D0 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 1 1 0 0 0 0 1

1 1 0 1 0 0 1 0

1 0 1 1 0 1 0 0

0 1 1 1 1 0 0 0

Page 125: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 119

Ñòa chæ Tích soá cuûa 1 x 5

Noäi dung ghi ROM ôû treân nhö sau (daïng file vaên baûn hex)

00: 10: 20: 30: 40: 50: 60: 70: 80: 90: A0:B0: C0: D0: E0: F0:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 01 02 03 04 05 06 07 08 09 0A0B0C0D0E 0F

00 02 04 06 08 0A0C0E 10 12 14 16 18 1A1C1E

00 03 06 09 0C0F 12 15 18 1B1E 21 24 27 2A2D

00 04 08 0C10 14 18 1C20 24 28 2C30 34 38 3C

00 05 0A0F 14 19 1E 23 28 2D32 37 3C41 46 4B

… … … … … … … … … … … … … … … …

4.9.2. Cấu trúc nội của ROM

Cô cheá söû duïng ROM ñeå löu tröõ thì thay ñoåi öùng vôùi caùc coâng ngheä cuûa ROM khaùc nhau. Trong phaàn lôùn caùc ROM, söï xuaát hieän hoaëc vaéng maët cuûa moät diode hay transistor seõ phaân bieät giöõa 0 vaø 1

Cấu trúc với giải mã 1 chiều

256 x 8 ROM

A0A1A2

A7

D0

D1D2

D7

Y(Số bị nhân)

Tích số A3A4

A5

A6

X (Số nhân)

D3

D4

D5

D6

Page 126: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 120

Sô ñoà ROM 8x 4 vôùi caáu truùc giaûi maõ 1 chieàu (duøng 1 boä giaûi maõ TTL vaø caùc diode).

Moãi ñöôøng ra boä giaûi maõ ñöôïc goïi laø ñöôøng töø (word line) bôûi vì noù choïn moät haøng hoaëc moät töø cuûa baûng chöùa trong ROM

Moãi ñöôøng thaúng ñöùng trong hình ñöôïc goïi laø ñöôøng bit (bit line) bôûi vì noù töông öùng vôùi moät bit ra cuûa ROM

Nhận xét: coù diode töông öùng möùc 0, khoâng coù diode töông öùng möùc 1

Caùc MOS ROM thöôøng duøng transistor thay vì laø diode ôû moãi vò trí maø bit seõ ñöôïc löu tröõ.

Cấu trúc với giải mã 2 chiều

Neáu xaây döïng moät ROM 128x1 duøng caáu truùc ôû phaàn tröôùc phaûi söû duïng moät boä giaûi maõ 7 sang 128, nghóa laø phaûi söû duïng ñeán moät löôïng lôùn 128 caùc coång NAND 7 ngoõ vaøo, neáu thieát keá cho ROM vôùi haøng trieäu bits hoaëc nhieàu hôn seõ khoâng coù boä giaûi maõ 20 sang 1048576. Thay vaøo ñoù ngöôøi ta seõ söû duïng caáu truùc khaùc ñöôïc goïi laø giaûi maõ hai chieàu (two-dimentional decoding)

D1

A0 A B C

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

A2

D3

HI

D0

HI

D2

0

A1

Page 127: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 121

Ví dụ, ROM 128 x 1

3 bit ñòa chæ cao A6A5A4 seõ choïn haøng, moãi haøng chöùa 16 bit baét ñaàu taïi ñòa chæ A6A5A40000. Khi ñaët ñòa chæ cho ROM, 16bit ôû haøng ñöôïc choïn ñöa vaøo boä MUX vaø 4 bit ñòa chæ thaáp seõ choïn bit data mong muoán.

Ngoaøi vieäc giaûm tính phöùc taïp vieäc giaûi maõ, giaûi maõ 2 chieàu coù moät thuaän lôïi khaùc laø ROM coù moät kích thöôùc vaät lyù gaàn vuoâng, ñieàu naøy quan troïng cho vieäc cheá taïo vaø ñoùng goùi IC

Với ROM coù nhieàu ngoõ ra döõ lieäu, caùc daõy löu tröõ töông öùng vôùi moãi ngoõ ra döõ lieäu coù theå ñöôïc laøm heïp hôn ñeå ñaït ñöôïc boá trí chip gaàn vôùi hình vuoâng hôn.

Ví dụ, Moät boá trí cuûa ROM 32K x 8

A12 A11 A10

9 to 512 decoder

A6 A7 A8 A9

A13 A14

512 x 64

array

512 x 64

array

512 x 64

array

512 x 64

array

512 x 64

array

512 x 64

array

512 x 64

array

512 x 64

array

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

64 to 1 MUX

A0 A1 A2 A3 A4 A5

A2

A4 A B C

G1G2A G2B

Y0Y1Y2Y3Y4Y5Y6Y7

A6

A0

D0

HI

D0 G2S0 S1 S2 S3

0 1 2 3 4 5 6 7 8 9 101112131415

A1

HI

0

A3

A5

0

Page 128: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 122

4.9.3. Các kiểu ROM thương mại

Baûng caùc kieåu ROM thöông maïi Kieåu Coâng ngheä Chu kyø ñoïc Chu kyø ghi Chuù thích

Mask ROM Mask ROM PROM EPROM EEPROM

NMOS, CMOS Bipolar Bipolar NMOS, CMOS NMOS

25 – 500ns <100ns <100ns 25-500ns 50-500ns

4 tuaàn 4 tuaàn 5 phuùt 5 phuùt 10ms/bytes

Ghi 1 laàn, coâng suaát thaáp Ghi 1 laàn, coâng suaát cao, maät ñoä thaáp Ghi 1 laàn coâng suaát cao, khoâng coù maët naï Duøng laïi ñöôïc, coâng suaát thaáp Giôùi haïn 10000 laàn ghi/vò trí

Caùc ROM thoâng duïng nhaát laø caùc EPROM: 2764, 27128, 27256, vaø 27512

8K x 8 16K x 8 32K x 8

Chuù yù: chaân VCC phaûi noái vôùi +5V

chaân VIH phaûi noái vôùi tín hieäu logic HIGH hôïp leä

chaân VPP duøng ñeå ñöa vaøo ñieän aùp laäp trình

4.9.4. Các ngõ vào điều khiển và định thì ROM

Caùc ngoõ ra cuûa ROM thöôøng phaûi ñöôïc noái vaøo moät BUS 3 traïng thaùi, ôû ñoù caùc thieát bò khaùc coù theå laùi BUS ôû caùc thôøi ñieåm khaùc nhau. Do ñoù, phaàn lôùn caùc chip ROM thöông maïi coù ngoõ ra döõ lieäu 3 traïng thaùi vaø moät ngoõ vaøo Output Enable (OE: cho pheùp xuaát) ñeå cho pheùp caùc ngoõ ra

Nhieàu öùng duïng ROM ñaëc bieät laø öùng duïng löu tröõ chöông trình seõ coù nhieàu ROM ñöôïc noái chung vaøo 1 BUS, moãi laàn chæ coù 1 ROM laùi BUS. Phaàn lôùn caùc ROM coù ngoõ vaøo chip select (CS: choïn chip) ñeå laøm ñôn giaûn vieäc thieát keá caùc heä thoáng. Ngoaøi OE coøn caàn phaûi coù CS ñeå cho pheùp ngoõ ra 3 traïng thaùi

Tuy nhieân trong nhieàu ROM, CS cuõng laøm vieäc nhö ngoõ vaøo caét nguoàn caáp ñieän (power down input), CS ôû möùc khoâng tích cöïc thì khoâng caáp nguoàn cho caùc decoder noäi, caùc driver vaø caùc MUX cuûa ROM. ÔÛ cheá ñoä chôø naøy (standby mode) 1 ROM tieâu thuï ít hôn 10% coâng suaát so vôùi cheá ñoä hoaït ñoäng (active mode).

2764

109876543

252421232

2022271

1112131516171819

A0A1A2A3A4A5A6A7A8A9A10A11A12

CEOEPGMVPP

O0O1O2O3O4O5O6O7

27128

109876543

252421232

26

2022271

1112131516171819

A0A1A2A3A4A5A6A7A8A9A10A11A12A13

CEOEPGMVPP

O0O1O2O3O4O5O6O7

27256

109876543

252421232

2627

20221

1112131516171819

A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14

CEOEVPP

O0O1O2O3O4O5O6O7

Page 129: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 123

Hình sau chæ caùc ngoõ vaøo CS vaø OE ñöôïc söû duïng nhö theá naøo ôû beân trong moät ROM tieâu bieåu

4.9.5. Thiết kế hệ tuần tự dùng ROM

Coù theå thieát keá deã daøng moät heä tuaàn töï duøng ROM keát hôïp vôùi caùc FF.

Moâ hình toång quaùt cuûa heä tuaàn töï duøng ROM vaø caùc D-FF coù xung nhòp

Phaàn toå hôïp cuûa heä tuaàn töï coù theå duøng ROM ñeå thöïc hieän caùc haøm ra (Z1, Z2, …, Zn) vaø caùc haøm traïng thaùi keá (Q1

+, Q2+, …, Qk

+).

Traïng thaùi cuûa heä ñöôïc chöùa trong moät thanh ghi (taïo baèng caùc D-FF) vaø ñöa hoài tieáp veà ngoõ vaøo cuûa ROM.

row

decoder

Power on

Storage Array Power on

Power on

colum MUX

A0

A1

Am-1

Am

Am+1

An-1

CS

OE

Q1

Z2 ROMX1 X2

Xm

Q1

Q2

Qk

Z1

Zn

CK

Q2 D2CK

Qk DkCK

Clock

+1Q

+2Q

+kQ

D1

Page 130: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 124

Nhö vaäy heä tuaàn töï vôùi m input, n output vaø k bieán traïng thaùi coù theå ñöôïc caøi ñaët baèng k D-FF vaø ROM vôùi (m+k) ngoõ vaøo (nghóa laø 2m+k töø word) vaø (n+k) output

Thöông duøng D FF hôn JK FF vì söû duïng caùc FF vôùi 2 ngoõ vaøo seõ caàn phaûi taêng soá ngoõ ra ôû ROM.

Ví dụ, Thieát keá maïch chuyeån ñoåi maõ BCD sang maõ quaù 3, ngoõ vaøo vaø ra laø noái tieáp vôùi LSB ñi tröôùc

input (BCD) X Output (excess – 3) Y t3 t2 t1 t0 t3 t2 t1 t0

0 0 0 0 0 0 0 0 1 1

0 0 0 0 1 1 1 1 0 0

0 0 1 1 0 0 1 1 0 0

0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 1 1 1 1 1

0 1 1 1 1 0 0 0 0 1

1 0 0 1 1 0 0 1 1 0

1 0 1 0 1 0 1 0 1 0

Baûng treân lieät keâ caùc input vaø output mong muoán taïi caùc thôøi ñieåm t0, t1, t2 vaø t3

Tröôùc heát thaønh laäp baûng traïng thaùi, sau ñoù ruùt goïn baûng baèng caùch so caùc haøng gioáng nhau thì gom laïi. Khi so caùc haøng coù chöùa daáu gaïch ngang (ñaây laø tröôøng hôïp “don’t care” thì daáu gaïch ngang seõ khôùp vôùi baát cöù traïng thaùi naøo hoaëc baát cöù giaù trò ra naøo. Baèng caùch so khôùp caùc haøng theo caùch naøy, ta coù H ≡ I ≡ J ≡ K ≡ L vaø M≡ N ≡ P, sau khi khöû I, J, K, L N vaø P thaáy raèng E ≡ F ≡ G vaø baûng ñöôïc thu goïn thaønh 7 haøng sau

Thời gian Chuỗi vào nhận được

Trạng thái hiện

tại

Trạng thái kế

X = 0 X=1

Giá trị ra hiện tại (Z)

X=0 X=1 t0 reset A B C 1 0 t1 0

1 B C

D E

F G

1 0

0 1

t2 00 01 10 11

D E F G

H I J K

L M N P

0 1 1 1

1 0 0 0

t3 000 001 010 011 100 101 110 111

H I J K L M N P

A A A A A A A A

A A - - - - - -

0 0 0 0 0 1 1 1

1 1 - - - - - -

Page 131: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 125

Baûng traïng thaùi ñöôïc ruùt goïn cuûa boä chuyeån ñoåi maõ

Thời gian Trạng thái hiện

tại

Trạng thái kế

X = 0 X=1

Giá trị ra hiện tại (Z)

X=0 X=1 t0 A B C 1 0 t1 B

C D E

F G

1 0

0 1

t2 D E

H H

H M

0 1

1 0

t3 H M

A A

A -

0 1

1 -

Coù theå duøng moät caùch khaùc ñeå suy ra baûng treân baèng caùch baét ñaàu baèng giaûn ñoà traïng thaùi.

Giaûn ñoà traïng thaùi coù daïng hình caây. Moãi ñöôøng baét ñaàu ôû traïng thaùi reset bieåu dieãn moät trong 10 chuoãi vaøo coù theå coù

Baûng gaùn traïng thaùi vaø baûng chuyeån traïng thaùi

Thôøi gian

Traïng thaùi hieän taïi

Q1Q2Q3 Q1+Q2

+Q3+

X=0 X=1 Z

0 1 t0 A 000 010 011 1 0 t1 B

C 010 011

101 100

100 100

1 0

0 1

t2 D E

101 100

111 111

111 110

0 1

1 0

t3 H M

111 110

000 000

000 ---

0 1

1 ---

A

B C

D F E G

H L J N I M K P

0/1t0

t1 0/1 1/0

0/0 1/1 0/1 1/0 0/1 1/0 0/1 1/0

1/1 0/0

1/0Reset

t2

t3 0/0 1/1 0/0 0/0 0/1 0/0 1/1 0/1 0/0 0/1

Page 132: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 126

Caøi ñaët boä chuyeån ñoåi maõ naøy duøng ROM vaø caùc D-FF. Vì coù 7 traïng thaùi neân caàn 3 DFF. Nhö vaäy caàn ROM coù 4 input (24 word) vaø 4 output . Duøng gaùn nhò phaân tröïc tieáp, xaây döïng baûng chuyeån traïng thaùi cho traïng thaùi keá cuûa caùc D-FF nhö laø haøm cuûa traïng thaùi hieän taïi vaø input.

Vì ñang söû duïng caùc D FF, D1 = Q1+, D2=Q2

+, D3=Q3+. baûng chaân trò cho ROM

xaây döïng ñöôïc deã daøng töø baûng chuyeån traïng thaùi. Nhö vaäy caùc output cuûa ROM (Z, D1, D2, D3) laø caùc haøm cuûa caùc input cuûa ROM (X, Q1, Q2, Q3)

(a) Baûng traïng thaùi (b) baûng chuyeån traïng thaùi

T. thaùi h.taïi

T. thaùi keá

X=0 X=1

G.trò ra h.taïi Z

X=0 X=1

Q1Q2Q3 Q1+Q2

+Q3+

X=0 X=1

Z

X=0 X=1 A B C 1 0 A 000 001 010 1 0 B C

D E

E E

1 0

0 1

B C

001 010

011 100

100 100

1 0

0 1

D E

H H

H M

0 1

1 0

D E

011 100

101 101

101 110

0 1

1 0

H M

A A

A ---

0 1

1 ---

H M

101 110

000 000

000 ---

0 1

1 ---

Baûng chaân trò cho ROM

X Q1 Q2 Q3 Z D1 (Q1+) D2 (Q2

+) D3 (Q3+)

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 0 1 0 1 x 0 0 1 1 0 1 x x

0 0 1 1 1 0 0 x 0 1 1 1 1 0 x x

0 1 0 0 0 0 0 x 1 0 0 0 1 0 x x

1 1 0 1 1 0 0 x 0 0 0 1 0 0 x x

Page 133: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 127

Caøi ñaët maïng tuaàn töï duøng ROM

4.10. PLD tổ hợp (Combinational PLD) 5.3.1. Dãy logic lập trình được (PLA)

PLA thöïc hieän cuøng chöùc naêng cô baûn nhö ROM. Moät PLA vôùi n input vaø m output coù theå caøi ñaët m haøm cuûa n bieán. Toå chöùc noäi cuûa PLA thì khaùc vôùi toå chöùc noät cuûa ROM

Caáu truùc PLA (PLA nxm vôùi p soá haïng tích)

Ví dụ, Toå chöùc noäi cuûa PLA 4x3 vôùi 6 soá haïng tích

+3Q

+2Q

+1Q Q1

ROM 16 words

x 4 bit

X1

Q1Q2

Q3

Z

D1 CK

Q2 D2CK

Q3 Dk CK

Clock

Dãy AND

Dãy OR

n input

p đường word (số hạng tích) m đường ra

Dãy AND

Dãy OR

Các đường Word

Output F1

c d

b'c

bc

abd

a

a'bd

ab'c'

F3

c

b

F2

Page 134: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 128

Vôùi kyù hieäu

Baûng PLA cho PLA ôû treân

a b c d F1 F2 F3 0 1 1 - - -

1 1 0 0 - 1

- - 0 1 1 1

1 1 - - - -

1 1 1 1 0 0

1 0 0 0 1 0

0 1 1 0 0 1

Moãi haøng trong baûng bieåu dieån moät soá haïng tích toång quaùt.

Có hai loại PLA:

• PLA laäp trình maët naï (Mask programmable): ñöôïc laäp trình luùc cheá taïo (töông töï PROM)

• PLA laäp trình tröôøng (field programmable) coù caùc noái keát caàu chì (fusible link) coù theå laøm ñöùt ñeå löu tröõ caùc maãu trong caùc daõy AND vaø OR.

Chú ý. Khi soá bieán vaøo nhoû, thì toång quaùt laø ROM kinh teá hôn duøng PLA. Tuy nhieân khi soá bieán vaøo lôùn, PLA thöôøng cho giaûi phaùp kinh teá hôn ROM

5.3.2. Logic dãy lập trình được PAL (Programmable Array Logic)

PAL laø tröôøng hôïp ñaëc bieät cuûa PLA, trong ñoù caùc daõy AND laäp trình ñöôïc vaø daõy OR laø coá ñònh. Caáu truùc cô baûn cuûa PAL thì gioáng nhö PLA

Moät ñoaïn PAL

a'a'bd

db

a' a'bd

b d

F3

a'bdc

a'bd c

ab'c'

ab'c' bc

bc

F3

Page 135: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 129

Vì chæ coù daõy AND laø laäp trình ñöôïc, do ñoù PAL kinh teá hôn PLA. Caùc nhaø thieát keá logic thöôøng söû duïng caùc PAL ñeå thay theá caùc coång logic khi phaûi caøi ñaët nhieàu haøm

Phaàn lôùn caùc nhaø saûn xuaát PAL chæ ra thieát keá noäi cuûa PAL ôû kyù hieäu cuûa noù

Ví dụ

PAL 16 L 8 B – 4

`soá input tieâu taùn coâng suaát 1/4w

Caáu truùc ra toác ñoä

Soá output

Vôùi caáu truùc ra

H = High ngoõ ra taùc ñoäng möùc cao

L = Low ngoõ ra taùc ñoäng möùc thaáp

C = Complement ngoõ ra coù caû hai ñöôøng taùc ñoäng möùc cao vaø thaáp

Toác ñoä:

khoaûng traéng – toác ñoä chuaån

A= toác ñoä cao

B=toác ñoä raát cao

D=toác ñoä cöïc cao

Tieâu taùn coâng suaát

blank = full

-2 = ½

-4 = ¼

Ví dụ, kyù hieäu logic truyeàn thoáng cho PAL 16L8

chaân 10, 20 cho nguoàn vaø ñaát

Xem theâm sô ñoà logic cuûa PAL 14L4 vaø PAL 1246 ôû caùc trang 240, 241 trong Fundamentals of logic design cuûa Roth

PAL16L8123456789

11

1918171615141312

I1I2I3I4I5I6I7I8I9I10

O1O2O3O4O5O6O7O8

Page 136: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 130

Khi thiết kế với PAL phaûi ñôn giaûn hoùa caùc phöông trình logic vaø coá ñöa chuùng khôùp vaøo moät (hoaëc nhieàu) caùc PAL. Khoâng gioáng nhö caùc PLA (toång quaùt hôn) caùc soá haïng AND khoâng theå chia seû cho 2 hay nhieàu coång OR, vôùi moät kieåu PAL cho tröôùc, soá soá haïng AND ñöa vaøo moãi coång OR laø coá ñònh vaø bò giôùi haïn. Neáu soá soá haïng AND trong haøm ñöôïc ñôn giaûn laø quaù lôùn thì ta coù theå choïn PAL coù nhieàu ngoõ vaøo vaø ít output hôn

Ví dụ, duøng PAL thieát keá maïch ñoåi moät soá nhò phaân 4 bit sang soá HEX vaø xuaát maõ ASCII 7 bit cho soá hex

Input mã ASCII cho số mã hex W X Y Z

số hex A6 A5 A4 A3 A2 A1 A0

0 0 . . 1 1 . . 1

0 0 0 0 1

0 0 0 1 1

0 1 1 0 1

0 1 9 A

F

0 0 0 1 1

1 1 1 0 0

1 1 1 0 0

0 0 1 0 0

0 0 0 0 1

0 0 0 0 1

0 1 1 1 0

Chú ý:

Vì A5 = A4 vaø A6 = 4A neân chæ caàn duøng PAL taïo ra 5 haøm cuûa 4 bieán

Ñeå vieát ñöôïc baûng PAL phaûi ruùt goïn caùc haøm ra vaø keát quaû nhö sau

4 4

3 3

A =W+X.Y A =WX+WY

A =WX.Y A =W+X+Y

2 2

1

A =WX+XZ+XY A =X+WY.Z

A =WX.Y.Z+YZ+WY

0A =WZ+X.YZ+WXZ+WYZ

Sau ñoù tìm caùc PAL thích hôïp ñeå caøi ñaët caùc haøm treân. Choïn ñöôïc PAL12H6, coù moät output khoâng duøng. Coù theå vieát laïi chöông trình cho A2 nhö sau

PAL

W

XYZ

A0A1

A2A3

A4

A5

A6

B

Page 137: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 131

2A =WX+(XZ+XY)=WX+B vôùi B=XZ+XY

roài coù theå söû duïng ngoõ ra theâm ñeå taïo ra B vaø noái B vaøo moät trong caùc ngoõ vaøo PAL nhö ôû hình treân. Vôùi caùch naøy ta theå taïo ra 5 haøm vôùi moät PAL

Xem theâm caùc ví duï trong chöông 8 cuûa Digital desgn principle and practices cuûa John F. Wakerly

5.3.3. Thiết kế hệ tuần tự dùng PLA

Coù theå caøi ñaët caùc heä tuaàn töï duøng PLA vaø caùc FF theo caùch töông töï nhö duøng ROM vaø caùc FF. Tuy nhieân trong tröôøng hôïp caùc PLA, söï gaùn traïng thaùi laø quan troïng vì vieäc söû duïng caùc pheùp gaùn toát coù theå giaûm ñöôïc soá caùc soá haïng tích caàn coù vaø töø ñoù giaûm ñöôïc kích thöôc cuûa PLA

Ví dụ, caøi ñaët baûng traïng thaùi cuûa VD thieát keá duøng ROM nhöng baây giôø duøng 1 PLA 3 DFF.

T. thaùi h.taïi T. thaùi keá X=0 X=1

G.trò ra h.taïi Z X=0 X=1

A B C 1 0 B C

D E

E E

1 0

0 1

D E

H H

H M

0 1

1 0

H M

A A

A ---

0 1

1 ---

Caáu hình maïch thì gioáng nhö duøng ROM ngoaïi tröø thay theá ROM baèng moät PLA vôùi kích thöôùng thích hôïp.

Söû duïng pheùp gaùn nhò phaân tröïc tieáp daãn ñeán baûng chaân trò sau

X Q1 Q2 Q3 Z D1 (Q1+) D2 (Q2

+) D3 (Q3+)

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 0 1 0 1 x 0 0 1 1 0 1 x x

0 0 1 1 1 0 0 x 0 1 1 1 1 0 x x

0 1 0 0 0 0 0 x 1 0 0 0 1 0 x x

1 1 0 1 1 0 0 x 0 0 0 1 0 0 x x

Page 138: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 132

Coù theå chöùa baûng naøy trong moät PLA 4 input, 13 soá haïng tích vaø 4 output nhöng thaáy raèng noù seõ khoâng thuaän lôïi hôn vieäc duøng ROM ñaõ laøm ôû phaàn tröôùc.

Neáu söû duïng pheùp gaùn traïng thaùi, phöông trình ra vaø phöông trình vaøo caùc D-FF

21211 QQQQD +=

22 QD =

3212121323 QQ.Q.XQ.QXQQXQ.QD +++=

33 XQQXZ +=

Baûng PLA töông öùng vôùi caùc phöông trình naøy nhö sau.

X Q1 Q2 Q3 Z D1 (Q1+) D2 (Q2

+) D3 (Q3+)

- - - - 0 1 0 0 1

1 0 - - 1 0 0 - -

0 1 0 0 0 0 1 - -

- - - 1 - - 0 0 1

0 0 0 0 0 0 0 1 1

1 1 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0

0 0 0 1 1 1 1 0 0

Ñeå caøi ñaët baûng naøy caàn 1 PLA coù 4 input, 9 soá haïng tích vaø 4 output.

5.3.4. Thiết kế hệ tuần tự dùng PAL

Duøng caùc PAL toå hôïp, caùch thieát keá töông töï nhö vôùi PLA nhöng phaûi chuù yù ruùt goïn haøm ra

4.11. PLD tuần tự (sequential PLD = PLA(PAL)+các FF)

Phaàn lôùn caùc thieát keá soá caàn caùc FF, caùc PLD coù chöùa caùc FF nhö vaäy thöôøng ñöôïc goïi laø PLD coù thanh ghi (registered PLD) hay PLD tuaàn töï.

Moät ñoaïn cuûa PAL tuaàn töï.

D-FF ñöôïc laùi töø moät coång OR. Ngoõ ra FF ñöôïc ñöa hoài tieáp veà daõy AND laäp trình ñöôïc qua moät boä ñeäm. Nhö vaäy caùc ngoõ vaøo coång AND coù theå ñöôïc noái vaøo A, A ,…,Q hay Q . Caùc phöông trình traïng thaùi keá

A A B B Q Q

A

B

D Q Q

EN

Q

clock

Bộ đệm ra đảo 3

t.thái

Page 139: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 133

QBAQBADQ +==+

Ngoõ ra FF ñöôïc noái vaøo boä ñeäm ñaûo 3 traïng thaùi, cho pheùp khi EN=1

Ñaëc tính cuûa moät soá PAL tuaàn töï thoâng duïng. Moãi PAL chöùa 1 thanh ghi coù töø 4 ñeán 10 D-FF. 6 PAL ñaàu trong baûng töông töï vôùi 16R4 (coù 1 daõy coång AND vôùi 16 input vaø 4 D-FF)

Kieåu Soá ngoõ vaøo (tröïc tieáp+hoài tieáp + caùc IO)

Soá ngoõ ra (FF + IO)

Soá caùc coång AND treân coång OR

16R4 16R6 16R8 20R4 20R6 20R8 20X4 20X8

20X10

8+4+4 8+6+2 8+8+0

12+4+4 12+6+2 12+8+0 10+4+6 10+8+2

10+10+0

4+4 6+2 8+0 4+4 6+2 8+0 4+6 8+2

10+0

8 8 8 8 8 8

3/2* 3/2* -/2

Ghi chuù: * 3 vôùi caùc ngoõ ra toå hôïp, 2 cho caùc ngoõ vaøo D FF

3 PAL cuoái trong baûng chæ caùc “XOR PAL”. XOR PAL coù moät coång XOR laùi moãi ngoõ vaøo D FF nhö sau

Trong PAL naøy, moãi coång XOR ñöôïc laùi baèng hai coång OR, vaø moãi coång OR ñöôïc laùi baèng 2 coång AND, caùc ngoõ ra FF coù theå ñöôïc hoài tieáp veà caùc coång AND nhö trong caùc PAL coù thanh ghi khaùc.

Daïng toång quaùt cuûa phöông trình traïng thaùi keá cho moãi FF trong XOR PAL laø

)PP()PP(DQ 4321 +⊕+==+

Vôùi P1 P2 P3 P4 laø caùc soá haïng tích

Ñeå minh hoïa vieäc söû duïng caùc XOR PAL, thieát keá moät boä ñeám nhò phaân 4 bit (ñeám leân, ñeám xuoáng) vôùi 3 ngoõ vaøo ñieàu khieån U(up), D(down) vaø L (load). Khi U=1 boä ñeám taêng theâm 1, khi D = 1 boä ñeám giaûm 1, vaø khi L =1, boä ñeám naïp döõ lieäu song song töø caùc ngoõ vaøo döõ lieäu cuûa noù (DI)

Baûng caùc traïng thaùi keá cuûa boä ñeám cho U=1 vaø cho D=1, giaû söû raèng U=D=1 khoâng xaûy ra

D QQ

EN

Q

clock

Page 140: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 134

U=1 D=1 Q3 Q2 Q1 Q0 Q3

+ Q2+ Q1

+ Q0+ Q3

+ Q2+ Q1

+ Q0+

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0

0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0

0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1

1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1

1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

Tröôùc heát, suy ra caùc phöông trình traïng thaùi keá cho boä ñeám leân.

Trong moïi haøng Q0 khaùc Q0+ vì vaäy FF Q0 phaûi thay ñoåi traïng thaùi ôû moïi xung

nhòp khi U=1 vì leõ ñoù

Q0+ = Q0 ⊕ U

Nhaän thaáy Q1 thay ñoåi (Q1 ≠ Q1+) chæ neáu Q0 =1. vì theá

Q1+ = Q1 ⊕ UQ0

Q2 thay ñoåi trong caùc haøng 3, 7, 11 vaø 15 chæ khi Q1 = Q0 = 1 vì theá

Q2+ = Q2 ⊕ UQ1Q0

Q3 thay ñoåi traïng thaùi chæ trong nhöõng haøng maø Q2 =Q1=Q0=1, vì theá

Q3+= Q3 ⊕ UQ2Q1Q0

Töông töï, baèng caùch quan saùt baûng, coù theå suy ra caùc phöông trình cho boä ñeám xuoáng khi D=1

Q0+ = Q0 ⊕ D

Q1+ = Q1 ⊕ D 0Q

Q2+ = Q2 ⊕ D 10 Q.Q

Q3+ = Q3 ⊕ D 210 Q.Q.Q

Toång quaùt ñeå söû duïng XOR PAL, phaûi bieåu dieãn traïng thaùi keá cuûa Qi ôû daïng

Qi+ = Qi ⊕ Fi

Caùc Fi ñöôïc tìm baèng phöông phaùp quan saùt hoaëc ruùt goïn baèng baûng Karnaugh

Tieáp tuïc thieát keá boä ñeám leân xuoáng vôùi ngoõ vaøo ñieàu khieån U, D, L.

Page 141: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 135

Tröôùc heát xeùt tröôøng hôïp khi U=D=0. Khi L=1, boä ñeám ñöôïc naïp song song töø caùc ngoõ vaøo döõ lieäu cuûa noù (DI), vaø khi L=0 traïng thaùi boä ñeám giöõ khoâng ñoåi.

Döïa vaøo tính chaát haøm Boolean

f(x1, x2,…, xn) = x1f(1, x2, …,xn) + 1x f(0,x2,…,xn)

Nhö vaäy phöông trình traïng thaùi keá cho moãi FF laø

Qi+ = LDi +L’DI

Keát hôïp caùc phöông trình khi xeùt caû U, D, L. Giaû söû L=1 aûnh höôûng leân caû U=1 hay D=1 vaø U=D=1 khoâng bao giôø xaûy ra.

Neáu baét ñaàu baèng phöông trình

Q0+ = Q0 ⊕ U

thay Q0+ baèng LD0+L’Q0 vaø thay U baèng U+D, ñöôïc

Q0+ = (LD0+L’Q0)⊕ (U+D).

Phöông trình naøy cho keát quaû ñuùng khi L=0 vaø U hoaëc D laø 1. Ñeå ñaûm baûo L=1 aûnh höôûng öu tieân hôn ñeám leân ñeám xuoáng, ta phaûi nhaân U vaø D cho L’, caùc phöông trình sau coøn laïi cuõng laøm töông töï, ta coù

Q0+ = (LD0+L’Q0) ⊕ (UL’+DL’)

Q1+ = (LD1+L’Q1) ⊕ (UL’Q0 + DL’Q’0)

Q2+ = (LD2+L’Q2) ⊕ (UL’Q0Q1 + DL’Q’0Q’1 )

Q3+ = (LD3+L’Q3) ⊕ (UL’Q0Q1Q2 + DL’Q’0Q’1Q’2)

Khi L=D=0, caùc phöông trình naøy ruùt goïn tröôøng hôïp chæ ñeám leân, vaø khi L=U=0 caùc phöông trình naøy ruùt goïn veà tröôøng hôïp ñeám xuoáng

Caùc daïng phöông trình toång hôïp ôû treân thích hôïp ñeå caøi ñaët baèng XOR PAL

4.12. Các PLD tuần tự khác

Khi coâng ngheä IC ñaõ ñöôïc caûi tieán, nhieàu loaïi PLD khaùc ra ñôøi, caùc PLD môùi döïa treân nhöõng môû roäng cuûa khaùi nieäm PAL hoaëc döïa treân caùc daõy coång

22V10 laø 1 PLD raát linh hoaït maø coù theå duøng noù ñeå caøi ñaët caùc maïng toå hôïp vaø tuaàn töï. 22V10 coù 12 chaân daønh rieâng cho ngoõ vaøo vaø 10 chaân coù theå laäp trình hoaëc laøm ngoõ vaøo hoaëc ngoõ ra. Chöùa 10 D-FF, 10 coång OR, soá coång AND ñöa vaøo moãi coång OR töø 8 ñeán 16. Moãi coång OR laùi moät logic macrocell, moãi macrocell chöùa 1 D-FF, caùc FF coù cuøng clock, moät ngoõ vaøo reset baát ñoàng boä chung (AR= Asynchronuos Reset) vaø moät ngoõ vaøo ñaët tröôùc ñoàng boä chung (SP= synchronuos Preset)

Page 142: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 136

Sô ñoà khoái cuûa 22V10

Chi tieát cuûa moät macrocell xuaát cuûa 22V10.

S1 S0

SVCC

VCC F0

F1

Page 143: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 137

Caùc keát noái ñeán caùc chaân ra coù theå ñieàu khieån ñöôïc baèng caùch laäp trình macrocell naøy. Caùc ngoõ vaø ñieàu khieån MUX xuaát S1 S0 choïn moät trong caùc ngoõ vaøo döõ lieäu.

Ví dụ,

S1S0 =10 choïn ngoõ vaøo döõ lieäu 2. Khi caàu chì F1 hôû (S1 =1), FF bò boû qua vaø ngoõ ra töø coång OR. Ngoõ ra coång OR cuõng ñöôïc hoài tieáp veà ñeå coù theå duøng nhö moät ngoõ vaøo cuûa daõy coång AND

Neáu F1 coøn nguyeân (S1=0), thì ngoõ ra FF ñöôïc noái vaøo chaân ngoõ ra vaø noù cuõng ñöôïc hoài tieáp veà ñeå coù theå duøng noù laøm ngoõ vaøo coång AND. Khi caàu chì Fo hôû (S0=1), ngoõ ra khoâng bò ñaûo ñeå noù taùc ñoäng möùc cao.

Khi F0 coøn nguyeân (S0=0), ngoõ ra bò ñaûo neân noù taùc ñoäng möùc thaáp. Chaân ngoõ ra ñöôïc laùi baèng boä ñeäm ñaûo 3 traïng thaùi. Khi ngoõ ra boä ñeäm ôû traïng thaùi toång trôû cao, coång OR vaø FF khoâng noái vôùi chaân ngoõ ra (xuaát) vaø chaân naøy coù theå duøng laøm ngoõ vaøo

Ví dụ, Duøng 22V10 thieát keá boä ñieàu khieån ñeøn giao thoâng cho giao loä cuûa ñöôøng A vaø ñöôøng B. Moãi ñöôøng coù caùc caûm bieán ñeå phaùt hieän söï xuaát hieän xe coä ñeán gaàn hoaëc döøng ôû giao loä.

Sa = 1 nghóa laø xe ñang tieán ñeán ñöôøng A

Sb = 1 nghóa laø xe ñang tieán ñeán ñöôøng B

A laø ñöôøng chính vaø seõ coù ñeøn xanh cho ñeán khi coù moät xe chaïy ñeán B, roài ñeøn thay ñoåi vaø B coù ñeøn xanh. Vöøa heát 50giaây caùc ñeøn seõ thay ñoåi veà nhö cuõ tröø khi coù moät xe treân ñöôøng B vaø khoâng coù xe ôû A, tröôøng hôïp naøy chu kyø B ñöôïc môû roäng theâm 10s. Khi A xanh noù giöõ xanh toái thieåu 60 giaây vaø roài caùc ñeøn thay ñoåi chæ khi xe tieán ñeán B. Caùc noái keát beân ngoaøi cuûa boä ñieàu khieån

Giaûn ñoà traïng thaùi cho boä ñieàu khieån. Cho muïc ñích ñònh thì, maïng tuaàn töï ñöôïc laùi baèng 1 clock coù chu kyø 10giaây. Nhö vaäy söï thay ñoåi traïng thaùi coù theå xaûy ra haàu nhö ôû 10giaây. Ñeå ñôn giaûn hoùa giaûn ñoà. Ta duøng kyù hieäu sau: GaRb trong moät traïng thaùi coù nghóa laø Ga=Rb=1 vaø taát caû caùc bieán ra khaùc laø 0, Sa’Sb ôû cuøng moät cung nghóa laø Sa=0 vaø Sb=1 seõ gaây ra chuyeån traïng thaùi theo cung ñoù. Moät cung khoâng coù nhaõn haøm yù raèng chuyeån traïng thaùi seõ xaûy ra khi coù clock xaûy ra, ñoäc laäp vôùi caùc bieán vaøo. Nhö vaäy ñeøn A xanh seõ saùng trong 6 chu kyø clock vaø ñoåi traïng thaùi sang vaøng neáu coù 1 xe ñang ñôïi ôû ñöôøng B

PAL 22V10

Clock Sa Sb

Ga Ya Ra Gb Yb Rb

Page 144: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 138

Baûng traïng thaùi cuûa boä ñieàu khieån.

SaSb Bieán ra 00 01 10 11 Ga Ya Ra Gb Yb Rb

S0 S1 S2 S3 S4 S5

S1 S2 S3 S4 S5 S5

S1 S2 S3 S4 S5 S6

S1 S2 S3 S4 S5 S5

S1 S2 S3 S4 S5 S6

1 1 1 1 1 1

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

1 1 1 1 1 1

S6 S7 S8 S9

S10 S11 S12

S7 S8 S9

S10 S11 S12 S0

S7 S8 S9

S10 S11 S11 S0

S7 S8 S9

S10 S11 S12 S0

S7 S8 S9

S10 S11 S12 S0

0 0 0 0 0 0 0

1 0 0 0 0 0 0

0 1 1 1 1 1 1

0 1 1 1 1 1 0

0 0 0 0 0 0 1

1 0 0 0 0 0 0

Caøi ñaët baûng treân duøng 4 D-FF vôùi caùc ngoõ vaøo D1, D2, D3 , D4 vaø caùc ngoõ ra Q1, Q2, Q3, Q4. Baèng pheùp gaùn traïng thaùi nhò phaân tröïc tieáp, suy ra caùc phöông trình

D1=Q1Q2’+Q2Q3Q4

D2=Q1’ Q2’Q3Q4 + SaQ1Q3Q4 + Sb’Q1Q3Q4’ + Q1’Q2Q4 + Q1’Q2Q3’

D3= Q3Q4’ + SbQ3’ Q4 + Sa’Q3’ Q4 + Q2’Q3’ Q4 + Sa’SbQ1Q4

D4= Sa’SbQ1Q3 + Q2’ Q4’ + Q1’ Q4’ + SaSb’Q2Q3’ Q4

13 traïng thaùi coù 4 bit maõ hoùa traïng thaùi Q3Q2Q1Q0

Ga = Q1’Q3’ + Q1’Q2’ Ya = Q2Q3Q4’ Ra= Q1 + Q2Q3Q4

S0

GaRb

S1

GaRb

S2

GaRb

S3

GaRb

S4

GaRb

S5

GaRb

Sb’

S6

YaRb

Sb

S7

RaGb

S8

RaGb S9

RaGb

S10

RaGb

S11

RaGb

S6

YaRb (Sa+Sb’)

Sa’Sb

10s 10s 10s 10s 10s

Page 145: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 139

Gb = Q1Q2’ + Q2Q3Q4 Yb = Q1Q2 Rb=Q1’Q2’+Q1’Q4’+Q1'Q3’

Vì taát caû phöông trình naøy coù ít hôn 8 soá haïng AND, 22V10 laø phuø hôïp. Neáu 1 soá phöông trình coù quaù nhieàu soá haïng khoâng khôùp cho 22V10 thì seõ caàn thöû caùc pheùp gaùn traïng thaùi khaùc

Neáu caøi ñaët boä ñieàu khieån duøng JK FF vaø caùc coång, 4FF vaø 34 coång seõ caàn cho gaùn traïng thaùi nhò phaân tröïc tieáp.

Q3Q2Q1Q0 = traïng thaùi

6 bieán vaøo SaSb Q3Q2Q1Q0

Theo tính chaát haøm Boolean:

f(x1, x2, x3, …, xn) = 21 x.x f(0,0, x3, …,xn) + 1x x2f(0,1,x3,…,xn) +

x1 2x f(1,0,x3,…,xn)+ x1x2 f(1,1,x3,…,xn)

=> Ga = Sa’Sb’F00 + Sa’SbF01 + SaSb’F10 + SaSbF11

Caùc FF vaø caùc coång naøy caàn khoaûng 11 IC loaïi SSI, so vôùi giaûi phaùp 22V10 thì tieát kieäm naêng löôïng vaø tin caäy hôn

4.13. Dãy cổng lập trình được (PGA)

Caùc PLD coù khaû naêng duøng ñeå caøi ñaët moät heä tuaàn töï nhöng khoâng phaûi laø moät heä thoáng soá ñaày ñuû. Caùc PGA (programmable gate Array) linh ñoäng hôn vaø coù theå ñöôïc söû duïng ñeå caøi ñaët moät heä thoáng soá nhoû treân moät chip IC.

Moät PGA tieâu bieåu laø moät IC chöùa moät daõy caùc logic cell ñoàng daïng vôùi caùc lieân keát noái laäp trình ñöôïc. Ngöôøi söû duïng coù theå laäp tình caùc haøm ñöôïc caøi ñaët baèng moãi logic cell vaø caùc keát noái giöõa caùc cell

Configurable logic block khoái IO

Vuøng lieân keát noái

Page 146: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 140

Ví duï, Hình treân laø moät phaàn cuûa caáu truùc Xilinx XC2064 LCA (logic cell array) goàm moät daõy noäi 64 khoái logic coù theå ñaët caáu hình ñöôïc CLB (configurable logic block), xung quanh laø moät voøng 58 khoái giaoo tieáp nhaäp xuaát. Caùc lieân keát giöõa caùc khoái naøy coù theå laäp trình ñöôïc baèng caùch chöùa döû lieäu trong caùc oâ nhôù RAM noäi. Moãi CLB chöùa moät logic toå hôïp vaø 1 D-FF vaø coù theå laäp trình ñöôïc ñeå thöïc hieän nhieàu haøm logic

Caáu truùc cuûa moät CLB

Caùc khoái hình thang trong sô ñoà bieåu dieãn caùc boä doàn keânh (MUX) coù theå laäp trình ñöôïc ñeå choïn moät trong caùc ngoõ vaøo. Ví duï: ngoõ vaøo thaáp nhaát ôû khoái logic toå hôïp coù theå ñeán töø D hay Q vaø ngoõ ra Q coù theå ñeán töø F, G hay Q. Khoái logic toå hôïp chöùa caùc teá baøo nhôù RAM vaø coù theå ñöôïc laäp trình ñeå caøi ñaët moät haøm 4

Khối logic tổ

hợp

*

*

*

*

D

CKR

S

*

*

Q

Y(Q)

A preset B

C

D clear

K

J G

F

clock

Hàm 4

biến bất kỳ

Q

A B C D

F

G

Lựa chọn một hàm 4 biến

Hàm 3

biến bất kỳ

Q

A

B

C

D

F

Hàm 3

biến bất kỳ

Q

A

B

C

D

G

Lựa chọn hai hàm 3 biến

Page 147: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 141

bieán baát kyø hoaëc 2 haøm 3 bieán baát kyø (hình 1-29. Ví duï coù theå ñaët F=G=f1(A, B, C, Q) hay F=f2 (A, B,…) vaø G =f3(B, C, Q). Caùc ñöôøng ñöùt neùt chæ caùc keát noái caàn ñeå ñaët caáu hình logic cell laø moät JK-FF vôùi caùc ngoõ vaøo “preset” vaø “ clear”. Logic toå hôïp coù caùc ngoõ vaøo J,K vaø Q vaø caøi ñaët traïng thaùi keá cho FF, F=Q+ = JQ’ + K’Q. Ngoaøi ra caøi ñaët G=Q’ ñeå cung caáp moät ngoõ ra buø cho FF. Caùc tín hieäu Preset vaø Clear ñöôïc daãn tröïc tieáp tôùi S (asynchronuos set) vaø R (asynchronuos reset) cuûa D-FF

Page 148: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 142

Bài tập chương 4 4.1. Giả sử ban đầu Q = 0, đưa X, Y đến ngõ vào SET, RESET của 1 RS-FF dùng

NAND, xác định dạng sóng Q và Q 4.2. Giả sử ban đầu Q= 0, đảo dạng sóng ngõ vào X, Y ở bài 4.1, sử dụng RS-FF

dùng cổng NOR, xác định dạng sóng Q và Q .

4.3. Dạng sóng bài 4.1 được kết nối với mạch hình sau. Giả sử rằng ban đầu Q=0, xác định dạng sóng Q.

4.4. Một clocked FF cụ thể có tS = 20ns và tH = 5ns. Mất bao lâu để các ngõ vào điều khiển ổn định trước khi xảy ra sự chuyển đổi xung CK. .

4.5. Một Toggle FF là 1 FF có 1 ngõ vào đơn và hoạt động sao cho trạng thái ngõ ra thay đổi mỗi khi có xung đưa đến ngõ vào. clocked SR-FF có thể được nối để hoạt động trong chế độ này (hình) . Dạng sóng đưa đến ngõ vào CLK là sóng vuông 1KH. Xác định dạng sóng ngõ ra Q, giả sử ban đầu Q = 0

4.6.a. Hãy trình bày làm thế nào để J-K FF có thể hoạt động như 1 toggle FF. Đưa sóng vuông 10kHz đến ngõ vào và xác định dạng sóng ngõ ra.

b.Nối ngõ ra Q của FF phần a đến ngõ vào J-K FF thứ 2 (J2=K2=1). Xác định tần số dạng sóng tại ngõ ra Q của FF thứ 2.

4.7. Xung CK được đưa đến 2 FF khác nhau: (a) J-K FF kích bằng cạnh lên; (b) J-K FF kích bằng cạnh xuống. Hãy vẽ dạng sóng ngõ ra Q cho mỗi FF trên, giả sử ban đầu Q = 0.

X

Y

Z

ZX

Y

S

R

Q

Q

S

R

Q

Q

CLK

1 KHz

Page 149: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 143

4.8. Một D-FF được dùng để làm mạch tạo trễ sao cho thông tin xuất hiện ở ngõ

ra trễ một thời gian sau khi nó xuất hiện tại ngõ vào D. a/ Xác định dạng sóng Q ở hình sau và so sánh với dạng sóng ngõ vào.

b/ Làm thế nào để có thể delay thời gian 2 clock?

4.9. Một D-FF được nối như hình sau. Giả sử ban đầu Q = 0 , xác định dạng sóng Q. 4.10. Xác định dạng sóng Q cho FF ở hình sau. Giả sử ban đầu Q = 0 4.11. Ban đầu ngõ vào A, B, C trong mạch điện đều ở mức LOW. Giả sử ngõ ra Y

ở mức HIGH chỉ khi A, B, C ở mức HIGH trong 1 trình tự nhất định. a/ Xác định trình tự làm Y ở mức HIGH b/ Giải thích tại sao xung START là cần thiết. c/ biến đổi mạch này để dùng D-FF.

1 2 3 4 5 6 7 8 9 10 11

Clock

J input

K input

DataInput

1 0

1 0 Ck

D

CK

Q Data Input

Q

D

CK

Q

Q

1KHz

Pr J CK

K CLR

Q

Q

1

1CLR

1 0

10

CK

Pr 1 0

Page 150: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 144

4.12. Hãy vẽ mạch logic để truyền song song dữ liệu đồng bộ từ 1 thanh ghi 3 bit

sang thanh ghi khác dùng FF J- K. 4.13. làm lại bài 4.12 khi truyền song song bất đồng bộ. 4.14. Thiết kế mạch đếm lên MOD 6 dùng T-FF có xung tác động cạnh lên, Pr va` CLR tích cực mức cao 4.15. Thiết kế mạch đếm lên MOD 10 dùng D-FF có xung tác động cạnh lên, Pr va` CLR tích cực mức cao 4.16. Thực hiện mạch đếm MOD 60 từ bài 4.14 và 4.15 4.17. Hãy vẽ lưu đồ chuyển đổi trạng thái của mạch đếm xuống MOD 6 dùng xung CK tác động cạnh lên và so sánh với sơ đồ đếm xuống dùng xung CK tác động cạnh xuống. Chúng khác nhau như thế nào? 4.18. a/ Để xây dựng 1 mạch đếm nhị phân đếm từ 0 đến 1023 thì phải sử dụng bao nhiêu FF?

b/ xác định tần số tại ngõ ra của FF cuối cùng của mạch đếm này khi tần số xung clock ngõ vào là 2 Mhz. c/ Số MOD của mạch đếm là bao nhiêu?. d/ Nếu ban đầu mạch đếm đếm là 0 thì sau 2060 xung số đếm được là bao nhiêu?.

4.19. Một mạch đếm có tín hiệu clock là 256 KHz , tần số ngõ ra FF cuối cùng là 2KHz

a/ Hãy xác định số MOD. b/ Hãy xác định phạm vi đếm.

4.20. 1 mạch tách sóng quang được sử dụng để tạo 1 xung mỗi khi có 1 khách hàng đi vào. Các xung này được đưa đến bộ đếm 8 bit. Bộ đếm này dùng để đếm số lượng khách hàng đi vào trong cửa hàng. Sau khi cửa hàng đóng cửa, người chủ cửa hàng kiểm tra mạch đếm và thấy rằng nó chỉ một số đếm là 000010012 = 910. Anh ta biết rằng điều này không đúng vì có nhiều hơn 9 người trong cửa hàng của ông ta. Giả sử mạch đếm dang làm việc đúng. Lý do nào cho sự trái ngược này?. 4.21. Hãy vẽ lưu đồ chuyển đổi trạng thái của mạch đếm MOD 16. 4.22. Hãy xác định dạng sóng tại Q1, Q2, Q3 .

J

CLK

K

X

ClearC

Start

J

CLK

K

Y

Clear

A

B

1

tp=5ms

tp=10ms OS T

Q3

Q3 OST

Q1

Q1

tp=20ms

OST

Q2

Q2

0

tp=10ms

Page 151: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 4

GV: Nguyễn Trọng Hải Trang 145

4.23. Xét mạch sau `

Ban đầu tất cả các FF trong trạng thái 1. Hoạt động của mạch bắt đầu với xung Start tức thì được đưa đến các ngõ vào PRE của FF X và Y. Hãy xác định dạng sóng tại A,B,C,X,Y,Z và W trong 20 chu kỳ xung đồng hồ.

4.24. Mạch điện sau có thể sử dụng để phát 2 tín hiệu clock không trùng khớp tại cùng 1 tần số. Các tín hiệu clock này được sử dụng trong vài hệ thống vi xử lý đòi hỏi 4 sự chuyển đổi clock khác nhau để đồng bộ các hoạt động của chúng. Vẽ dạng sóng tại CP1 và CP2 khi tần số clock ngõ vào là 1Mhz.

4.25. Moät maïch ñoàng boä coù voøng ñeám sau:

a). Thieát keá boä ñeám treân duøng JK FF coù xung taùc ñoäng caïnh xuoáng. b). Giaû söû traïng thaùi hieän taïi cuûa maïch laø 001 tìm traïng thaùi keá cuûa maïch caâu a.

D

CLK

X

PRE

X

Start pule

1J

CLK

K

C

C

J

CLK

K

B

B

ZX

W

1Hz

1 1

1

1

C

D

CLK

Y

Y

PRE

0

B

Y

J

CLK

K

A

A

CP2

CP1

+5V

Clock J

CLK

K

Q

Q

000 111 010 101 011

Page 152: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 146

CHƯƠNG 5 CÁC HỌ VI MẠCH SỐ 5.1. TỔNG QUAN

Xét về cơ bản có 2 lọai thiết bị bán dẫn là lưỡng cực và đơn cực. Dựa trên các thiết bị này, các mạch tích hợp được hình thành.

Các họ mạch logic lưỡng cực Các yếu tố chính của IC lưỡng cực là điện trở, diode và BJT, hai họat động trong IC lưỡng cực là: tắt và bão hòa, các họ logic lưỡng cực:

• Mạch logic RTL

• Mạch logic DCTL

• Mạch logic HTL

• Mạch logic TTL

• Mạch logic Schottky TTL

• Mạch logic ECL

Các họ mạch logic đơn cực Các thiết bị MOS là các thiết bị đơn cực và chỉ có các MOSFET được vận hành trong các mạch logic MOS, các mạch logic MOS là

• PMOS

• NMOS

• CMOS

5.2. CÁC ĐẶC TRƯNG CỦA CÁC VI MẠCH SỐ Phân lọai các IC số

Lọai IC Các cổng căn bản Số các linh kiện

Tổ hợp quy mô nhỏ SSI Nhỏ hơn 12 Lên đến 99

Tổ hợp quy mô trung bình MSI 12-99 100-999

Tổ hợp quy mô lớn LSI 100-999 1000-9999

Tổ hợp quy mô rất lớn VLSI Lớn hơn 1000 Lớn hơn 10000

Các đặc trưng • Tốc độ họat động, lệ thuộc vào thời gian trễ truyền đạt

tpHLtpLH

Page 153: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 147

• Tổn hao công suất, xác định bởi tích số nguồn cung cấp Vcc và dòng Icc (giá trị trung bình của dòng Icc mức 0 và mức 1), đơn vị mW

• Chỉ số giá trị, xác định bởi tích số tốc độ và công suất

• Chỉ số giá trị (pJ)= thời gian trì hõan truyền đạt (ns)x công suất (mW)

• Chỉ số giá trị càng nhỏ càng tốt

• Hệ số tải, là số cổng có thể được vận hành bởi một cổng, hệ số tải càng cao càng thuận lợi

• Các tham số dòng và áp

o Điện áp đầu vào ở mức cao VIH (điện áp tối thiểu mà cổng có thể nhận biết mức 1)

o Điện áp đầu vào ở mức thấp VIL (điện áp tối đa mà cổng có thể nhận biết mức 0)

o Điện áp đầu ra ở mức cao VOH(điện áp tối thiểu tại đầu ra tương ứng mức 1)

o Điện áp đầu ra ở mức thấp VOL (điện áp tối đa tại đầu ra tương ứng mức 0)

o Cường độ dòng điện đầu vào mức cao IIH (dòng tối thiểu được cung cấp tương ứng với mức 1)

o Cường độ dòng điện đầu vào mức thấp IIL (dòng tối đa được cung cấp tương ứng với mức 0)

o Cường độ dòng điện đầu ra mức cao IOH (dòng cực đại mà ngõ ra cung cấp tương ứng với mức 1)

o Cường độ dòng điện đầu ra mức thấp IOH (dòng cực tiểu mà ngõ ra cung cấp tương ứng với mức 0)

• Nhiễu

• Miền nhiệt độ họat động, từ 0-700C cho các ứng dụng tiêu dùng và công nghiệp, từ 550C – 1250C cho các mục đích quân sự

• Yêu cầu về nguồn

• Tính đa dạng, khả năng tích hợp, giá thành, chế tạo, dễ phối hợp với vi mạch công nghệ khác

VOH

VIH

VIL

VOH

0

Điện áp

Lề nhiễu ở trạng thái 1

Lề nhiễu ở trạng thái 0

Page 154: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 148

5.3. HỌ RTL (RESISTOR-TRANSISTOR LOGIC) Bao gồm các điện trở và transistor, đây là họ logic được tích hợp sớm nhất

Ví dụ, một cổng NOR RTL

Các mạch RTL có đặc tính chung là cần dòng IB cho các BJT nên còn được gọi là mạch thu dòng (current sinking), vì vậy khi kết nối với các mạch khác cần phải lưu ý để thỏa mãn điều kiện này, nếu không mạch sẽ không làm việc

Lề nhiễu ở trạng thái 0 là 0.5-0.2=0.3V

Lề nhiễu ở trạng thái 1 phụ thuộc vào tải

5.4. HỌ DTL (DIODE-TRANSISTOR LOGIC) Bao gồm diode ở ngõ vào và transistor ở ngõ ra

Ví dụ, cổng NAND DTL

Ngõ ra Y kéo lên nguồn Vcc được gọi là ngõ ra kéo lên thụ động (Passive pull up)

5.5. HỌ TTL (TRANSISTOR-TRANSISTOR LOGIC) Loại DTL sớm được thay thế bởi mạch TTL tức Transistor ở ngõ vào và Transistor ở ngõ ra

Q1Rb1

B

Vcc

Q2

Rc

A Rb2

Y

R1

D2

Rc

Vcc

Q

RbDBB

D1DA

AY

AND NOT

Page 155: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 149

Ví dụ, cổng NAND TTL

Lưu ý: khi các ngõ vào A,B để hở (thả nổi ngõ vào) thì không có dòng chảy ra ở A, B nên ngõ vào để hở giống như nối lên cao (logic 1)

Đầu ra TTL hoạt động như bộ thu nhận dòng ở trạng thái thấp (Q4) và cung cấp dòng ở trạng thái cao (Q3)

Ngõ ra Y kéo lên Transistor nên được gọi là ngõ ra kéo lên tích cực (Active pull up) hay còn gọi là ngõ ra cột chạm (Totel pole). Với Q3 sẽ không có dòng nào truyền qua Rc khi ngõ ra ở mức thấp nên sẽ giảm bớt dòng tiêu hao trong mạch. Trong khi kiểu kéo lên thụ động sẽ làm cho Q4 dẫn một dòng khá lớn khi ngõ ra ở mức thấp

Ưu điểm thứ hai của cấu hình Totem pole là khi Y ở trạng thái cao, Q3 có trở kháng đầu ra thấp nên rất thuận tiện nếu tải có tính dung C

Nhược điểm của cấu hình totem pole thể hiện trong giải đoạn chuyển tiếp từ thấp lên cao. Vì Q4 tắt chậm nên khi Q4 chưa tắt mà Q3 đã dẫn, thời gian này (vài ns) cả 2 transostor đều dẫn điện nên hút một dòng tương đối lớn.

5.6. CÁC ĐẶC ĐIỂM CỦA HỌ TTL CHUẨN Loạt IC TTL chuẩn đầu tiên gọi là seri 54/74, tùy theo hãng chế tạo sẽ có thêm các tiền tố. VD, Texas Instruments có tiền tố SN, National Semiconductor dùng DM, Signetic là S

Ví dụ, cổng NOR sẽ có các mã số khác nhau DM7402, SN7402…

Khoảng nhiệt độ và điện thế nguồn

Seri 74 vận hành trong khoảng điện thế 4.75 đến 5.25 và nhiệt độ 00C đến 700C

Seri 54 chấp nhận điện thế nguồn trong khoảng 4.5 đến 5.5 và nhiệt độ -550C đến 1250C

Mức điện thế của seri 74 Tối đa Chuẩn Tối thiểu

VOL 0.2 0.4 VOH 2.4 3.4 VIL 0.8 VIH 2.0

Vcc

R1

Q2

Q4

B A

Y

R3

Q1

DA

R2 Rc

Q3

R1

Q2

B

A

Q1

Page 156: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 150

Công suất tiêu hao bình quân một cổng khoảng 10mW

Thời gian trễ tiêu biểu tpLH=11ns và tpHL=7ns, trung bình 9ns

Đầu ra TTL chuẩn có thể kích thích 10 đầu vào TTL chuẩn

5.7. HỌ TTL CẢI TIẾN

74 74S 74LS 74AS 74ALS 74F Định mức hiệu suất Trễ do truyền (ns) 9 3 9.5 1.7 4 3 Công suất (Mw) 10 20 2 8 1.2 6 Chỉ số giá trị (pJ) 90 60 19 13.6 4.8 18 Hệ số tải 10 20 20 40 20 33 Các thông số điện thế VOH(min) 2.4 2.7 2.7 2.5 2.5 2.5 VOL(min) 0.4 0.5 0.5 0.5 0.4 0.5 VIH(min) 2.0 2.0 2.0 2.0 2.0 2.0 VIL(min) 0.8 0.8 0.8 0.8 0.8 0.8 Các định mức dòng ngõ ra IOH (mA) -0.4 -1 -0.4 -2 -0.4 -1 IOL (mA) 16 20 8 20 8 20 Các định mức dòng ngõ vào IIH (μA ) 40 50 20 20 20 20 IIL (mA) -1.6 -2 -0.4 -0.5 -0.1 -0.6

Ví dụ, Xác định giới hạn nhiễu DC cho một IC 74LS so sánh với IC 74

Ví dụ, Một đầu ra 74ALS kích thích 3 đầu vào 74S và một đầu vào 74 được không

5.8. TTL VỚI NGÕ RA CỰC THU HỞ (OPEN COLLECTOR OUTPUT) Sơ đồ điển hình của NAND cực thu hở

Lưu ý: Mạch có cực thu để hở có thể được sử dụng như mạch Logic thông thường bằng cách mắc thêm R thích hợp với tình trạng của tải.

Y

B

R3

R1

R2

VCC

A XA B

Page 157: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 151

5.9. HỌ TTL BA TRẠNG THÁI (TRISTATE) Ngoài 2 trạng thái cơ bản 1 và 0, các mạch logic còn có thêm trạng thái tổng trở cao Hi-Z

Ví dụ xét cổng NOT 3 trạng thái sau

5.10. MẠCH LOGIC MOS Chuyển mạch MOSFET cơ bản

Mạch số dùng MOSFET được phân thành 3 nhóm: P-MOS, N-MOS và CMOS

Đặc điểm của logic MOS o So với họ lưỡng cực thì N-MOS và P-MOS có tốc độ hoạt động chậm hơn, tiêu

hao năng lượng ít hơn, giới hạn nhiễu hẹp hơn, khoảng điện thế nguồn nuôi lớn hơn, hệ số tải lớn hơn và đòi hỏi ít chỗ trên chip hơn

o Mức logic dành cho mạch MOS là V(0) ≈ 0V

V(1) ≈VDD

5.11. HỌ CMOS Công nghệ CMOS tung ra các sản phẩm có đặc điểm hiệu suất ngày càng tốt hơn, cung cấp không chỉ tất cả chức năng logic có ở TTL, mà còn nhiều chức năng đặc biệt không có ở TTL

CMOS Thông số 4000B 74HC 74HCT 74AC 74ACT 74AHC 74AHCTVIH(min) 3.5 3.5 2.0 3.5 2.0 3.85 2.0 VIL(max) 1.5 1.0 0.8 1.5 0.8 1.65 0.8 VOH(min) 4.95 4.9 4.9 4.9 4.9 4.4 3.15 VOL(max) 0.05 0.1 0.1 0.1 0.1 0.44 0.1

VNH 1.45 1.4 2.9 1.4 2.9 0.55 1.15 VNL 1.45 0.9 0.7 1.4 0.7 1.21 0.7

Lưu ý: không bao giờ được phép thả nổi các đầu vào CMOS không dùng đến, tất cả đầu vào CMOS phải được nối hoặc với mức điện thế cố định (0 hoặc VDD) hoặc với đầu vào khác (Lý do đầu vào CMOS thả nổi rất nhạy với tạp âm nhiễu và tĩnh điện vốn có thể dễ dàng phân cực MOSFET ở trạng thái dẫn điện)

XA

Cho phép (E)

X= A A

E=1

XA

E=0

+5V

G

D

S

D

S

GVGS=0

D

S

G VGS=5V

Page 158: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 5

GV: Nguyễn Trọng Hải Trang 152

5.12. MỘT SỐ CỔNG Tất cả các cổng đều thuộc loại tích hợp SSI

Cổng Ký hiệu Loại ngõ ra

NOT 7404 Active Pull up NOT 7405 Open collector NOT 7414 Schmitt trigger NAND 2 ngõ vào 7400 Active Pull up NAND 2 ngõ vào 7401 Open collector NAND 2 ngõ vào 74132 Schmitt trigger NAND 3 ngõ vào 7410 Active Pull up NAND 3 ngõ vào 7412 Open collector NAND 4 ngõ vào 7420 Active Pull up NAND 4 ngõ vào 7422 Open collector NAND 8 ngõ vào 7430 Active Pull up NAND 13 ngõ vào 74133 Active Pull up OR 2 ngõ vào 7432 Active Pull up NOR 2 ngõ vào 7402 Active Pull up NOR 3 ngõ vào 7427 Active Pull up NOR 4 ngõ vào 7425 Active Pull up AND 2 ngõ vào 7408 Active Pull up AND 2 ngõ vào 7409 Open collector AND 3 ngõ vào 7411 Active Pull up AND 3 ngõ vào 7415 Open collector XOR 7486

Page 159: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 153

CHƯƠNG 6. GIAO TIẾP TƯƠNG TỰ - SỐ 6.1. BIẾN ĐỔI ADC 6.2.1. Khái niệm

Boä bieán ñoåi töông töï sang soá (ADC) ñoùng vai troø quan troïng trong heä thoáng xöû lí thoâng tin khi maø caùc luoàng tín hieäu ñöa vaøo heä vi xöû lí laø tín hieäu daïng töông töï .

Caùc boä chuyeån ñoåi thöïc hieän hai chöùc naêng cô baûn laø löôïng töû hoùa vaø maõ hoùa. Löôïng töû hoùa laø gaùn nhöõng giaù trò cuûa moät tín hieäu töông töï vaøo vuøng caùc giaù trò rôøi raïc sinh ra trong quaù trình maõ hoùa. Ñoái vôùi ADC ta cuõng duøng caùc loaïi maõ soá nhö nhò phaân, BCD, buø moät, buø hai.

Quaù trình laáy maãu (Sampling).

Böôùc ñaàu tieân trong chuyeån ñoåi töông töï – soá laø rôøi raïc hoaù theo thôøi gian tín hieäu ñaàu vaøo ban ñaàu. Vieäc laáy maãu nhö vaäy ñöôïc boä phaän laáy maãu vaø giöõ – Sample & Hold Circuit (S&H) thöïc hieän.

Böôùc tieáp theo, boä chuyeån ñoåi töông töï – soá A/D chuyeån ñoåi caùc maãu nghieäm lieân tuïc theo giaù trò vaø ñaõ ñöôc rôøi raïc hoaù theo thôøi gian ñoù thaønh tín hieäu löôïng töû hoaù theo giaù trò vaø bieåu dieãn döôùi daïng soá nhò phaân.

Phaûi choïn taàn soá laáy maãu sao cho caùc trò lấy maãu coù theå ñaëc tröng cho tín hieäu ban ñaàu maø khoâng bò toån thaát thoâng tin (fsample≥ 2 fmax).

Maïch laáy maãu vaø döøng S&H.

Trong kyõ thuaät chuyeån ñoåi töông töï – soá, tín hieäu töông töï bieán thieân lieân tuïc theo thôøi gian u(t) ñöôïc laáy maãu ôû nhöõng thôøi ñieåm nhaát ñònh, vaø giaù trò tín hieäu

Page 160: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 154

nhaän ñöôïc seõ ñöôïc löu giöõ trong moät khoaûng thôøi gian ñònh tröôùc. Trong nhieàu boä chuyeån ñoåi A/D, tín hieäu phaûi ñöôïc giöõ khoâng ñoåi trong suoát thôøi gian chuyeån ñoåi. Ñeå thöïc hieän vieäc ñoù, duøng maïch Track-and-Hold – T&H.

Caáu truùc cô baûn cuûa maïch T&H

Sau moãi laàn môû chuyeån maïch, tuï ñieän naïp ñeán giaù trò ñieän aùp ñaàu vaøo vaou (t) vaø löu giöõ giaù trò töùc thôøi cuûa ñieän aùp ñaàu vaøo tröôùc thôøi ñieåm môû chuyeån maïch. Caû hai boä khuyeách ñaïi thuaät toaùn laøm boä ñeäm buffer cho ñaàu vaøo cuõng nhö ñaàu ra.

Moät khaû naêng khaùc thöïc hieän maïch T&H.

Moät transistor tröôøng FET (Isolated – Gate – FET) ñöôïc maéc giöõa KÑTT ñaûo pha vaø KÑTT tích phaân. Khi sampu = 0, transistor FET seõ daãn vaø ñieän aùp ñaàu ra rau

töông öùng ñieän aùp ñaàu vaøo aâm vaou , giaû thieát haèng soá thôøi gian tích phaân cuûa KÑTT tích phaân (ñöôïc xaùc ñònh bôûi doøng ñieän ñaàu ra cöïc ñaïi cuûa KÑTT) laø ñuû nhoû. Vaøo thôøi ñieåm t = 0t , transistor tröôøng khoaù, nhö vaäy vieäc naïp tuï (ñieän aùp tuï ñieän) khoâng ñoåi vaø ñieän aùp ñaàu ra rau ñöôïc giöõ laïi ôû möùc giaù trò rau (t) = rau ( 0t ), cho ñeán khi transistor tröôøng laïi ñöôïc ñieàu khieån môû maïch. Khi FET ñoùng, caùc diode seõ daãn vaø nhôø ñoù maø traùnh ñöôïc hieän töôïng KÑTT bò quaù ñieàu khieån.

Chuyeån ñoåi song song (Flash Converter, giaûi ñieàu nhieàu laàn). Ñeå coù theå tieán haønh chuyeån ñoåi cöïc nhanh, ngöôøi ta söû duïng caùc chuyeån ñoåi song song, coøn ñöôïc goïi laø Flash Converter hay boä giaûi ñieàu nhieàu laàn. Trong kieåu chuyeån ñoåi naøy, ñieän aùp caàn chuyeån ñoåi seõ ñöôïc ñoàng thôøi so saùnh caân baèng vôùi ( )12 −N ñieän aùp quy chieáu

Page 161: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 155

Boä chuyeån ñoåi A/D 3 bit vôùi caùc boä so song song 82 refN

refLSB UUU ==

Hình N3.4.15 – .

Phaàn chuû yeáu cuûa chuyeån ñoåi song song laø ( )12 −N boä so saùnh, hoaït ñoäng chöùc naêng maïch so saùnh vôùi ñieän aùp ra Bra Uu += töông öùng tín hieäu logic K=1, nhöng neáu Bra Uu −= thì töông öùng K=0 nhö sau.

.

Vieäc chuyeån ñoåi ñöôïc tieán haønh chæ moät böôùc, cho pheùp toác ñoä chuyeån ñoåi ñaït möùc cao nhaát coù theå, nhöng giaù thaønh cao töông öùng, vì ñoàng thôøi phaûi duøng soá löôïng lôùn caùc boä so saùnh ( )12 −N . Tín hieäu cuûa moät trong baûy boä so cuûa chuyeån ñoåi song song 3 bit ñöôïc giôùi thieäu trong baûng N3.4-3.

Xaáp xæ hoaù luõy tieán lieân tuïc (phöông phaùp caân, chuyeån ñoåi theo baäc). Phöông phaùp naøy döïa treân cô sôû nguyeân lyù caân baèng. Trong sô ñoà boä chuyeån ñoåi, hoaït ñoäng theo nguyeân lyù xaáp xæ hoaù luõy tieán, coøn goïi laø chuyeån ñoåi theo baäc, ngoaøi modul ñieàu khieån quaù trình vaø thanh ghi coøn coù boä so saùnh vaø moät chuyeån ñoåi soá – töông töï D/A

Trong caùc böôùc luõy tieán, boä so seõ thöû xem ñieän aùp caàn chuyeån ñoåi lôùn hôn hay nhoû hôn ñieän aùp u(Z) do boä chuyeån ñoåi ngöôïc D/A taïo ra. Tieáp theo, bit baäc cao nhaát (MSB) seõ ñöôïc ñaët ñònh, ñöôïc chuyeån ñoåi D/A bieán ñoåi ngöôïc trôû laïi thaønh ñieän aùp töông töï u(Z) vaø so saùnh vôùi ñieän aùp ñaàu vaøo vaou . Tuøy theo giaù trò u(Z) lôùn hay nhoû hôn vaou maø ñieän aùp quy chieáu seõ ñöôïc coäng vaøo hay tröø ñi töø giaù trò ñoù, vaø theo ñoù maø soá nhò nguyeân töông öùng cuûa tín hieäu soá nhò phaân ñaàu ra seõ laø 0 hay 1. Trong moãi chu trình tieáp theo, seõ laøm tieáp chöõ soá nhò nguyeân cho baäc

Page 162: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 156

döôùi vaø quaù trình so saùnh seõ ñöôïc laëp laïi. Ñoái vôùi moät chuyeån ñoåi N bit thì caàn N böôùc so saùnh vaø chu trình laëp laïi tuaàn hoaøn.

Chuyeån ñoåi A/D 4 bit theo nguyeân lyù xaáp xæ hoaù luõy tieán.

Tín hieäu cuûa boä chuyeån ñoåi song song 3 bit.

Ñieän aùp vaøo Tín hieäu so saùnh 1234567 KKKKKKK

Maõ nhò phaân 012 ZZZ

Ñieän aùp töông töï vaou

LSBvao Uu 210 <≤

LSBvaoLSB UuU 23

21 <≤

LSBvaoLSB UuU 25

23 <≤

LSBvaoLSB UuU 27

25 <≤

LSBvaoLSB UuU 29

27 <≤

LSBvaoLSB UuU 211

29 <≤

LSBvaoLSB UuU 213

211 <≤

vaoLSB uU ≤213

0 0 0 0 0 0 0

0 0 0 0 0 0 1

0 0 0 0 0 1 1

0 0 0 0 1 1 1

0 0 0 1 1 1 1

0 0 1 1 1 1 1

0 1 1 1 1 1 1

1 1 1 1 1 1 1

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0 1 1 1

0

8/refU

2 8/refU

3 8/refU

4 8/refU

5 8/refU

6 8/refU

7 8/refU

Boä rôøi raïc hoaù nhieàu taàng theo baäc (phöông phaùp phoái hôïp song song vaø caân baèng).

Boä rôøi raïc hoaù nhieàu taàng giaûi quyeát thoaû hieäp giöõa toác ñoä chuyeån ñoåi vaø giaù thaønh. Vì ñoái vôùi caùc chuyeån ñoåi thuaàn tuyù theo phöông phaùp song song (rôøi raïc hoaù nhieàu taàng) thì caàn raát nhieàu boä so saùnh, ví duï: moät chuyeån ñoåi A/D 8 bit thì caàn tôùi 255 boä so, ngöôøi ta phaân baäc boä rôøi raïc hoaù thaønh taàng. Vieäc ñoù cho pheùp giaûm soá löôïng boä so saùnh, nhöng ñoàng thôøi toác ñoä chuyeån ñoåi chaäm hôn.

Page 163: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 157

Sô ñoà khoái chuyeån ñoåi 8 bit baèng hai chuyeån ñoåi song song 4 bit maéc theo baäc.

Chuyeån ñoåi A/D thöù nhaát nhaän vieäc löôïng töû hoaù thoâ, löôïng töû hoaù 4 bit baäc cao. Keát quaû chuyeån ñoåi naøy seõ ñöôïc boä chuyeån ñoåi D/A bieán ñoåi ngöôïc thaønh ñieän aùp töông töï vaø tröø ñi töø ñieän aùp ñaàu vaøo. Tín hieäu sai leäch (vi sai) seõ ñöôïc boä chuyeån ñoåi A/D thöù hai löôïng töû hoaù (heä soá 16 laàn tinh hôn). Keát quaû chuyeån ñoåi naøy cho 4 bit baäc thaáp hôn. Vieäc haïn cheá ñöôïc soá löôïng boä so saùnh(trong ví duï tröôùc thì giaûm ñöôïc töø 255 xuoáng 30), laøm haï giaù thaønh chuyeån ñoåi noùi chung.

Chuyeån ñoåi theo phöông phaùp phaân taàng cascade. Theo phöông phaùp phaân taàng, ngöôøi ta duøng moät boä chuyeån ñoåi song song N bit (Flash Converter) ñeå chuyeån ñoåi 2N bit. ÔÛ ñaây caàn hai chu trình chuyeån ñoåi. So vôùi boä chuyeån ñoåi ôû treân thì ôû ñaây tieát kieäm ñöôïc moät boä chuyeån ñoåi. Tín hieäu töông töï ôû ñaàu vaøo vaou trong chu trình nhòp ñoàng boä ñaàu tieân ( 1S ñoùng, 2S môû) ñöôïc bieán ñoåi bôûi boä chuyeån ñoåi N bit. Keát quaû, cho N bit baäc cao nhaát, ñöôïc boä chuyeån ñoåi ngöôïc D/A bieán ñoåi thaùnh giaù trò töông töï töông öùng, ñem tröø ñi ñieän aùp ñaàu vaøo vaou ban ñaàu. Ñieän aùp vi sai ñöôïc khuyeách ñaïi leân N2 laàn, vaø ñöôïc ñöa trôû laïi boä chuyeån ñoåi song song N bit ( 1S môû, 2S ñoùng). Ñem coäng keát quaû cuûa chuyeån ñoåi 1 vaø 2, roát cuoäc ta coù keát quaû cuûa chuyeån ñoåi 2N bit “giaû laäp – pseudo”.

Chuyeån ñoåi A/D theo phöông phaùp phaân taàng cascade.

Chuyeån ñoåi theo phöông phaùp phaân taàng laëp laïi.

Trong chuyeån ñoåi phaân taàng laëp laïi (Recursive – Subranging – Analog – Digital – Converter RSR-A/DC), seõ tieán haønh bieán ñoåi töông töï – soá moät töø maõ (n.N) bit baèng chuyeån ñoåi song song N bit vôùi n böôùc tuaàn töï. Veà nguyeân lyù hoaït ñoäng, caùc chuyeån ñoåi naøy döïa treân nguyeân lyù tieäm caän töøng böôùc, vôi khaùc bieät laø thay vì

Page 164: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 158

söû duïng caùc boä so saùnh töông töï laøm chuyeån ñoåi 1 bit, ôû ñaây söû duïng boä chuyeån ñoåi song song N bit. Noùi chung, cuõng caàn phaûi ñaûm baûo ñoä chính xaùc khueách ñaïi ñoái vôùi toaøn thang ño (n.N) bit. Cuõng nhö trong phöông phaùp phaân taàng ñôn giaûn, söû duïng moät boä chuyeån ñoåi soá – töông töï D/A ñeå bieán ñoåi ngöôïc giaù trò keát quaû thaønh giaù trò töông töï töông öùng ñeå tröø ñi töø giaù trò ñaàu vaøo vaou . Nhö vaäy, caàn duøng moät chuyeån ñoåi D/A (n.N) bit. So vôùi phöông phaùp tieäm caän töøng böôùc ñôn thuaàn, coù söï caûi thieän do chuyeån ñoåi (n.N) bit maø chæ caàn n thay vì (n.N) chu trình xaáp xæ hoaù. Gioáng nhö trong caùc phöông phaùp phaân taàng ñaõ neâu, cuõng duøng bit thöù N ñeå hieäu chính sai soá, ñieàu ñoù caàn theâm moät chu trình nhòp phuï.

Boä chuyeån ñoåi A/DC 12 bit theo PP phaân taàng laëp laïi

a)- Sô ñoà nguyeân lyù; b)- Xaùc ñònh giaù trò soá baèng haïn cheá luõy tieán (k vaø i - soá töï nhieân).

Chuyeån ñoåi baäc Incremental (phöông phaùp ñeám). Trong chuyeån ñoåi A/D döïa treân cô sôû phöông phaùp ñeám, ñieän aùp so caân baèng u(Z) ñöôïc moät boä chuyeån ñoåi D/A taïo ra. Boä chuyeån ñoåi D/A ñoù ñöôïc moät boä ñeám thoâng thöôøng maéc phía ñaàu vaøo ñieàu khieån.

Page 165: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 159

Chuyeån ñoåi A/D theo nguyeân lyù chuyeån ñoåi baäc Incremental.

Ngay khi u(Z) vöôït quaù ñieän aùp vaou caàn chuyeån ñoåi, thì vieäc chuyeån ñoåi bò ngöng laïi. Töø traïng thaùi boä ñeám coù theå tröïc tieáp tính ra ñöôïc giaù trò soá cuûa ñieän aùp ñöôïc chuyeån ñoåi. Öu ñieåm cuûa phöông phaùp naøy laø giaûm ñöôïc chi phí caáu taïo thieát bò (chæ caàn moät boä so), trong khi coù nhöôïc ñieåm laø giaûm toác ñoä chuyeån ñoåi. Soá chu trình caàn thieát trong chuyeån ñoåi phuï thuoäc vaøo ñoä lôùn cuûa ñieän aùp vaøo

vaou . Ñeå coù ñöôïc keát quaû giaù trò côõ N bit seõ caàn toái ña N2 böôùc.

Chuyeån ñoåi baùm saùt (phöông phaùp ñeám). Ngöôïc vôùi chuyeån ñoåi baäc Incremental neâu treân, chuyeån ñoåi baùm saùt ñeám tôùi – lui. Caáu taïo nguyeân lyù cuûa chuyeån ñoåi baùm saùt (hình N3.4-22) veà cô baûn khaùc vôùi chuyeån ñoåi baäc Incremental laø thay vì boä ñeám tôùi thuaàn tuùy, ôû ñaây söû duïng boä ñeám thuaän - nghòch phoái hôïp. Nhö vaäy, tín hieäu ra cuûa D/AC luoân baùm saùt theo tín hieäu vaøo. Trong ñoù, söï bieán ñoäng tín hieäu vaøo trong thôøi gian moät chu kyø nhòp ñoàng boä khoâng ñöôïc lôùn hôn giaù trò

LSBU . Khi bieán ñoäng tín hieäu nhanh thì thôøi gian ñeå ñaït tôùi söï caân baèng tieáp theo coù theå laø raát laâu, tröôøng hôïp xaáu coù theå laâu tôùi côõ N2 chu kyø nhòp ñoàng boä.

6.2.2. Một số loại IC ADC

• ADC 0801/ ADC0802/ ADC0803/ ADC0804/ ADC0805 (IC CMOS 20 chaân), ñaây laø caùc boä bieán ñoåi A/D 8 bit vôùi 1 keânh töông töï, söû duïng phöông phaùp lieân tieáp xaáp xæ. Caùc boä bieán ñoåi naøy ñöôïc thieát keá ñeå coù theå giao tieáp vôùi caùc BUS nhôø vaøo vieäc ñieàu khieån bus 3 traïng thaùi. Khi giao tieáp vôùi boä vi xöû lyù, chuùng seõ ñoùng vai troø nhö nhöõng boä nhôù ñöôïc ñònh vò hay noùi caùch khaùc chuùng laø caùc port I/O. Ñieän aùp tham chieáu chuaån ôû ñaàu vaøo coù theå ñöôïc ñieàu chænh cho pheùp maõ hoùa caùc giaù trò ñieän aùp analog nhoû hôn traûi ñeàu ñoä phaân giaûi cuûa 8 bit.

• Ñaëc ñieåm chung: Deã daøng giao tieáp vôùi boä vi xöû lyù hoaëc hoaït ñoäng ñoäc laäp Möùc logic ñaàu vaøo / ra töông thích vôùi caû 2 loaïi MOS vaø TTL Boä phaùt xung nhòp cuøng naèm treân chip Daûi tín hieäu analog loái vaøo 0 … 5V khi ñieän aùp nguoàn nuoâi laø 5V Khoâng caàn hieäu chænh zero

Page 166: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 160

Hoaït ñoäng toaøn vuøng 5V hay 2.5V tuøy theo giaù trò ñieän aùp tham chieáu Doøng tieâu thuï : 1.9mA

Thôøi gian bieán ñoåi: 100μs Coù taàng khueách ñaïi thuaät toaùn ôû chaân 9 ñeå coù phoái hôïp trôû khaùng Ñieän trôû vaøo ôû chaân 9: 1.1kΩ

• Ngoaøi ra coøn coù caùc IC: ADC 0808/ ADC0809, ñaây laø caùc boä bieán ñoåi A/D 8 bit vôùi 8 keânh töông töï

Sinh vieân tra sô ñoà chaân vaø sô ñoà keát noái cho maïch thöïc teá

6.2. BIẾN ĐỔI DAC 6.2.1. Khái niệm

Chuyeån ñoåi soá – töông töï Digital – Analog Converter (DAC) laø bieán ñoåi tín hieäu ñaõ ñöôïc maõ hoaù daïng soá trôû laïi thaønh giaù trò ñieän aùp töông töï.

Nguyeân lyù chuyeån ñoåi soá – töông töï.

Giaû thieát raèng giaù trò soá Z ñöôïc xöû lyù nhö moät soá nhò phaân N bit theo maõ nhò phaân vaø xöû lyù song song (1 bit moãi ñöôøng döõ lieäu). Tieáp theo, giaû thieát raèng chæ xeùt ñeán caùc chuyeån ñoåi D/A maø chæ chuyeån ñoåi, xöû lyù nhöõng soá döông trong phaïm vi

ADC0804

+IN-IN

AGND

VREF/2

GND

DB7DB6DB5DB4DB3DB2DB1DB0

CLKR

VCC/VREF

CLKIN

INTRCS

RDWR

Page 167: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 161

120 max −=≤≤ NZZ , ôû ñaây: soá nhò phaân 011... zzzZ Nbin −= bieåu thò bôûi N chöõ soá nhò nguyeân iz :

00

11

22

11 222...2 zzzzZ N

N ++++= −− .

Soá nhò phaân N bit ôû ñaàu vaøo cuûa boä chuyeån ñoåi D/A ñöôïc moät thanh ghi ñaàu vaøo tieáp nhaän, vaø khi coù taùc ñoäng söôøn xung nhòp tieáp theo, noù ñöôïc chuyeån ñoåi thaønh giaù trò töông töï töông öùng. Ñoä lôùn böôùc löôïng töû hoaù LSBU do quaù trình rôøi raïc hoaù, töông öùng vôùi vi sai tín hieäu töông töï ôû ñaàu ra giöõa hai giaù trò soá keá tieáp:

NrefLSB UU 2= ,

ôû ñaây refU - ñieän aùp quy chieáu (reference) cuûa boä chuyeån ñoåi D/A. Ñoä lôùn böôùc

löôïng töû töông öùng giaù trò töông töï cuûa bit baäc thaáp nhaát Least Significant Bit LSB. Ñaëc tuyeán truyeàn ñaït cuûa boä chuyeån ñoåi D/A ñôn cöïc lyù töôûng 3 bit ( LSBU = refU / 8) nhö sau.

Trong ñoù, K laø soá ñieåm rôøi raïc hoaù treân ñaëc tuyeán truyeàn ñaït, quy ñònh soá bit N cuûa boä chuyeån ñoåi:

NK 2= . Ñieän aùp töông töï ôû ñaàu ra rau cuûa chuyeån ñoåi D/A naèm trong khoaûng:

( ) ( )NrefN

n

refN

LSBra UUUu −−=−

=−≤≤ 212

12120 .

Moät trong nhöõng ñaïi löôïng ñaëc tröng quan troïng cuûa boä chuyeån ñoåi D/A laø tyû soá chuyeån ñoåi vaø thôøi gian chuyeån ñoåi. • Tyû soá chuyeån ñoåi: bao nhieâu giaù trò soá ñöôïc chuyeån ñoåi thaønh giaù trò töông töï

trong moät ñôn vò thôøi gian. • Thôøi gian chuyeån ñoåi, noùi chung, töông öùng trò nghòch ñaûo cuûa tyû soá chuyeån

ñoåi.

Page 168: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 162

Sô ñoà thöïc hieän chuyeån ñoåi soá – töông töï D/A baèng Pheùp coäng doøng hay aùp troïng soá. ï.

a)- Phöông aùn khuyeách ñaïi u / i ; b)- Phöông aùn coù khuyeách ñaïi i / u .

Boä chuyeån ñoåi treân coù boä khuyeách ñaïi u / i cung caáp doøng ra khoâng ñoåi refI = refU

/ refR . Neáu song song vôùi ñieän trôû iR maéc moät chuyeån maïch iS ñöôïc ñieàu khieån

bôûi töø maõ Z,, sao cho noù môû khi coù chöõ soá nhò nguyeân 1 ( )( )11 ==ii zS , vaø khi coù soá 0 noù vaãn giöõ traïng thaùi ñoùng ( )( )00 ==ii zS , thì ñieän aùp ñaàu ra baèng:

∑∑−

=

=

==1

0

1

0

N

iii

ref

refN

iiirefra RS

RU

RSIu ,

ôû ñaây ñieän trôû troïng soá nhò phaân iR laø: RR i

i 2= , - i = 0,1,…,N – 1. Hình b giôùi thieäu phöông aùn sô ñoà coù boä khuyeách ñaïi i / u, hoaït ñoäng nhö moät boä coäng ñaûo. Khaùc vôùi phöông aùn tröôùc, trong sô ñoà naøy chuyeån maïch iS seõ ñoùng

( )( )11 ==ii zS khi coù soá nhò nguyeân 1. Vaø ñieän aùp ñaàu ra rau baèng:

∑−

=

−=1

0

1N

i i

irefrefra RSURu ,

ôû ñaây ñieän trôû iR coù troïng soá nhò phaân nghòch ñaûo so vôùi trong bieåu thöùc treân

iiRR2

= , i = 0,1, …, N – 1,

vaø iS = 1 khi soá nhò nguyeân thöù i laø 1, coøn ngoaøi ra thì iS = 0.

Page 169: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 163

Phöông aùn thöïc hieän sô ñoà Boä chuyeån ñoåi D/A 4 bit coù khuyeách ñaïi i / u treân cô sôû chuyeån maïch baùn daãn.

Sô ñoà ñöôïc phaân baäc thöù nguyeân sao cho khi soá nhò nguyeân thöù i ñöôïc ñaët ñònh ôû möùc 1 (töông öùng ñieän aùp döông trong phaïm vi BU , töùc laø ( ) Bi UzU ≈= 1 ), thì transistor töông öùng ñöôïc môû vaø doøng collector cuûa noù, voán do ñoä lôùn ñieän trôû

iR 2 quy ñònh, seõ chaïy qua “ñieän trôû toång” refR . Nhö vaâïy, pheùp coäng theo bieåu

thöùc (N3.4-8) ñöôïc thöïc hieän. Ñieän aùp rôi treân ñieän trôû iR 2 coù giaù trò baèng refU

vì ñieän aùp dao ñoäng treân diode DU gaàn töông xöùng ñieän aùp BE aâm cuûa transistor ( BED UU −≈ ). Diode zener oån aùp giöõ cho ñieän aùp refU khoâng ñoåi.

Ñoái vôùi nhöõng chuyeån ñoåi D/A thieát keá treân cô sôû caùc maïng trôû khaùng nhö treân, thoâng thöôøng phaûi ñaùp öùng yeâu caàu raát cao veà ñoä chính xaùc cuûa caùc ñieän trôû maéc trong maïch. Boä chuyeån ñoài soá – töông töï N bit coù lieân heä töông quan giöõa ñieän aùp ñaàu ra cöïc ñaïi max.rau vaø böôùc löôïng töû LSBU laø:

( ) LSBN

ra Uu 12max. −= . Neáu phaûi ñaûm baûo sai soá tuyeät ñoái lôùn nhaát rauΔ cuûa ñieän aùp ñaàu ra rau nhoû

hôn 2LSBU , töùc laø rauΔ ≤ 2LSBU , thì phaûi aùp duïng luaät phaân boá sai soá ñoái vôùi

sai soá heä thoáng cho bieåu thöùc (N3.4-6):

LSB

N

iii

ref

refN

ii

i

ii

ref

refra URS

RU

RRR

SRU

u211

0

1

0<Δ=Δ

∂∂

=Δ ∑∑−

=

=

.

Trò soá analog töông töï cuûa baäc löôïng töû hoaù ñaàu tieân coù theå xaùc ñònh töø caùc bieåu thöùc (N3.4-6) vaø (N3.4-7), laø haøm cuûa ñieän aùp quy chieáu vaø giaù trò ñieän trôû R vaø

refR :

RRU

Uref

refLSB =

ruùt ra: RRU

RSRU

uref

refN

iii

ref

refra 2

11

0<Δ=Δ ∑

=

Page 170: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 164

Tröôøng hôïp xaáu nhaát laø söï coá moïi chuyeån maïch iS ñeàu môû ( iS = 1), cho neân phaûi ñaûm baûo ñieàu kieän sau:

RRN

ii 2

11

0

<Δ∑−

=

.

Neáu ta coi sai soá töông ñoái cuûa moïi ñieän trôû chæ trò nhò phaân laø nhö nhau, thì: i

i RR 2Δ=Δ

Sai soá töông ñoái lôùn nhaát coù theå chaáp nhaän theo ñieàu kieän rauΔ ≤ 2LSBU maø sô

ñoà chuyeån ñoåi duøng maïng ñieän trôû treân coù theå ñaùp öùng:

RRN

i

i

212

1

0<Δ ∑

=

,

vaø ( )1221−

NRR

.

Phaûi ñaëc bieät ñaûm baûo thoaû maõn ñieàu kieän naøy ñoái vôùi ñieän trôû 1−NR - ñònh trò bit baäc cao nhaát MSB. Veà maët sai soá toaøn phaàn, thì ñieän trôû naøy coù aûnh höôûng lôùn nhaát, ñieàu ñoù coù nghóa laø ñoái vôùi caùc chuyeån ñoåi 12 bit thì ñieän trôû 11R ít nhaát phaûi ñaûm baûo yeâu caàu ñoä chính xaùc sau:

( ) %024,000024,0122

111

11

11 ==−

RR

.

Page 171: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 165

Maïng chuoãi ñieän trôû. Nhöôïc ñieåm neâu treân, thoâng thöôøng laø do söû duïng ñieän trôû ñöôïc cheá xuaát haøng loaït, theo trò soá chuaån hoaù vôùi ít trò soá ñònh möùc khaùc nhau. Coù theå khaéc phuïc nhöôïc ñieåm ñoù baèng caùch söû duïng maïng chuoãi ñieän trôû R-2R. Phaàn lôùn caùc chuyeån ñoåi D/A söû duïng chuoãi ñieän trôû ñoù laøm nhöõng boä phaân aùp vaø phaân doøng maëc ñònh. Sô ñoà maïch töông öùng chæ duøng caùc ñieän trôû R vaø 2R nhö sau

.

Hình a laø sô ñoà coù nguoàn doøng; hình b laø sô ñoà töông ñöông giöõa nuùt i vaø (i+1) khi iz =1 caùc maïch khaùc môû; hình c laøsô ñoà nguyeân lyù coù nguoàn aùp.

Sô ñoà töông ñöông hình b bieåu thò töông quan giöõa hai nuùt i vaø (i+1), coù theå theo nguyeân taéc phaân doøng, quy ñònh tyû leä doøng 1+iI vaø iI luoân baèng 1/2:

211 =+ ii II . Trong ñoù, giaû ñònh raèng maïch thuoäc bit nhò nguyeân thöù i laø ñoùng, trong khi taát caû caùc bit nhò nguyeân khaùc ñeàu ñang môû. Maët khaùc, tyû leä 1/2 ñuùng baèng chæ trò troïng soá nhò phaân cuûa chuyeån maïch iS . Vôùi refI = 1+iI + iI thì ñieän aùp iu baèng:

Page 172: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Chương 6

GV: Nguyễn Trọng Hải Trang 166

RIRIu refii 32

== .

Do phaân aùp giöõa caùc nuùt i vaø (i+1) ta coù:

211 =+

i

i

uu

.

Xaùc ñònh ñieän aùp ñaàu ra rau baèng caùch aùp duïng nguyeân lyù sieâu vò:

∑−

=

+−=1

0

1232 N

i

Niirefra SRIu ,

vaø ñaùnh giaù troïng soá nhò phaân cuûa ñieän aùp thaønh phaàn iu . Trong phöông aùn sô ñoà hình c, thay vì nguoàn doøng N caàn coù nguoàn aùp quy chieáu. Töø thaønh phaàn ñieän aùp ñaët tröôùc, xaùc ñònh ñöôïc ñieän aùp ñaàu ra rau :

∑−

=

+−=1

0

1232 N

i

Niirefra SUu .

6.2.2. MỘT SỐ IC DAC CHUYÊN DỤNG

• DAC 0808 laø boä chuyeån ñoåi DAC 8bit

Caùc thoâng soá vaø ñaëc tính kyõ thuaät SV töï tra taøi lieäu

Page 173: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 251

PHỤ LỤC B I. NGOÂN NGÖÕ LAÄP TRÌNH CHO PLD

Cuõng gioáng nhö ROM hay PROM, moät PLD cuõng ñöôïc laäp trình ñeå taïo ra file ñoát caùc caàu chì hay diode.

Ngoân ngöõ söû duïng ñeå laäp trình cho PLD trong chöông trình naøy laø ABEL (Advanced Boolean Equation Language) laø moät trong nhöõng ngoân ngöõ laäp trình raát maïnh cho PLD, hoã trôï cho nhieàu ngoõ vaøo, bao goàm caû sô ñoà traïng thaùi vaø baûng söï thaät. Trình bieân dòch cuûa ABEL coù khaû naêng moâ phoûng vaø taïo file fuse map (caàu chì) cho PLD. Trong phuï luïc naøy chæ toùm taét höôùng daãn söû duïng caùc phaàn caáu truùc vaø cuù phaùp veà caùc phaùt bieåu, khai baùo, chæ daãn…chuû yeáu nhaát ñeå phuïc vuï cho caùc baøi thí nghieäm sau ñoù. Ñeå hieåu saâu hôn veà ngoân ngöõ naøy, sinh vieân neân tham khaûo theâm caùc taøi lieäu khaùc hoaëc phaàn help trong ngoân ngöõ.

Ngoaøi ABEL coøn coù caùc ngoân ngöõ khaùc nhö VHDL, AHDL…

CAÁU TRUÙC CUÛA MOÄT CHÖÔNG TRÌNH ABEL

module module name

title string

deviceID device deviceType;

pin declarations

other declarations

equations

equations

test_vectors

end module name

Module. Teân chöông trình vaø caùc thoâng soá hình thöùc

Title. Duøng ñeå moâ taû module

Declaration. Moâ taû caùc module caáp thaáp hôn, ñònh nghóa caùc khoái chöùc naêng nhö devive, pin, node, constant, macro, caùc taäp hôïp,…

Equations. Söû duïng caùc haøm, caùc löu ñoà traïng thaùi hay baûng söï thaät ñeå moâ taû caùc thieát keá logic

Test_vectors. Test_vectors sö duïng trong caùc file moâ phoûng JEDEC

End. Keát thuùc moät module

Page 174: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 252

Löu yù: caáu truùc ôû treân bao goàm caùc thaønh phaàn cô baûn cuûa moät chöông trình ABEL, tuøy vaøo nhöõng öùng duïng cuï theå coù theå seõ coù theâm caùc phaùt bieåu khaùc nhö maùy traïng thaùi, v.v…

1. CAÙC PHAÙT BIEÅU (STATEMENTS) 1.1. Phaùt bieåu Module

Cuù phaùp module modname [( dummy_arg[,….])]

Muïc ñích: Phaùt bieåu module xaùc ñònh ñieåm baét ñaàu cuûa moät chöông trình vaø phaûi coù phaùt bieåu END ñeå xaùc ñònh ñieåm keát thuùc cuûa module

Söû duïng Modname laø moät danh hieäu hôïp leä ñöôïc ñaët laøm teân goïi cho module chöông trình

Danh hieäu hôïp leä laø moät chuoãi daøi toái ña 31 kyù töï (chöõ caùi, chöõ soá, daáu gaïch döôùi’_’), ñöôïc baét ñaàu baèng chöõ caùi hay daáu gaïch döôùi ’_’. Danh hieäu phaân bieät chöõ hoa hay chöõ thöôøng.

Dummy_arg (coù theå coù) : laø moät thoâng soá hình thöùc (töông töï nhö trong ngoân ngöõ hôïp dòch)

Ví duï

MODULE My_Example …

END My_Example

Module coù teân My_Example vaø phaùt bieåu END My_Example keát thuùc module naøy.Trong module naøy khoâng söû duïng thoâng soá hình thöùc.

MODULE My_Example (A,B) …

C=A+B

END My_Example

Trong module naøy coù söû duïng hai thoâng soá hình thöùc A vaø B, bieåu thöùc C=A+B, vôi A,B ñöôïc traû veà gía trò thöïc (töø module khaùc) khi bieân dòch

1.2. Phaùt bieåu Title

Cuù phaùp title ‘string’

Muïc ñích: Phaùt bieåu title ñaët cho module moät töïa ñeà (header) ñeå minh hoïa ñaëc ñieåm chöùc naêng do ngöôøi laäp trình taïo ra.Chuoãi kyù töï seõ xuaát hieän trong caû file döõ lieäu vaø file fusemap sau khi bieân dòch

Söû duïng string: laø chuoãi kyù töï naèm trong hai daáu nhaùy ñôn (‘) vaø giôùi haïn 324 kyù töï

Söû duïng phaùt bieåu tilte laø tuøy choïn

Ví duï module m6809a

Page 175: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 253

title ’6809 memory decode Jean Designer Data I/O Corp Redmond WA’

1.3. Phaùt bieåu equations

Cuù phaùp equations

element [?] = condition;

when-then-else_statement;

Muïc ñích: Phaùt bieåu equations ñònh choã baét daàu cuûa moät hay moät nhoùm bieåu thöùc Boole bieãu dieãn haøm logic ngoõ ra theo ngoõ vaøo

Söû duïng condition. Moät moâ taû

element. teân danh ñònh cuûa moät tín hieäu, taäp caùc tín hieäu hay tín hieäu thöïc maø moâ taû giaù trò cuûa noù ñöôïc gaùn

when-then-else_statement: phaùt bieåu when-then-else

Sau moãi bieåu thöùc phaûi coù daáu chaám phaåy (;)

Ví duï

Equations

A = B&C#A;

[W,Y] = 3;

!F = (B = =C);

1.4. Phaùt bieåu Truth_table

Cuù phaùp truth_table (inputs -> outputs) hay truth_table (inputs : > reg_outs)

Muïc ñích: Truth_table trình baøy baûng söï thaät minh hoïa ngoõ ra nhö moät haøm toå hôïp cuûa caùc ngoõ vaøo Caùc baûng söï thaät coù theå thay theá hoaëc boå sung theâm cho caùc bieåu thöùc (trong equations) hay sô ñoà traïng thaùi (trong state_diagram)

Söû duïng inputs : laø caùc ngoõ vaøo cuûa haøm logic outputs : laø caùc ngoõ ra cuûa haøm logic reg_outs : laø caùc ngoõ ra cuûa caùc thanh ghi (FF) Daáu -> bieãu dieãn heä toå hôïp Daáu : > bieãu dieãn heä tuaàn töï

Ví duï

Truth_table ([A,B] -> C) [0,1] -> 1; [1,0] -> 1;

[1,1] -> 0; [0,0] -> 0;

Roõ raøng truth_table ôû treân bieãu dieãn bieåu thöùc C=A+B

Page 176: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 254

1.5. Phaùt bieåu state_diagram

Cuù phaùp State_diagram state variables

State state_exp:[equations];

.

. [trans-stmt…];

Muïc ñích: Phaùt bieåu state_diagram ñònh nghóa caùc bieán traïng thaùi baét ñaàu söï moâ taû hoaït ñoäng cuûa maùy traïng thaùi (töông töï nhö ñoà thò traïng thaùi hay löu ñoà maùy traïng thaùi)

Söû duïng state_variables: laø taäp hôïp caùc bieán traïng thaùi trong maùy traïng thaùi

state: laø töø khoùa ñeå bieãu dieãn söï chuyeån bieán töø traïng thaùi hieän taïi sang traïng thaùi keá tieáp vaø ngoõ ra hieän taïi

state_exp : laø bieåu thöùc hay haèng soá ñòng nghóa traïng thaùi hieän taïi

equations: laø caùc bieåu thöùc logic ngoõ ra hieän taïi cuûa maùy traïng thaùi trans_stmt : laø moät phaùt bieåu daïng IF – THEN – ELSE , GOTO, CASE (tuøy choïn) ñeå moâ taû söï chuyeån bieán töø traïng thaùi hieän btaïi sang traïng thaùi keá tieáp theo ñieàu kieän taùc ñoäng cuûa ngoõ vaøo

Ví duï

Giaû söû ta coù 2 ngoõ vaøo x1 vaø x2, ngoõ ra laø z, maùy traïng thaùi coù 3 traïng thaùi kyù hieäu S0,S1,S2, 2 bieán traïng thaùi Q = [Q0,Q1] (2 ngoõ ra cuûa FF) State_diagram Q State S0: if (x1&x2 = =0) then S2 Else S1 State S1: z=1;

Go to S2; State S2: z=0; Go to S0;

1.6. Phaùt bieåu goto

Cuù phaùp Goto state_exp

Muïc ñích: Phaùt bieåu goto bieãu dieãn söï chuyeån bieán khoâng ñieàu kieän töø traïng thaí hieän taïi sang traïng thaùi keá tieáp laø state_exp.

Söû duïng State_exp: laø bieåu thöùc bieãu dieãn traïng thaí keá tieáp

Ví duï Si: goto Sj; nhaûy ñeán traïng thaùi Sj

S0

x1x2

z=1 z=0S1 S2

1 0

Page 177: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 255

1.7. If – then – else

Cuù phaùp If exps then state_exp1 [else state_exp2]; hay if exp1 then state_exp1 else if exp2 then state_exp2 [else if….] else state_expn;

Muïc ñích: Phaùt bieåu if – then – else : moâ taû söï chuyeån hoùa traïng thaùi theo ñieàu kieän ngoõ vaøo.

Neáu bieåu thöùc ngay sau töø khoùa if laø ñuùng , chuyeån bieán höôùng ñeán traïng thaùi ngay sau töø khoùa then; neáu sai chuyeån bieán höôùng ñeán trang thaùi ngay sau töø khoùa else.

Söû duïng exps: laø bieåu thöùc baát kyø hôïp leä naøo

state_exp1, state_exp2…..: laø bieåu thöùc bieãu dieãn traïng thaùi keá tieáp.

Caùc phaùt bieåu if – then – else coù theå ñöôïc noái vôùi nhau lieân tieáp nhöng keát thuùc phaûi laø daáu chaám phaåy.

Ví duï State 1 : if (A = = B) then 2; “neáu A = b chuyeån ñeán traïng thaùi 2

State 2 : if A then 3 else 4; “ neáu A ñuùng (≠0) chuyeån ñeán traïng thaùi 3

“ neáu A sai (=0) chuyeån ñeán traïng thaùi 4

state 0 : if a then 1

else if b then 2

else if c then 3

else 0;

1.8. Phaùt bieåu case

Cuù phaùp Case [exps1 : state+exp1;]

[expsi : state_expi;]

end case;

Muïc ñích: Phaùt bieåu case moâ taû söï chuyeån bieán traïng thaùi trong tröôøng hôïp coù nhieàu ñieàu kieän taùc ñoäng.

Söû duïng Traùnh khoâng ñeå 2 ñieàu kieän xaûy ra cuøng luùc vaø traùnh tröôøng hôïp keát quaû traïng thaùi keá khoâng ñoaùn tröôùc ñöôïc

Ví duï STATE S0: CASE (sel == 0): S0 ; (sel == 1): S1 ;

ENDCASE

Page 178: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 256

1.9. Phaùt bieåu test_vectors:

Cuù phaùp Text vectors[‘note’] (inputs → outputs)

[invalues → out values]

Muïc ñích: Caùc test_vectors duøng ñeå moâ phoûng hoaït ñoäng cuûa heä vaø kieåm tra caùc chöùc naêng hoaït ñoäng cuûa heä khi chaïy chöông trình moâ phoûng

Söû duïng note: laø moät chuoãi kyù töï ñeå moâ taû caùc text_vectors inputs : laø 1 danh ñònh hay taäp hôïp caùc danh ñònh teân caùc tín hieäu vaøo hay hoài tieáp veà ngoõ vaøo cuûa heä. Outputs : laø 1 danh ñònh hay taäp hôïp caùc danh ñònh teân caùc tín hieäu ra cuûa heä. Invalues : laø 1 hay taäp hôïp caùc giaù trò vaøo Outvalues : laø 1 hay taäp hôïp caùc giaù trò ra laø haøm logic cuûa caùc giaù trò vaøo vaø gía trò traïng thaùi (heä tuaàn töï)

Ví duï equations C = A&B; “C = A.B D = A#B; “D = A+B Text_vectors ([A,B]→[C,D]) [0,0]→[0,0] [0,1]→[0,1] [1,0]→[0,1] [1,1]→[1,1]

1.10. Phaùt bieåu istype

Cuù phaùp Signal [ , signal] … istype ’attr[ , attr]…’;

Hay signal [ , signal] … pin istype ‘attr[ , attr]… ‘;

Muïc ñích: Phaùt bieåu istype ñònh nghóa caùc thuoäc tính cuûa pin hay node laäp trình ñöôïc cuûa caùc duïng cuï (PLD).

Caùc thuoäc tính cuûa pin hay node coù theå khai baùo cuøng moät doøng

Söû duïng signal: laø moät danh hieäu pin hay node attr: laø moät chuoãi kyù töï xaùc ñònh caùc thuoäc tính cuûa caùc signal

Caùc thuoäc tính hôïp leä laø:

‘buffer’ : ñeäm ‘com’ : heä toå hôïp ‘invert’ : ñaûo ‘neg’ : tính cöïc möùc thaáp ‘pos’ : tính cöïc möùc cao ‘reg’ : thanh ghi (heä tuaàn töï)

‘reg_D’,’reg_T’,’reg_JK’,’reg_SR’ : caùcFF, D, T, JK, SR

Page 179: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 257

Ví duï F0, A istype ‘neg , reg’;

istype ñònh nghóa F0 , A laø tín hieäu cuûa thanh ghi , taùc ñoäng möùc thaáp

outputs pin 15 istype ‘reg , invert’ tín hieäu output chaân 15 cuûa thanh ghi ngoõ ñaûo (ngoõ ra Q )

1.11. Phaùt bieåu end

Cuù phaùp End

Hay end modname

Muïc ñích: Duøng keát hôïp vôùi caùc phaùt bieåi module ñeå môû ñaàu vaø keát thuùc module chöông trình

Söû duïng signal: laø moät danh hieäu pin hay node attr: laø moät chuoãi kyù töï xaùc ñònh caùc thuoäc tính cuûa caùc signal

Caùc thuoäc tính hôïp leä laø:

‘buffer’ : ñeäm ‘com’ : heä toå hôïp ‘invert’ : ñaûo ‘neg’ : tính cöïc möùc thaáp ‘pos’ : tính cöïc möùc cao ‘reg’ : thanh ghi (heä tuaàn töï)

‘reg_D’,’reg_T’,’reg_JK’,’reg_SR’ : caùcFF, D, T, JK, SR

Ví duï F0, A istype ‘neg , reg’;

istype ñònh nghóa F0 , A laø tín hieäu cuûa thanh ghi , taùc ñoäng möùc thaáp

outputs pin 15 istype ‘reg , invert’ tín hieäu output chaân 15 cuûa thanh ghi ngoõ ñaûo (ngoõ ra Q )

2. CAÙC KHAI BAÙO (DECLARATIONS) 2.1. Pin

Cuù phaùp [!]pin_id[,[l]pin_id…]pin[pin#[,pin#]] istype ’attr’];

Muïc ñích: Töø khoùa pin duøng ñeå khai baùo nhöõng tín hieäu input vaø output, laø nhöõng tín hieäu in/out quy ñònh saün treân duïng cu ï(theo soå tra cöùu). Khai baùo cuõng coù theå ñònh nghóa thuoäc tính chaân

Khi 1 danh saùc danh ñònh chaân vaø soá chaân coù trong cuøng moät khai baùo chaân , seõ coù söï töông öùng 1-1 giöõa danh ñònh chaân vaø soá chaân

Söû duïng pin_id: laø moät danh hieäu duøng ñeå ñaët teân cho 1 chaân

pin #: laø soá thöù töï chaân treân duïng cuï (PLD)thaät

Page 180: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 258

attr: laø moät chuoãi xaùc ñònh caùc thuoäc tính cuûa chaân !: kyù hieäu NOT,tích cöïc möùc thaáp

Ví duï !clock,reset,S1 pin 12,15,3;

khai baùo naøy gaùn teân chaân: clock chaân 12, reset chaân 15, S1 chaân 3

!clock: tích cöïc möùc 0

2.2. Node

Cuù phaùp [!]node_id[,[!]node_id … ]node[node#[,node# …][istype ’attr’];

Muïc ñích: Töø khoùa node duøng ñeå khai baùo nhöõng tín hieäu gaùn cho nhöõng nuùt aån trong duïng cuï

Söû duïng node_id: laø moät danh hieäu duøng ñeå ñaët teân moät nuùt node#: laø soá thöù töï nuùt treân duïng cuï thaät (nuùt töông ñöông nhö chaân aån trong duïng cuï vaø soá nuùt ñöôïc cho trong soå tay tra cöuù)

Ví duï B node istype’reg’ : xaùc ñònh nuùt B laø 1 ngoõ cuûa FF trong duïng cuï

A,B node 25,26 : gaùn teân A laø nuùt 25, gaùn teân B laø nuùt 26. Soá nuùt naøy do nhaø saûn xuaát quy ñònh trong soå tay tra cöùu

2.3. Duïng cuï (Device)

Cuù phaùp Device-id device real_device;

Muïc ñích: Khai baùo device cho moät PLD thaät. Trong quaù trình bieân dòch, caùc haøm logic seõ ñöôïc ñöa veà daïng theo caáu truùc coång ñuùng nhö cuûa duïng cuï thaät.

Söû duïng device-id: laø moät danh hieäu, chính laø teân file fusemap real-device: moâ taû maõ soá duïng cuï (PLD) ñaët giöõa 2 daáu nhaùy ñôn (‘) Phaûi ñaët daáu ; sau khai baùo

Ví duï D1 device ‘P16R4’: khai baùo naøy cho bieát D1 laø loaïi PLD PAL 16R4

3. CAÙC KHAI BAÙO KHAÙC (OTHER DECLARATIONS) 3.1. Haèng (constant)

Cuù phaùp id[,id]… = expr[,expr] …;

Muïc ñích: Khai baùo haèng ñònh nghóa nhöõng haèng soá ñöôïc duøng trong 1 module

Söû duïng id: laø moät danh hieäu ñaët teân cho 1 haèng expr: xaùc ñònh gía trò haèng

Ví duï X = .X.; “X mang yù nghóa khoâng xaùc ñònh

Page 181: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 259

Z = .Z.; “Z mang yù nghóa toång trôû cao

C = .C. “C mang yù nghóa taùc ñoäng caïnh leân

A = ^b01 ; “soá nhò phaân

B = ^h16; “soá hex

C = 10; “soá thaäp phaân

3.2. Taäp hôïp (set)

Ñònh nghóa Taäp hôïp laø taäp hôïp nhöõng tính hieäu vaø haèng soá maø taùc vuï thöïc hieän nhö laø 1 ñôn vò

Baát cöù taùc vuï naøo aùp duïng cho 1 taäp hôïp seõ ñöôïc aùp duïng cho moãi phaàn töû trong taäp hôïp

Taäp hôïp seõ laøm ñôn giaûn vieäc moâ taû logic vaø caùc test-vectors baèng caùch chæ caàn duøng teân goïi taäp hôïp

Söû duïng Moät taäp hôïp ñöôïc ñaïi dieän bôûi 1 danh saùch caùc haèng soá vaø tín hieäu ngaên caùch baèng caùc daáu chaám phaåy hay daáu khoaûng (..), ñaët trong daáu ngoaëc vuoâng ([ ]). Sau moãi khai baùo taäp hôïp phaûi coù daáu ;

Ví duï MULOUT = [B0,B1,B2,B3,B4,B5,B6,B7];

hay MULOUT = [B0…B7];

MULOUT laø khai baùo laø teân moät taäp hôïp goàm 8 tín hieäu töø B0 ñeán B7

BCD = [D,C,B,A]

LED = [g,f,e,d,c,b,a]

Test-vectors (BCD → LED)

[0,0,0,0] →[1,0,0,0,0,0,0]

BCD laø 1 taäp hôïp goàm caùc tín hieäu D,C,B,A

LED laø 1 taäp hôïp goàm caùc tín hieäu g,f,e,d,c,b,a

3.3. Macro

Cuù phaùp Macro_id macro [(dummy_arg [, dummy_arg]…)]block;

Muïc ñích: Khai baùo macro ñònh nghóa 1 macro thöïc hieän caùc chöùc naêng, caùc pheùp toaùn,bieåu thöùc logic trong moät khoái

Chæ ñònh nghóa macro 1 laàn trong phaàn khai baùo macro trong module vaø seõ ñöôïc duøng baát cöù nôi naøo trong module

Khai baùo macro töông töï nhö trong trình hôïp ngöõ

Macro chæ coù theå ñöôïc duøng trong module maø noù ñöôïc khai baùo

Page 182: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 260

Söû duïng macro_id: laø moät danh hieäu ñaët teân cho macro dummy_arg: laø moät thoâng soá hình thöùc block: laø caùc bieåu thöùc logic

Ví duï NAND3 macro (A,B,C) !(A&B&C)

NAND3 laø macro thöïc hieän chöùc naêng haøm logic CBA .. vôùi A,B,C laø caùc thoâng soá hình thöùc

Sau ñoù trong module khai baùo macro naøy ta coù khai baùo:

D = NAND 3 (Clock, Hello, busy);

Keát quûa laø: D = !(Clock&Hello&Busy) khi bieân dòch

3.4. Enable

Cuù phaùp Enable output_id = [!]expr;

Muïc ñích: Khai baùo enable cho pheùp caùc ngoõ ra 3 traïng thaùi hoaït ñoäng theo tín hieäu ñieàu khieån bôûi gía trò cuûa expr

Söû duïng khai baùo naøy theo sau phaùt bieåu equations

Söû duïng output_id: laø danh hieäu ñaët teân cho 1 ngoõ ra hoaëc 1 taäp hôïp ngoõ ra expr: laø 1 bieåu thöùc logic

Ví duï OE pin11;

F0,F1,F2,F3 pin 19,18,17,16;

Count = [F0,F1,F2,F3];

Equations

Enable count = !OE

Caùc ngoõ ra töø F0 ñeán F3 trong taäp hôïp count laø caùc ngoõ ra 3 traïng thaùi , seõ hoaït ñoäng khi OE = 0 vaø seõ ôû traïng thaùi high-Z khi OE = 1

Coù theå söû duïng tieáp vó ngöõ .OE thay cho khai baùo enable (xem phaàn tieáp vó ngöõ)

4. CAÙC TOAÙN TÖÛ (OPERATORS) 4.1. Toaùn töû chuaån (standard)

! NOT

# OR

& AND

$ XOR

!$ XNOR

= toaùn töû gaén cho bieåu thöùc toå hôïp

:= toaùn töû gaùn cho bieåu thöùc thanh ghi (tuaàn töï)

Page 183: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 261

Ngoaøi ra töø khoaù @ALTERNATE baùo cho trình bieân dòch bieát boä toaùn töû töông ñöông (alternate) thay theá cho boä toaùn töû chuaån (caùc kyù hieäu deã nhôù hôn)

Boä toaùn töû thay theá (phaûi coù töø khoaù @ALTERNATE ôû ñaàu module chöông trình)

/ NOT * AND + OR :+: XOR :*: XNOR

4.2. Toaùn töû so saùnh

== baèng

!= khoâng baèng

< nhoû hôn

> lôùn hôn

<= nhoû hôn hoaëc baèng

>= lôùn hôn hoaëc baèng

Ngoaøi ra coøn cho pheùp vieát caùc bieåu thöùc ñieàu kieän , bieåu thöùc naøy seõ traû veà 1 neáu thoaû ñieàu kieän vaø traû veà 0 neáu khoâng thoûa ñieàu kieän

Ví duï Q = (P = =1); “Q seõ baèng 1 neáu P =1 vaø Q seõ baèng 0 neáu P khaùc 1

5. CAÙC TIEÁP ÑAÀU NGÖÕ (Prefix), tieáp vó ngöõ (suffix) 5.1. Tieáp ñaàu ngöõ

Toùan töû Not (! hay /) ñöôïc duøng nhö tieàp ñaàu ngöõ ñeå baùo trình bieân dòch bieát tín hieäu hoaït ñoäng (tích cöïc) ôû möùc logic

Ví duï: !Q0 pin 15; töông ñöông vôùi Q0 pin 15 istype ‘neg’;

5.2. Tieáp vó ngöõ

Caùc tieáp vó ngöõ thöôøng ñöôïc duøng trong cheá ñoä thanh ghi ñeå truy xuaát ñeán töøng chaân noäi trong thanh ghi

Ví duï Q0.CK truy xuaát ñeán chaân clock cuûa tín hieäu ra Q0 ôû cheá ñoä thanh ghi

Töông töï nhö ñoái vôùi .RE,.PR,.D,.T….. laàn löôït truy xuaát ñeán caùc chaân reset,preset,D,T cuaû thanh ghi

Tieáp vó ngöõ .OE cho pheùp xuaát ôû ngoõ ra 3 traïng thaùi

Ví duï out.oe = !ena;

ena =0 → ngoõ ra out ñöôïc pheùp xuaát

ena = 1 → ngoõ ra out ôû traïng thaùi high-Z

Page 184: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 262

6. GHI CHUÙ (Comments) Caùc ghi chuù minh hoaï , giaûi thích cuûa chöông trình baét ñaàu baèng daáu nhaùy keùp (“)vaø keát thuùc baèng daáu nhaùy keùp (“) hoaëc xuoáng doøng.

Ví duï

Q1,Q2,Q3, pin 14,15,16 “outputs

“declarations

QSTATE = [Q1,Q2,Q3]; “sets

Page 185: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 263

BAØI THÍ NGHIEÄM BIEÂN DÒCH VAØ MOÂ PHOÛNG ABEL

A. MUÏC ÑÍCH – YEÂU CAÀU BAØI THÍ NGHIEÄM:

• Giuùp sinh vieân naém ñöôïc kyõ thuaät laäp trình vaø bieân dòch ngoân ngöõ ABEL trong thieát keá PLD (caùc daïng hoài tieáp, khoâng hoài tieáp, thanh ghi…)

• SV phaûi ñoïc kyõ tröôùc baøi cô sôû lyù thuyeát vaø oân laïi kieán thöùc veà kyõ thuaät soá

• SV phaûi nhaäp saün caùc baøi thí nghieäm vaøo ñóa meàm

B. THIEÁT BÒ SÖÛ DUÏNG:

• Maùy vi tính + chöông trình

C. NOÄI DUNG THÍ NGHIEÄM:

1. Thí nghieäm 1

Muïc ñích: Duøng caùc bieåu thöùc trong equations ñeå thöïc hieän maïch (mode ñôn). Thieát keá boä MUX 12 → 4 duøng GAL16V8 nhö hình sau

Caùc ngoõ vaøo: [a3,a2,a1,a0], [b3,b2,b1,b0], [c3,c2,c1,c0]

Ngoõ ra : [y0, y1, y2, y3]

Ñieàu khieån choïn keânh : [S1, S0] • Chöông trình

1 2 3 4 5 6 7 8 9 10

Module mux12t4 title '12 to 4 multiplexer Thi nghiem 1' “Cac khai bao mux12t4 device 'P16V8S'; a0,a1,a2,a3 pin 1,2,3,4; b0,b1,b2,b3 pin 5,6,7,8; c0,c1,c2,c3 pin 9,11,12,13; s1,s0 pin 18,19; y0,y1,y2,y3 pin 14,15,16,17;

A2A3

Y0

S1

U2

16V8

123456789

11

1213141516171819

I0I1I2I3I4I5I6I7I8I9

F0F1F2F3F4F5F6F7

B1

C0

Y1

C2

Y2

A0

B3

Y3

C3

S0

A1

C1

B2

B0

Page 186: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 264

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

H = [1,1,1,1]; L = [0,0,0,0]; X = [.x.,.x.,.x.,.x.]; select = [s1, s0]; y = [y3,y2,y1,y0]; a = [a3,a2,a1,a0]; b = [b3,b2,b1,b0]; c = [c3,c2,c1,c0]; equations y = (select == 0) & a # (select == 1) & b # (select == 2) & c # (select == 3) & c ; test_vectors ([select, a, b, c] -> y) [0 , 1, X, X] -> 1; [0 ,10, H, L] -> 10; [0 , 5, H, L] -> 5; [1 , H, 3, H] -> 3; [1 ,10, 7, H] -> 7; [1 , L,15, L] -> 15; [2 , L, L, 8] -> 8; [2 , H, H, 9] -> 9; [2 , L, L, 1] -> 1; [3 , H, H, 0] -> 0; [3 , L, L, 9] -> 9; [3 , H, L, 0] -> 0; end

• Giaûi thích chöông trình

- Doøng 1 khai baùo teân module laø mux12t4 - Doøng 2,3 khai baùo teân title vaø ñaët teân - Doøng 4 laø chuù thích - Doøng 5 khai baùo duïng cuï (device) teân U1 vaø duøng vi maïch 16V8S (simple

mode) - Doøng 6,7,8,9,10 laø khai baùo gaùn teân caùc chaân töông öùng nhö hình - Doøng 11, 12, 13 laø khai baùo haèng : L = 0, H = 1, X=tuøy ñònh - Doøng 14,15,16,17,18 laø khai baùo taäp hôïp : select = [S1,S0] laø taäp goàm 3 bieán

ñieàu khieån choïn keânh, töông töï cho taäp a, b, c, y. Vieäc khai baùo taäp hôïp naøy seõ raát tieän khi ta caàn tham chieáu tôùi caùc ngoõ ñieàu khieån hoaëc ngoõ ra ôû phaàn sau ñoù

- Doøng 19 baét ñaàu phaùt bieåu equations. Giaù trò gaùn cho toaùn töû ‘baèng’ duøng heä thaäp phaân. Neáu duøng heä nhò phaân ta ghi : (select = = ^b00)

- Doøng 24 baét ñaàu phaùt bieåu test_vectors ñeå kieåm tra chöùc naêng cuûa heä, khai baùo caùc tín hieäu ngoõ vaøo vaø ngoõ ra caàn kieåm tra Ngoõ vaøo laø taäp hôïp caùc bieán select, a, b, c. Ngoõ ra laø taäp hôïp caùc bieán y

Page 187: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 265

- Doøng 25 ñeán 27 laø caùc vector kieåm tra doàn keânh khi cho ngoõ vaøo select=0 - Doøng 28 ñeán 30 laø caùc vector kieåm tra doàn keânh khi cho ngoõ vaøo select=1 - Doøng 31 ñeán 33 laø caùc vector kieåm tra doàn keânh khi cho ngoõ vaøo select=2 - Doøng 34 ñeán 36 laø caùc vector kieåm tra doàn keânh khi cho ngoõ vaøo select=3 - Doøng 37 laø phaùt bieåu END keát thuùc chöông trình

• Bieân dòch chöông trình

Böôùc 1: Nhaäp file nguoàn trong thí nghieäm treân

Böôùc 2:

Bieân dòch chöông trình duøng phaàn meàm ABEL

Töø thö muïc ABEL ñaùnh leänh abe filename

Böôùc 3: Xem laïi caùc file môùi hình thaønh (file.doc, file.list)

Böôùc 4: Theâm töø khoùa flag ‘-t1’ vaøo sau phaùt bieåu module

Module mod-id flag ‘-t1’

Böôùc 5: Bieân dòch laïi chöông trình vaø xem keát quaû ôû file.sim. Nhaän xeùt.

2. Thí nghieäm 2

Muïc ñích: Thieát laäp ñieàu khieån caùc ngoõ ôû cheá ñoä I/O vaø Hi Z (mode phöùc)

Thieát keá boä ñeäm 2 chieàu 3 traïng thaùi duøng GAL 16V8

Caùc ngoõ vaøo/ra: [a2,a1,a0], [b2,b1,b0]

Ñieàu khieån choïn chieàu data: [S1, S0]

Neáu [S1,S0] = [0,1]: höôùng töø B sang A

Neáu [S1,S0] = [1,0]: höôùng töø A sang B

• Chöông trình

1 2 3 4

module tsbuffer title 'bi-directional three state buffer Thi nghiem 2' TSB1 device 'P16V8c';

GAL16V8

S1 S0

B2 B1 B0 A2 A1 A0

A1

B0

U2

16V8

123456789

11

1213141516171819

I0I1I2I3I4I5I6I7I8I9

F0F1F2F3F4F5F6F7

A0B2

S1

B1

A2S0

Page 188: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 266

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

S1,S0 Pin 1,2; A2,A1,A0 Pin 13,14,15; B2,B1,B0 Pin 16,17,18; Select = [S1,S0]; A = [A2,A1,A0]; B = [B2,B1,B0]; X,Z = .X., .Z.; Equations A = B; B = A; Enable A = (Select==1); Enable B = (Select==2); test_vectors ([Select, A, B]-> [ A, B]) [ 0 , 0, 0]-> [ Z, Z]; [ 0 , 7, 7]-> [ Z, Z]; [ 1 , X, 3]-> [ 3, X]; [ 1 , X, 5]-> [ 5, X]; [ 2 , 3, X]-> [ X, 3]; [ 2 , 5, X]-> [ X, 5]; [ 3 , 0, 0]-> [ Z, Z]; [ 3 , 7, 7]-> [ Z, Z]; end

• Giaûi thích chöông trình

- Doøng 4 khai baùo device ôû mode phöùc (modeI/O) - Doøng 11 khai baùo .z. laø toång trôû cao - Doøng 15 cho pheùp A xuaát khi [S1S0] = [01], luùc naøy höôøng truyeàn töø B->A - Doøng 16 cho pheùp B xuaát khi [S1S0] = [10], luùc naøy höôøng truyeàn töø A->B

• Bieân dòch chöông trình

Böôùc 1: Nhaäp file nguoàn trong thí nghieäm treân

Böôùc 2:

Bieân dòch chöông trình duøng phaàn meàm ABEL

Töø thö muïc ABEL ñaùnh leänh abe filename

Böôùc 3: Xem laïi caùc file môùi hình thaønh (file.doc, file.list)

Böôùc 4: Theâm töø khoùa flag ‘-t1’ vaøo sau phaùt bieåu module

Module mod-id flag ‘-t1’

Böôùc 5: Bieân dòch laïi chöông trình vaø xem keát quaû ôû file.sim. Nhaän xeùt.

Page 189: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 267

3. Thí nghieäm 3

Muïc ñích: Söû duïng baûng söï thaät trong truth_table ñeå thöïc hieän maïch

Thieát keá 2 boä giaûi maõ 2→ 4 söû duïng GAL16V8 hoaït ñoäng theo baûng söï thaät sau:

Input Output G B A Y3 Y2 Y1 Y01 1 1 1 0

0 0 1 1 x

0 1 0 1 x

1 1 1 0 1

1 1 0 1 1

1 0 1 1 1

0 1 1 1 1

• Chöông trình 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Module decod2t4 Title 'giai ma 2 sang 4 Thi nghiem 3' Decod2t4 device 'P16V8S'; G1,G2 pin 2,5; A1,B1,A2,B2 pin 3,4,6,7; Y01,Y11,Y21,Y31 pin 19,18,17,16; Y02,Y12,Y22,Y32 pin 15,14,13,12; H,L,X = 1,0,.x.; inputs1 = [G1,B1,A1]; outputs1 = [Y31,Y21,Y11,Y01] ; inputs2 = [G2,B2,A2]; outputs2 = [Y32,Y22,Y12,Y02]; Truth_table (inputs1->outputs1) [1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,X,X] -> [H,H,H,H]; truth_table (inputs2-> outputs2) [1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,X,X] -> [H,H,H,H];

B1

Y01

Y12

Y11

U2

16V8

123456789

11

1213141516171819

I0I1I2I3I4I5I6I7I8I9

F0F1F2F3F4F5F6F7

G2Y02Y31

B2Y21

Y22G1A1

A2

Y32

Page 190: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 268

29 30 31 32 33 34 35 36 37 38 39 40 41

test_vectors (inputs1-> outputs1) [1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,1,0] -> [H,H,H,H]; test_vectors (inputs2-> outputs2) [1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,0,1] -> [H,H,H,H]; end

• Giaûi thích chöông trình

Chöông trình treân duøng phaùt bieåu truth_table ñeå khai baùo baûng söï thaät hoaït ñoäng cuûa heä thay cho bieåu thöùc. Trong tröôøng hôïp naøy caùch vieát truth_table seõ goïn hôn

caùch vieát theo bieåu thöùc (equations).

• Bieân dòch chöông trình

Böôùc 1: Nhaäp file nguoàn trong thí nghieäm treân

Böôùc 2:

Bieân dòch chöông trình duøng phaàn meàm ABEL

Töø thö muïc ABEL ñaùnh leänh abe filename

Böôùc 3: Xem laïi caùc file môùi hình thaønh (file.doc, file.list)

Böôùc 4: Theâm töø khoùa flag ‘-t1’ vaøo sau phaùt bieåu module

Module mod-id flag ‘-t1’

Böôùc 5: Bieân dòch laïi chöông trình vaø xem keát quaû ôû file.sim. Nhaän xeùt.

4. Thí nghieäm 4

Muïc ñích: Thieát keá vôùi mode thanh ghi cho maïch tuaàn töï

Thieát keá boä ñeám leân (ñoàng boä) 16 duøng GAL16V8. Boä ñeám coù ngoõ Cl ñoàng boä, tính cöïc möùc 0 nhö hình sau

Q2Q1

U2

16V8

123456789

11

1213141516171819

I0I1I2I3I4I5I6I7I8I9

F0F1F2F3F4F5F6F7 Q3

Q0

CKCL

Page 191: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 269

Ta thieát laäp baûng traïng thaùi hieän taïi vaø keá tieáp cho caùc ngoõ ra Q3Q2Q1Q0

Traïng thaùi hieän taïi Traïng thaùi keá Q3 Q2 Q1 Q0 Q3+ Q2+ Q1+ Q0+

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0

0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0

0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

Töø ñoù ruùt ra ñöôïc

00 QQ =+ .Cl (vôùi Cl tích cöïc möùc thaáp)

( )( )ClQQQQQ

ClQQQQClQQQ

.0.1.233.0.122

.011

⊕=

⊕=

⊕=

+

+

+

Theo caáu truùc GAL16V8, chaân 1 laø chaân CK ñoàng boä caùc thanh ghi beân trong

• Chöông trình 1 2 3 4 5 6 7 8 9 10 11 12 13

module count4 title 'COUNTER MOD16 Bai so 1' Counter device 'P16V8R'; CK,CL pin 1,2 ; Q3,Q2,Q1,Q0 pin 19,18,17,16; Count = [Q3,Q2,Q1,Q0]; C,H,L = .C.,1,0 ; "Xung CK tac dong canh len Equations Q0 := !Q0 & CL; Q1 := (Q1$Q0) & CL; Q2 := (Q2$(Q1&Q0))&CL; Q3 := (Q3$(Q2&Q1&Q0))&CL;

Page 192: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài Giảng Kỹ Thuật Số Phụ lục B

GV: Nguyễn Trọng Hải Trang 270

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Test_vectors([CK,CL] -> Count) [C,L] -> 0 ; [C,H] -> 1 ; [C,H] -> 2 ; [C,H] -> 3 ; [C,H] -> 4 ; [C,H] -> 5 ; [C,H] -> 6 ; [C,H] -> 7 ; [C,H] -> 8 ; [C,H] -> 9 ; [C,H] -> 10 ; [C,H] -> 11 ; [C,H] -> 12 ; [C,H] -> 13 ; [C,H] -> 14 ; [C,H] -> 15 ; [C,H] -> 0 ; END

• Giaûi thích

Trong mode thanh ghi caùc bieåu thöùc söû duïng toaùn töû gaùn ‘:=’ ñeå bieãu dieãn ngoõ ra laø heä tuaàn töï (thanh ghi).

• Bieân dòch chöông trình

Böôùc 1: Nhaäp file nguoàn trong thí nghieäm treân

Böôùc 2:

Bieân dòch chöông trình duøng phaàn meàm ABEL

Töø thö muïc ABEL ñaùnh leänh abe filename

Böôùc 3: Xem laïi caùc file môùi hình thaønh (file.doc, file.list)

Böôùc 4: Theâm töø khoùa flag ‘-t1’ vaøo sau phaùt bieåu module

Module mod-id flag ‘-t1’

Böôùc 5: Bieân dòch laïi chöông trình vaø xem keát quaû ôû file.sim. Nhaän xeùt.

Page 193: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ

THAØNH PHOÁ HOÀ CHÍ MINH

Ths. NGUYEÃN TROÏNG HAÛI

TOÙM TAÉT BAØI GIAÛNG

VERILOG

LÖU HAØNH NOÄI BOÄ

07/2005

Page 194: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 1

CHÖÔNG I

TOÅNG QUAN

Verilog HDL laø moät trong hai ngoân ngöõ moâ phoûng phaàn cöùng thoâng duïng nhaát, ñöôïc duøng trong thieát keá IC, ngoân ngöõ kia laø VHDL.

HDL cho pheùp moâ phoûng caùc thieát keá deã daøng, söûa chöõa loãi, hoaëc thöïc nghieäm baèng nhöõng caáu truùc khaùc nhau. Caùc thieát keá ñöôïc moâ taû trong HDL laø nhöõng kyõ thuaät ñoäc laäp, deã thieát keá, deã thaùo gôõ, vaø thöôøng deå ñoïc hôn ôû daïng bieåu ñoà, ñaëc bieät laø ôû caùc maïch ñieän lôùn.

Verilog thöôøng ñöôïc duøng ñeå moâ taû thieát keá ôû boán daïng:

Thuaät toaùn (moät soá leänh gioáng ngoân ngöõ C nhö: if, case, for,while…).

Chuyeån ñoåi thanh ghi (keát noái baèng caùc bieåu thöùc Boolean).

Caùc coång keát noái( coång: OR, AND, NOT…).

Chuyeån maïch (BJT, MOSFET).

Ngoân ngöõ naøy cuõng chæ roõ caùch thöùc keát noái, ñieàu khieån vaøo/ra trong moâ phoûng.

Caáu truùc chöông trình duøng ngoân ngöõ Verilog

// Khai baùo module Module teân chöông trình (teân bieán I/O); // teân chöông trình truøng teân file.v. Input [msb:lsb] bieán; Output [msb:lsb] bieán; Reg [msb:lsb] bieán reg; Wire [msb: lsb] bieán wire; // Khai baùo khoái always, hoaëc khoái initial. … caùc leänh …

Endmodule

Page 195: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 2

Chöông II CHÖÙC NAÊNG CAÙC TÖØ VÖÏNG TRONG VERILOG

Nhöõng taäp tin vaên baûn nguoàn Verilog bao goàm nhöõng bieåu hieän thuoäc tính töø vöïng sau ñaây:

I. Khoaûng traéng

Khoaûng traéng ngaên nhöõng töø vaø coù theå chöùa khoaûng caùch, khoaûng daøi, doøng môùivaø daïng ñöôøng daãn. Do ñoù, moät leänh coù theå ñöa ra nhieàu doøng phöùc taïp hôn maø khoâng coù nhöõng ñaëc tính ñaëc bieät.

II. Chuù giaûi

Nhöõng chuù giaûi coù theå chæ ñònh baèng hai caùch: ( gioáng trong C/C++)

Chuù giaûi ñöôïc vieát sau hai daáu gaïch xieân (//). Ñöôïc vieát treân cuøng moät doøng.

Ñöôïc vieát giöõa /* */, khi vieát nhieàu doøng chuù giaûi.

III. Chöõ soá:

Löu tröõ soá ñöôïc ñònh nghóa nhö laø moät con soá cuûa caùc bit, giaù trò coù theå laø: soá nhò phaân, baùt phaân, thaäp phaân, hoaëc thaäp luïc phaân.

Ví duï: 3’b001, 5’d30 = 5’b11110,

16’h5ED4 = 16’d24276 = 16’b0101111011010100

IV. Töø ñònh danh:

Töø ñònh danh do ngöôøi duøng quy ñònh cho bieán soá, teân haøm, teân moâñun, teân khoái vaø teân tröôøng hôïp. Töø ñònh danh baét ñaàu baèng moät maãu töï hoaëc ñöôøng gaïch döôùi ’_’ ( khoâng baét ñaàu baèng moät con soá hoaëc $ ) vaø keå caû moïi chöõ soá cuûa maåu töï, nhöõng con soá vaø ñöôøng gaïch döôùi, töø ñònh danh trong Verilog thì phaân bieät daïng chöõ.

V. Cuù phaùp:

Kí hieäu cho pheùp:

ABDCE…abcdef…1234567890_$

Khoâng cho pheùp: caùc kí hieäu khaùc -, &, #, @

Page 196: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 3

VI. Toaùn töû:

Toaùn töû laø moät, hai, hoaëc ba kí töï duøng ñeå thöïc hieän caùc toaùn haïng treân bieán. Caùc toaùn töû bao goàm >, +, &, !=.

VII. Töø khoùaVerilog:

Coù nhöõng töø maø phaûi coù yù nghóa ñaëc bieät trong Verilog. Ví duï: assign, case, while, wire, reg, and, or, nand, vaø module. Chuùng khoâng ñöôïc duøng nhö töø ñònh danh. Töø khoùa Verilog cuõng bao goàm caû chæ daãn chöông trình bieân dòch vaø System Task (heä thoáng soaïn thaûo) vaø caùc haøm.

Page 197: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 4

Chöông III

CAÙC COÅNG CÔ BAÛN TRONG VERILOG

Caùc coång logic cô sôû laø moät boä phaän cuûa ngoân ngöõ Verilog. Coù hai ñaëc tính ñöôïc chæ roõ laø: drive_strenght vaø delay.

Drive_strenght chæ söùc beàn cuûa coång. Ñoä beàn ngoõ ra laø söï keát noái moät chieàu ñeán nguoàn, keá ñoù taïo neân söï keát noái trong suoát trans daãn, keát thuùc laø toång trôû keùo leân hoaëc xuoáng. Drive_strenght thöôøng khoâng ñöôïc chæ roõ, trong tröôøng hôïp naøy ñoä beàn maëc ñònh laø strong1 vaø strong0 .

Delay: neáu delay khoâng ñöôïc chæ roõ, thì khi ñoù coång khoâng coù trì hoaõn truyeàn taûi; neáu coù hai delay ñöôïc chæ ñònh, thì tröôùc tieân laø mieâu taû trì hoaõn leân, thöù hai laø trì hoaõn xuoáng. Neáu chæ coù moät delay ñöôïc chæ ñònh, thì khi ñoù trì hoaõn leân xuoáng laø nhö nhau. Delay ñöôïc boû qua trong toång hôïp. Phöông phaùp cuûa söï trì hoaõn chæ ñònh naøy laø moät tröôøng hôïp ñaëc bieät cuûa “Parameterized Modules”. Caùc tham soá cho caùc coång cô sôû phaûi ñöôïc ñònh nghóa tröôùc nhö delay.

I. Caùc coång cô baûn:

Caùc coång cô baûn coù moät ngoõ ra, vaø coù moät hoaëc nhieàu ngoõ vaøo. Trong caùc coång, cuù phaùp cuï theå bieåu dieãn beân döôùi, caùc töø khoaù cuûa caùc coång: and, or, nand, nor.

1. Cuù phaùp:

GATE (drive_strength)#(delays)

Teân töø khoùa coång _teân (output, input_1, input_2, …, input_N);

Delay: #( leân, xuoáng) hoaëc #leân_vaø_xuoáng hoaëc #( leân_vaø_xuoáng)

2. Ví duï:

And c1 (o, a, b, c. d); // coù 4 ngoõ vaøo coång And goïi laø c1 c2 (p, f, g); // vaø 2 ngoõ vaøo coång and goïi laø c2

Or #(4,3) ig ( o, b, c); // coång Or ñöôïc goïi laø ig, rise time = 4, fall time = 3

Page 198: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 5

Xor #(5) xor1 (a, b, c); // sau 5 ñôn vò thôøi gian thì a = b xor c

II. Coång buf, not:

Caùc coång naøy thöïc thi ñeäm vaø ñaûo theo theo thöù töï ñòmh saún. Chuùng coù moät ngoõ vaøo, hai hay nhieàu ngoõ ra. Cuù phaùp cuï theå bieåu dieãn ôû beân döôùi, töø khoaù buf, not.

1. Cuù phaùp:

Teân töø khoùa coång _teân (output_1, output_2, …, output_N, input);

2. Ví duï:

Not #(5) not_1( a,c); // sau 5 ñôn vò thôøi gian thì a = ñaûo c

Buf c1 (o, p, q, r, in); // boä ñeäm 5 ngoõ ra vaø 2 ngoõ ra

c2 (p, f, g);

Page 199: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 6

Chöông IV

CAÙC DAÏNG DÖÕ LIEÄU I. Ñaët giaù trò:

Verilog bao goàm 4 giaù trò cô baûn. Haàu heát caùc daïng döõ lieäu Verilog chöùa caùc giaù trò sau:

0: möùc logic 0, hoaëc ñieàu kieän sai.

1: möùc logic 1, hoaëc ñieàu kieän ñuùng.

X: möùc logic tuyø ñònh

Z: traïng thaùi toång trôû cao.

X vaø Z duøng coù giôùi haïn trong toång hôïp (synthesis)

II. Wire:

Moâ taû vaät lieäu ñöôøng daây daãn trong moät maïch ñieän vaø ñöôïc duøng ñeå keát noái caùc coång hay caùc module. Giaù trò cuûa Wire coù theå ñoïc, nhöng khoâng ñöôïc gaùn trong haøm (function) hoaëc khoái (block). Wire khoâng löu tröõ giaù trò cuûa noù nhöng vaãn phaûi ñöôïc thöïc thi bôûi 1 leänh gaùn keá tieáp hay bôûi söï keát noái Wire vôùi ngoõ ra cuûa 1 coång hoaëc 1 module. Nhöõng daïng ñaëc bieät khaùc cuûa Wire:

Wand(wired_and): giaù trò phuï thuoäc vaøo möùc logic And toaøn boä boä ñieàu khieån keát noái ñeán Wire.

Wor (wired_or): giaù trò phuï thuoäc vaøo möùc logic Or toaøn boä boä ñieàu khieån keát noái ñeán Wire.

Tri(three_state): taát caû boä ñieàu khieån keát noái ñeán 1 tri phaûi ôû traïng thaùi toång trôû cao.

1. Cuù phaùp:

Wire [msb:lsb] teân bieán wire.

Wand [msb:lsb] teân bieán wand.

Wor [msb:lsb] teân bieán wor.

Tri [msb:lsb] teân bieán tri.

2. Ví duï:

Page 200: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 7

Wire c;

Wand d;

Assign d= a;

Assign d= b;// giaù trò d laø möùc logic cuûa pheùp And a vaø b.

Wire [9:0] A; // vectô A coù 10 wire.

III. Reg:

Reg (register) laø moät ñoái töôïng döõ lieäu maø noù chöùa giaù trò töø moät thuû tuïc gaùn keá tieáp. Chuùng chæ ñöôïc duøng trong haøm vaø khoái thuû tuïc. Reg laø moät loaïi bieán Verilog vaø khoâng nhaát thieát laø thanh ghi töï nhieân. Trong thanh ghi nhieàu bit, data ñöôïc löu tröõ baèng nhöõng chöõ soá khoâng daáu vaø khoâng coù kí hieäu ñuoâi môû roäng, ñöôïc thöïc hieän maø ngöôøi söû duïng coù chuû y ùlaø soá buø hai.

1. Cuù phaùp:

Reg [msb:lsb] teân bieán reg.

2. Ví duï:

Reg a; // bieán thanh ghi ñôn giaûn 1 bit.

Reg [7:0] A; // moät vectô 8 bit; moät bank cuûa 8 thanh ghi.

Reg [5:0]b, c; // hai bieán thanh ghi 6 bit.

IV. Input, Output, Inout:

Nhöõng töø khoaù naøy bieåu thò ngoõ vaøo, ngoõ ra, vaø port hai chieàu cuûa moät module hoaëc task. Moät port ngoõ ra coù theå ñöôïc caáu hình töø caùc daïng: wire, reg, wand, wor, hoaëc tri. Maëc ñònh laø wire.

1. Cuù phaùp:

Input [msb:lsb] port ngoõ vaøo.

Output [msb:lsb] port ngoõ ra.

Inout [msb:lsb] port ngoõ vaøo,ra hai chieàu.

2. Ví duï:

Module sample (b, e, c, a);

Input a; // moät ngoõ vaøo maëc ñònh laø kieåu wire.

Output b, e; // hai ngoõ ra maëc ñònh laø kieåu wire.

Output [1:0] c; /* ngoõ ra hai bit, phaûi ñöôïc khai baùotrong moät leänh rieâng*/

Reg [1:0] c; // ngoõ c ñöôïc khai baùo nhö moät reg.

Page 201: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 8

V. Integer (Soá nguyeân):

Integer laø moät bieán ña naêng. Trong toång hôïp chuùng ñöôïc duøng chuû yeáu cho voøng laëp, tham soá, vaø haèng soá. Chuùng hoaøn toaøn laø reg. Tuy nhieâu chuùng chöùa döõ lieäu baèng nhöõng soá coù daáu, trong khi ñoù khai baùo daïng reg chöùa chung baèng soá khoâng daáu. Neáu chuùng chöùa nhöõng soá maø khoâng ñònh nghóa thôøi gian bieân dòch thì kích thöôùc maëc ñònh laø 32 bit. Neáu chuùng chöùa haèng, söï toång hôïp ñieàu chænh caùc soá coù kích thöôùc nhoû nhaát caàn thieát cho söï bieân dòch.

1. Cuù phaùp:

Integer teân bieán nguyeân;

…teân haèng nguyeân…;

2. Ví duï:

Integer a; // soá nguyeân ñôn giaûn 32bit.

Assign b= 63; // maëc ñònh laø moät bieán 7 bit.

VI. Supply 0, Supply1:

Xaùc ñònh choå ñöôøng daãn leân möùc logic 0 ( ñaát), logic 1( nguoàn) theo thöù töï ñònh saün.

VII. Time:

Time laø moät löôïng 64 bit maø ñöôïc söû duïng cuøng vôùi $time, heä thoáng thao taùc chöùa löôïng thôøi gian moâ phoûng. Time khoâng ñöôïc hoã trôï toång hôïp vaø vì theá chæ ñöôïc duøng trong muïc ñích moâ phoûng.

1. Cuù phaùp:

Time bieán time;

2. Ví duï:

Time c;

c = $time; // c = thôøi gian moâ phoûng doøng ñieän.

VIII. Parameter (Tham soá):

Moät Parameter xaùc ñònh 1 haèng soá maø ñöôïc ñaët khi baïn cho ví duï cuï theå laø moät module. Caùc naøy cho pheùp ta coù theå söûa chöõa.

1. Cuù phaùp:

Parameter par_1= gaùi trò, par_2= gaùi trò, …;

Parameter [giôùi haïn] par_3 = giaù trò;

2. Ví duï:

Page 202: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 9

Parameter add = 2b’00, sub = 3b’111;

Parameter n = 4;

Parameter [3:0] par_2 = 4b’1010;

reg [n-1:0] harry;// moät thanh ghi 4 bít maø ñoä roäng ñöôïc ñaët bôûi tham soá n ôû treân.

always @(x)

y = (add - sub) x

if (x) begin

state = par_2[1];

else

state =par_2[2];

end.

Page 203: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 10

ChöôngV TOAÙN TÖÛ

I. Toaùn töû soá hoïc:

Nhöõng toaùn töû naøy thöïc hieän caùc pheùp tính soá hoïc. Daáu ’+’ vaø ’-’ coù theå ñöôïc söû duïng moät trong hai toaùn töû ñôn (-z) hoaëc keùp (x - y).

1. Toaùn töû:

+, -, *, /, %.

2. Ví duï:

parameter n = 4;

Reg[3:0] a, c, f, g, count;

f= a +c;

g= c –n;

count = (count +1) % 16; // coù theå ñeám töø 0 ñeán 15.

II. Toaùn töû quan heä:

Toaùn töû quan heä so saùnh hai toaùn haïng vaø traû veà moät ñôn bit laø 0 hoaëc 1. Nhöõng toaùn töû naøy toång hôïp vaøo duïng cuï so saùnh. Bieán Wire vaø Reg laø nhöõng bieán döông. Vì theá, (-3b001) = (3b111) vaø (-3b001) > ( 3b110) nhöng neáu laø soá nguyeân thì -1< 6.

1. Caùc toaùn töû quan heä:

<, <=, >, >=, = =, !=.

2. Ví duï:

If (x= =y) e =1;

Else e= 0;

// so saùnh hai vector a, b

reg [3:0] a, b;

if (a[3] = =b [3]) a[2:0] >b[2:0];

else b[3];

Page 204: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 11

III. Toaùn töû bit_wire:

So saùnh töøng bit hai toaùn toaùn haïng.

1. Caùc toaùn töû:

~ (bitwire NOT), & (bitwire AND), | (bitwire OR), ^ (bitwire XOR), ~^ hoaëc ^~ (bitwire XNOR).

2. Ví duï:

Module and2(a, b, c);

Input [1:0] a, b;

Output [1:0] c;

Assign c = a & b;

Endmodule

IV. Toaùn töû logic:

Toaùn töû logic traû veà 1 bit ñôn 0 hoaëc 1. chuùng gioáng nhö toaùn töû bitwire chæ laø nhöõng toaùn haïng ñôn bit. Chuùng coù theå laøm vieäc treân bieåu thöùc, soá nguyeân hoaïc nhoùm bit, vaø coi nhu taát caû caùc giaù trò khoâng baèng 0 laø ’1’. Toaùn töû logic ñöôïc duøng nhieàu trong leänh ñieàu kieän (if… else), khi chuùng laøm vieäc treân bieåu thöùc.

1. Toaùn töû:

!(NOT), && (AND), || (OR)

2. Ví duï:

Wire [7:0] x, y, z;

Reg a;

if ((x= = y)&&(z)) a=1;

else a=! x;

V. Toaùn töû bieán ñoåi:

Coù taùc duïng treân taát caû caùc bit cuûa moät vectô toaùn haïng vaø traû veà giaù trò ñôn bit. Nhöõng toaùn töû naøy laø hình thöùc töï ñoåi soá cuûa caùc toaùn töû bitwire ôû treân.

1. Caùc toaùn töû:

~ (bieán ñoåi NOT), & (bieán ñoåi AND), ~&( bieán ñoåi NAND), | (bieán ñoåi OR), ~| (bieán ñoåi NOR), ^ (bieán ñoåi XOR), ~^ hoaëc ^~ (bieán ñoåi XNOR).

2. Ví duï:

Page 205: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 12

Module chk_zero (a,z);

Input [2:0] a;

Output z;

Assign z = ~| a;

Endmodule

VI. Toaùn töû gheùp:

Dòch toaùn töû ñaàu baèng chöõ soá cuûa caùc bit ñöôïc ñònh nghóa bôûi toaùn töû thou hai. Vò trí coøn troáng seõ ñöôïc ñieàn vaøo vôùi nhöõng soá 0 cho caû hai tröôøng hôïp dòch traùi hoaëc phaûi.

1. Toaùn töû:

<< ( dòch traùi), >> (dòch phaûi).

2. Ví duï:

assign c = a<<2; c = a dòch traùi 2 bit caùc choã troáng ñöôïc ñieàn vôùi nhöõng soá 0.

VII. Toaùn töû dòch:

Gheùp hai hoaëc nhieàu toaùn haïng thaønh moät vectô lôùn.

1. Toaùn töû:

(concatenation)

2. Ví duï:

Wire [1:0] a, b;

Wire [2:0] x;

Wire [3:0] y, Z;

Assign x = 1’b0, a; // x[2] = 0, x[1] = a[1], x[0] = a[0].

Assign y = a, b; // y[3]= a[1], y[2] = a[0], y[1] = b[1], y[0] = b[0].

VIII. Toaùn töû thöù baûn:

Taïo ra nhieàu baûn sao cuûa moät muïc choïn.

1. Toaùn töû:

n muïc choïn n nhoùm thöù baûn trong moät muïc choïn.

2. Ví duï:

Wire [1:0] a, b;

Wire [3:0] x;

Page 206: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 13

Assign x = 21’b0,a; // x= 0, 0, a.

IX. Toaùn töû ñieàu kieän:

Gioáng nhö C/C++. Chuùng ñònh giaù moät trong hai bieåu thöùc cô baûn trong moät ñieàu kieän. Noù seõ toång hôïp thaønh boä ña coäng (MUX).

1. Toaùn töû :

(ñieàu kieän)? keát quaû khi ñieàu kieän ñuùng : keát quaû khi ñieàu kieän sai.

2. Ví duï:

assign a = (g) ? x : y;

Assign a = ( inc = =2) ? a+1: a-1;

X. Thöù töï toaùn töû:

Nhöõng toaùn töû trong möùc gioáng nhau ñònh giaù töø traùi sang phaûi

Toaùn töû Teân

[ ] Choïn bit, choïn phaàn

( ) Phaàn trong ngoaëc ñôn

!, ~ Möùc logic vaø bit_wire NOT

&, |, ~&, ~|, ^, ~^ Bieán ñoåi: AND, OR, NAND, NOT, XOR, XNOR.

+, - Daáu chæ soá aâm soá döông.

Gheùp noái 3’b101,3’b110 = 6’b101110

Thöù baûn 33’b101 =9’b101101101

*, /, % Nhaân, chia, phaàn traêm.

+, - Coäng tröø nhò phaân.

<<, >> Dòch traùi, phaûi.

<, <=, >, >= Daáu so saùnh. Bieán Reg vaø wire ñöôïc laáy baèng nhöõng soá döông.

= =, != Baèng vaø khoâng baèng trong toaùn töû logic.

& Bit_wire AND, and taát caû caùc bit vôùi nhau.

^, ~^ Bit_wire XOR, Bit_wire XNOR.

| Bit_wire OR.

&&, || Toaùn töû logic AND, OR.

?: x = ( ñieàu kieän ) T:F

Page 207: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 14

Chöông VI

TOAÙN HAÏNG I. Literals (daïng kí töï):

Laø toaùn haïng coù giaù trò khoâng ñoåi maø ñöôïc duøng trong bieåu thöùc Verilog. Coù hai daïng kí töï laø:

Chuoãi: laø moät maûng coù nhieàu kí töï ñöôïc ñaët trong daáu ””.

Chöõ soá: laø nhöõng soá khoâng ñoåi, nhò phaân, baùt phaân, thaäp phaân, hoaëc soá hex.

1. Cuù phaùp caùc chöõ soá:

n’F dddd…

Trong ñoù:

n : soá nguyeân mieâu taû soá bit.

F: moät trong boán ñònh daïng sau: b( soá nhò phaân), o( soá baùt phaân), d( soá thaäp phaân), h( soá hex).

2. Ví duï:

“time is”// chuoãi kí töï.

267 // maëc ñònh 32 bit soá thaäp phaân.

2’b01 // 2 bit nhò phaân.

20’h B36E // 20 bit soá hex.

‘o62 // 32 bit baùt phaân.

II. Choïn 1 phaàn töû bit vaø choïn 1 phaàn caùc bit.

Ñaây laø söï löïa choïn moät bít ñôn hoaëc moät nhoùm bit theo thöù töï, töø moät wire, reg hoaëc töø tham soá ñaët trong ngoaïc [ ]. Choïn 1 phaàn töû bit vaø choïn 1 phaàn caùc bit coù theå ñöôïc duøng nhö laø caùc toaùn haïng trong bieåu thöùc baèng nhieàu caùch thöùc gioáng nhau maø caùc ñoái töôïng döõ lieäu goác ñöôïc duøng.

1. Cuù phaùp:

Teân bieán [ thöù töï bit].

Teân bieán [ msb: lsb].

2. Ví duï:

Page 208: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 15

Reg [7:0] a, b;

Reg [3:0] ls;

c = a[7] & b[7];

ls = a[7:4] + b[3:0];

III. Goïi haøm chöùc naêng:

Giaù trò traû veà cuûa moät haøm coù theå ñöôïc duøng tröïc tieáp trong bieåu thöùc maø khoâng caàn gaùn tröôùc cho bieán reg hoaëc wire. Goïi haøm chöùc naêng nhö laø moät trong nhöõng toaùn haïng. Chieàu roäng bít cuûa giaù trò traû veà chaéc chaén ñöôïc bieát tröôùc.

1. Cuù phaùp:

Teân haøm(danh saùch bieán).

2. Ví duï:

Assign a = b & c & chk_bc(b, c);

Function chk_bc;

Input c, b;

Chk_bc = b^ c;

Endfunction

IV. Wire, reg, vaø tham soá:

Wire, reg, vaø tham soá coù theå ñuôïc duøng nhö laø caùc toaùn haïng trong bieåu thöùc Verilog.

Page 209: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 16

Chöông VII

MODULES

I. Khai baùo modules:

Moät module laø baûn thieát keá chuû yeáu toàn taïi trong Verilog. Doøng ñaàu tieân cuûa khai baùo module chæ roõ danh saùch teân vaø port (caùc ñoái soá). Nhöõng doøng keá tieáp chæ roõ daïng I/O (input, output, hoaëc inout) vaø chieàu roäng cuûa moãi port. Maëc ñònh chieàu roäng port laø 1 bit.

Sau ñoù, nhöõng bieán port phaûi ñöôïc khai baùo wire, wand, …, reg. Maëc ñònh laø wire. Nhöõng ngoõ vaøo ñaëc tröng laø wire khi döõ lieäu ñöôïc choát bean ngoaøi module. Caùc ngoõ ra laø daïng reg neáu nhöõng tín hieäu cuûa chuùng ñöôïc chöùa trong khoái always hoaëc initial.

1. Cuù phaùp:

Module teân module (danh saùch port);

Input [msb:lsb] danh saùch port ngoõ vaøo;

Output [msb:lsb] danh saùch port ngoõ ra;

Inout [ msb:lsb ] danh saùch port vaøo_ ra;

… caùc leänh…

endmodule

2. Ví duï:

Module add_sub(add, in1, in2, out);

Wire, reg, vaø tham soá:

Input[7:0 ] in1, in2;

Wire in1, in2;

Output [7:0] out;

Reg out;

… caùc leänh khaùc…

Endmodule

Page 210: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 17

II. Chæ ñònh lieân tieáp:

Caùc chæ ñònh lieân tieáp ñöôïc duøng ñeå gaùn moät giaù trò leân treân moät wire trong moät module. Ñoù laø caùc chæ ñònh thoâng thöôøng beân ngoaøi khoái always hoaëc khoái initial. Caùc chæ ñònh lieân tieáp ñöôïc thöïc hieän vôùi moät leänh gaùn (assign) roõ raøng hoaëc baèng söï chæ ñònh moät giaù trò ñeán moät wire trong luùc khai baùo. Chuù yù raèng, caùc leänh chæ ñònh lieân tieáp thì toàn taïi vaø ñöôïc chaïy lieân tuïc trong suoát quaù trình moâ phoûng. Thöù töï caùc leänh gaùn khoâng quan troïng. Moïi thay ñoåi beân phaûi cuûa baát cöù ngoõ vaøo seõ laäp töùc thay ñoåi beân traùi cuûa caùc ngoõ ra.

1. Cuù phaùp:

Wire bieán wire = giaù trò;

Assign bieán wire = bieåu thöùc;

2. Ví duï:

Wire [ 1:0 ] a = 2’b 01;

Assign b = c &d;

Assign d = x | y;

III. Module instantiations:

Nhöõng khai baùo module laø nhöõng khuoân maãu maø noù ñöôïc taïo neân töø caùc ñoái töôïng thöïc teá ( instantiation). Caùc module ñôn cöû beân trong caùc module khaùc, vaø moãi daãn chöùng taïo moät ñoái töôïng ñoäc nhaát töø khuoân maãu. Ngoaïi tröø ñoù laø module möùc treân laø nhöõng daãn chöùng töø chính chuùng.

Caùc port cuûa module ví duï phaûi thoûa nhöõng dònh nghóa trong khuoân maãu. Ñaây laø maët lyù thuyeát: baèng teân, söû duïng daáu chaám(.) ”.teân port khuoân maãu ( teân cuûa wire keát noái ñeán port)”. Baèng vò trí, ñaët nhöõng port ôû nhöõng vò trí gioáng nhau trong danh saùch port cuûa caû khuoân maãu laãn instance.

1. Cuù phaùp:

Teân instance1 (danh saùch keát noái port );

Teân instance2(danh saùch keát noái port);

2. Ví duï:

// ñònh nghóa module

module and4(a,b,c);

input [3:0]a,b;

output [3:0]c;

Page 211: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 18

assign c = a&b;

endmodule

// module instantiations

wire [3:0] in1, in2;

wire [3:0] o1, o2;

// ñaët vò trí

and4 C1(in1, in2,o1);

// teân

and4 C2(.c(o2), .a(in1), .b(in2));

Page 212: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 19

Chöông VIII

KHUOÂN MAÃU HAØNH VI (BEHAVIORAL)

Verilog coù 4 möùc khuoân maãu:

• Chuyeån maïch. Khoâng ñöôïc ñeà caäp ñeán ôû ñaây.

• Coång.

• Möùc traøn döõ lieäu.

• Haønh vi hoaëc thuû tuïc ñöôïc ñeà caäp ôû beân döôùi

Caùc leänh thuû tuïc Verilog ñöôïc duøng taïo moät maãu thieát keá ôû möùc cao hôn. Chuùng chæ ra nhöõng caùch thöùc maïnh cuûa veäc laøm ra nhöõng thieát keá phöùc taïp. Tuy nhieân, nhöõng thay ñoåi nhoû n phöông phaùp maõ hoùa coù theå gay ra bieán ñoåi lôùn trong phaàn cöùng. Caùc leänh thuû tuïc chæ coù theå ñöôïc duøng trong nhöõng thuû tuïc.

I. Nhöõng chæ ñònh theo thuû tuïc:

Laø nhöõng chæ ñònh duøng trong phaïm vi thuû tuïc Verilog (khoái always vaø initial). Chæ bieán reg vaø integers (vaø choïn ñôn bit/ nhoùm bit cuûa chuùng, vaø keát noái thoâng tin) coù theå ñöôïc ñaët beân traùi daáu ‘=’ trong thuû tuïc. Beân phaûi cuûa chæ ñònh laø moät bieåu thöùc maø coù theå duøng baát cöù daïng toaùn töû naøo.

II. Delay trong chæ ñònh:

Trong chæ ñònh treã ∆t laø khoaûng thôøi gian traûi qua tröôùc khi moät leänh ñöôïc thöïc thi vaø beân traùi leänh gaùn ñöôïc taïo ra. Vôùi nhieàu chæ ñònh treã (intra-assignment delay), beân phaûi ñöôïc ñònh giaù trò tröïc tieáp nhöng coù moät delay cuûa ∆t tröôùc khi keát quaû ñöôïc ñaët beân traùi leänh gaùn. Neáu theâm moät quaù trình thay ñoåi nöõa caïnh beân phaûi tín hieäu trong khoaûng thôi gian ∆t,thì khoâng cho keát quaû ôû ngoõ ra. Delay khoâng ñöôïc hoã trôï bôûi caùc coâng cuï.

1. Cuù phaùp chæ ñònh thuû tuïc:

Bieán = bieåu thöùc;

Chæ dònh treã:

Page 213: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 20

#∆t bieán = bieåu thöùc;

intra_assignment delay:

bieán = #∆t bieåu thöùc.

2. Ví duï:

Reg [6:0] sum; reg h, zilch;

Sum[7] = b[7]^c[7]; // thöïc thi töùc thôøi;

Ziltch = #15 ckz & h; // ckz & h ñònh giaù trò töùc thôøi; ziltch thay ñoåi sau 15 ñôn vò thôøi gian.

#10 hat = b & c;/* 10 ñôn vò thôøi gian sau khi ziltch thay ñoåi, b & c ñöôïc ñònh giaù vaø hat thay ñoåi*/

III. Chæ ñònh khoái:

Chæ ñònh khoái (=) thöïc hieän lieân tuïc trong thöù töï leänh ñaõ ñöôïc vieát. Chæ ñònh thöù hai khoâng ñöôïc thöïc thi neáu nhö chæ ñònh ñaàu cho hoaøn thaønh.

1. Cuù phaùp:

Bieán = bieåu thöùc;

Bieán = #∆t bieåu thöùc;

#∆t bieán = bieåu thöùc;

2. Ví duï:

Initial

Begin

a = 1; b = 2; c = 3;

#5 a = b + c; // sau 5 ñôn vò thôøi gian thöïc hieän a = b + c = 5.

d = a; // d = a = 5.

Always @(posedge clk)

Begin

Z = Y; Y = X; // thanh ghi dòch.

y = x; z = y; // flip flop song song.

IV. Begin …end:

Leänh khoái begin … end ñöôïc duøng ñeå nhoùm moät vaøi leänh maø moät leänh cuù phaùp ñöôïc cho pheùp. Bao goàm function, khoái always vaø khoái initial. Nhöõng khoái naøy coù theå ñöôïc tuøy yù goïi teân. Vaø bao goàm khai baùo reg, integer, tham soá.

Page 214: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 21

1. Cuù phaùp:

Begin: teân khoái

Reg[msb:lsb] danh saùch bieán reg;

Integer [msb:lsb] danh saùch integer;

Parameter [msb:lsb] danh saùch tham soá;

…caùc leänh…

End

2. Ví duï:

function trivial_one;// teân khoái laø: trivial_one

input a;

begin: adder_blk

integer i;

… leänh…

end

V. Voøng laëp for:

Gioáng nhö c/c++ ñöôïc duøng ñeå thöïc hieän nhieàu laàn moät leänh hoaëc khoái leänh. Neáu trong voøng laëp chæ chöùa moät leänh thì khoái begin … end coù theå boû qua.

1. Cuù phaùp:

For (bieán ñeám = giaù trò 1; bieán ñeám </ <=/ >/ >= giaù trò 2;

bieán ñeám = bieán ñeám +/- giaù trò)

begin

… leänh …

end

2. Ví duï:

For (j = 0; j<=7; j = j+1)

Begin

c[j] = a[j] & b[j];

d[j] = a[j] | b[j];

end

VI. Voøng laëp while:

Page 215: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 22

Voøng laëp while thöïc hieän nhieàu laàn moät leänh hoaëc khoái leänh cho ñeán khi bieåu thöùc trong leänh while ñònh giaù laø sai.

1. Cuù phaùp:

While (bieåu thöùc)

Begin

… caùc leänh…

end

2. Ví duï:

While (!overflow)

@(posedge clk);

a = a +1;

end

VII. Khoái leänh if… else if… else:

Thöïc hieän moät leänh hoaëc moät khoái leänh phuï thuoäc vaøo keát quaû cuûa bieåu thöùc theo sau meänh ñeà if.

Cuù phaùp

If (bieåu thöùc)

Begin

… caùc leänh…

end

else if (bieåu thöùc)

Begin

… caùc leänh…

end

else

Begin

… caùc leänh…

end

VIII. Case:

Leänh case cho pheùp löïa choïn tröôøng hôïp. Caùc leäng trong khoái default thöïc thi khi khoâng coù tröôøng hôïp löïa choïn so saùnh gioáng nhau. Neáu khoâng coù söï so

Page 216: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 23

saùnh, bao goàm caû default, laø ñuùng, söï toång hôïp seõ taïo ra choát khoâng mong muoán.

1. Cuù phaùp:

Case (bieåu thöùc)

Case 1:

Begin

… caùc leänh…

end

Case 2:

Begin

… caùc leänh…

end

Case 3:

Begin

… caùc leänh…

end

default:

begin

… caùc leänh…

end

endcase

2. Ví duï:

Case (alu_clk)

2’b00: aluout = a + b;

2’b01: aluout = a - b;

2’b10: aluout = a & b;

default:

aluout = 1’bx;

endcase

Page 217: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 24

Chöông IX

KHOÁI ALWAYS VAØ KHOÁI INITIAL

I. Khoái always:

Laø caáu truùc chín trong khuoân maãu RTL (Register Transfer Level). Gioáng chæ ñònh lieân tuïc, ñaây laø traïng thaùi toàn taïi maø ñöôïc thöïc thi lieân tuïc trong khi moâ phoûng. Caùi naøy cuõng coù nghóa laø taát caû caùc khoái always trong moät module thöïc thi moät caùch lieân tuïc. Khoái always coù theå ñöôïc duøng trong choát, flip flop hay caùc keát noái logic. Neáu caùc leänh cuûa khoái always naèm trong phaïm vi khoái begin… end thì ñöôïc thöïc thi lieân tuïc, neáu naèm trong khoái fort… join, chuùng ñöôïc thöïc thi ñoàng thôøi (chæ trong moâ phoûng).

Khoái always thöïc hieän baèng möùc, caïnh leân hoaëc caïnh xuoáng cuûa moät hay nhieàu tín hieäu (caùc tín hieäu caùch nhau bôûi töø khoùa OR).

Cuù phaùp:

Always @(söï kieän 1 or söï kieän 2 or…)

Begin

… caùc leänh…

end

Always @(söï kieän 1 or söï kieän 2 or…)

Begin: teân khoái

… caùc leänh…

end

II. Khoái initial

Gioáng nhö khoái always nhöng khoái initial chæ thöïc thi moät laàn töø luùc baét d8aàu cuûa quaù trình moâ phoûng. Khoái naøy thì tieâu bieåu ñeå bieán khôûi chaïy vaø chæ ñònh daïng soùng tín hieäu trong luùc moâ phoûng.

Page 218: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 25

1. Cuù phaùp:

Initial

Begin

… caùc leänh…

end

2. Ví duï:

Initial

Begin

Clr = 0;

Clk = 1;

End

Initial

Begin

a = 2’b00;

#50 a = 2’b01;

#50 a = 2’b10;

end

Page 219: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 26

Chöông X

HAØM

Haøm ñöôïc khai baùo trong phaïm vi moät module, vaø coù theå ñöôïc goïi töø nhöõng leänh lieân tuïc, khoái always, hoaëc nhöõng haøm khaùc. Trong leänh chæ ñònh lieân tuïc, cuùng ñöôïc chæ ñònh lieân tuïc khi baát kì caùc haøm khai baùo ngoõ vaøo thay ñoåi. Trong chöông trinh chuùng ñöôïc chæ dòng tôùi khi caàn goïi.

Caùc haøm moâ taû söï keát noái logic, vaø khoâng taïo ra choát. Do ñoù moät leänh if maø khoâng else se moâ phoûng , maëc duø noù coù choát döõ lieäu nhöng moâ phoûng thì khoâng coù. Ñaây laø tröôøng hôïp dôû cuûa toång hôïp khoâng coù moâ phoûng theo sau. Ñaây laø khaùi nieäm toát ñeå maõ hoùa haøm, vì vaäy chuùng seõ khoâng taïo ra choát neáu maõ haøm ñöôïc duøng trong moät chöông trình.

I. Khai baùo haøm:

Khai baùo haøm laø chæ ra teân haøm, chieàu roäng cuûa haøm giaù trò traû veà, ñoái soá haøm döõ lieäu vaøo, caùc bieán (reg) duøng trong haøm, vaø tham soá cuïc boä cuûa haøm, soá nguyeân cuûa haøm.

1. Cuù phaùp:

Function [msb:lsb] teân haøm;

Input [msb:lsb]bieán vaøo;

Reg [msb:lsb]bieán reg;

Parameter [msb:lsb] tham soá;

Integer [msb:lsb] soá nguyeân;

… caùc leänh…

endfunction

2. Ví duï

Function [7:0] my_func; // haøm traû veà giaù trò 8 bit

Input [7:0] i;

Reg [4:0] temp;

Integer n;

Page 220: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 27

temp = i[7:4]| (i[3:0]);

my_func = temp,i[1:0];

endfunction

II. Ví duï:

Moät haøm chæ coù chöùa moät döõ lieäu ra. Neáu coù nhieàu hôn moät giaù trò traû veà ñöôïc yeâu caàu, ngoõ ra seõ phaûi keát noái taïo thaønh moät vector tröôùc khi ñaët giaù trò cho haøm ñeå goïi teân haøm. Goïi teân chöông trình module coù theå trích ra sau ñoù, rieâng ñoái vôùi ngoõ ra töø caùc bieåu maåu noái vaøo nhau. Ví duï döôùi ñaây minh hoïa toång quaùt caùch duøng vaø cuù phaùp haøm trong verilog.

1. Cuù phaùp:

Teân haøm = bieåu thöùc.

2. Ví duï:

Module simple_processor (instruction, outp);

Input [31:0] instruction;

Output [7:0] outp;

Reg [7:0] outp;// coù theå ñöôïc gaùn trong khoái always.

Reg func;

Reg [7:0] opr1, opr2;

Function[16:0] decode add(instr)

Input [31:0] instr;

Reg add_func;

Reg [7:0] opcode, opr1, opr2;

Begin

Opcode = instr[31:24];

Opr1 = instr[7:0];

Case (opcode)

8’b 10001000:

begin

add_func = 1;

opr2 = instr[15:8];

end

Page 221: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 28

8’b 10001001:

begin

add_func = 0;

opr2 = instr[15:8];

end

8’b 10001010: begin

add_func = 1;

opr2 = 8’b 00000001;

end

default: begin

add_func = 0;

opr2 = 8’b00000001;

end

endcase

decode_add = add_func, opr2, opr1;

end

endfunction

always @(intruction) begin

func, opr2, opr1= decode_add (intruction);

if (func= =1)

outp = opr1+ opr2;

else

outp = opr1 – opr2;

end

endmodule

Page 222: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 29

Chöông XI CHÖÙC NAÊNG LINH KIEÄN Choát döõ lieäu (latches): ñöôïc suy neáu moät bieán, moät trong caùc bit khoâng ñöôïc gaùn trong caùc nhaùnh cuûa moät leänh if. Choát döõ lieäu cuõng ñöôïc suy ra töø leänh case neáu moät bieán ñöôïc gaùn chæ trong moät vaøi nhaùnh.

Hoaøn thieän maõ coù theå ñoïc ñöôïc duøng leänh if ñeå toång hôïp choát vì thaät khoù ñeå chæ ñònh roõ raøng. Theo lyù thuyeát, moät söï xaùc laäp hôïp lí neân ñöôïc suy ra töø maõ Verilog.

Cuù phaùp:

If… else if… else vaø case.

I. Thanh ghi Edge_triggered, flip_flop, boä ñeám:

Moät thanh ghi (flip_flop) ñöôïc suy luaän baèng vieäc duøng xung kích caïnh leân hoaëc xuoáng trong danh saùch söï kieän cuûa leänh khoái always.

Cuù phaùp:

Always @(posedge clk or posedge reset1 or nesedge reset2)

Begin

If (reset1) begin

Caùc chæ ñònh reset

end

else if (reset2) begin

Caùc chæ ñònh reset

End

Else begin

Caùc chæ ñònh reset

End

II. Boä ña coäng:

Ñöôïc suy ra bôûi vieäc gaùn moät bieán maø giaù trò moãi bieán khaùc nhau trong moûi nhaùnh cuûa leänh if hoaëc case. Coù theå traùnh caùc chæ ñònh vaø moïi nhaùnh coù theå

Page 223: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 30

toàn taïi baèng vieäc söû duïng ngoaøi nhöõng nhaùnh maëc ñònh. Chuù yù raèng choát seõ ñöôïc taïo ra neáu moät bieán khoâng ñöôïc gaùn cho caùc ñieàu kieän nhaùnh coù theå toàn taïi.

Ñeå hoaøn thieän maõ coù theå ñoïc ñöôïc, duøng leänh case ñeå taïo maãu ña coäng lôùn.

III. Boä coäng, tröø:

Toaùn töû coäng tröø trong boä coäng tröø maø coù chieàu roäng phuï thuoäc vaøo chieàu roäg cuûa toaùn töû lôùn hôn.

IV. Boä ñeäm 3 traïng thaùi:

Boä ñeäm ba traïng thaùi ñöôïc suy ra neáu bieán ñöôïc gaùn theo ñieàu kieän giaù trò toång trôû cao Z duøng moät trong caùc toaùn töû: if, case,…

V. Caùc linh kieän khaùc:

Haàu heát caùc coång logic ñöôïc suy ra töø vieäc duøng nhöõng toaùn haïng töông öùng cuûa chuùng. Nhö moät söï löïa choïn moät coång hoaëc moät thaønh phaàn coù theå ñöôïc giaûi thích roõ raøng baèng ví duï cuï theå vaø söû duïng caùc coång cô sôû (and, or, nor, inv…) mieãn laø baèng ngoân ngöõ Verilog.

Page 224: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 31

Chöông XII

MOÄT SOÁ VÍ DUÏ

I. Caáu truùc moät chöông trình duøng ngoân ngöõ Verilog:

// Khai baùo module Module teân chöông trình (teân bieán I/O); // teân chöông trình truøng teân file.v. Input [msb:lsb] bieán; Output [msb:lsb] bieán; Reg [msb:lsb] bieán reg; Wire [msb: lsb] bieán wire; // Khai baùo khoái always, hoaëc khoái initial. … caùc leänh …

Endmodule

II. Moät soá ví duï:

Phaàn meàn hoã trôï: MAX+plusII 10.0 BASELINE

1. Ví duï 1:

a. Chöông trình tính NOR caùc bit cuûa bieán vaøo

module vdcong(in,out); input[3:0] in; output out;

assign out= ~|in;

endmodule

Page 225: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 32

b. Moâ phoûng

2. Ví duï 2:

a. Chöông trình coäng hai bieán boán bit

module adder (sum_out, carry_out, carry_in, ina, inb); output [3:0]sum_out; input [3:0]ina, inb; output carry_out; input carry_in; wire carry_out, carry_in; wire[3:0] sum_out, ina, inb; assign

carry_out, sum_out = ina + inb + carry_in;

Endmodule

Page 226: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 33

b. Moâ phoûng

3. Ví duï 3:

a. Chöông trình giaûi maõ 2 sang 4

module dec2to4 (w, en, y); input [1:0] w; input en; output[3:0] y; wire[1:0]w; reg[3:0]y; wire en; always @(w or en) begin if(en==1'b1) begin case(w)

2'b00: y<=4'b1000; 2'b01: y<=4'b0100; 2'b10: y<=4'b0010;

default:y<=4'b0001;

Page 227: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 34

endcase end else

y<= 4'b0000; end endmodule

b. Moâ phoûng

4. Ví duï 4:

a. Boä doàn keânh 2 sang 1

module mux12(w0, w1, s, y); input w0, w1; input s; output y; wire w0, w1, s; reg y;

Page 228: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 35

always @(w0 or w1 or s) begin if(s==1)

y = w0; else

y = w1; end endmodule

b. Moâ phoûng

5. Ví duï 5:

a. Chöông trình doàn keânh 4 sang 1

module mux14(w0, w1, w2, w3, s, y); input w0, w1, w2, w3; input[1:0] s; output y; wire w0, w1,w2,w3; reg y;

Page 229: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 36

always @(w0 or w1 or s) begin case (s)

2'b00: y=w0; 2'b01: y=w1; 2'b10: y=w2;

default: y = w3; endcase end endmodule

b. Moâ phoûng

6. Ví duï 6:

a. Chöông trình ñoåi BCD sang baûy ñoaïn

Module mp_led(bcd,led); input [3:0] bcd; output [7:0] led; wire [3:0] bcd;

Page 230: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 37

reg [7:0] led; always @(bcd) begin case(bcd) 4'b0000: led = 8'b00000011; 4'b0001: led = 8'b10011111; 4'b0010: led = 8'b00100101; 4'b0011: led = 8'b00001101; 4'b0100: led = 8'b10011001; 4'b0101: led = 8'b01001001; 4'b0110: led = 8'b01000001; 4'b0111: led = 8'b00011111; 4'b1000: led = 8'b00000001; 4'b1001: led = 8'b00001001; default: led = 8'b00000000; endcase end endmodule

b. Moâ phoûng

Page 231: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 38

7. Ví duï 7:

a. Chöông trình giaûm töø 9 xuoáng 0, hieån thò ra led 7 ñoaïn

module bcd (clock, rst, s1, led, digit1); input clock, s1, rst; output [7:0] led; output digit1; reg [7:0] led; reg [3:0] bcd; wire digit1; assign digit1 = 1'b1; always @(posedge clock ) begin if (rst == 1'b1) bcd <= 4'b1001; else if (s1 == 1'b1) bcd <= bcd - 1'b1; if (bcd == 4'b0) bcd <= 4'b1001; end always @(posedge clock) begin case(bcd) 4'b0000: led = 8'b11111100; 4'b0001: led = 8'b01100000; 4'b0010: led = 8'b11011010; 4'b0011: led = 8'b11110010; 4'b0100: led = 8'b01100110; 4'b0101: led = 8'b10110110; 4'b0110: led = 8'b10111110; 4'b0111: led = 8'b11100000; 4'b1000: led = 8'b11111110; 4'b1001: led = 8'b11100110; default: led = 8'b11111111; endcase end endmodule

Page 232: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 39

b. Moâ phoûng

8. Ví duï 8:

a. Chöông trình taêng töø 0 ñeán 9, hieån thò ra led 7 ñoaïn

module bcdtang (clock, rst, s1, led, digit1); input clock, s1, rst; output [7:0] led; output digit1; reg [7:0] led; reg [3:0] bcd; wire digit1; assign digit1 = 1'b1; always @(posedge clock ) begin if (rst == 1'b1) bcd <= 4'b0; else if (s1 == 1'b1) bcd <= bcd + 1'b1; if (bcd == 4'b1001) bcd <= 4'b0000; end

Page 233: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 40

always @(posedge clock) begin case(bcd) 4'b0000: led = 8'b11111100; 4'b0001: led = 8'b01100000; 4'b0010: led = 8'b11011010; 4'b0011: led = 8'b11110010; 4'b0100: led = 8'b01100110; 4'b0101: led = 8'b10110110; 4'b0110: led = 8'b10111110; 4'b0111: led = 8'b11100000; 4'b1000: led = 8'b11111110; 4'b1001: led = 8'b11100110; default: led = 8'b11111111; endcase end endmodule

b. Moâ phoûng

Page 234: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Toùm taét baøi giaûng TK Heä Thoáng Soá Phaàn Verilog

GV: Nguyeãn Troïng Haûi Trang 41

TAØI LIEÄU THAM KHAÛO

1. “Verilog Digital System Design” Zainalabedin Navadi Northeastern University University of Tehran

2. “Introduction of Verilog” Peter M. Nyasulu

3. “Cadence Verilog – XL Reference Manual”

4. “Synopsys HDL Compiler for Verilog Reference Manual”

5. Diglab 10K10 Mannual

Page 235: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ

THAØNH PHOÁ HOÀ CHÍ MINH

Ths. NGUYEÃN TROÏNG HAÛI

TOÙM TAÉT BAØI GIAÛNG

VHDL

Very High speed integrated circuit Description Language

LÖU HAØNH NOÄI BOÄ

07/2005

Page 236: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

VHDL Very High speed integrated circuit Description Language

I. CẤU TRÚC CỦA MỘT THIẾT KẾ DÙNG NGÔN NGỮ VHDL.

--------------------------------- -- Ghi chú ---------------------------------

PACKAGE library use ENTITY

ARCHITECTURE

CONFIGURATIONS

(Tùy chọn)

(Thư viện)

(Bắt buộc)

(Bắt buộc)

(Tùy chọn)

1. PACKAGE (KHỐI). Package là một vùng lưu trữ các dữ liệu để dùng chung cho các entity.

Mô tả dữ liệu bên trong một package cho phép được tham khảo bởi một entity khác, vì vậy dữ liệu có thể được dùng chung.

Một package bao gồm 2 phần: phần mô tả định nghĩa giao diện cho package, phần thân ấn định các hoạt động cụ thể của package.

Cú pháp khai báo khối được xác định là:

PACKAGE example_arithmetic IS -- các khai báo khối có thể chứa các khai báo sau: - Subprogram declaration. - Type, subtype declaration. - Constant, deferred constant declaration. - Signal declaration creates a global signal. - File declaration. - Alias declaration. - Attribute declaration, a user-define attribute. - Attribute specification. - Use clause.

END example_arithmetic;

Tất cả các đối tượng khai báo trong package có thể được truy xuất bởi bất kỳ một thiết kế nào đó bằng cách sử dụng mệnh đề use và khai báo library. library my_lib; use my_lib.example_arithmetic.all; Một số thư viện chuẩn

GV: Nguyễn Trọng Hải Trang 1

Page 237: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

library ieee; use ieee.std_logic_1164.all;

std_logic_1164: là thư viện logic chuẩn của IEEE (đoạn 1164), mục đích cung cấp các chuẩn cơ bản để có thể mô tả các kiểu dữ liệu kết nối trong VHDL.

std_logic_arith: là thư viện chứa tập các phép toán và hàm

Kiểu std_logic có thể có các giá trị U Uninitialized X Unknown 0 Zero 1 One Z Tristate (Must be upper case!) W Weak unknown L Weak Zero H Weak One - Don't care

Ngoài ra có thể tự tạo riêng các thư viện trong thiết kế.

2. ENTITY Khai báo entity chỉ dùng để mô tả ngõ vào và ngõ ra của một thiết kế. Mức cao nhất của bất kỳ một thiết kế VHDL là một khai báo entity đơn, khi thiết kế trong VHDL, tên của file lưu trữ phải trùng với tên theo sau của từ khóa entity.

Ví dụ, mô tả bộ cộng bán phần sau

X1

A1

A SUM

CARRYB

library ieee; use ieee.std_logic_1164.all; ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER;

GV: Nguyễn Trọng Hải Trang 2

Page 238: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Trong khai báo ENTITY, có 4 kiểu tín hiệu khác nhau:

• IN: mô tả các ngõ vào entity. Kiểu IN thì được sử dụng cho các ngõ vào clock, các ngõ vào điều khiển,…

• OUT: mô tả dòng dữ liệu đi ra khỏi entity, entity sẽ không thể đọc các tín hiệu này, kiểu OUT chỉ được sử dụng khi tín hiệu không được sử dụng bởi bất kỳ kiểu nào trong entity.

• BUFFER: Kiểu tín hiệu này mô tả dòng dữ liệu đi ra khỏi entity, nhưng entity có thể đọc những tín hiệu này (mục đích đọc lại tín hiệu ngõ ra ở bên trong của cấu trúc). Tuy nhiên , tín hiệu sẽ không thể điều khiển từ ngõ ra của entity, vì vậy nó không thể được sử dụng cho các dữ liệu ngõ vào.

• INOUT: Kiểu tín hiệu này cho phép tín hiệu có thể có cả hai kiểu: vào và ra, khi khai báo tín hiệu theo kiểu INOUT thì tín hiệu có thể được điều khiển từ ngõ ra của entity. Kiểu tín hiệu này chỉ nên sử dụng khi thật cần thiết(ví dụ như bus dữ kiệu 3 trạng thái), và khi sử dụng kiểu tín hiệu này thì mã của chương trình sẽ trở nên khó hiểu hơn đối với người thiết kế.

Loại tín hiệu cũng phải được mô tả trong khai báo PORT, loại tín hiệu sẽ mô tả các giá trị mà tín hiệu đó có thể được ấn định, ngoài ra có thể mô tả một vector những tín hiệu có cùng loại.

Lưu ý: trong file report, nếu không gán chân linh kiện thì các biến ngõ vào và ra sẽ được gán ngẫu nhiên. Để gán các chân, có thể thực hiện từ phần mềm hỗ trợ hoặc thực hiện như sau:

Ví dụ,

ENTITY my_design is Port (a, b : in integer range 0 to 7; c : bit_vector (3 to 5); d : bit_vector (27 downto 25); e : out Boolean); attribute pinnum: string; attribute pinnum of c: signal is "1,2,3"; attribute pinnum of d: signal is "6,5,4"; attribute pinnum of e: signal is "2";

END my_design;

3. ARCHITECTURE.

Chức năng của architecture là mô tả mối liên hệ giữa các tín hiệu ngõ vào và tín hiệu ngõ ra ( bao gồm cả những tín hiệu BUFFER), có thể viết nhiều kiến trúc khác nhau trong một entity, nhưng chỉ một trong số đó có khả năng xuất hiện trong mã VHDL. architechture có 3 dạng: mô tả cấu trúc (structure); mô tả dòng dữ liệu (data flow); mô tả hành vi (behavioral)

GV: Nguyễn Trọng Hải Trang 3

Page 239: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Mô tả architechture dưới dạng cấu trúc (structure) Ví dụ, chương trình bộ cộng trên sẽ có dạng:

ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Component AND2 Port(L,M: in BIT; N: out BIT); End component BEGIN X1: XOR2 port map (A,B,SUM); A1: AND2 port map (A,B,CARRY); END HA_STRUCTURE;

Chú ý, trong trường hợp này các tín hiệu trong Port Map(ánh xạ cổng) của đối tượng trong thành phần này và các tín hiệu trong khai báo phải được liên kết theo vị trí

Mô tả architechture dưới dạng dòng dữ liệu (data flow) Ví dụ, chương trình bộ cộng trên sẽ có dạng:

ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN SUM<=A xor B; CARRY<=A and B; END HA_STRUCTURE;

Mô hình dòng dữ liệu sử dụng phát biểu gán tín hiệu đồng thời, ký hiệu <= chỉ giá trị được gán cho tín hiệu. Phép gán được thực hiện khi có 1 sự kiện tín hiệu của biểu thức bên phải.

GV: Nguyễn Trọng Hải Trang 4

Page 240: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Mô tả architechture dưới dạng hành vi (behavioral) Kiểu mô tả hành vi bao gồm tập hợp thứ tự các phép gán tín hiệu tuần tự được khai báo bên trong phát biểu process. Biến được khai báo trong process là biến cục bộ. Tín hiệu không được khai báo trong process

Ví dụ, chương trình bộ cộng trên sẽ có dạng:

ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN Process(A,B); Begin SUM<=A xor B; CARRY<=A and B;

End process; END HA_STRUCTURE;

Ví dụ, mô tả một D-FF:

CK

D Q

Q

ENTITY DFF IS PORT( D,CK : IN BIT; Q : OUT BIT); END DFF; ARCHITECTURE DFF_BEHAVIOR OF DFF IS BEGIN Process(CK); Begin

If rising_edge(ck) then Q<=D; End if; End process;

END DFF_BEHAVIOR ;

GV: Nguyễn Trọng Hải Trang 5

Page 241: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Mô tả architechture dưới dạng hỗn hợp (mixed style) Có thể trộn lẫn 3 kiểu trong một architechture

Ví dụ, mô tả mạch cộng toàn phần (FULL_ADDER) sau

:

dataflowstructure

A B

X1

Cin

behavior

SUM

CARRY

ENTITY FULL_ADDER IS PORT( A,B,CIN : IN BIT; SUM, COUT : OUT BIT); END DFF; ARCHITECTURE FA_MIXED OF FULL_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Signal S1: BIT --Khai báo tín hiệu cục bộ trong architechture BEGIN X1: XOR2 port map (A,B,S1); --structure Process(A,B,CIN); --behavior Variable T1,T2,T3: BIT; Begin T1:=A and B; T2:=A and CIN; T3:=B and CIN; COUT<=T1 or T2 or T3;

End process; SUM<=S1 xor CIN; --dataflow

END FULL_ADDER;

GV: Nguyễn Trọng Hải Trang 6

Page 242: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

4. CONFIGURATION Configuration dùng để liên kết các hợp phần tới entity

configuration ban đầu có thể được ấn định tới rất nhiều architecture trong một entity.

Định cấu hình cho phép mô phỏng các thiết kế ở thành phần con, dễ dàng kiểm tra được thiết kế hơn một chương trình lớn.

Một cấu hình được dùng để nối từng cặp như sau:

ENTITY component_i IS

ARCHITECHTURE Behavioral

OF component_i

IS ….

ARCHITECHTURE dataflow

OF component_i

IS ….

ARCHITECHTURE Structural

OF component_i

IS ….

• Một thân architecture tới khai báo entity của nó.

• Một component với một entity.

Ví dụ, xây dựng một entity FULL_ADDER ở trên có thể tách ra làm ba architecture body: FA_BEHAVIOR, FA_STRUCTURE, và FA_MIXED. Một architecture bất kỳ có thể được chọn bằng cách đặc tả một configuration thích hợp.

Library HS_LIB, CMOS_LIB; ENTITY FULL_ADDER IS Port(A,B,Cin : IN BIT; SUM, Cout: OUT BIT); END FULL_ADDER; ARCHITECTURE FA_STR OF FULL_ADDER IS Component XOR2

Port(D1,D2 : IN BIT; DZ : OUT BIT); END componen; Component AND2

Port ( Z: OUT BIT; B0,B1: IN BIT); END Component; -- Đặc tả cấu hình:

GV: Nguyễn Trọng Hải Trang 7

Page 243: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

CONFIGURATION FA_BINDING OF FULL_ADDER IS For FA_STR For X1,X2 : XOR2 use entity WORK.XOR2(XOR2BEH); End for; -- liên kết thực thể với nhiều đối tượng của một thành phần. For A3: AND2 Use entity HS_LIB.AND2HS(AND2STR); PORT MAP (HS_B => A1, HS_Z=>Z, HS_A => A0 ); End for; --liên kết thực thể với các đối tượng đơn của một thành phần. For all : OR2 Use entity CMOS_LIB.OR2CMOS(OR2STR); End for; -- liên kết thực thể với tất cả các đối tượng của thành phần OR2. For others: AND2 Use entity WORK.A_GATE(A_GATE_BODY); PORT MAP(A0,A1,Z); End for;

-- liên kết thực thể với tất cả các đối tượng không được liên kết của thành phần AND2.

End for; End for; Signal S1, S2, S3, S4, S5: BIT; BEGIN

X1: XOR2 port map(A, B, S1); X1: XOR2 port map(S1, Cin, SUM); A1: AND2 port map(S2, A, B); A2: AND2 port map(S3, B, Cin); A3: AND2 port map(S4, A, Cin); O1: OR2 port map(S2, S3, S5); O2: OR2 port map(S3, B, Cin); NAND_GATE port map(S4,S5,Cout);

END FA_STR;

GV: Nguyễn Trọng Hải Trang 8

Page 244: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Có 4 đặc tả cấu hình trong phần khai báo của thân kiến trúc (architecture body):

• Đặc tả thứ nhất chỉ rằng đối tượng có nhãn X1 và X2 của component XOR2 liên kết với entity bởi cặp entity - architecture XOR2 và XOR2BEH có sẵn trong thư viện WORK.

• Đặc tả thứ hai liên kết đối tượng component AND2 có nhãn A3 đến entity bởi cặp entity - architecture AND2HS và AND2STR đã có trong thư viện thiết kế HS_LIB. Anh xạ của cổng thành phần (AND2 ) và các cổng thực thể(AND2HS) được liên kết theo tên (name association).

• Đặc tả thứ ba chỉ rằng tất cả các đối tượng của component OR2 được liên kết với entity bởi cặp entity - architecture có sẵn trong thư viện thiết kế CMOS_LIB.

• Đặc tả cuối cùng chỉ rằng tất cả các đối tượng không liên kết (unbound) của component AND2, đối tượng A1 và A2 được liên kết tới entity khác là: A_GATE có architecture A_GATE_BODY, kiến trúc này có sẵn trong thư viện WORK.

Trong ví dụ này đã chỉ ra các đối tượng của cung một thành phần (component) có thể được liên kết(bound) với các thực thể khác nhau.

II. CÁC KHAI BÁO TRONG VHDL.

1. Khai báo kiểu hỗ trợ. Kiểu liệt kê, số nguyên, dãy một chiều và kiểu bản ghi.

• Kiểu liệt kê. Ví dụ,

Type STD_ULOGIC is (‘U’, ‘X’, ‘0’, ‘1’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘_’); --std_ulogic là 1 kiểu liệt kê bao gồm 9 giá trị được khai báo là U<X<0<1<Z<W<L<H< _. Signal S: STD_ULOGIC; Type STATE_TYPE is (HALT, READY, RUN, ERROR); --HALT< READY< RUN< ERROR Variable STATE: STATE_TYPE; Type CODE_TYPE is (NUL, ‘0’, ‘1’); Function CODE (C: in INTEGER) return CODE_TYPE;

Kiểu STD_ULOGIC và STATE_TYPE là 2 kiểu liệt kê; tuy nhiên mức độ trừu tượng của STATE_TYPE cao hơn của STD_ULOGIC.

Trật tự các giá trị xuất hiện trong khai báo liệt kê định nghĩa thứ tự của chúng, giá trị bên trái nhỏ hơn giá trị bên phải.

• Kiểu nguyên. Kiểu nguyên là 1 tập hợp những giá trị rơi vào vùng số nguyên được chỉ ra.

Ví dụ, type LENGTH is range 0 to 1000;

GV: Nguyễn Trọng Hải Trang 9

Page 245: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

type BYTE_INT is range –128 to 127; type MY_INTEGER is range -2147483647 to 2147483647;

• Kiểu dãy nhiều chiều. Kiểu dãy nhiều chiều được VHDL hỗ trợ để định nghĩa một tập chỉ số.

Tuy nhiên chỉ có dãy một chiều được công cụ tổng hợp cho phép. Vậy phải khai báo hai dãy một chiều thay vì một dãy hai chiều.

Ví dụ, Type WORD is array (31 downto 0) of BIT; Type RAM is array (1023 downto 0) of WORD;

Thay vì: Type OTHER_RAM is array (1023 downto 0, 31 downto 0) of BIT

• Kiểu bản ghi Kiểu bản ghi định nghĩa tập các kiểu khác nhau. Mỗi thành phần bản ghi được định vị bằng tên của nó, và có thể dịch bởi công cụ tổng hợp như là giá trị độ dời không đổi hoặc được biến đổi trong vài trường hợp (khái niệm bản ghi không còn tồn tại nữa, địa chỉ thành phần được tính toán chỉ một lần và trở thành mã cố định).

Ví dụ, Architecture A of E is

Type CODE_TYPE is (NONE, DATA, STATMT) ; Type ITEM_TYPE is record; CODE: CODE_TYPE; INT: INTEGER; End record; Signal S1, S2 : ITEM_TYPE;

Begin Process Variable V: ITEM_TYPE; Begin

S1 <= V; V:= S2; … S2.INT <= 0; V.CODE := S1.CODE;

• Tiêu chuẩn IEEE Khối STD_LOGIC_1164 định nghĩa các giá trị kiểu đa luận lý. Khối này được hỗ trợ bởi tất cả công cụ tổng hợp.

Ví dụ, Type STD_LOGIC is ( ‘U’, -- Uninitialized

‘X’, -- Forcing Unknown ‘0’, -- Forcing 0 ‘1’, -- Forcing 1 ‘Z’, -- High Impedance ‘W’, -- Weak Unknown ‘L’, -- Weak 0

GV: Nguyễn Trọng Hải Trang 10

Page 246: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

‘H’, -- Weak 1 ‘U’, -- Don’t care );

'X', '1', '0' là giá trị mạnh và trội hơn các giá trị yếu 'W', 'L', 'H' và chúng lại trội hơn 'Z'. '1' và '0' có thể hiểu như là nối nguồn và nối đất.

Giá trị 'U'và 'W' được gọi là giá trị gần luận lý, chủ yếu có chức năng mô phỏng và hiển nhiên không có ý nghĩa phần cứng. Giá trị 'U' là chữ tận cùng bên trái trong định nghĩa STD_ULOGIC liệt kê, và là giá trị mặc định cho các biến số hoặc các tín hiệu ban đầu trước khi được gán các giá trị 'X' và 'W' biểu diễn trạng thái mà bộ mô phỏng không thể xác định được. 'W' có ảnh hưởng ít hơn có thể bị gán đến '0', '1' và 'X'.

Do các công cụ tổng hợp chưa thể phân biệt giữa các độ mạnh yếu, nên các giá trị 'L' và 'H' không có ngữ nghĩa tổng hợp chuẩn.

'Z' có thể được dùng trong mô phỏng như là kết quả khi không có bộ điều khiển nào đang hoạt động. Đối với tổng hợp, phần cứng đặc biệt được ám chỉ khi gán phép gán giá trị vô hướng 'Z' được dùng, mục đích của phép gán là đặt đầu ra tới bộ đệm 3 trạng thái.

2. Các kiểu không hỗ trợ. Vài kiểu dữ liệu không được dùng cho mục đích tổng hợp (ví dụ, tất cả kiểu vật lý định nghĩa bởi người thiết kế không được hỗ trợ), kiểu vật lý định nghĩa trước TIME không được hỗ trợ. Ngay cả sự ràng buộc thời gian đối với tổng hợp không được biểu diễn trong VHDL với các biểu thức thời gian. Do đó mệnh đề after và reject không được dịch và không có công cụ tổng hợp nào có thể đảm bảo rằng tín hiệu sẽ thay đổi sau một khoảng thời gian chính xác.

Nếu các mệnh đề này được sử dụng trong mô tả VHDL, công cụ tổng hợp sẽ bỏ qua và kết quả phần cứng có thể mâu thuẫn với mô tả đầu vào. Điều này nói rằng kiểu mẫu chính xác cho tổng hợp không dùng bất kỳ biểu thức thời gian nào, bao gồm lệnh biểu thức thời gian wait for. Trong mô phỏng qúa trình bị tạm ngưng trong thời gian định nghĩa bởi biểu thức for. Trong suốt giai đoạn này, tất cả tín hiệu giữ các giá trị mới của chúng. Trong miền tổng hợp không thể phỏng đoán phần cứng với các kết quả như vậy mà không cung cấp phần cứng vì nó quá phức tạp và quá đặc biệt (như bộ định thời gian).

3. Các kiểu con. Các kiểu con rất hữu dụng cho tổng hợp. Ở mỗi bước mô phỏng, các kiểu con cung cấp khả năng mạnh mẽ cho việc kiểm tra sử dụng kiểu. Các kiểu con còn thừa hưởng tất cả toán tử định nghĩa từ các kiểu cơ bản của chúng.

Ví dụ, chức năng thao tác trên kiểu BIT_VECTOR có thể được dùng với bất kỳ kiểu con của BIT_VECTOR dài bằng giá trị còn lại trong khoảng thích hợp.

III. CÁC ĐỐI TƯỢNG VHDL. Đối tượng trong VHDL là các thông tin về hằng số, biến số và tín hiệu.

1. Hằng số. Các khai báo hằng số:

Constant constant_name : type_name [:=value] Ví dụ,

GV: Nguyễn Trọng Hải Trang 11

Page 247: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Constant rise_time : time :=10 ns; Constant bus_width : integer :=8;

Ví dụ, Type TAB2 is array (BIT, BIT) of BIT; Constant AND_TAB: TAB2 := ((‘0’, ’0’), (‘0’, ‘1’));

Giá trị hằng số được tính toán chỉ một lần. Quá trình tổng hợp chấp nhận hằng số của bất kỳ kiểu tổng hợp nào.

Trong trường hợp khai báo như vậy không tạo ra bất kỳ phần cứng nào:

Nếu hằng số được dùng trong phép gán tín hiệu như các lệnh dưới đây thì phần cứng được suy ra:

Ví dụ, Signal Z, A, B : BIT; … Z <= AND_TAB (A,B);

Sự khai báo hằng số không tạo ra phần cứng. Hằng số chỉ cung cấp điều kiện để xác định phần cứng. Hằng số là một biểu thức vì vậy nó tồn tại trong cùng một nơi như các biểu thức:

Ví dụ, Phía phải của phép gán tín hiệu

Constant COD1: BIT_VECTOR := X ”EA”; Constant MASK: BIT_VECTOR:=”01111111”; Signal V, R, A: BIT_VECTOR(7 downto 0); … begin V <= COD1; R <= A and MASK;

Ví dụ, trong biểu thức lệnh if hoặc case

If S= CST1 then … Case VALUE is When CST_N =>…

Ví dụ, trong lệnh đồng thời có điều kiện:

Z <= CST1 when A=’1’ else S when B= CST2 else CST3; 2. Khai báo biến số và tín hiệu.

Các khai báo biến số Variable variable_name : type_name [:=value]; Ví dụ,

Variable CTRL_STATUS : BIT_VECTOR (10 DOWNTO 0);

GV: Nguyễn Trọng Hải Trang 12

Page 248: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ở đây biến CTRL_STATUS là một dãy có 11 phần tử, mỗi phần tử trong dãy có kiểu là BIT

Ví dụ, Thực hiện mạch sau

D Q

Q

(DATA and “01”)(0)

(DATA and “10”)(1)

CK

Z

Clock

Entity MEMO_ONE is Port ( DATA: in BIT_VECTOR (1 downto 0);

CLOCK :in BIT; Z: out BIT);

Constant K1: BIT_VECTOR : = “01”; Constant K2: BIT_VECTOR := “10” ;

End MEMO_ONE;

Architecture A of MEMMO_ONE is

Begin Process (CLOCK) Variable A1, A2: BIT_VECTOR(DATA’range); Variable A3: BIT; Begin If CLOCK = ‘1’ and CLOCK’event then A1 := DATA and K1; A2 := DATA and K2; A3 := A1(0) or A2(1); Z <= A3; End if; End process;

End A;

Các biến số sử dụng trong ví dụ trên không tạo ra bất kỳ phần cứng nào. Thật ra quá trình tương đương có thể được cho mà không có bất kỳ biến nào, ở đó tất cả các biến được thay thế bởi các phương trình của chúng. Chúng ta có thể viết lại như sau.

Begin If CLOCK = ‘1’ and CLOCK’event then Z <= (DATA and K2)(1) or (DATA and K1)(0);

End if; Khai báo tín hiệu: Cú pháp:

Signal signal_name : type_name [:=value]

GV: Nguyễn Trọng Hải Trang 13

Page 249: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ví dụ, Signal clock: bit; --khai báo tín hiệu clock của kiểu bit lấy giá trị 1,0 Signal data_bus : bit_vector( 0 to 7); -- khai bo tín hiệu data_bus thuộcc kiểu bit_vector có độ rộng 8 bit

3. Các giá trị khởi động. Trong VHDL, có 3 loại giá trị ban đầu:

• Giá trị mặc định từ định nghĩa kiểu hay kiểu con

• Giá trị ban đầu khi đối tượng được khai báo

• Giá trị được gán khi sử dụng một phát biểu lúc bắt đầu quá trình.

Trường hợp thứ nhất và thứ hai sẽ bị bỏ qua bởi công cụ tổng hợp, nên có thể phát sinh mâu thuẫn giữa hoạt động mô phỏng và kết quả tổng hợp. Do đó đề nghị phải khởi động một cách rõ ràng và có hệ thống các biến và tín hiệu với các lệnh đặc biệt. Điều này đạt được trong phần mã tổng hợp phục vụ cho việc xử lý thiết lập/thiết lập lại và sự khởi động phải được trình bày trong phần này.

Nếu cổng out hoặc thông số out của chương trình con có giá trị mặc định, chúng hoạt động giống như một giá trị khởi động cho tín hiệu hoặc biến và sẽ bị công cụ tổng hợp bỏ qua.

4. Các toán tử số học. Toán tử logic và toán tử bit là một phần của toán tử số học. VHDL định nghĩa bảy loại toán tử. Chúng được chỉ ở bảng dưới đây với sự tăng dần mức ưu tiên.

Loại Toán tử Ưu tiên Luận lý Quan hệ Dịch Cộng Một ngôi Nhân Hỗn hợp

Or and nor nand xor xnor = /= > < >= <= Sll Srl Sla SRA Rol Ror + - & + - * / mod rem ** abs not

Thấp nhất Cao nhất

Toán tử luận lý Toán tử luận lý và toán tử not chấp nhận các toán hạng có các kiểu BIT, BOOLEAN, và VECTOR với kích thước giống nhau. Một quy ước được chấp nhận rộng rãi cho giá trị boolean: TRUE tương đương với giá trị BIT '1' và ngược lại.

Toán tử nand và nor không kết hợp với nhau trong 1 cú pháp liên tục, chúng phải được ngăn cách bằng dấu () :

A and B nand C; -- trái luật

(A and B ) nand C;-- đúng luật;

GV: Nguyễn Trọng Hải Trang 14

Page 250: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ví dụ, Signal S, X, Y: BIT_VECTOR (1 downto 0); Signal R, A, B, C : BIT; Signal T, D, E, F, G: BOOLEAN; -- Begin S <= X and Y; R <= (A and B) and C; T <= D xor E xor F xor G;

Sơ đồ kết quả của các hàm trên như sau:

S(1..0)

Y(1..0)

X(1..0)

C

B

A T

G

F

E

D

Toán tử quan hệ. Toán tử quan hệ luôn trả về giá trị Boolean '0' hoặc '1' và là kết quả của sự so sánh hai toán hạng cùng một kiểu cơ bản.

Trong mô phỏng, toán tử bằng và khác được định nghĩa rõ ràng cho các kiểu. Kết quả là TRUE nếu hai toán hạng có cùng giá trị.

Các toán tử quan hệ được định nghĩa cho tất cả các kiểu vô hướng và dãy một chiều. Thứ tự của kiểu vô hướng được định nghĩa bởi khai báo của nó, kiểu 'LEFT' thấp hơn kiểu 'RIGHT'. Đối với dãy một chiều, thứ bậc quan hệ của chúng được định nghĩa bởi bậc ngữ nghĩa. Ví dụ,

“0” < ”1” -- is true “A” < “BC” -- is true “10” < “101” -- is also true

Toán tử quan hệ này không thể dùng để so sánh các vector bit mã hóa các giá trị liệt kê. Toán tử này nếu thực hiện với khối số học thì kết quả của lệnh cuối cùng "10" < "101" sẽ được thông dịch khác nhau đối với số không dấu hoặc số có dấu.

Các toán tử cộng. Toán tử cộng và trừ được định nghĩa cho các toán hạng số nguyên. Tất cả các công cụ tổng hợp đều cài đặt các toán tử này và thường sử dụng với một số ràng buộc.

Lưu ý, đôi khi dùng các dấu ngoặc đơn để nhóm một tập hợp các cổng lại. Nói cách khác hai biểu thức khác nhau chạy như nhau nhưng tạo ra phần cứng khác nhau

GV: Nguyễn Trọng Hải Trang 15

Page 251: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ví dụ, Architecture … Signal A, B, C: BIT_VECTOR(2 downto 0); Signal B, S, R: BIT_VECTOR (0 to 5); Signal D: BIT; Begin A <= D &not D &D; S <= S & B (0 to 2) ; R <= C(1 downto 0) & “000” & D;

Các toán tử dịch chuyển. Các toán tử dịch chuyển hỗ trợ cho BIT_VECTOR Các toán tử dịch chuyển và quay là sll, srl, sla, sra, rol và ror. Các toán tử nhân. Phép chia "/", phép nhân "*", lấy modulo "mod", lấy số dư "rem" được xếp trong nhóm nhân. Chỉ có toán tử nhân được hỗ trợ thêm ví dụ không hạn chế đối với tất cả các kiểu số nguyên. Đối với vài công cụ tổng hợp, nhiều chiến lược nhân được đề nghị để tạo ra phần cứng.

"/", mod, và rem được hỗ trợ có hạn chế đối với các giá trị của toán hạng vế phải, các công cụ tổng hợp đòi hỏi các giá trị này là dương và là lũy thừa của 2. Hơn nữa chúng thường là các hằng số toàn cục. Kết quả phần cứng của toán tử này dựa trên các toán tử dịch bit.

Ví dụ, xây dựng một bộ đếm modulo 4.

Entity INCREMENTER is Port (CLK : in BIT; RST : in BIT;

R : out NATURAL range 0 to 3) ; End INCREMENTER;

Architecture A of INCREMENTER is Signal MEM: NATURAL range 0 to 3; Begin Process If CLK = ‘0’ then If RST = ’1’ then MEM <= 0; Else MEM <= (MEM +1) MOD 4; End if; End if; End process; R <= MEM;

End A;

Các toán tử hỗn hợp. Abs, giá trị tuyệt đối được hỗ trợ cho tất cả các giá trị số nguyên,

Toán tử số mũ "**", được hỗ trợ với hạn chế toán hạng trái là hằng số toàn cục, giá trị của nó phải là 2.

GV: Nguyễn Trọng Hải Trang 16

Page 252: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

5. Phép gán biến số. Biến không dùng chung được khai báo trong quá trình hoặc trong phần khai báo chương trình con.

Phép gán biến được thực hiện bởi toán tử :=, thao tác này xảy ra ngay lập tức khi tính toán. Do đó, giá trị của biến chỉ thay đổi bởi lệnh gán tiếp theo nếu giá trị mới khác với giá trị cũ.

Ví dụ, cách gán biến khác nhau:

A:= 0 ; -- giá trị integer 0 được gán cho biến A REC.FIELD := B; --B được gán cho bản ghi FIELD của REC VECTOR := X “AA”; -- phép gán vector toàn cục WBUS(1) := F(A); -- phép gán phần tử của vector WORD(3 to 4) := “10”; -- phép gán một nhóm phần tử vector REC := (‘A’, 3, “10”); -- Phép gán giá trị theo vị trí của vetor REC := (LETTER => ‘C’, FIELD => 3, BIT2 => “11”); -- Phép gán với tên

Hơn nữa, ở phần bên trái của lệnh gán, nhiều biến số có thể gộp lại.

Ví dụ

Variable V: BIT_VECTOR(1 to 3); Variable A, B, C: BIT; … --Hai trạng thái sau là tương đương (A, B, C) := V; (1 => A;2 => B; 3 => C):= V;

Lưu ý, biến khai báo trong chương trình con chỉ tồn tại trong chương trình con này và biến mất ở ngoài chương trình con. Vì vậy, nếu biến số đã được gán, kết quả bị mất sau khi chạy lệnh return ngoại trừ được trả về khi dùng thông số out bên trong thủ tục hoặc lệnh return bên trong hàm. Tuy nhiên biến này có thể tạo ra một phần nhớ nếu thời điểm đồng bộ xảy ra trước khi chương trình con kết thúc.

6. Phép gán tín hiệu. Mục đích của gán tín hiệu giống như phép gán biến. Hiệu quả của phép gán tín hiệu chỉ xảy ra sau lệnh đồng bộ (lệnh wait ).

Signal <= a_waveform_with_one_item_and_without_delay_expression

7. Lệnh đồng bộ. Trong VHDL lệnh duy nhất để đồng bộ là lệnh wait. Một quá trình phải chứa ít nhất một lệnh wait. Có hai cách dùng lệnh wait khác nhau là:

• Đợi một sự kiện trên một tín hiệu tùy thuộc vào danh sách. Danh sách của wait phải bao gồm tất cả tín hiệu được đọc trong quá trình:

GV: Nguyễn Trọng Hải Trang 17

Page 253: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ví dụ, Process Begin

Wait on A, B, C, D; S <= A or B; If E then R <= C + D; Else R <= C+1; End if;

End process;

• Đợi một sự kiện xảy ra trên tín hiệu đồng hồ (Clock). Tín hiệu này phải là duy nhất, clock được xác định bởi các sự kiện và sườn xung.

Ví dụ, Wait until CLK = ‘1’;

Nếu kiểu của tín hiệu đồng hồ không là BOOLEAN hoặc BIT, mà là kiểu đa giá trị, thì để phù hợp với sự mô phỏng, điều kiện sau phải được thêm vào lệnh wait: CLK'LAST_VALUE = '0'. Điều này xác định sườn lên hợp lệ cho tổng hợp. Điều kiện cạnh xung đồng hồ trở thành:

Ví dụ, Wait until CLK =’1’ and CLK’last_value = ‘0’;

Nếu lệnh wait là rõ ràng, lệnh đồng bộ được mô tả bởi một lệnh điều kiện if Ví dụ,

If CLK = ‘0’ and CLK’event and CLK’last_value =’1’ then …

Hoặc sử dụng thuộc tính 'STABLE với giá trị thời gian mặc định 0ns,

('STABLE là một hàm chấp nhận kiểu thông số TIME có giá trị mặc định là zero).

Ví dụ, If CLK = ‘0’ and not CLK’stable and CLK’last_value =’1’ then …

Lệnh điều kiện. Có hai cách biểu diễn lệnh điều kiện : lệnh if và lệnh case

Lệnh if. Lệnh if bao gồm cả rẽ nhánh elsif và else, chỉ mức ưu tiên thực hiện các rẽ nhánh khác nhau.

Ví dụ, thiết kế các MUX sau

GV: Nguyễn Trọng Hải Trang 18

Page 254: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Process (S1, S2, R3, R1, R2, R3, R4) Begin If S1 = ‘1’ then RESULT <= R1; Elsif S2 = ’0’ then RESULT <= R2; Elsif S3 = ’1’ then RESULT <= R3; Else RESULT <= R4; End if; End process;

Lệnh case. Trong lệnh case, mỗi nhánh có cùng cấp với nhau (lệnh if và lệnh elsif, mỗi nhánh được kiểm tra một cách tuần tự).

Trong lệnh case, tất cả các giá trị có thể phải được đưa vào hết và chúng là duy nhất, không có ưu tiên.

Để nhóm lại tất cả các gia trị "don't care", mệnh đề others có thể được sử dụng. Lưu ý, others không bao giờ nên dùng nếu tất cả giá trị đã được liệt kê trước đó

Ví dụ, Thiết kế mạch sau

Type CODE_TYPE is (ADD, SUB, RST, INCX); Subtype WORD is INTEGER range 0 to 3; Signal CODE: CODE_TYPE; Signal X, Y, R: WORD; Process (CODE, X, Y) Begin

Case X is When 0 => R <= Y; When 1 => R <= CODE_TYPE’pos (CODE);

When others => R <= 0; End case;

End process;

Chú ý rằng nhánh others được dùng cho giá trị 2 và 3 của tín hiệu X.

GV: Nguyễn Trọng Hải Trang 19

Page 255: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Tạo ra bộ nhớ. Đôi khi một vài giá trị điều kiện không đúng, vì thế các giá trị có kết quả từ các điều kiện này ở trạng thái không đổi. Trong trường hợp này, phải có phần tử nhớ .

Ví dụ, If CONDITION (l1, l2,l3) then RESULT <= DATA (l1, l2, l3); End if;

Bởi vì chức năng CONDITION không luôn luôn trả về hằng số TRUE, nên đôi khi RESULT sẽ không thay đổi và sẽ giữ nguyên giá trị.

Với các dòng lệnh trên thì loại phần tử nhớ được tạo ra sẽ phụ thuộc vào biểu diễn đồng bộ. Phần tử nhớ cũng được ám chỉ nếu tín hiệu đầu ra không xuất hiện trong bất kỳ rẽ nhánh có thể nào của chương trình.

RESULT là tín hiệu được đọc (phía bên phải của phép gán tín hiệu) và được viết (phía bên trái của phép gán tín hiệu). Vì vậy, phần tử nhớ là cần thiết. Nếu tín hiệu này phụ thuộc vào danh sách, thì chỉ có mạch cài đặt được tạo ra. Ngược lại, nếu chỉ phụ thuộc vào các giá trị đầu vào (l1, l2, l3) thì một phần tử nhớ mạch lật được tạo ra.

Ví dụ, Process (I1, l2, l3) – inferring a flip-flop Begin

If CONDITION (l1, l2, l3) Then RESULT <= DATA(l1, l2 , l3, RESULT); End if;

End; Process (l1, l2, l3, RESULT) – inferring a latch Begin

If CONDITION (l1, l2, l3) Then RESULT <= DATA (l1, l2, l3. RESULT); End if;

End;

Để đảm bảo không tạo ra phần tử nhớ, một phép gán tín hiệu đầu ra mặc định phải được viết trước lệnh điều kiện như sau:

… RESULT <= DEFAULT_VALUE; -- default assignment If CONDITION (l1, l2, l3) then RESULT <= DATA (l1, l2, l3, RESULT); End if; …

Phép gán tín hiệu đầu tiên này không được nhầm lẫn với giá trị ban đầu đã được giải thích.

Ví dụ, một rẽ nhánh else được tạo ra rõ ràng :

If CONDITION (l1, l2, l3) then RESULT <= DATA (l1, l2, l3, RESULT); else RESULT <= DEFAULT_VALUE; End if;

GV: Nguyễn Trọng Hải Trang 20

Page 256: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Lệnh lặp lại. Trong VHDL có hai loại lệnh lặp lại, vòng lặp for và vòng lặp while. Vòng lặp vô hạn loop … end loop có thể được xem xét như một vòng lặp while với điều kiện luôn luôn là TRUE.

Lệnh lặp vòng for được trợ giúp bởi các công cụ tổng hợp khi các giá trị biên là tĩnh (static) toàn cục.

8. Lệnh quá trình và lệnh đồng bộ. Các lệnh quá trình cho kiểu hành vi mạnh nhất và là cơ sở của mọi lệnh đồng thời.

Một lệnh quá trình bao gồm 3 phần: danh sách tùy chọn, khai báo cục bộ và phần lệnh tuần tự.

Danh sách độ nhạy. Một quá trình với một danh sách rõ ràng tương đương với một quá trình với một lệnh đồng bộ đơn, quá trình được hoạt động mỗi khi một biến cố xảy ra trên một tín hiệu của danh sách này. Các quá trình như sau:

Process (A, B, C) – danh sách các biến được xem xét … begin … end process;

Quá trình trên cũng có thể tương đương với:

Process … begin … wait on A, B, C; end process;

Khai báo cục bộ. Trong tất cả các khai báo có thể có bên trong phần khai báo quá trình, khai báo biến là cần thiết, có thể bao hàm phần tử nhớ. Thật ra, biến có thể sử dụng trong hai cách khác nhau:

• Giống như các biến cục bộ, không tạo ra phần cứng nào:

Process (A, B, C) – no memorization for this … and gate Variable VAR : BIT;

Begin VAR : = B and C; S <= A and VAR; -- before being read

End process;

Có thể viết hành vi tương tự bằng cách thay thế biến với phần bên phải của lệnh gán: Process (A, B, C) Begin S <= A and B and C; End process;

GV: Nguyễn Trọng Hải Trang 21

Page 257: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ưng dụng của biến được chấp nhận bởi các công cụ tổng hợp và không có phần cứng tương ứng. Trong trường hợp tổng quát thì giữa 2 lệnh đồng bộ, nếu một biến luôn được gán trước khi được đọc, thì biến này không tạo ra bất kỳ phần cứng nào.

• Khi thiết kế dữ liệu dưới dạng máy trạng thái.

Process – synchronous finite state machine with two states Type T_STATE is (STOP, GO); Variable STATE: T_STATE; Begin Wait until CLK=’1’; Case STATE is --variable STATE is read -- before being target of assignment when STOP => STATE:= GO; when GO => STATE:= STOP; end case;

End process;

Ví dụ này chỉ ra rằng việc đọc biến không có nghĩa là có nó trong phần bên phải của phép gán. Biểu thức case, điều kiện if hoặc thông số in của thủ tục hoặc hàm là cách khác để đọc nó. Vì thế, giữa hai lênh đồng bộ, nếu một biến được đọc ít nhất một lần trước khi được gán thì biến này tạo ra phần tử nhớ.

9. Phép gán tín hiệu. Phép gán tín hiệu đơn giản. Dạng đơn giản nhất của một phép gán tín hiệu đồng thời là định nghĩa tín hiệu đích nhận được các giá trị của tín hiệu nguồn mỗi lần một sự kiện xảy ra:

S <= A; -- S được gán tới A bởi phần cứng Z <= ‘1’; -- Tín hiệu Z là một hằng số

Các phép gán tín hiệu chọn lựa và có điều kiện. Hai phép gán tín hiệu đồng thời được định nghĩa cho mục đích có điều kiện của tín hiệu; phép gán chọn lựa và có điều kiện.

Ví dụ, S <= a when x = ‘1’ else B when Y = ‘1’ else C

Ví dụ, nếu A, B, C, X, Y được định nghĩa như là các tín hiệu, quá trình tương là: Process (A, B, C, X, Y) Begin

If X = ‘1’ then S <= A; Elsif Y = ‘1’ then S <= B; Else S <= C; End if;

End process;

Hai ví dụ trên chứng minh các phép gán tín hiệu, với công cụ này cho phép người thiết kế có thể mô tả các thiết kế của mình rõ ràng hơn.

GV: Nguyễn Trọng Hải Trang 22

Page 258: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

10. Component. Mục đích của lệnh hợp phần là sử dụng một mẫu đã mô tả trước. Đây là cách chính để xây dựng sự phân thứ bậc thiết kế. Trước khi sao chép, hợp phần phải được khai báo cục bộ trong phần khai báo kiến trúc, hoặc riêng biệt trong một khối.

Sự khai báo hợp phần (component) định nghĩa cách nối dây cục bộ, có thể ít tổng quát hơn so sự khai báo thực thể. Trong suốt giai đoạn cấu hình, môt số tín hiệu có thể ở vế trái nếu chúng ở chế độ out hoặc inout, hoặc bị bỏ qua nếu chúng ở chế độ in với giá trị mặc định.

Khi sao một hợp phần, các thông số tương thích chung phải được ánh xạ đến các giá trị và các cổng nối với tín hiệu.

Ví dụ, Architecture SYNTHESIZABLE of DRIVE is Signal ORDER: ORDER_TYPE; Signal CONTROL: BIT; Signal DATA_IN, DATA_OUT: BIT_VECTOR(1 to N); Component CTRL Port (C : in BIT; O: out BIT_VECTOR); End component; Component OPRT Port (O: in BIT_VECTOR;

D1: in BIT_VECTOR; D0: out BIT_VECTOR); End component; -- specification configuration

for CONTROLER : CTRL use entity WORD.CTRL(A); for OPERATING_PART:OPRT use entity WORD OPRT(A) generic map (N); begin -- two component instantiation statements.

CONTROLER: CTRL port map(CONTROL, ORDER); OPERATIVE_PART: OPRT port map (ORDER, DATA_IN,

DATA_OUT); End SYNTHESIZABLE;

Cấu hình chỉ ra cặp thực thể/ kiến trúc được chọn cho bản sao hợp phần. Với ví dụ sau , hai lệnh cấu hình đặc biệt có thể được thay thế bởi một cấu hình độc lập.

Configuration C1 of DRIVER is For SYNTHESIZABLE For CONTROLER: CTRL use entity WORD.CTRL(A); End for; For OPERATIVE_PART: OPRT use entity WORK.OPRT(A); Generic map (N); End for; End for; End C1;

GV: Nguyễn Trọng Hải Trang 23

Page 259: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

11. BLOCK. Các lệnh block được sử dụng cho cấu trúc lệnh đồng thời

Ví dụ, Signal A, B, C, D, E, F, G: BIT; Signal S; BIT_VECTOR(1 to 4);

BLOCK_NAME : block Subtype TWO_BIT_TYPE is BIT_VECTOR(1 to 2); Signal V1, V2: TWO_BIT_TYPE; Begin V1 <= (A or C) &B; V2 <= E &(F and G); S <= V1 &V2; End block BLOCK_NAME;

Dưới một số điều kiện, một vài công cụ tổng hợp có thể dịch lệnh block như một cấp của tổng hợp. Trong trường hợp này nhãn của lệnh khối được dùng như một thông số cho cấu trúc lệnh.

Ứng dụng khác của lệnh block là định nghĩa phần lệnh đồng thời được điều khiển bởi clock. Trong trường hợp này phần bảo vệ (guarded) được yêu cầu để mô tả chính xác tín hiệu clock và điều kiện liên quan tới nó (cạnh lên hoặc xuống).

Hơn nữa, phép gán tín hiệu đồng thời được bảo vệ và hoạt động bởi biểu thức bảo vệ. Điều này được chỉ ra trong ví dụ sau, ở đó giả thiết rằng tín hiệu clock là đa giá trị.

Ví dụ, B: block (not CLK’state and CLK = ‘0’ and CLK’last_value =’1’) Signal R: BIT; Begin R <= guarded DATA(1); S <= guarded R ; -- Tín hiệu S là DATA(1) được lám trễ 1 chu kỳ End block

Ứng dụng thứ 3 của lệnh block được dùng trong mạch 3 trạng thái.

Liên kết với lệnh không nối (disconnect) và tín hiệu resolved, phép gán bảo vệ có thể định nghĩa hành vi ba trạng thái. Khi điều kiện bảo vệ không thoả, tín hiệu đích không được nối. Đây là hành vi mặc định của mệnh đề disconnect và được cho phép nếu kiểu tín hiệu đích được resolved.

Đối với tổng hợp, vấn đề được giải quyết là giá trị cuối cùng khi tất cả tín hiệu nguồn không được nối. Giá trị này phụ thuộc vào hai yếu tố: kết quả của hàm resolved trả về (khi độ dài của vector đầu vào là null) và loại tín hiệu resolved (bus hoặc register). Tóm tắt hành vi của loại tín hiệu này như sau:

• Kết quả cuối cùng là giá trị được trả về bởi hàm resolved với vector đầu vào null nếu kiểu tín hiệu đích là bus.

• Kết quả cuối cùng là giá trị trước nếu chỉ có một tín hiệu nguồn và kiểu của tín hiệu nguồn là register.

GV: Nguyễn Trọng Hải Trang 24

Page 260: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Sơ đồ bộ đệm ba trạng thái được tạo ra bởi lệnh block:

Một số công cụ tổng hợp hỗ trợ tín hiệu không nối loại bus, thì kết quả của hàm resolved trả về 'Z' để mã hóa mức 3 trạng thái.

12. Gọi thủ tục đồng thời. Thủ tục đồng thời là thủ tục được gọi từ trong một block hoặc một architechture.

P (A, B, C); -- concurent procedure call;

Tương đương với: Process -- process equivalent to the previous concurent procedure call Begin -- C is assumed to be an actual parameter of module out. P(A, B, C); Wait on A, B; End process;

Cho phép dùng lệnh wait trong các thủ tục đồng thời. Trong tổng hợp, điều này không được hỗ trợ. Thật ra, lệnh wait có nhiều tín hiệu chỉ được cho phép nếu các điều kiện đồng bộ là như nhau.

Thường sử dụng gọi thủ tục đồng thời khi muốn có sự linh động và khả năng thích nghi. Thủ tục đồng thời dễ dàng sử dụng hơn là bản sao hợp phần (component), vì không đòi hỏi sự khai báo và chỉ rõ.

13. Lệnh GENERATE. Hai lệnh generate được định nghĩa là: lệnh generate có điều kiện và lệnh generete lặp.

Từ quan điểm tổng hợp, lệnh này không được hỗ trợ đầy đủ. Trong giai đoạn chế tạo, một tập các lệnh đồng thời tương đương được phát sinh.

Lệnh generate lặp. Lệnh này có thể lặp lại một tập các lệnh đồng thời (ví dụ, lặp lại nhiều lần hợp phần hoặc gán các tín hiệu vector). Trong ví dụ sau, các hằng số k1, k2 có thể là các thông số tương thích chung và phần cứng tương ứng sẽ không thay đổi.

Ví dụ, Architecture A of E is

Constant k1: NATURAL := 0; Constant k2: NATURAL := 3; Signal A, S: BIT_VECTOR(k1 to k2 );

GV: Nguyễn Trọng Hải Trang 25

Page 261: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Signal R: BIT_VECTOR (k1 +1 to k2 +1); Begin

L: for J in k1 to k2 generate S(J) <= not A(J); R(J+1) <= A(j); End generate;

End;

Trong ví dụ sau, kiến trúc A và B là tương đương, kết quả tổng hợp cuối cùng giống nhau. Trong kiến trúc đầu tiên A, kết quả là vector V được gán trong lệnh tuần tự loop và trong kiến trúc thứ hai B, các phép gán tín hiệu đồng thời N được phát ra.

Architecture A of E is Constant N: NATURAL := 3;

Signal B: BIT_VECTOR(0 to N ); Signal R: BIT_VECTOR (1 to N);

Begin Process (A, B) Begin For l in 1 to N loop V(l) <= F(l, A(l), B (N-1 + 1)); End loop; End process;

End A; Architecture B of E is

Constant N: NATURAL := 3; Signal B: BIT_VECTOR(0 to N ); Signal A,V: BIT_VECTOR (1 to N);

Begin L: for l in 1 to N generate V(l) <= F(l, A(l), B (N-1 + 1)); End generate;

End B;

Lệnh generate có điều kiện. Để hoàn tất một mẫu sử dụng các lệnh generate lặp, có thể có ích khi kiểm tra các giá trị đầu tiên cuối cùng của chỉ số vòng lặp. Các lệnh generate điều kiện có thể được dùng để giải quyết vấn đề này. Ví dụ sau đây minh hoạ tính chất này, ở đó sự xử lý các bản sao hợp phần có thể khác nhau (không có, có một, hoặc nhiều bản sao). Entity E is Generic (N: NATURAL); Port (INPUT: in BIT;

OUTPUT: out BIT; …); End E; Architecture A of E is Signal LOCAL: BIT_VECTOR (1 to N -1); Component M1 Port (l: in BIT; O: out BIT); End component; Begin

GV: Nguyễn Trọng Hải Trang 26

Page 262: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

L1: if N = 0 generate OUTPUT <= INPUT; -- no component instantiation

End generate ; L2: if N = 1 generate C1: M1 port map (INPUT, OUTPUT); -- only one instantiation End generate; L3: if N >= 2 generate -- other cases using the intermediate -

--LOCAL signal F: M1 port map (INPUT, LOCAL(1)); L4: for: in l to N-2 generate C :M1 port map (LOCAL(l), LOCAL(l+1)); End generate; End A;

Sử dụng tương thích chung (Generic). Thông số tương thích chung là tổng quát của khái niêm hằng số, để nói rằng trong suốt giai đoạn chế tạo các giá trị của chúng phải được xác định. Vì vậy trước bước này, đối với giai đoạn dịch, giá trị của chúng chỉ xác định kiểu mà không biết giá trị. Một vài công cụ tổng hợp hỗ trợ hạn chế một số kiểu thông số tương thích chung (chỉ hỗ trợ kiểu nguyên hoặc kiểu liệt kê). Tuy nhiên, không có lý do thực sự cho các hạn chế như vậy, ngoại trừ để không hỗ trợ cho cấu hình.

Ví dụ, viết một mẫu chấp nhận một vector với kích thước N, như là đầu vào. N là thông số tương thích chung của mẫu này. Entity AND_N is Generic (N: POSITIVE); Port (Din : in BIT_VECTOR (1 to N);

R: out BIT); End AND_N; Architecture A1 of AND_N is Signal INTER : BIT_VECTOR (1 to N); BEGIN INTER (1) <= Din (1); L: for l in 1 to N-1 generate INTER (l+1) <= (Din(l+1) and INTER (l)); End generate; R <= INTER(N); End A1; Architecture A2 of AND_N is BEGIN Process (Din) Variable RES: BIT; Begin RES := Din(1); for l in 2 to N loop RES:= RES and Din(l); End loop; R <= RES; End process; End A2;

GV: Nguyễn Trọng Hải Trang 27

Page 263: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Ví dụ, nhận dạng mẫu đã cho trong chuỗi bit tuần tự. Các thông số tương thích chung là vector phải tìm, và một số bit dùng để báo số lỗi (0: mẫu phải tìm chính xác như đã mô tả, 1: chỉ sai khác 1 bit mới chấp nhận,…) Entity SEARCH_PATTERN is Generic(PATTERN: BIT_VECTOR;

ERROR_NUMBER: NATURAL); Port ( CLK: in BIT;

DATA: in BIT; RESET: in BIT; FOUND: out BIT);

Begin Assert (PATTERN ‘length >= ERROR_NUMBER) Report “pattern length cannot be shorter than ”& “the authorized error number” Severity ERROR; End SEARCH_PATTERN; Architecture A of SEARCH_PATTERN is Subtype REG_TYPE is BIT_VECTOR (PATTERN’ range); Signal REG: REG_TYPE; Begin P_REG: process (DATA, CLK, RESET) Begin If RESET = ‘1’ then REG <= REG_TYPE (others => ‘0’); Elsif CLK =’1’ and CLK’event then REG <= REG(REG’left-1 downto REG’right) & DATA; End if; End process; P_FOUND: process (REG) Variable CPT: NATURAL range 0 to ERROR_NUMBER +1; Begin CPT := 0; FOUND <= ‘0’; For l in REG’range loop If PATTERN(l) /= REG(l) then CPT := CPT + 1; If CPT >= ERROR_NUMBER then FOUND <= ‘1’; Exit; End if; End if; End loop; End process; End A;

Trong các ví dụ trên cần chú ý những điểm sau:

• Sử dụng các lệnh assert trong entity không tạo ra phần cứng. Lệnh này kiểm tra tính nhất quán giữa các giá trị thông số khó mô tả bởi các biểu thức tĩnh (như là các khoảng trong các kiểu hoặc biểu thức kiểu con).

GV: Nguyễn Trọng Hải Trang 28

Page 264: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

• Kiến trúc bao gồm hai quá trình: Quá trình đầu tiên suy ra phần cứng tuần tự với một tín hiệu reset bất đồng bộ, trong khi đó quá trình thứ hai biểu diễn mạch tổ hợp thuần tuý.

• Khai báo REG_TYPE đã được đưa ra để hạn chế tập hợp còn lại (others => '0') trong nhánh RESET bất đồng bộ.

• Các thực thể tương thích chung cần được ánh xạ đến các giá trị thông số để tạo ra phần cứng thực sự. Điều này có thể được làm trong bản sao hợp phần hoặc trong cấu hình, ở đó các thông số tương thích chung được ánh xạ đến các giá trị của chúng.

14. Phép so sánh. Có hai loại so sánh sau:

• Kiểm tra 2 đối tượng giống nhau. Bao gồm các hàm (cũng được gọi các toán tử) bằng ('=') và không bằng ('/='). Tất các kiểu tổng hợp được có thể được so sánh khi sử dụng các toán tử này.

• Kiểm tra thứ bậc của hai đối tượng khi sử dụng các toán tử quan hệ, các toán tử này có thể được thực hiện trên kiểu bất kỳ với một lệnh quan hệ như là các kiểu số nguyên, các kiểu liệt kê và kiểu biểu diễn mã ASCII là quá tải đối với các toán tử so sánh.

15. Các toán tử số học. Sau các toán tử Boolean và các phép so sánh, một họ quan trọng khác là toán tử số học. Bốn phép toán cơ bản đó là: phép cộng, trừ, nhân và chia.

Kiểu dữ liệu thuận tiện nhất để thực hiện các phép toán như vậy là kiểu INTEGER và các kiểu con quan hệ với nó: NATURAL và POSITIVE. Các toán tử VHDL '+', '-', '*', và '/ 'được định nghĩa trước và vì vậy có thể được sử dụng mà không cần khai báo. Điều này cần thiết cho người thiết kế để hạn chế kích thước các đối tượng của kiểu INTEGER đến giá trị tối tưu. Nếu người thiết kế không làm công việc này, công cụ tổng hợp sẽ xác định kích thước đã định nghĩa của kiểu INTEGER trong khối (STD.STANDARD).

Ví dụ, Signal l1, l2, SUM_l: INTEGER range –16 to 15; Signal N1, N2, SUM_N: INTEGER range 0 to 47; SUM_l <= l1 + l2; SUM_N <= N1 + N2;

Trong ví dụ ngắn này có một vài chú thích về quy ước mã hoá các số. Tất cả quá trình tổng hợp nhằm vào việc dịch mã nguồn HDL thành biểu diễn nhị phân. Ơ đây, các số có dấu l1, l2 và SUM_l được mã hoá ở dạng bù hai với việc sử dụng 4 +1 bit. Mặt khác, các số không dấu N1, N2 và SUM_N được mã hóa với 6 bit (47<2**6-1). Tuy nhiên, không cần thiết cho khoảng của đối tượng của kiểu INTEGER là luỹ thừa của hai.

Toán tử nhân và chia phải được xác định trước, cả hai toán hạng phải là cùng kiểu số nguyên hoặc là kiểu floating point. Kết quả cũng phải cùng kiểu, toán tử nhân cũng được xác định bởi trường hợp khi một trong những toán hạng là kiểu vật lý và toán hạng thứ hai là kiểu integer hoặc real. Kết quả trả về là kiểu vật lý.

GV: Nguyễn Trọng Hải Trang 29

Page 265: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Đối với toán tử chia, chia một giá trị vật lý bởi một giá trị integer hoặc real thì được cho phép, và kết quả trả về là kiểu vật lý. Phép chia của một giá trị kiểu vật lý bởi một đối tượng khác cùng kiểu vật lý và phần còn lại của nó, một giá trị nguyên coi như một kết quả.

Toán tử REM và MOD tác dụng cho toán hạng kiểu integer và kết quả có cùng một kiểu. Kết quả của REM có biểu hiện của toán hạng thứ nhất và nó được xác định như sau:

A rem B = A - (A / B) *B

Kết quả của toán tử MOD là biểu hiện toán hạng thứ hai, và nó được xác định như sau:

A mod B = A - B * N

Sau đây là những ví dụ sử dụng toán tử mod và rem:

7 mod 4 -- kết quả = 3;

(-7) rem 4 -- kết quả = -3;

7 mod (-4) -- kết quả = -1;

(-7) mod (-4) -- kết quả = 3;

16. Các phép dịch và quay. Các phép tính này thường được thực hiện trên các đối tượng có biểu diễn bit_vector. Hai loại phép tính dịch và quay có thể được phân biệt : luận lý và số học.

Phép dịch số học có thể được sử dụng cho phép nhân (dịch sang trái) hoặc chia (dịch sang phải) nếu toán hạng vế phải của một phép toán là một luỹ thừa của 2. Mỗi một toán tử giữ một dãy BIT hoặc BOOLEAN như một toán hạng trái và giá trị INTEGER như toán hạng phải, đóng vai trò giải thích toán tử. Nếu giá trị INTEGER là âm, hành vi ngược nhau sẽ xảy ra.

Toán tử SLL (xoay trái luận lý) và toán tử SRL (xoay phải luận lý) điền vào những bit huỷ bỏ với left-operand-type'LEFT.

Toán tử SLA (xoay trái số học) điền vào những bit bị huỷ bỏ với bit cực phải của toán hạng trái.

Toán tử SRA (xoay phải số học ), điền vào những phần tử bị huỷ bỏ với bit cực trái của toán hạng trái.

Ví dụ, -- giả sử tất cả những toán hạng trái đều là BIT_VECTOR

"1001010" sll2 is "0101000"; -filled with BIT'LEFT, which is '0'

"1001010" srl3 is "0001001";

GV: Nguyễn Trọng Hải Trang 30

Page 266: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

III. MỘT SỐ VÍ DỤ THIẾT KẾ CÁC MẠCH TỔ HỢP VÀ TUẦN TỰ. Đoạn mã chương trình tạo mạch dồn kênh 2 sang 1.

LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY mux2to1 IS PORT (w0, w1, s :IN STD_LOGIC; F: :OUT STD_LOGIC); END mux2to1; ARCHITECTURE behavior OF mux2to1 IS BEGIN WITH s SELECT F <= w0 WHEN ‘0’, w1 WHEN OTHERS; END behavior;

Mạch so sánh 4 bit. Mạch so sánh 4 bit bao gồm 8 bit ngõ vào, chia thành 2 nhóm, mỗi nhóm 4 bit và được đặt tên là A và B. Kết quả của phép so sánh có 3 trường hợp: A bằng B, A lớn hơn B và A nhỏ hơn B. Trong mạch so sánh này kết quả của phép so sánh ở ngõ vào sẽ được biểu thị bằng 3 bit ngõ ra cho 3 trường hợp so sánh giữa A và B, AeqB(A equal B), AgtB(A greater B), AltB (A lighter B). Mã chương trình của mạch so sánh 4 bit có dạng như sau:

LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsgned.all; ENTITY compare IS PORT (A, B : IN STD_LOGIC_VECTOR(3 DOWNTO 0); AeqB, AgtB, AltB :OUT STD_LOGIC); END compare; ARCHITECTURE behavior OF compare IS BEGIN AeqB <= ‘1’ WHEN A = B ELSE ‘0’; AgtB <= ‘1’ WHEN A > B ELSE ‘0’; AltB <= ‘1’ WHEN A = B ELSE ‘0’; END behavior;

Mạch mã hóa ưu tiên.

LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY priority IS PORT (w :IN STD_LOGIC_VECTOR(3 DOWNTO 0); y :OUT STD_LOGIC_VECTOR(1 DOWNTO 0); z :IN STD_LOGIC; END priority; ARCHITECTURE behavior OF priority IS

GV: Nguyễn Trọng Hải Trang 31

Page 267: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

BEGIN PROCESS (w) IF w(3) = ‘1’ THEN y <= “11”; ELSIF w(2) = ‘1’ THEN y <= “10”; ELSIF w(1) = ‘1’ THEN y <= “01”; ELSE y <= “00”; END IF; END PROCESS; Z <=0 WHEN w = “0000” ELSE ‘1’; w1 WHEN OTHERS; END behavior;

Từ đoạn mã trên ta có mạch bao gồm 4 ngõ vào, 3 ngõ ra, tùy thuộc vào các giá trị ngõ vào mà các ngõ ra sẽ có giá trị tương ứng, ở mạch mã hóa ưu tiên này, w(3) có mức ưu tiên cao nhất và w(0) có mức ưu tiên thấp nhất, giá trị ngõ ra z chỉ bằng 0 khi tất cả các ngõ vào bằng 0, ngược lại nó luôn bằng 1. Đoạn mạch ở trên sử dụng mệnh đề if-then-else, tuy nhiên người thiết kế có thể linh hoạt các thiết kế bằng những mệnh đề khác, nhưng phải đảm bảo hoạt động của mạch là đúng nguyên tắc.

Mạch giải mã từ 2 đường sang 4. Mạch giải mã từ 2 đường sang 4 đường, bao gồm 3 ngõ vào, đó là: w1, w2, En. Hai ngõ vào w1, w2 là hai ngõ vào sẽ quyết định giá trị các ngõ ra, ngõ vào En là ngõ vào cho phép(có thể là mức '0' hoặc mức '1' tùy theo người thiết kế), khi ngõ vào En tích cực thì các ngõ ra mới có được giá trị tương ứng với các ngõ vào. Trong đoạn mã VHDL cho mạch giải mã này, các ngõ ra có ký hiệu từ y3 đến y0. Đoạn mã của chương trình có dạng như sau, trong đoạn mã này, phát biểu case được sử dụng.

LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dec2to4 IS PORT (w : IN STD_LOGIC_VECTOR(1 DOWNTO 0); En : IN STD_LOGIC; y :OUT STD_LOGIC_VECTOR(0 TO 3); END dec2to4; ARCHITECTURE behavior OF dec2to4 IS BEGIN

PROCESS (w, En) BEGIN IF En = ‘1’ THEN CASE w IS WHEN “00” => y <= “1000”; WHEN “01” => y <= “0100”; WHEN “10” => y <= “0010”; WHEN OTHERS => y <= “0001”; END CASE; ELSE y <= “0000”; END IF; END PROCESS; END Behavior;

GV: Nguyễn Trọng Hải Trang 32

Page 268: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

Mạch chốt dữ liệu. Mạch chốt dữ liệu có nhiệm vụ chốt lại dữ liệu ngõ vào và đưa dữ liệu đó tới ngõ ra, dữ liệu tại ngõ ra sẽ thay đổi tương ứng với dữ liệu ngõ vào khi có một xung tác động. Ngõ ra sẽ duy trì dữ liệu mà nó nhận được ở ngõ vào trong suốt quá trình chờ xung tác động, khi không có xung tác động, nếu ngõ vào có thay đổi thì giá trị ngõ ra vẫn không thay đổi giá trị mà nó nhận được ở lần nhận cuối cùng. Đoạn mã VHDL cho mạch chốt được viết như sau:

LIBRARY IEEE; USE ieee.std_logic_1164.all; ENTITY flipflop IS Port ( D, clock : IN std_logic; Q : OUT std_logic); END flipflop; ARCHITECTURE bahavior OF flipflop IS BEGIN

PROCESS BEGIN

WAIT UNTIL Clock’EVENT AND Clock = ‘1’; Q <= D; END PROCESS;

END bahavior;

Với đoạn mã VHDL trên, ngõ vào dữ liệu có tên là D, xung tác động cạnh , ngõ ra là Q, khi có một xung cạnh lên, ngõ ra Q sẽ nhận giá trị từ ngõ vào D và duy trì giá trị đó trong suốt quá trình chờ một xung kế tiếp. Đoạn mã trên được viết với một bit ngõ vào, một bit ngõ ra, người thiết kế hoàn toàn có thể thay đổi số bit ngõ vào và số bit ngõ ra cho phù hợp với thiết kế của mình. Đoạn mã trên được viết đầy đủ cho một mạch chốt, với các công cụ tổng hợp và biên dịch, người thiết kế có thể ứng dụng nó vào trong mạch thực tiễn sau khi đã nạp vào IC.

Mạch tạo thanh ghi 8 bit. Thanh ghi trong mạch số đóng vai trò rất quan trọng, các thiết kế số hiện đại hầu như đều phải sử dụng thanh ghi, VHDL cho phép người thiết kế có thể tạo ra thanh ghi với số bit mong muốn. Ngoài ra còn có thể linh hoạt chúng trong các thiết kế của mình, thanh ghi thực tế chính là một mạch chốt dữ liệu. Đoạn mã sau đây viết cho thanh ghi 16 bit, trong thiết kế có sử dụng thông số tương thích chung generic.

LIBRARY IEEE; USE ieee.std_logic_1164.all; ENTITY regn IS GENERIC ( N : INTEGER := 16); Port ( D, clock : IN std_logic_vector (N-1 DOWNTO 0);

Reset, clock : IN std_logic; Q : OUT std_logic_vector (N-1 DOWNTO 0);

END regn; ARCHITECTURE behavior OF regn IS BEGIN

GV: Nguyễn Trọng Hải Trang 33

Page 269: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

PROCESS (Reset, clock) BEGIN

IF Reset = ‘0’ THEN Q <= (OTHERS => ‘0’); ELSIF Clock’EVENT AND Clock = ‘1’ THEN Q <= D; END IF; END PROCESS;

END behavior;

Mạch đếm lên. Mạch đếm lên hoạt động theo nguyên tắc: khi có một xung tác động ở ngõ vào, ngõ ra sẽ thay đổi một bit theo chiều hướng đếm lên, mạch đếm lên ngoài ngõ vào xung clock, người thiết kế còn có thể tạo thêm các ngõ vào khác như Reset, Enable… để tạo thêm tính linh hoạt của mạch. Mã VHDL cho mạch đếm lên được viết như sau:

LIBRARY IEEE; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY upcount IS Port ( Reset, Clock, En : IN std_logic; Q : OUT std_logic_vector (3 DOWNTO 0); END upcount; ARCHITECTURE behavior OF upcount IS SIGNAL Count : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN

PROCESS (Clock, Reset) BEGIN

IF Reset = ‘0’ THEN Count <= “0000”; ELSIF Clock’EVENT AND Clock = ‘1’ THEN IF En = ‘1’ THEN Count <= Count+ 1; ELSE Count <= Count; END IF; END IF; END PROCESS;

Q <= Count; END behavior;

Mạch đệm 3 trạng thái. Mạch đệm 3 trạng thái giúp mạch thực tế khi hoạt động có thể điều chỉnh ngõ ra ở trạng thái thích hợp cho sự vận hành của mạch, với 3 trạng thái, người thiết kế các mạch số sẽ điều chỉnh mạch sao cho hoạt động tốt hơn và tiết kiệm năng lượng hơn. Mã VHDL cho mạch đệm 3 trạng thái được viết như sau:

GV: Nguyễn Trọng Hải Trang 34

Page 270: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

LIBRARY IEEE; USE ieee.std_logic_1164.all; ENTITY trin IS GENERIC ( N : INTEGER := 8); Port( X : IN std_logic_vector (N-1 DOWNTO 0); E : IN std_logic; F : OUT std_logic_vector (N-1 DOWNTO 0); END trin; ARCHITECTURE behavior OF trin IS BEGIN F <= (OTHERS => ‘Z’) WHEN E =’0’ ELSE X; END behavior;

Xây dựng máy trạng thái trong VHDL

library ieee; use ieee.std_logic_1164.all; use work.std_arith.all; entity divby5 is port(x, clk : in std_logic; y : out std_logic); end divby5; architecture state_machine of divby5 is type StateType is (state0, state1, state2, state3, state4); signal p_s, n_s : StateType; begin fsm: process (p_s, x) begin case p_s is when state0 => y <= '0'; if x = '1' then n_s <= state1; else n_s <= state0; end if; when state1 => y <= '0' if x = '1' then n_s <= state3; else n_s <= state2

GV: Nguyễn Trọng Hải Trang 35

Page 271: BAØI GIAÛNGdulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so...BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH

Bài giảng Thiết Kế Hệ Thống Số Phần VHDL

end if; when state2 => if x = '1' then n_s <= state0; y <= '1'; else

n_s <= state4; y <= '0'; end if; when state3 => y <= '1'; if x = '1' then n_s <= state2; else

n_s <= state1; end if; when state4 => y <= '1'; if x = '1' then n_s <= state4; else

n_s <= state3; end if;

when others => n_s <= state0;

end case

end process fsm; state-clocked : process (clk) begin if rising_edge(clk) then

p_s <= n_s; end if; end process state_clocked; end architecture state_machine;

GV: Nguyễn Trọng Hải Trang 36