Tải bản đầy đủ (.doc) (67 trang)

Vi mạch docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 67 trang )

Mục Lục
Chương I
CƠ SỞ ĐẠI SỐ LOGIC
CÁC PHẦN TỬ LOGIC CƠ BẢN VÀ THÔNG DỤNG
1.1. Cơ sở đại số logic
1.2. Các phương pháp biểu diễn hàm logic
1.3. Các phương pháp tối thiểu hoá hàm logic
1.4. Các phần tử logic cơ bản
1.5. Các mạch trigơ số
1.6. Bộ đếm
1.7. Các mạch tổ hợp
1.8. Các mạch chuyển đổi tín hiệu
Chương II
NGÔN NGỮ VHDL
2.1. Giới thiệu chung về ngôn ngữ VHDL
2.2. Mô tả cấu trúc
2.3. Mô tả hoạt động
2.3.1. Mô hình thời gian theo các sự kiện rời rạc
2.3.2. Ví dụ
2.4. Cú pháp và ngữ nghĩa
2.4.1.Các biểu thức và toán tử
2.4.2.Các khai báo tuần tự
2.4.3.Các chương trình con và các dạng đóng gói
2.4.4.Các cấu hình
Chương III
GIỚI THIỆU VỀ PHẦN MỀM THIẾT KẾ MẠCH PROTEL
3.1. Công dụng của phần mềm thiết kế mạch Protel
3.2. Giới thiệu về các thành phần của phần mềm Protel
1
3.3. Quản lý các file thành phần của phần mềm Protel
3.4. Bảng phím tắt trong Protel


3.5. Vẽ mạch nguyên lý - Schematic Document
3.5.1.Yêu cầu chung về vẽ mạch nguyên lý
3.5.2.Các thành phần công cụ vẽ mạch nguyên lý của Protel
3.5.3.Cách sử dụng thư viện trong vẽ mạch nguyên lý
3.5.4.Kiểm tra và xử lý lỗi
3.6. Xây dựng thư viện mạch nguyên lý - Schematic Library Document
3.6.1.Giao diện làm việc của Schematic Library Document
3.6.2.Các nguyên tắc xây dựng thư viện nguyên lý
3.6.3.Các thành phần công cụ phục vụ cho xây dựng thư viện
3.6.4.Vẽ mạch in - PCB Document
3.6.5.Yêu cầu chung về vẽ mạch in PCB
3.6.6.Các thành phần công cụ vẽ mạch in PCB
3.6.7.Cách sử dụng thư viện trong vẽ mạch in PCB
3.6.8.Chế độ vẽ mạch in tự động
3.6.9.Xắp xếp linh kiện trên mạch in
3.6.10. Mạch in một lớp và mạch in nhiều lớp
3.6.11. Kích thước của các đường mạch in
3.6.12. Tăng khả năng chống nhiễu của mạch in
3.6.13. Tối ưu hoá khi thiết kế mạch in
3.6.14. Kiểm tra và xử lý các lỗi
3.7. Xây dựng thư viện mạch in - PCB Library Document
3.7.1.Giao diện làm việc của PCB Library Document
3.7.2.Các nguyên tắc xây dựng thư viện mạch in
3.7.3.Các thành phần công cụ phục vụ cho xây dựng thư viện mạch in
Chương IV
PHÂN TÍCH VÀ THIẾT KẾ MỘT SỐ MẠCH SỐ
4.1. Mạch số học, bộ đếm, bộ dịch, bộ nhớ
4.1.1.So sánh: TC74HC688DS
2
4.1.2.Bộ đếm: 74LS160, 74LS193

4.1.3.Thanh ghi: 74LS107, 74LS175, 74LS273
4.1.4.Thanh ghi dịch: 74LS164, 74LS166
4.1.5.Thanh ghi chốt: 74LS259, 74LS279
4.1.6.Bộ nhớ: 24c44, 24c64, 27c256, 27C512, 62C256
4.2. Bộ đệm, chốt, vi mạch cổng chuyên dụng
4.2.1.Bộ đệm: 74HC244DS, 74HC245
4.2.2.Bộ chốt: 74HC373, 74HC573,
4.3. Một số mạch tổ hợp
4.3.1.Mạch mã hoá, giải mã: 74LS138, BCD 74LS145, dm74185a
4.3.2.Dồn kênh, phân kênh: 74LS151, 74LS153, 74LS154, 74LS155, 74LS157
4.4. Các bộ chuyển đổi AD, DA
4.4.1.Mạch chuyển đổi ADC 0804, ADC 0809
4.4.2.Mạch chuyển đổi AD 12-bit: AD 574, ICL 7109
4.4.3.Mạch chuyển đổi DAC 0808
4.5. Mạch tổ hợp tần số dùng IC PLL 4046
4.6. Mạch đếm sản phẩm hiển thị LED 7 thanh
Tài liệu học tập:
[1]; Đặng Văn Chuyết; Kỹ thuật điện tử số; Nhà xuất bản Giáo dục; 1998.
[2]; Nguyễn Thuý Vân; Thiết kế lôgic mạch số; Nhà xuất bản KHKT, Hà Nội;
1997.
[3]; Dương Minh Trí; Sơ đồ chân linh kiện bán dẫn; NXB TP Hồ Chí Minh;
1998.
[4]; Tống Văn On; ASIC lập trình được; NXB Thống Kê; 2004.
[5]; Đinh Sỹ Hiền; Thiết kế hệ thống VLSI; NXB ĐHQG TPHCM.
[6]; Design and Technology; Printed Circuit Boards; MCGraw-Hill.
[7]; Easytrax Reference Manual; Protel Technology.
[8]; Leslie, R; PCB Design, Do it once, do it right; 1991.
3
[9]; Lindsey, D; The Design and Drafting of Printed circuit; Bishop Graphics
Inc; 1980.

