Bài giảng kỹ thuật số

192 9 0
Bài giảng kỹ thuật số

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH BÀI GIẢNG KỸ THUẬT SỐ Ths NGUYỄN TRỌNG HẢI LƯU HÀNH NỘI BỘ 05/2006 MỤC LỤC TỔNG QUAN Trang CHƯƠNG HỆ THỐNG SỐ ĐẾM 1.1 Cơ số – chuyển đổi số 1.2 Các mã hóa số hệ mười thông dụng 14 CHƯƠNG ĐẠI SỐ BOOLEAN VÀ CÁC CỔNG LOGIC 24 2.1 Khái niệm logic hai trạng thái 24 2.2 Bảng thật 24 2.3 Các phép toán .25 2.4 Mô tả mạch logic theo phương pháp đại số .25 2.5 Thực mạch logic từ biểu thức Boolean 25 2.6 Cổng NOR NAND .26 2.7 Pheùp toán XOR phép toán tương đương 27 2.8 Các định lý đại số Boolean 27 2.9 Logic dương âm 31 2.10 Các hàm phương pháp biểu diễn 23 2.11 Tối thiểu hàm logic bìa K 38 CHƯƠNG MẠCH LOGIC TỔ HP 45 3.1 Giới thiệu 45 3.2 Thiết kế mạch logic tổ hợp .45 3.3 Kỹ thuật cực tiểu Quine-Mc Cluskey .47 3.4 Thieát kế mạch không sử dụng bảng thật 49 3.5 Mạch giải mã 53 3.6 Mạch mã hóa 59 3.7 Bộ chọn kênh 62 3.8 Bộ phân kênh 65 3.9 Mạch số học 67 3.10 Mạch chuyển mã 69 CHƯƠNG HỆ TUẦN TỰ 74 4.1 Toång quan .74 4.2 Các phần tử hai trạng thái bền 75 4.3 FlipFlop 76 4.4 FlipFlop duøng xung clock 79 4.5 Các ứng dụng FlipFlop 83 4.6 Máy trạng thái 104 4.7 Lưu đồ máy trạng thái 105 4.8 Bộ nhớ bán daãn .116 4.9 ROM – thiết kế hệ thống số dùng ROM 118 4.10 PLD tổ hợp 127 4.11 PLD tuaàn tự .132 4.12 Các PLD khác 135 CHƯƠNG CÁC HỌ VI MẠCH SỐ 146 5.1 Toång quan .146 5.2 Các đặc trưng vi mạch soá .146 5.3 Hoï RTL 148 5.4 Hoï DTL .148 5.5 Hoï TTL 148 5.6 Các đặc điểm họ TTL chuẩn 149 5.7 Hoï TTL cải tiến 150 5.8 Họ TTL với ngõ cực thu hở 150 5.9 Họ TTL ba trạng thái 151 5.10 Maïch logic MOS 151 5.11 Hoï CMOS 151 5.12 Một số vi mạch thông dụng 152 CHƯƠNG GIAO TIẾP TƯƠNG TỰ - SỐ 153 6.1 Biến đổi ADC .153 6.2 Biến đổi DAC .160 PHUÏ LUÏC A TRA CỨU CÁC IC THÔNG DỤNG 167 PHỤ LỤC B CÔNG CỤ CAD TRONG THIẾT KẾ SỐ .251 Bài Giảng Kỹ Thuật Số Tổng quan TỔNG QUAN Các hệ thống số thường sử dụng rộng rãi tính toán xử lý data hệ thống điều khiển, thông tin, đo lường hệ thống số có khả xác cao hệ thống tương tự Trong hệ thống số, tín hiệu vật lý xem giá trị rời rạc, hệ thống tương tự đại lượng thay đổi liên tục Ví dụ, điện áp ngõ hệ thống số biến đổi cho ngõ có giá trị 1, điện áp ngõ từ hệ thống tương tự có giá trị thay đổi khoảng từ Vmin đến Vmax Do hệ thống số làm việc với đại lượng rời rạc, nhiều trường hợp thiết kế với kết ngõ vào ngõ cách xác Ví dụ, nhân số gồm chữ số sử dụng nhân digital kết số có 10 chữ số xác 10 Nói cách khác, ngõ nhân analog có khoảng sai số (%) tùy thuộc vào độ xác thành phần thiết lập nên nhân Thiết kế hệ thống số chia phần: Thiết kế hệ thống • Thiết kế Logic Thiết kế Mạch Thiết kế hệ thống (system design) bao gồm việc chia nhỏ hệ thống lớn thành hệ thống rõ đặc tính hệ thống Ví dụ, thiết kế hệ thống máy tính số bao gồm việc số dạng đơn vị nhớ, đơn vị toán học, thiết bị vào việc kết nối điều khiển hệ thống v.v • Thiết kế logic (logic design) bao gồm việc xác định làm để kết nối khối logic để hình thành hàm đặc biệt • Thiết kế mạch bao gồm việc kết nối bên thành phần điện trở, diode, transistor để hình thành cổng, flipflop khối logic khác Hầu hết thiết kế mạch thực dạng mạch tích hợp dùng công cụ thiết kế với trợ giúp máy tính để tạo kết nối thành phần chip silicon Nhiều hệ thống có dạng chuyển mạch sau: Inputs X1 X2 Switching Network Xm Z1 Z2 Zn Trang Outputs Bài Giảng Kỹ Thuật Số Tổng quan Moät mạng chuyển mạch có hay nhiều ngõ vào hay nhiều ngõ ra, loại switching network thông thường là: • Mạch tổ hợp, tín hiệu ngõ lệ thuộc vào trạng thái ngõ vào (không lệ thuộc vào giá trị ngõ vào trước đó) • Mạch tuần tự, ngõ tùy thuộc giá trị trước giá trị ngõ vào Nói cách khác, để xác định ngõ mạch tuần tự, chuỗi ngõ vào phải xác định Mạch gọi mạch có nhớ phải nhớ số trạng thái trước ngõ vào, mạch tổ hợp nhớ Tổng quát, mạch kết hợp mạch tổ hợp với phần tử nhớ Các khối sử dụng mạch tổ hợp cổng logic Khi thiết kế logic, phải xác định làm kết nối cổng để biến đổi tín hiệu ngõ vào thành tín hiệu ngõ mong muốn Mối quan hệ tín hiệu ngõ vào ngõ phải mô tả toán học, thiết kế số gọi đại số Boolean Các bước thiết kế mạch tổ hợp • Thiết lập bảng mô tả mối quan hệ ngõ tổ hợp ngõ vào • Thiết lập biểu thức logic toán học mô tả ngõ hàm ngõ vào • Rút gọn biểu thức logic mô tả ngõ dùng số phương pháp thông dụng bìa Karnaugh, Quine-McCluskey v.v • Thực mạch Các phần tử nhớ thiết kế mạch FlipFlop Các flipflop kết nối với cổng để hình thành mạch Các bước thiết kế mạch • Thiết lập bảng mô tả mối quan hệ ngõ ngõ • Thiết lập biểu thức logic toán học mô tả ngõ vào flipflop hàm ngõ • Rút gọn biểu thức logic mô tả ngõ vào dùng số phương pháp thông dụng bìa Karnaugh, Quine-McCluskey v.v • Thực mạch Phân tích cách tổng quát mạch thường dùng giản đồ thời gian, máy trạng thái graph Phần tử chuyển mạch duøng hệ thống số thường phần tử trạng thái, ngõ có giá trị rời rạc khác Ví dụ relay, diode, transistor Hai trạng thái relay đóng mở tùy thuộc vào nguồn cung cấp cho cuộn dây Trang Bài Giảng Kỹ Thuật Số Tổng quan Hai trạng thái diode trạng thái dẫn không dẫn Hai trạng thái transistor bão hòa tắt, thường dùng số nhị phân hệ thống số Bất thiết kế logic số thực nhờ PLD (Programmable Logic Design) PLD tên gọi tổng quát IC số mà lập trình để thực hàm logic khác chip chứa cấu trúc mạch có qui luật cho phép người thiết kế tạo ứng dụng cụ thể Q trình thiết kế PLD sau Ý tưởng Trình soạn thảo mạch Trình soạn thảo văn Trình biên dịch mơ Kit nạp IC Một số công cụ phần mềm hỗ trợ thiết kế số: MAX+PLUS II, ABEL, SYNARYO Một số ngôn ngữ mô tả phần cứng: ABEL, VHDL, AHDL, Trang Bài Giảng Kỹ Thuật Số Chương CHƯƠNG HỆ THỐNG SỐ ĐẾM 1.1 CƠ SỐ - CHUYỂN ĐỔI CƠ SỐ 1.1.1 Khái niệm Baát số nguyên dương R (R>1) chọn làm số cho hệ thống số Nếu hệ thống có số R số từ đến (R-1) sử dụng Ví dụ: R=8 chữ số cần thiết 0,1,2,3,4,5,6,7 Các hệ thống số thông dụng kỹ thuật số: • Thập phân (cơ số 10) • Nhị phân (cơ số 2) • Bát phân (cơ số 8) • Thập lục phân (cơ số 16) Một hệ thống với số R biểu diễn dạng (…a3a2a1a0 a-1a-2a-3…)R Phần ngun Phần thập phân Khai triển theo hàm mũ 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 số lớn 10 cần phải thêm ký hiệu để biểu số lớn 10 Ví dụ hệ thập lục phân (hex) có số 16 A biểu thị 10, B biểu thị 11,…, F biểu thị 15 Đổi số Phần ngun phần thập phân đổi cách riêng biệt Phần nguyên đổi cách sử dụng phép chia lặp cho số sử dụng chuỗi số dư phát sinh để tạo số Phép tính số học thực số hạng số cũ Phần thập phân đổi cách nhân lặp lại cho số mới, sử dụng số nguyên tạo để biểu thị phân số chuyển đổi, phép tính số học thực số cũ GV: Nguyễn Trọng Hải Trang Bài Giảng Kỹ Thuật Số Chương Ví dụ: Biến đổi phần nguyên hệ số 10 sang hệ số R N = (anan-1…a2a1a0)R = an.Rn + an-1.Rn-1 + … + a2.R2 + a1.R1 + a0 Nếu chia N cho R, nhận số dư a0 a N = an.Rn-1 + an-1.Rn-2 + … + a2.R1 + a1 + = Q1 + số dư a0 R R Chia Q1 cho R Q1 a = an.Rn-2 + an-1.Rn-3 + … + a3.R1 + a2 + = Q2 + số dư a1 R R Quá trình thực tiếp tục tìm tất hệ số an Ví dụ: Biến đổi phần thập phân hệ số 10 sang hệ 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 Nhâ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 phần nguyên, F1 phần lẻ phép nhân Tiếp tục nhâ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 Tiếp tục trình xác định hết hệ số a-m Biến đổi số khơng phải số 10 thực dễ dàng cách biến đổi sang số 10 biến đổi tiếp từ số 10 sang số 1.1.2 Hệ thập phân (hệ số 10) Hệ thập phân kết hợp 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, Một chữ số hệ thập phân biểu diễn theo số mũ 10 Trọng số 103 102 101 100 MSD 10-1 10-2 , Điểm thập phân LSD Số mang trọng số lớn gọi MSD (most significant digit) Số mang trọng số nhỏ gọi LSD (least significant digit) Ví dụ: Số 5346,72 biểu diễn sau: 5346,72 = 5.103 + 3.102 + 4.10 + + 7.10-1 + 2.10-2 GV: Nguyễn Trọng Hải Trang Bài Giảng Kỹ Thuật Số • Chương Đếm hệ thập phân: 10 11 12 13 14 100 101 102 103 104 105 106 107 108 109 99 Tổng quát với N chữ số đếm 10N số khác nhau, bao gồm số Số thập phân lớn laø 10N – 1.1.3 Hệ nhị phân (hệ số 2) Hệ nhị phân dùng hai chữ số 0, Một số hệ nhị phân biểu diễn theo số mũ Trọng số 23 22 21 20 2-1 2-2 2-3 MSB 1 1 Điểm nhị phân LSB Một chữ số nhị phân gọi bit Chuỗi bit nhị phân gọi nibble Chuỗi bit gọi byte Chuỗi 16 bit gọi word Chuỗi 32 bit gọi double word Chữ số nhị phân bên phải chuỗi bit gọi bit có ý nghóa nhỏ (least significant bit – LSB) Chữ số nhị phân bên trái chuỗi bit gọi bit có ý nghóa lớn (most significant bit – MSB) Thường dùng chữ B cuối chuỗi bit để xác định số nhị phân Ví dụ: Số 1011,101B biểu diễn giá trị soá: 1011,101B = 1.23 + 0.22 + 1.21 +1.20 + 1.2-1 + 0.2-2 + 1.2-3 GV: Nguyễn Trọng Hải Trang Bài Giảng Kỹ Thuật Số • Chương Đếm hệ nhị phân Xét đếm bit, bắt đầu với tất bit = Trọng số 23 = 22 = 21 = 20 = 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 1 Cũng hệ thập phân, dùng N bit đếm 2N lần • Chuyển số nhị phân thành số thập phân: Phương pháp: Cộng trọng số bit Ví dụ: 1011,11B = 1.23 + 0.22 + 1.21 + + 1.2-1 + 1.2-2 = 11,75 • Chuyển số thập phân thành số nhị phân: Phương pháp: Phần nguyên: Chia 2, nhớ lại số dư Phần thập phân: Nhân 2, nhớ lại phần nguyên Ví dụ: Chuyển (25)10 số nhị phaân 25 = 12 12 =6 =3 =1 =0 + số dư + số dư + số dư + số dư + số dư MSB 25 = GV: Nguyễn Trọng Hải LSB Trang 0 Bài Giảng Kỹ Thuật Số 1.9 Phụ lục B Phát biểu test_vectors: Cú pháp Text vectors[‘note’] (inputs → outputs) [invalues → out values] Mục đích: Các test_vectors dùng để mô hoạt động hệ kiểm tra chức hoạt động hệ chạy chương trình mô Sử dụng note: chuỗi ký tự để mô tả text_vectors inputs : danh định hay tập hợp danh định tên tín hiệu vào hay hồi tiếp ngõ vào hệ Outputs : danh định hay tập hợp danh định tên tín hiệu hệ Invalues : hay tập hợp giá trị vào Outvalues : hay tập hợp giá trị hàm logic giá trị vào gía trị trạng thái (hệ tuần tự) Ví dụ 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 Phát biểu istype Cú pháp Signal [ , signal] … istype ’attr[ , attr]…’; Hay signal [ , signal] … pin istype ‘attr[ , attr]… ‘; Mục đích: Phát biểu istype định nghóa thuộc tính pin hay node lập trình dụng cụ (PLD) Các thuộc tính pin hay node khai báo dòng Sử dụng signal: danh hiệu pin hay node attr: chuỗi ký tự xác định thuộc tính signal Các thuộc tính hợp lệ là: ‘buffer’ : đệm ‘com’ : hệ tổ hợp ‘invert’ : đảo ‘neg’ : tính cực mức thấp ‘pos’ : tính cực mức cao ‘reg’ : ghi (hệ tuần tự) ‘reg_D’,’reg_T’,’reg_JK’,’reg_SR’ : cácFF, D, T, JK, SR GV: Nguyễn Trọng Hải Trang 256 Bài Giảng Kỹ Thuật Số Ví dụ Phụ lục B F0, A istype ‘neg , reg’; istype định nghóa F0 , A tín hiệu ghi , tác động mức thấp outputs pin 15 istype ‘reg , invert’ tín hiệu output chân 15 ghi ngõ đảo (ngõ Q ) 1.11 Phát biểu end End Cú pháp Hay end modname Mục đích: Dùng kết hợp với phát biểi module để mở đầu kết thúc module chương trình Sử dụng signal: danh hiệu pin hay node attr: chuỗi ký tự xác định thuộc tính signal Các thuộc tính hợp lệ là: ‘buffer’ : đệm ‘com’ : hệ tổ hợp ‘invert’ : đảo ‘neg’ : tính cực mức thấp ‘pos’ : tính cực mức cao ‘reg’ : ghi (hệ tuần tự) ‘reg_D’,’reg_T’,’reg_JK’,’reg_SR’ : cácFF, D, T, JK, SR Ví dụ F0, A istype ‘neg , reg’; istype định nghóa F0 , A tín hiệu ghi , tác động mức thấp outputs pin 15 istype ‘reg , invert’ tín hiệu output chân 15 ghi ngõ đảo (ngõ Q ) CÁC KHAI BÁO (DECLARATIONS) 2.1 Pin Cú pháp [!]pin_id[,[l]pin_id…]pin[pin#[,pin#]] istype ’attr’]; Mục đích: Từ khóa pin dùng để khai báo tín hiệu input output, tín hiệu in/out quy định sẵn dụng cu ï(theo sổ tra cứu) Khai báo định nghóa thuộc tính chân Khi danh sác danh định chân số chân có khai báo chân , có tương ứng 1-1 danh định chân số chân Sử dụng pin_id: danh hiệu dùng để đặt tên cho chân pin #: số thứ tự chân dụng cụ (PLD)thật GV: Nguyễn Trọng Hải Trang 257 Bài Giảng Kỹ Thuật Số Phụ lục B attr: chuỗi xác định thuộc tính chân !: ký hiệu NOT,tích cực mức thấp Ví dụ !clock,reset,S1 pin 12,15,3; khai báo gán tên chân: clock chân 12, reset chân 15, S1 chân !clock: tích cực mức 2.2 Node Cú pháp [!]node_id[,[!]node_id … ]node[node#[,node# …][istype ’attr’]; Mục đích: Từ khóa node dùng để khai báo tín hiệu gán cho nút ẩn dụng cụ Sử dụng node_id: danh hiệu dùng để đặt tên nút node#: số thứ tự nút dụng cụ thật (nút tương đương chân ẩn dụng cụ số nút cho sổ tay tra cưú) Ví dụ B node istype’reg’ : xác định nút B ngõ FF dụng cụ A,B node 25,26 : gán tên A nút 25, gán tên B nút 26 Số nút nhà sản xuất quy định sổ tay tra cứu 2.3 Dụng cụ (Device) Cú pháp Device-id device real_device; Mục đích: Khai báo device cho PLD thật Trong trình biên dịch, hàm logic đưa dạng theo cấu trúc cổng dụng cụ thật Sử dụng device-id: danh hiệu, tên file fusemap real-device: mô tả mã số dụng cụ (PLD) đặt dấu nháy đơn (‘) Phải đặt dấu ; sau khai báo Ví dụ D1 device ‘P16R4’: khai báo cho biết D1 loại PLD PAL 16R4 CÁC KHAI BÁO KHÁC (OTHER DECLARATIONS) 3.1 Hằng (constant) Cú pháp id[,id]… = expr[,expr] …; Mục đích: Khai báo định nghóa số dùng module Sử dụng id: danh hiệu đặt tên cho expr: xác định gía trị Ví dụ X = X.; GV: Nguyễn Trọng Hải “X mang ý nghóa không xác ñònh Trang 258 Bài Giảng Kỹ Thuật Số 3.2 Phụ lục B Z = Z.; “Z mang ý nghóa tổng trở cao C = C “C mang ý nghóa tác động cạnh lên A = ^b01 ; “số nhị phân B = ^h16; “số hex C = 10; “số thập phân Tập hợp (set) Định nghóa Tập hợp tập hợp tính hiệu số mà tác vụ thực đơn vị Bất tác vụ áp dụng cho tập hợp áp dụng cho phần tử tập hợp Tập hợp làm đơn giản việc mô tả logic test-vectors cách cần dùng tên gọi tập hợp Sử dụng Một tập hợp đại diện danh sách số tín hiệu ngăn cách dấu chấm phẩy hay dấu khoảng ( ), đặt dấu ngoặc vuông ([ ]) Sau khai báo tập hợp phải có dấu ; Ví dụ MULOUT = [B0,B1,B2,B3,B4,B5,B6,B7]; hay MULOUT = [B0…B7]; MULOUT laø khai báo tên tập hợp gồm tín hiệu từ B0 đế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 tập hợp gồm tín hiệu D,C,B,A LED tập hợp gồm tín hiệu g,f,e,d,c,b,a 3.3 Macro Cú pháp Macro_id macro [(dummy_arg [, dummy_arg]…)]{block}; Mục đích: Khai báo macro định nghóa macro thực chức năng, phép toán,biểu thức logic khối Chỉ định nghóa macro lần phần khai báo macro module dùng nơi module Khai báo macro tương tự trình hợp ngữ Macro dùng module mà khai báo GV: Nguyễn Trọng Hải Trang 259 Bài Giảng Kỹ Thuật Số Phụ lục B macro_id: danh hiệu đặt tên cho macro dummy_arg: thông số hình thức block: biểu thức logic Sử dụng Ví dụ NAND3 macro (A,B,C) {!(A&B&C)} NAND3 macro thực chức hàm logic A.B.C với A,B,C thông số hình thức Sau module khai báo macro ta có khai báo: D = NAND (Clock, Hello, busy); Kết qủa là: D = !(Clock&Hello&Busy) biên dịch 3.4 Enable Cú pháp Enable output_id = [!]expr; Mục đích: Khai báo enable cho phép ngõ trạng thái hoạt động theo tín hiệu điều khiển gía trị expr Sử dụng khai báo theo sau phát biểu equations Sử dụng output_id: danh hiệu đặt tên cho ngõ tập hợp ngõ expr: biểu thức logic Ví dụ OE pin11; F0,F1,F2,F3 pin 19,18,17,16; Count = [F0,F1,F2,F3]; Equations Enable count = !OE Các ngõ từ F0 đến F3 tập hợp count ngõ trạng thái , hoạt động OE = trạng thái high-Z OE = Có thể sử dụng tiếp vó ngữ OE thay cho khai báo enable (xem phần tiếp vó ngữ) CÁC TOÁN TỬ (OPERATORS) 4.1 Toán tử chuẩn (standard) ! NOT = toán tử gắn cho biểu thức tổ hợp # OR := toán tử gán cho biểu thức ghi (tuần tự) & AND $ XOR !$ XNOR GV: Nguyễn Trọng Hải Trang 260 Bài Giảng Kỹ Thuật Số Phụ lục B Ngoài từ khoá @ALTERNATE báo cho trình biên dịch biết toán tử tương đương (alternate) thay cho toán tử chuẩn (các ký hiệu dễ nhớ hơn) Bộ toán tử thay (phải có từ khoá @ALTERNATE đầu module chương trình) / * + :+: :*: 4.2 NOT AND OR XOR XNOR Toaùn tử so sánh == != không < nhỏ > lớn = lớn Ngoài cho phép viết biểu thức điều kiện , biểu thức trả thoả điều kiện trả không thỏa điều kiện Ví dụ Q = (P = =1); “Q P =1 Q P khác CÁC TIẾP ĐẦU NGỮ (Prefix), tiếp vó ngữ (suffix) 5.1 Tiếp đầu ngữ Tóan tử Not (! hay /) dùng tiềp đầu ngữ để báo trình biên dịch biết tín hiệu hoạt động (tích cực) mức logic Ví dụ: 5.2 !Q0 pin 15; tương đương với Q0 pin 15 istype ‘neg’; Tiếp vó ngữ Các tiếp vó ngữ thường dùng chế độ ghi để truy xuất đến chân nội ghi Ví dụ Q0.CK truy xuất đến chân clock tín hiệu Q0 chế độ ghi Tương tự RE,.PR,.D,.T… truy xuất đến chân reset,preset,D,T cuả ghi Tiếp vó ngữ OE cho phép xuất ngõ trạng thái Ví dụ out.oe = !ena; ena =0 → ngõ out phép xuất ena = → ngõ out trạng thaùi high-Z GV: Nguyễn Trọng Hải Trang 261 Bài Giảng Kỹ Thuật Số Phụ lục B GHI CHUÙ (Comments) Các ghi minh hoạ , giải thích chương trình bắt đầu dấu nháy kép (“)và kết thúc dấu nháy kép (“) xuống dòng Ví dụ Q1,Q2,Q3, pin 14,15,16 “outputs “declarations QSTATE = [Q1,Q2,Q3]; “sets GV: Nguyễn Trọng Hải Trang 262 Bài Giảng Kỹ Thuật Số Phụ lục B BÀI THÍ NGHIỆM BIÊN DỊCH VÀ MÔ PHỎNG ABEL A MỤC ĐÍCH – YÊU CẦU BÀI THÍ NGHIỆM: • Giúp sinh viên nắm kỹ thuật lập trình biên dịch ngôn ngữ ABEL thiết kế PLD (các dạng hồi tiếp, không hồi tiếp, ghi…) • SV phải đọc kỹ trước sở lý thuyết ôn lại kiến thức kỹ thuật số • SV phải nhập sẵn thí nghiệm vào đóa mềm B THIẾT BỊ SỬ DỤNG: Máy vi tính + chương trình • C NỘI DUNG THÍ NGHIỆM: Thí nghiệm Mục đích: Dùng biểu thức equations để thực mạch (mode đơn) Thiết kế MUX 12 → dùng GAL16V8 hình sau A0 A1 A2 A3 B0 B1 B2 B3 C0 C1 11 U2 I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 F0 F1 F2 F3 F4 F5 F6 F7 12 13 14 15 16 17 18 19 C2 C3 Y0 Y1 Y2 Y3 S1 S0 16V8 Các ngõ vào: [a3,a2,a1,a0], [b3,b2,b1,b0], [c3,c2,c1,c0] Ngõ : [y0, y1, y2, y3] • Điều khiển chọn kênh : [S1, S0] Chương trình Module mux12t4 title '12 to multiplexer Thi nghiem 1' “Cac khai bao mux12t4 device 'P16V8S'; 10 a0,a1,a2,a3 b0,b1,b2,b3 c0,c1,c2,c3 s1,s0 y0,y1,y2,y3 GV: Nguyễn Trọng Hải pin pin pin pin pin 1,2,3,4; 5,6,7,8; 9,11,12,13; 18,19; 14,15,16,17; Trang 263 Bài Giảng Kỹ Thuật Số 11 12 13 14 15 16 17 18 • Phụ lục B 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]; 19 20 21 22 23 equations y = (select (select (select (select 24 25 26 27 28 29 30 31 32 33 34 35 36 37 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 == == == == 0) 1) 2) 3) & & & & a b c c # # # ; Giải thích chương trình - - - Dòng khai báo tên module mux12t4 Dòng 2,3 khai báo tên title đặt tên Dòng thích Dòng khai báo dụng cụ (device) tên U1 dùng vi mạch 16V8S (simple mode) Dòng 6,7,8,9,10 khai báo gán tên chân tương ứng hình Dòng 11, 12, 13 khai báo : L = 0, H = 1, X=tùy định Dòng 14,15,16,17,18 khai báo tập hợp : select = [S1,S0] tập gồm biến điều khiển chọn kênh, tương tự cho tập a, b, c, y Việc khai báo tập hợp tiện ta cần tham chiếu tới ngõ điều khiển ngõ phần sau Dòng 19 bắt đầu phát biểu equations Giá trị gán cho toán tử ‘bằng’ dùng hệ thập phân Nếu dùng hệ nhị phân ta ghi : (select = = ^b00) Dòng 24 bắt đầu phát biểu test_vectors để kiểm tra chức hệ, khai báo tín hiệu ngõ vào ngõ cần kiểm tra Ngõ vào tập hợp biến select, a, b, c Ngõ tập hợp biến y GV: Nguyễn Trọng Hải Trang 264 Bài Giảng Kỹ Thuật Số • Phụ lục B Dòng 25 đến 27 vector kiểm tra dồn kênh cho ngõ vào select=0 Dòng 28 đến 30 vector kiểm tra dồn kênh cho ngõ vào select=1 Dòng 31 đến 33 vector kiểm tra dồn kênh cho ngõ vào select=2 Dòng 34 đến 36 vector kiểm tra dồn kênh cho ngõ vào select=3 Dòng 37 phát biểu END kết thúc chương trình Biên dịch chương trình Bước 1: Nhập file nguồn thí nghiệm Bước 2: Biên dịch chương trình dùng phần mềm ABEL Từ thư mục ABEL đánh lệnh abe filename Bước 3: Xem lại file hình thành (file.doc, file.list) Bước 4: Thêm từ khóa flag ‘-t1’ vào sau phát biểu module Module mod-id flag ‘-t1’ Bước 5: Biên dịch lại chương trình xem kết file.sim Nhận xét Thí nghiệm Mục đích: Thiết lập điều khiển ngõ chế độ I/O Hi Z (mode phức) Thiết kế đệm chiều trạng thái dùng GAL 16V8 S1 S0 S1 S0 GAL16V8 B2 B1 B0 11 U2 I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 F0 F1 F2 F3 F4 F5 F6 F7 12 13 14 15 16 17 18 19 16V8 A2 A1 A0 Các ngõ vào/ra: [a2,a1,a0], [b2,b1,b0] Điều khiển chọn chiều data: [S1, S0] Nếu [S1,S0] = [0,1]: hướng từ B sang A Nếu [S1,S0] = [1,0]: hướng từ A sang B • Chương trình module tsbuffer title 'bi-directional three state buffer Thi nghiem 2' TSB1 device 'P16V8c'; GV: Nguyễn Trọng Hải Trang 265 A2 A1 A0 B2 B1 B0 Bài Giảng Kỹ Thuật Số S1,S0 A2,A1,A0 B2,B1,B0 10 11 Select A = B = X,Z = 12 13 14 Equations A = B; B = A; 15 16 17 18 19 20 21 22 23 24 25 26 27 • Pin 1,2; Pin 13,14,15; Pin 16,17,18; = [S1,S0]; [A2,A1,A0]; [B2,B1,B0]; X., Z.; Enable A = (Select==1); Enable B = (Select==2); test_vectors ([Select, [ , [ , [ , [ , [ , [ , [ , [ , A, 0, 7, X, X, 3, 5, 0, 7, B]-> 0]-> 7]-> 3]-> 5]-> X]-> X]-> 0]-> 7]-> [ [ [ [ [ [ [ [ [ A, Z, Z, 3, 5, X, X, Z, Z, B]) Z]; Z]; X]; X]; 3]; 5]; Z]; Z]; end Giải thích chương trình - • Phụ lục B Dòng khai báo device mode phức (modeI/O) Dòng 11 khai báo z tổng trở cao Dòng 15 cho phép A xuất [S1S0] = [01], lúc hường truyền từ B->A Dòng 16 cho phép B xuất [S1S0] = [10], lúc hường truyền từ A->B Biên dịch chương trình Bước 1: Nhập file nguồn thí nghiệm Bước 2: Biên dịch chương trình dùng phần mềm ABEL Từ thư mục ABEL đánh lệnh abe filename Bước 3: Xem lại file hình thành (file.doc, file.list) Bước 4: Thêm từ khóa flag ‘-t1’ vào sau phát biểu module Module mod-id flag ‘-t1’ Bước 5: Biên dịch lại chương trình xem kết file.sim Nhận xét GV: Nguyễn Trọng Hải Trang 266 Bài Giảng Kỹ Thuật Số Phụ lục B Thí nghiệm Mục đích: Sử dụng bảng thật truth_table để thực mạch Thiết kế giải mã 2→ sử dụng GAL16V8 hoạt động theo bảng thaät sau: Input G B 1 1 1 x • A 1 x Y3 1 1 Output Y2 Y1 1 0 1 1 Y0 1 1 G1 A1 B1 G2 A2 B2 11 U2 I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 F0 F1 F2 F3 F4 F5 F6 F7 16V8 Chương trình 10 11 12 13 14 15 16 17 18 19 20 21 22 Module decod2t4 Title 'giai ma sang Thi nghiem 3' 23 24 25 26 27 28 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]; 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]; GV: Nguyễn Trọng Hải Trang 267 12 13 14 15 16 17 18 19 Y32 Y22 Y12 Y02 Y31 Y21 Y11 Y01 Bài Giảng Kỹ Thuật Số • Phụ lục B 29 30 31 32 33 34 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]; 35 36 37 38 39 40 41 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 Giải thích chương trình Chương trình dùng phát biểu truth_table để khai báo bảng thật hoạt động hệ thay cho biểu thức Trong trường hợp cách viết truth_table gọn cách viết theo biểu thức (equations) • Biên dịch chương trình Bước 1: Nhập file nguồn thí nghiệm Bước 2: Biên dịch chương trình dùng phần mềm ABEL Từ thư mục ABEL đánh lệnh abe filename Bước 3: Xem lại file hình thành (file.doc, file.list) Bước 4: Thêm từ khóa flag ‘-t1’ vào sau phát biểu module Module mod-id flag ‘-t1’ Bước 5: Biên dịch lại chương trình xem kết file.sim Nhận xét Thí nghiệm Mục đích: Thiết kế với mode ghi cho mạch Thiết kế đếm lên (đồng bộ) 16 dùng GAL16V8 Bộ đếm có ngõ Cl đồng bộ, tính cực mức hình sau CK CL 11 U2 I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 F0 F1 F2 F3 F4 F5 F6 F7 12 13 14 15 16 17 18 19 16V8 GV: Nguyễn Trọng Hải Trang 268 Q0 Q1 Q2 Q3 Bài Giảng Kỹ Thuật Số Phụ lục B Ta thiết lập bảng trạng thái cho ngõ Q3Q2Q1Q0 Trạng thái Q3 Q2 Q1 Q0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 + Q3 0 0 0 1 1 1 1 Trạng thái kế Q2+ Q1+ Q0+ 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 Từ rút Q0 + = Q0 Cl (với Cl tích cực mức thấp) Q1+ = Q1 ⊕ Q0.Cl Q + = Q ⊕ (Q1.Q0).Cl Q3 + = Q3 ⊕ (Q 2.Q1.Q0).Cl Theo cấu trúc GAL16V8, chân chân CK đồng ghi bên • Chương trình module count4 title 'COUNTER Bai so 1' Counter device CK,CL Q3,Q2,Q1,Q0 Count = [Q3,Q2,Q1,Q0]; C,H,L = C.,1,0 ; "Xung CK tac dong canh len 10 11 12 13 Equations Q0 := Q1 := Q2 := Q3 := GV: Nguyễn Trọng Hải MOD16 'P16V8R'; pin 1,2 ; pin 19,18,17,16; !Q0 & CL; (Q1$Q0) & CL; (Q2$(Q1&Q0))&CL; (Q3$(Q2&Q1&Q0))&CL; Trang 269 Bài Giảng Kỹ Thuật Số 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 • Phụ lục B Test_vectors([CK,CL] -> Count) [C,L] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> ; [C,H] -> 10 ; [C,H] -> 11 ; [C,H] -> 12 ; [C,H] -> 13 ; [C,H] -> 14 ; [C,H] -> 15 ; [C,H] -> ; END Giải thích Trong mode ghi biểu thức sử dụng toán tử gán ‘:=’ để biễu diễn ngõ hệ (thanh ghi) • Biên dịch chương trình Bước 1: Nhập file nguồn thí nghiệm Bước 2: Biên dịch chương trình dùng phần mềm ABEL Từ thư mục ABEL đánh lệnh abe filename Bước 3: Xem lại file hình thành (file.doc, file.list) Bước 4: Thêm từ khóa flag ‘-t1’ vào sau phát biểu module Module mod-id flag ‘-t1’ Bước 5: Biên dịch lại chương trình xem kết file.sim Nhận xét GV: Nguyễn Trọng Hải Trang 270 ... 1 1 Bài Giảng Kỹ Thuật Số Chương Bài tập chương 2.1 Vẽ dạng sóng ngõ cho mạch hình sau (A) (A) (B) (C) (B) X (C) 2.2 Giả sử ngõ vào A (bài 2.1) = 0, vẽ dạng sóng ngõ 2.3 Giả sử ngõ vào A (bài. .. diễn tả 256 ký tự, mã ASCII mở roäng (Extended ASCII) GV: Nguyễn Trọng Hải Trang 20 Bài Giảng Kỹ Thuật Số Chương Bài tập chương 1.1 Đổi số nhị phân sau sang số thập phân: a 10110 b 10001101 c 100100001001... phân tương ứng, lưu ý bit dùng cho chữ số thập phân GV: Nguyễn Trọng Hải Trang 15 Bài Giảng Kỹ Thuật Số Chương Trong giảng lấy mã BCD 8-4-2-1 làm ví du Mã BCD biểu thị chữ số số thập phân số nhị

Ngày đăng: 04/02/2023, 10:50

Tài liệu cùng người dùng

Tài liệu liên quan