[10]; Lamit/Lloyd; Drafting for Electronics; Merril; 1985.
[11]; Wai Kai Chen; The VLSI Handbook
[12]; Michael L. Bushnell and Vishwani D. Agrawal; Essentials of Electronic
Testing for Digital, Memory, and Mixed-Signal VLSI Circuits, Kluwer; Boston;
2000.
[13]; Jha and Gupta; Testing of Digital Systems; Cambridge Univ. Press; 2003.
[14]; Abramovici et al; Digital Systems Testing and Testable Design; IEEE;
New York; 1990.
Chương I
CƠ SỞ ĐẠI SỐ LOGIC
CÁC PHẦN TỬ LOGIC CƠ BẢN VÀ THÔNG DỤNG
1_ Cơ sở đại số logic
Cổng logic là tên gọi chung của các mạch điện tử có chức năng thực hiện các
hàm logic. Cổng logic có thể được chế tạo bằng các công nghệ khác nhau (Lưỡng
cực, MOS), có thể được tổ hợp bằng các linh kiện rời nhưng thường được chế tạo
bởi công nghệ tích hợp IC (Integrated circuit).
Chương này giới thiệu các loại cổng cơ bản, các họ IC số, các tính năng kỹ thuật và
sự giao tiếp giữa chúng.
1.1 CÁC KHÁI NIỆM LIÊN QUAN
1.1.1 Tín hiệu tương tự và tín hiệu số
4
Tín hiệu tương tự là tín hiệu có biên độ biến thiên liên tục theo thời gian. Nó thường
do các hiện tượng tự nhiên sinh ra. Thí dụ, tín hiệu đặc trưng cho tiếng nói là tổng
hợp của các tín hiệu hình sin trong dải tần số thấp với các họa tần khác nhau.
Tín hiệu số là tín hiệu có dạng xung, gián đoạn về thời gian và biên độ chỉ có 2 mức
rõ rệt: mức cao và mức thấp. Tín hiệu số chỉ được phát sinh bởi những mạch điện
thích hợp. Để có tín hiệu số người ta phải số hóa tín hiệu tương tự bằng các mạch
biến đổi tương tự sang số (ADC)
1.1.2 Mạch tương tự và mạch số
Mạch điện tử xử lý các tín hiệu tương tự được gọi là mạch tương tự và mạch xử lý

tín hiệu số được gọi là mạch số.
Một cách tổng quát, mạch số có nhiều ưu điểm so với mạch tương tự:
Dễ thiết kế và phân tích. Vận hành của các cổng logic dựa trên tính chất dẫn điện
(bảo hòa) hoặc ngưng dẫn của transistor. Việc phân tích và thiết kế dựa trên chức
năng và đặc tính kỹ thuật của các IC và các khối mạch chứ không dựa trên từng linh
kiện rời
- Có thể hoạt động theo chương trình lập sẵn nên rất thuận tiện trong điều khiển tự
động, tính toán, lưu trữ dữ liệu và liên kết với máy tính.
- Ít bị ảnh hưởng của nhiễu tức có khả năng dung nạp tín hiệu nhiễu với biên độ lớn
hơn rất nhiều so với mạch tương tự.
- Dễ chế tạo thành mạch tích hợp và có khả năng tích hợp với mật độ cao.
Dựa vào số cổng trong một chip, người ta phân loại IC số như sau:
- Số cổng < 10: SSI (Small Scale Integrated), mức độ tích hợp nhỏ.
- 10 < Số cổng < 100: MSI (Medium Scale Integrated), mức độ tích hợp trung bình.
- 100 < Số cổng < 1000: LSI (Large Scale Integrated), mức độ tích hợp lớn.
- 1000 < Số cổng < 10000: VLSI (Very Large Scale Integrated), mức độ tích hợp rất
lớn
- Số cổng > 10000: ULSI (Ultra Large Scale Integrated), mức độ tích hợp siêu lớn.
1.1.3 Biểu diễn các trạng thái Logic 1 và 0
Trong hệ thống mạch logic, các trạng thái logic được biểu diễn bởi các mức điện thế.
Với qui ước logic dương, điện thế cao biểu diễn logic 1, điện thế thấp biểu diễn logic
0. Ngược lại ta có qui ước logic âm. Trong thực tế, mức 1 và 0 tương ứng với một
5
khoảng điện thế xác định và có một khoảng chuyển tiếp giữa mức cao và thấp, ta gọi
là khoảng không xác định. Khi điện áp của tín hiệu rơi vào khoảng này, mạch sẽ
không nhận ra là mức 0 hay 1. Khoảng này tùy thuộc vào họ IC sử dụng và được cho
trong bảng thông số kỹ thuật của linh kiện. (H 1.1) là giản đồ điện thế của các mức
logic của một số cổng logic thuộc họ TTL.
Hình 1.1


2_.Các phương pháp biểu diễn hàm logic
2.1 cổng logic cơ bản
2.2.1 Cổng NOT
- Còn gọi là cổng đảo (Inverter), dùng để thực hiện hàm đảo Y= A
- Ký hiệu (H 2.2), mũi tên chỉ chiều di chuyển của tín hiệu và vòng tròn là ký hiệu
đảo. Trong những trường hợp không thể nhầm lẫn về chiều này, người ta có thể bỏ
mũi tên.
Hình 2 .2
2.2.2 Cổng AND
6
- Dùng thực hiện hàm AND 2 hay nhiều biến.
- Cổng AND có số ngã vào tùy thuộc số biến và một ngã ra. Ngã ra của cổng là hàm
AND của các biến ngã vào.
- Ký hiệu cổng AND 2 ngã vào cho 2 biến (H 2.3a)
Hình 2.3
Nhận xét:
- Ngã ra cổng AND chỉ ở mức cao khi tất cả ngã vào lên cao.
- Khi có một ngã vào = 0, ngã ra = 0 bất chấp các ngã vào còn lại.
- Khi có một ngã vào =1, ngã ra = AND của các ngã vào còn lại.
Vậy với cổng AND 2 ngã vào ta có thể dùng 1 ngã vào làm ngã kiểm soát (H 2.3b),
khi ngã kiểm soát = 1, cổng mở cho phép tín hiệu logic ở ngã vào còn lại qua cổng
và khi ngã kiểm soát = 0, cổng đóng , ngã ra luôn bằng 0, bất chấp ngã vào còn lại.
Với cổng AND có nhiều ngã vào hơn, khi có một ngã vào được đưa lên mức cao thì
ngã ra bằng AND của các biến ở các ngã vào còn lại.
Hình (H 2.4) là giản đồ thời gian của cổng AND hai ngã vào. Trên giản đồ, ngã ra Y
chỉ lên mức 1 khi cả A và B đều ở mức 1.
H 2.4
2.2.3 Cổng OR
7
- Dùng để thực hiện hàm OR 2 hay nhiều biến.

- Cổng OR có số ngã vào tùy thuộc số biến và một ngã ra.
- Ký hiệu cổng OR 2 ngã vào
Hinh 1.5
Nhận xét: - Ngã ra cổng OR chỉ ở mức thấp khi cả 2 ngã vào xuống thấp.
- Khi có một ngã vào =1, ngã ra = 1 bất chấp ngã vào còn lại.
- Khi có một ngã vào =0, ngã ra = OR các ngã vào còn lại.
Vậy với cổng OR 2 ngã vào ta có thể dùng 1 ngã vào làm ngã kiểm soát, khi ngã
kiểm soát = 0, cổng mở, cho phép tín hiệu logic ở ngã vào còn lại qua cổng và khi
ngã kiểm soát = 1, cổng đóng, ngã ra luôn bằng 1.
Với cổng OR nhiều ngã vào hơn, khi có một ngã vào được đưa xuống mức thấp thì
ngã ra bằng OR của các biến ở các ngã vào còn lại.
2.2.4 Cổng BUFFER
Còn gọi là cổng đệm. Tín hiệu số qua cổng BUFFER không đổi trạng thái logic.
Cổng BUFFER được dùng với các mục đích sau:
- Sửa dạng tín hiệu.
- Đưa điện thế của tín hiệu về đúng chuẩn của các mức logic.
- Nâng khả năng cấp dòng cho mạch.
- Ký hiệu của cổng BUFFER.
Tuy cổng đệm không làm thay đổi trạng thái logic của tín hiệu vào cổng
nhưng nó giữ vai trò rất quan trọng trong các mạch số.
8
2.2.5 Cổng NAND
- Là kết hợp của cổng AND và cổng NOT, thực hiện hàm Y= A.B
(Ở đây chỉ xét cổng NAND 2 ngã vào, độc giả tự suy ra trường hợp nhiều ngã vào).
- Ký hiệu của cổng NAND (Gồm AND và NOT, cổng NOT thu gọn lại một vòng
tròn)
- Tương tự như cổng AND, ở cổng NAND ta có thể dùng 1 ngã vào làm ngã kiểm
soát. Khi ngã kiểm soát = 1, cổng mở cho phép tín hiệu logic ở ngã vào còn lại qua
cổng và bị đảo, khi ngã kiểm soát = 0, cổng đóng, ngã ra luôn bằng 1.
- Khi nối tất cả ngã vào của cổng NAND lại với nhau, nó hoạt động như một cổng

đảo
2.2.6 Cổng NOR
- Là kết hợp của cổng OR và cổng NOT, thực hiện hàm Y=A+B Ký hiệu của cổng
NOR (Gồm cổng OR và NOT, nhưng cổng NOT thu gọn lại một vòng tròn)
Các bảng sự thật và các giản đồ thời gian của các cổng BUFFER, NAND, NOR, sinh viên có
thể tự thực hiện lấy
2.2.7 Cổng EX-OR
- Dùng để thực hiện hàm EX-OR. Y=A⊕B= AB+AB
- Cổng EX-OR chỉ có 2 ngã vào và 1 ngã ra
- Ký hiệu (H 2.9a)
- Một tính chất rất quan trọng của cổng EX-OR:
+ Tương đương với một cổng đảo khi có một ngã vào nối lên mức cao, (H3.9b)
+ Tương đương với một cổng đệm khi có một ngã vào nối xuống mức thấp,
(H2.9c)
9
H
H2.9a
2.2.8 Cổng EX-NOR
- Là kết hợp của cổng EX-OR và cổng NOT
- Cổng EX-NOR có 2 ngã vào và một ngã ra
- Hàm logic ứng với cổng EX-NOR là
Y=A⊕B= AB+AB - Ký hiệu (H 3.10)
- Các tính chất của cổng EX-NOR giống cổng EX-OR nhưng có ngã ra đảo lại.
2.2.9 Cổng phức AOI (AND-OR-INVERTER)
Ưng dụng các kết quả của Đại số BOOLE, người ta có thể kết nối nhiều cổng
khác nhau trên một chip IC để thực hiện một hàm logic phức tạp nào đó. Cổng
AOI là một kết hợp của 3 loại cổng AND (A), OR (O) và INVERTER (I). Thí dụ
để thực hiện hàm logic Y=ABC+DE, ta có cổng phức sau:

2.2.10 Biến đổi qua lại giữa các cổng logic

Trong chương Hàm Logic chúng ta đã thấy tất cả các hàm logic có thể được thay thế
bởi 2 hàm duy nhất là hàm AND (hoặc OR) kết hợp với hàm NOT. Các cổng logic
có chức năng thực hiện hàm logic, như vậy chúng ta chỉ cần dùng 2 cổng AND (hoặc
OR) và NOT để thực hiện tất cả các hàm logic. Tuy nhiên, vì cổng NOT cũng có thể
tạo ra từ cổng NAND (hoặc NOR). Như vậy, tất cả các hàm logic có thể được thực
10
hiện bởi một cổng duy nhất, đó là cổng NAND (hoặc NOR). Hàm ý này cho phép
chúng ta biến đổi qua lại giữa các cổng với nhau.
Quan sát Định lý De Morgan chúng ta rút ra qui tắc biến đổi qua lại giữa các cổng
AND, NOT và OR , NOT như sau:
Chỉ cần thêm các cổng đảo ở ngã vào và ngã ra khi biến đổi từ AND sang OR hoặc
ngược lại. Dĩ nhiên nếu ở các ngã đã có đảo rồi thì đảo này sẽ mất đi.
Thí dụ 1: Ba mạch dưới đây tương đương nhau:
(H 2.12a) có được bằng cách đổi AND - OR thêm các đảo ở các ngã vào và ra. Từ
(H 2.12b) đổi sang (H 2.12c) ta bỏ 2 cổng đảo nối từ ngã ra cổng NOR đến ngã vào
cổng AND
H
2.12
Thí dụ 2: Vẽ mạch tương đương của cổng EX-OR dùng toàn cổng NAND
Dùng định lý De-Morgan, biểu thức hàm EX-OR viết lại:

Và mạch tương đương cho ở (H 1.13)
H2. 13
3_ Các phương pháp tối thiểu hoá hàm logic
3.1.1. Một số định nghĩa
- Trạng thái logic: trạng thái của một thực thể. Xét về mặt logic thì một thực thể chỉ tồn tại ở
một trong hai trạng thái. Thí dụ, đối với một bóng đèn ta chỉ quan tâm nó đang ở trạng thái nào:
tắt hay cháy. Vậy tắt / cháy là 2 trạng thái logic của nó.
- Biến logic dùng đặc trưng cho các trạng thái logic của các thực thể. Người ta biểu diễn biến
logic bởi một ký hiệu (chữ hay dấu) và nó chỉ nhận 1 trong 2 giá trị : 0 hoặc 1.

11
Thí dụ trạng thái logic của một công tắc là đóng hoặc mở, mà ta có thể đặc trưng bởi trị 1 hoặc
0.
- Hàm logic diễn tả bởi một nhóm biến logic liên hệ nhau bởi các phép toán logic. Cũng như
biến logic, hàm logic chỉ nhận 1 trong 2 giá trị: 0 hoặc 1 tùy theo các điều kiện liên quan đến
các biến.
Thí dụ, một mạch gồm một nguồn hiệu thế cấp cho một bóng đèn qua hai công tắc mắc nối tiếp,
bóng đèn chỉ cháy khi cả 2 công tắc đều đóng. Trạng thái của bóng đèn là một hàm theo 2 biến
là trạng thái của 2 công tắc.
Gọi A và B là tên biến chỉ công tắc, công tắc đóng ứng với trị 1 và hở ứng với trị 0. Y là hàm
chỉ trạng thái bóng đèn, 1 chỉ đèn cháy và 0 khi đèn tắt. Quan hệ giữa hàm Y và các biến A, B
được diễn tả nhờ bảng sau:
3.1.2. Biểu diễn biến và hàm logic
3.1.2.1. Giản đồ Venn
Còn gọi là giản đồ Euler, đặc biệt dùng trong lãnh vực tập hợp. Mỗi biến logic chia
không gian ra 2 vùng không gian con, một vùng trong đó giá trị biến là đúng
(hay=1), và vùng còn lại là vùng phụ trong đó giá trị biến là sai (hay=0).
Thí dụ: Phần giao nhau của hai tập hợp con A và B (gạch chéo) biểu diễn tập hợp
trong đó A và B là đúng (A AND B) (H 3.1)
hình 3.1
3.1.2.2. Bảng sự thật
Nếu hàm có n biến, bảng sự thật có n+1 cột và 2
n
+ 1 hàng. Hàng đầu tiên chỉ tên
biến và hàm, các hàng còn lại trình bày các tổ hợp của n biến trong 2
n
tổ hợp có thể
có. Các cột đầu ghi giá trị của biến, cột cuối cùng ghi giá trị của hàm tương ứng với
tổ hợp biến trên cùng hàng (gọi là trị riêng của hàm).
Thí dụ: Hàm OR của 2 biến A, B: f(A,B) = (A OR B) có bảng sự thật tương ứng.

12
3.1.2.3. Bảng Karnaugh
Đây là cách biểu diễn khác của bảng sự thật trong đó mỗi hàng của bảng sự thật
được thay thế bởi một ô mà tọa độ (gồm hàng và cột) xác định bởi tổ hợp đã cho của
biến.
Bảng Karnaugh của n biến gồm 2
n
ô. Giá trị của hàm được ghi tại mỗi ô của bảng.
Bảng Karnaugh rất thuận tiện để đơn giản hàm logic bằng cách nhóm các ô lại với
nhau.
Thí dụ: Hàm OR ở trên được diễn tả bởi bảng Karnaugh sau đây

3.1.2.4. Giản đồ thời gian
Dùng để diễn tả quan hệ giữa các hàm và biến theo thời gian, đồng thời với quan hệ
logic.
Thí dụ: Giản đồ thời gian của hàm OR của 2 biến A và B, tại những thời điểm có
một (hoặc 2) biến có giá trị 1 thì hàm có trị 1 và hàm chỉ có trị 0 tại những thời điểm
mà cả 2 biến đều bằng 0.

2.1.3. Qui ước
Khi nghiên cứu một hệ thống logic, cần xác định qui ước logic. Qui ước này không
được thay đổi trong suốt quá trình nghiên cứu.
Người ta dùng 2 mức điện thế thấp và cao để gán cho 2 trạng thái logic 1 và 0.
Qui ước logic dương gán điện thế thấp cho logic 0 và điện thế cao cho logic 1
13
Qui ước logic âm thì ngược lại.
4_ Các phần tử logic cơ bản
Nhận xét: Tính chất của hàm AND có thể được phát biểu như sau:
- Hàm AND của 2 (hay nhiều) biến chỉ có giá trị 1 khi tất cả các biến đều bằng 1
hoặc

- Hàm AND của 2 (hay nhiều) biến có giá trị 0 khi có một biến bằng 0.
4.3. Hàm OR [tổng logic, toán tử (+)] : Y = A + B

Nhận xét: Tính chất của hàm OR có thể được phát biểu như sau:
- Hàm OR của 2 (hay nhiều) biến chỉ có giá trị 0 khi tất cả các biến đều bằng 0
hoặc
- Hàm OR của 2 (hay nhiều) biến có giá trị 1 khi có một biến bằng 1.
14
Nhận xét: Một số tính chất của hàm EX - OR:
- Hàm EX - OR của 2 biến chỉ có giá trị 1 khi hai biến khác nhau và ngược lại. Tính
chất này được dùng để so sánh 2 biến.
- Hàm EX - OR của 2 biến cho phép thực hiện cộng hai số nhị phân 1 bit mà không
quan tâm tới số nhớ.
- Từ kết quả của hàm EX-OR 2 biến ta suy ra bảng sự thật cho hàm 3 biến

- Trong trường hợp 3 biến (và suy rộng ra cho nhiều biến), hàm EX - OR có giá
trị 1 khi số biến bằng 1 là số lẻ. Tính chất này được dùng để nhận dạng một
chuỗi dữ liệu có số bit 1 là chẵn hay lẻ trong thiết kế mạch phát chẵn lẻ.
5_ Các mạch trigơ số
5. TRIGƠ JK VÀ ỨNG DỤNG TRONG THIẾT KẾ BỘ ĐẾM
5.1. Cấu tạo của flipflop JK
Kí hiệu:
Cấu tạo của trigơ được tạo ra từ trigơ FFRS nhưng được ghép thêm hai cổng
AND vào hai đầu S và R. Do sự hồi tiếp, ngõ vào của FF RS là S = J
Q
, R = KQ.
Mạch hoạt động theo bảng sự thật
J K CK Q
15
0 0 1 Q

0
không đổi
0 1 1 0
1 0 1 1
1 1 1
Q
0
(đảo lại)
Ta có phương trình đặc trưng như sau:
Q
n+1
= J
Q
n
+
K
Q
n
5.2. Phương pháp thiết kế bộ đếm dùng trigơ JK
B
1
: phân tích bài toán.
B
2
: Xác định đồ hình trạng thái rồi mã hóa.
B
3
: Chọn loại FF.
B
4

: Lập phương trình đặc trưng. Lập bảng chuyển đổi tới. Lập bảng đầu ra theo trạng
thái trong
Q
i
n+1
= f (Q
i
n
)
B
5
: Đồng nhất các phương trình Q
i
n+1
với phương trình đặc trưng → J
i
, K
i
, D
i
, T
i

B
6
: Vẽ sơ đồ (Kiểm tra điều kiện tự khởi động nếu K
đ
= 2
n
).

5.3. Ví dụ ứng dụng
Thiết kế bộ đếm nhị phân đồng bộ K
f
= 7 đếm nghịch.
Giải:
Bước 1 + 2:
Bước 3: Chọn FF JK.
Bước 4: Phương trình đặc trưng.

Q
n+1
= J
Q
n
+
K
Q
n

+ Bảng Q
1
n+1
16
( )
1
1 2 1 3 2 3 1
n n n n n n n n
n
Q Q Q Q Q Q Q Q
+

= + = +
+ Bảng Q
2
n+1
1
2 1 2 1 2
n n n n n
Q Q Q Q Q
+
= +
+ Bảng Q
3
n+1
( )
1
2 1 2 3 1 3 2 3
1 2 3 3 1 2
n n n n n n n n
n n n n n n
Q Q Q Q Q Q Q Q
Q Q Q Q Q Q
+
= + +
= + +
Bước 5: Đồng nhất với phương trình đặc trưng
Q
n+1
= J
Q
n

+
K
Q
n
1 1 3
n n
J Q Q= +

2 1
n
J Q=


3 1 2
n n
J Q Q=

3 1 2 1 2
n n n n
K Q Q Q Q= + =
Bước 6: Thiết kế bộ đếm dùng các tri gơ và các cổng logic cơ bản
Chương II
NGÔN NGỮ VHDL
2.5. Giới thiệu chung về ngôn ngữ VHDL
17
VHDL là cụm từ viết tắt của Very High Speed Integrated Circuit (VHSIC) Hardware
Description Language . Đúng như tên gọi VHDL là một ngôn ngữ mô tả phần cứng
được sử dụng rộng rãi đặc biệt nó thường dùng để mô tả các thiết bị khả lập trình
như FPGA, CPLD . Ngoài ra thì VHDL còn dùng để mô tả các tín hiệu. Trong bài
viết này chỉ giới thiệu qua về một vài khái niệm trong VHDL qua một số ví dụ.

VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất cao, là một
loại ngôn ngữ mô tả phần cứng được phát triển dùng cho trương trình VHSIC( Very
High Speed Itergrated Circuit) của bộ quốc phòng Mỹ. Mục tiêu của việc phát triển
VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho
phép thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa các hệ
thống đó vào ứng dụng trong thực tế. Ngôn ngữ VHDL được ba công ty Intermetics,
IBM và Texas Instruments bắt đầu nghiên cứu phát triển vào tháng 7 năm 1983.
Phiên bản đầu tiên được công bố vào tháng 8-1985. Sau đó VHDL được đề xuất để
tổ chức IEEE xem xét thành một tiêu chuẩn chung. Năm 1987 đã đưa ra tiêu chuẩn
về VHDL( tiêu chuẩn IEEE-1076-1987). VHDL được phát triển để giải quyết các
khó khăn trong việc phát triển, thay đổi và lập tài liệu cho các hệ thống số. Như ta đã
biết, một hệ thống số có rất nhiều tài liệu mô tả. Để có thể vận hành bảo trì sửa chữa
một hệ thống ta cần tìm hiểu kỹ lưỡng tài liệu đó. Với một ngôn ngữ mô phỏng phần
cứng tốt việc xem xét các tài liệu mô tả trở nên dễ dàng hơn vì bộ tài liệu đó có thể
được thực thi để mô phỏng hoạt động của hệ thống. Như thế ta có thể xem xét toàn
bộ các phần tử của hệ thống hoạt động trong một mô hình thống nhất. VHDL được
phát triển như một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế,
một bộ mô tả hay công nghệ phần cứng nào. Người thiết kế có thể tự do lựa chọn
công nghệ, phương pháp thiết kế trong khi chỉ sử dụng một ngôn ngữ duy nhất. Và
khi đem so sánh với các ngôn ngữ mô phỏng phần cứng khác đã kể ra ở trên ta thấy
VHDL có một số ưu điểm hơn hẳn các ngôn ngữ khác:
• Thứ nhất là tính công cộng: VHDL được phát triển dưới sự bảo trợ của chính
phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE. VHDL được sự hỗ trợ của nhiều
nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ
thống.
18
• Thứ hai là khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế. VHDL
cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết kế từ trên xuống,
hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng hỗ trợ cho nhiều loại công
cụ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ, sử dụng ma

trận lập trình được hay sử dụng mảng ngẫu nhiên.
• Thứ ba là tính độc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ
chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được
chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc công nghệ chế tạo phần
cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế .
• Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của
phần cứng từ mức hệ thống số cho đến mức cổng. VHDL có khả năng mô tả hoạt
động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống
nhất cho mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ
con được mô tả chi tiết.
• Thứ năm là khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp
nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứng được tiêu
chuẩn VHDL. Các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế
sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo tiêu chuẩn VHDL. Cũng
như một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một
hệ thống lớn (trong đó các hệ con đó được thiết kế độc lập).
• Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết
kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể
được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều
người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử
nghiệm và chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn.
Mục đích của phần này sẽ nhằm giới thiệu sơ qua về cấu trúc khung cơ bản của
VHDL khi mô tả cho một mô hình thiết kế thực. Thông thường một mô hình VHDL
bao gồm ba phần: thực thể, kiến trúc và các cấu hình. Đôi khi ta xử dụng các
gói( packages) và mô hình kiểm tra hoạt động của hệ thống( testbench).
+ Thực thể (entity) :
19
Khai báo thực thể trong VHDL phần định nghĩa các chỉ tiêu phía ngoài của một phần
tử hay một hệ thống. Thực chất của việc khai báo thực thể chính là khai báo giao
diện của hệ thống với bên ngoài. Ta có thể có tất cả các thông tin để kết nối mạch

vào mạch khác hoạt thiết kế tác nhân đầu vào phục vụ cho mục đích thử nghiệm.
Tuy nhiên hoạt động thật sự của mạch không nằm ở phần khai báo nay. Dưới đây là
một ví dụ khai báo thực thể cho một cổng NOT:
+ Kiến trúc (Architecture) :
Phần thứ 2 trong mô hình VHDL là khai báo kiến trúc. Mỗi một khai báo thực thể
đều phải đi kèm với ít nhất một kiến trúc tương ứng. VHDL cho phép tạo ra hơn một
kiến trúc cho một thực thể. Phần khai báo kiến trúc có thể bao gồm các khai báo về
các tín hiệu bên trong, các phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả
hoạt động của hệ thống. Tên của kiến trúc là nhãn được đặt tuỳ theo người xử dụng.
Có hai cách mô tả kiến trúc của một phần tử ( hoặc hệ thống) đó là mô hình hoạt
động (Behaviour) hay mô tả theo mô hình cấu trúc (Structure). Tuy nhiên một hệ
thống có thể bao gồm cả mô tả theo mô hình hoạt động và mô tả theo mô hình cấu
trúc.
+ Mô tả kiến trúc theo mô hình hoạt động:
Mô hình hoạt động mô tả các hoạt động của hệ thống ( hệ thống đáp ứng với các tín
hiệu vào như thế nào và đưa ra kết quả gì ra đầu ra) dưới dạng các cấu trúc ngôn ngữ
lập trình bậc cao. Cấu trúc đó có thể là PROCESS , WAIT, IF, CASE, FOR-
LOOP…
+ Mô tả kiến trúc theo mô hình cấu trúc:
Mô hình cấu trúc của một phần tử (hoặc hệ thống) có thể bao gồm nhiều cấp cấu trúc
bắt đầu từ một cổng logic đơn giản đến xây dựng mô tả cho một hệ thống hoàn thiện.
Thực chất của việc mô tả theo mô hình cấu trúc là mô tả các phần tử con bên trong
hệ thống và sự kết nối của các phần tử con đó. Như với ví dụ mô tả mô hình cấu trúc
một flip-flop RS gồm hai cổng NAND có thể mô tả cổng NAND được định nghĩa
tương tự như ví dụ với cổng NOT, sau đó mô tả sơ đồ móc nối các phần tử NAND
tạo thành trigơ RS
20
+ Cấu trúc Process:
Process là khối cơ bản của việc mô tả theo hoạt động. Process được xét đến như là
một chuỗi các hành động đơn trong suốt quá trình dịch.

+ Môi trường kiểm tra (testbench)
Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra một
mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô
phỏng và các giá trị thu được có thể đem so sánh với yêu cầu thiết kế.
2.6. Mô tả cấu trúc
Một số quy định trong VHDL
1.1 Chú thích Khi muốn đưa ra thêm lời chú thích cho chương trình của mình ta
dung 2 ký tự " "
1.2 Tên của một đối tượng
Những quy tắc cơ bản khi định nghĩa tên một đối tượng
* Tên biến chỉ có thể dùng bảng chữ cái, hệ số đếm thập phân và dấu gạch ngang
* Ký tự đầu tiên phải là một chữ cái
* không thể có 2 dấu gạch liên tiếp
Một điều chú ý là VHDL không phân biệt chữ thường và chữ hoa .
1.3 Từ Khóa
abs access after alias all and architecture array assert attribute begin block body
buffer bus case component configuration constant disconnect downto else elsif end
entity exit file for function generate generic guarded if impure in inertial inout islabe
llibrary linkage literal loop map mod nand new next nor not null of on open or others
out package port postponed procedure process pure range record register reject rem
report return rol ror select severity shared signal sla sll sra srl subtype then to
transport type unaffected units untiluse variable wait when while with xnor xor
1.4 Number, characters và string
* Number có thể là số nguyên số thực hoặc nó có thể biểu diễn bằng mã nhị phân
hoặc là thập lục phân (HEX) .Có thể có dấu gạch ngang giữa các con số
Vídụ12_34 giống như1234
* Characters được nằm trong cặp dấu ' '
*String được nằm trong cặp dấu "
2. OBJECT
21

object trong VHDL là tên của một đối tượng giữa giá trị của loại dữ liệu đặc biệt.
VHDL có 4 loại object là signal,variable, constant và file . Một từ khóa alais cũng có
thể được coi là một đối tượng object.
2.1 Signals
signal là object phổ biến nhất trong VHDL
Cú pháp
Code:
signal signal-name , signal-name , . . . : data-type ;
Chúng ta có thể gán luôn giá trị cho các tín hiệu
Ví dụ Ta gán giá trị 0 cho các tín hiệu
signal a, b, c: std-logic := ’0’;
Hoặc đơn giản hơn ta có thể dùng
signal-name <= projected-waveform;
2.2 Variable
Cú Pháp
Code:
variable variable-name, variable-name , . . . : data-type
Cũng như tín hiệu ta có thể gán luôn giá trị của biến
variable-name := value-expression;
2.3 Constant
Cú pháp
Code:
constant constant-name: data-type:= value-expression ;
Ví dụ
constant BUS-WIDTH: integer:=32;
3. Các kiểu dữ liệu và các toán tử trong VHDL
Những kiểu dữ liệu phổ biến trong VHDL là
Integer Trong VHDL ko định nghĩa chính xác khoẳng giá trị của
số nguyên nhưng tối thiểu là từ -2^31 - 1 đến 2^31 -1
Bolean Như trong các ngôn ngữ thông thường gồm 2 giá trị True false

Bit Gồm 2 giá trị là '0' và '1'
Bit_vector Được định nghĩa như là một mảng hữu hạn chiều với những phần tử
mang kiểu bit
Toán Tử
22
Trong VHDL có nhiều tử hạng (Khoảng 30 ) ngoài những toán hạng như trong các
ngôn ngữ thông thường thì nó còn một số phép toán sau
Code:
Operation Description DataType
a**b a^b integer
a&b sự móc nối ma trân và ma trận b
a sll b shift_left logical a:bit_vecto, b:integer
a srl b shift_right logical
a sla b shift_left arithmetic
a srl b shift_right arithmetic
a rol b rotate left
a ror b rotate right

Mức độ ưu tiên của các phép toán như sau
Highest **abs not
* / modrem
+ - (identityandnegation)
& + -(additionandsubtraction)
sll srl sla sra rol ror
= /=< <> I >=
Lowest and or nand nor xor xnor
23
Chương III
GIỚI THIỆU VỀ PHẦN MỀM THIẾT KẾ MẠCH PROTUES
THIỆU VỀ PHẦN MỀM THIẾT KẾ MẠCH PROTUES

I. Giới
t
h
iệ
u
Như các bạn đều biết, điện tử hay những lĩnh vực khác: điện, thủy lực,…thiết kế
mạch là việc làm thường xuyên.Nhưng muốn biết mạch bạn thiết kế ra hoạt động như thế
nào, có sai sót gì không, trước khi tiến hành làm mạch thật thì bạn làm thế nào ?.Câu trả
lời, đó là dùng các phần mềm mô phỏng (Simulation).Tuy nó chưa đạt độ chính xác tuyệt
đối như mạch thật nhưng cũng thõa mãn phần nào lòng tham vô đáy của chúng ta.
Trong lĩnh vực điện tử, để mô phỏng mạch điện tử, có rất nhiều phần mềm hỗ trợ
như Proteus, Multisim, Circuit Maker,…Đa số các hãng cung cấp các phần mềm này đều
có phiên bản dùng thử (Demo) cho khách hàng, nhưng khổ nỗi mấy bản demo này
thường có giới hạn thời gian dùng qúa ngắn, hoặc là cho phép thiết kế và mô phỏng
nhưng lại không cho Save,…đại loại là họ muốn chúng ta phải mua bản quyền sử dụng
chúng.Ai chẳng muốn dùng phiên bản chính thức, nhưng với chúng ta, giá của nó ở trên
trời nên bất đắt dĩ chúng ta phải ăn cắp bằng cách dùng bản đã được crack thôi.
Có nhiều phần mềm hỗ trợ mô phỏng như vậy thì ta nên chọn loại nào ?, Multisim
mô phỏng rất tốt nhưng nó lại không hỗ trợ cho các MCU, ở đây mình chỉ giới thiệu cơ
bản với các bạn về phần mềm Proteus. Proteus là phần mềm của hãng Labcenter
Electronics, nó mô phỏng được cho hầu hết các linh kiện điện tử thông dụng, đặc biệt có
hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola.
24
II.
Trình
tự mô
ph

n
g

Sau đây là trình tự để mô phỏng một chương trình đơn giản cho Vi điều khiển PIC
1. Các thành phần cơ
b

n
Sau khi cài đặt Proteus, vào Start menu, khởi động isis của Proteus:
Giao diện chính:
Hộp hiển thị hình linh kiện
Hộp hiển thị danh sách linh kiện
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×