TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU Trần Trung Tín HƯỚNG DẪN THỰC HÀNH MÔN HỌC: TỔ CHỨC MÁY TÍNH TP. HỒ CHÍ MINH 2024 Mục lục 1 THỰC HÀNH MẠCH SỐ 1 1.1 Biểu diễn hàm Boole bằng mạch logic .1 Vận hành giả lập mạch logic .2 Kiểm thử mạch con .3 Kiểm thử tự động .2 Thực hiện mạch con .3 Phân tích mạch logic. 5 2 MẠCH CỘNG / TRỪ NHỊ PHÂN 6 2.1 Mạch cộng bán phần .2 Mạch cộng toàn phần .3 Mạch cộng nhị phân 4-bit .4 Máy tính 4-bit đầu tiên của bạn .1 Pin n-bit trong Logism .2 Tách / gộp dây tín hiệu .5 Mạch trừ nhị phân 4-bit. 12 3 MẠCH TỔ HỢP 13 3.1 Mạch giải mã BCD-to-LED-7-segment .2 Mạch giải mã 3x8 và 4x16 .1 Ứng dụng: Thực hiện mạch tổ hợp .2 Bàn phím số .4 Mạch trộn kênh MUX 4 đến 1 .5 Mạch tách kênh DeMUX 1 đến 4.
23 i MỤC LỤC i 4 MẠCH TUẦN TỰ 24 4.2 Điện trở kéo lên .1 Mạch đếm bất đồng bộ .2 Bộ đếm thập phân .3 Mạch đếm đồng bộ (Synchronous Counter) .1 Cổng nạp song song .4 Các bộ đếm khác .1 Bộ đếm vòng .2 Bộ đếm Johnson. 36 A Ứng dụng Logisim 37 A.1 Vẽ mạch logic từ biểu thức Boole .2 Vẽ mạch logic từ bảng sự thật .3 Rút gọn mạch logic và Bìa-K .4 Tìm biểu thức từ mạch logic .5 Các đầu nút trong Logisim. 44 Bài thực hành LAB 1 THỰC HÀNH MẠCH SỐ “Máy tính ra đời để giải quyết những vấn đề trước đây chưa từng tồn tại” - Bill Gates, người sáng lập Microsoft. Trong đại số trừu tượng, đại số Boole làm việc với các đại lượng chỉ nhận giá trị Đúng hoặc Sai và có thể thể hiện hệ thống số nhị phân, hoặc các mức điện thế trong mạch điện logic.
Do đó đại số Boole có nhiều ứng dụng trong kỹ thuật điện và khoa học máy tính, cũng như trong logic toán học. Để hiện thực trên nền tảng đại số Boole, các mạch số vận hành với hai mức điện thế cao và thấp cùng với các cổng cơ bản. Các tín hiệu đi qua các cổng này và đến ngõ ra để biểu diễn cho kết quả mong đợi. Các mạch số này được sản xuất và tích hợp lại thành một linh kiện1 và được dùng như một thành phần của một mạch số khác có chức năng phức tạp hơn.1 Biểu diễn hàm Boole bằng mạch logic Yêu cầu 1.
Thực hiện các hàm Boole sau đây thành mạch điện: F(x,y,z) = (x OR y) AND (NOT z) F(a,b,c) = a. Sử dụng các linh kiện cơ bản trên thanh tác vụ để hoàn tất mạch. • Pin input là đầu vào cho mạch logic. Khi được thiết lập kích thước 1-bit, cổng tương đương với một biến số trong công thức đại số Boole.
Khi được thiết lập n-bit với n > 1 thì cổng là ngõ vào của cụm n-bit. Mỗi bit của đầu vào có thể thiết lập giá trị HIGH, LOW và FLOATING lần lượt tương ứng với logic 1, 0 và thả nổi. • Pin output là đầu ra của mạch logic, tương đương với giá trị của hàm số Boole khi cổng có thiết lập 1-bit. Đầu ra này cũng có thể tăng độ rộng lên n − bit để biểu 1 Thường gọi là IC, viết tắt từ Integrated Circuit 1 diễn kết quả nhiều bit.
Các đầu vào, đầu ra đều có thể đặt tên (Label) trong phần thuộc tính của từng linh kiện. • Cổng logic AND, OR và NOT là 3 cổng cơ bản tương ứng với 3 phép toán của đại số Boole. Mỗi cổng đều có thể thiết lập số chân vào, cũng như hướng đặt linh kiện và thuộc tính điện của các đầu vào và đầu ra. • Dây nối kết nối dữ liệu giữa hai đầu nối của hai hoặc nhiều linh kiện.
Tất cả đầu nối tham gia vào một dây dẫn cần tương đồng về độ rộng.1: Mạch logic được xây dựng trên Logisim 1.1 Vận hành giả lập mạch logic Mạch điện có thể vận hành giả lập khi được kích hoạt tại chọn lựa Simulate → Simulation Enable. Các dây dẫn sẽ có màu sắc như hình 1. Trong đó: • màu xám là không có kết nối; • màu xanh lục tối/sáng thể hiện tín hiệu 0/1; • màu đen đậm là dây tín hiệu n-bit; • màu cam là không đồng nhất độ rộng bit giữa các đầu kết nối; • màu đỏ là có lỗi mạch.2: Các thể hiện của dây dẫn trong Logisim 1.2 Kiểm thử mạch con Với một mạch điện đã hoàn thành và đã kích hoạt giả lập, các đầu ra sẽ thể hiện giá trị tùy thuộc vào bộ tín hiệu đầu vào. Để thay đổi các tổ hợp tín hiệu đầu vào khác, chúng ta sử dụng công cụ Toolbar → Poker tool (hoặc nhấn Ctrl+1).
Mỗi lần chọc vào một đầu vào, trạng thái của đầu vào sẽ thay đổi. Sau khi đã kiểm thử tất cả tổ hợp có thể có của các đầu vào và đầu ra đều cho kết quả mong muốn, chúng ta có thể kết luận rằng mạch logic đã hiện thực hoàn hảo. Xem xét hàm Boole sau đây: F(x,y,z) = (x OR y) AND (NOT z) (a) Với tổ hợp giá trị (x=true; y=false; z=true) thì đầu ra F có giá trị nào? (b) Có bao nhiêu tổ hợp giá trị (x,y,z) khác nhau? Gợi ý. (a) - Trên lý thuyết, một hàm đại số Boole có thể được lượng giá khi chúng ta thay toàn bộ các biến số thành giá trị nhị phân 0 hoặc 1.
Các cụm nhiều biến số được lượng giá bởi định nghĩa của phép toán NOT, AND và OR. - Trên thực hành, một mạch điện trong tình trạng chạy giả lập sẽ mang trạng thái được xác lập bởi các đầu vào và cấu trúc mạch logic. Sử dụng công cụ Poker nhấp lên các đầu vào x, y và z để chuyển giá trị chúng thành 1, 0 và 1 tương ứng theo thứ tự. Giá trị đầu ra F sẽ xác lập sau đó.
(b) Mỗi đầu vào đơn (là một biến số) sẽ có giá trị là 0 hay 1. Vậy n đầu vào đơn n sẽ có 2 tổ hợp khả dĩ.3 Kiểm thử tự động Khi số tổ hợp đầu vào có số lượng lớn, việc kiểm thử từng bộ tổ hợp sẽ tốn nhiều thời gian và công sức. Chương trình Logisim không cung cấp công cụ kiểm thử tự động, tuy nhiên có một vài phương pháp thay thế: - Sử dụng dự án CENG232 Logisim TestBench được cung cấp tại https:// github.com/ozansz/logisim-testbench. - Sử dụng Bộ hiện thực và giả lập trực tuyến tại https://circuitverse.
Vấn đề kiểm thử tự động sẽ được trình bày trong các chương sau.2 Thực hiện mạch con Khi xây dựng các mạch ngày càng phức tạp hơn, chúng ta cần xây dựng các mạch nhỏ hơn mà có thể sử dụng nhiều lần dưới dạng mô-đun được lồng trong các mạch lớn. Trong Logisim, mạch nhỏ hơn được sử dụng trong mạch lớn hơn được gọi là mạch con (sub circuit). Điều này tương tự như tạo ra một hàm con và gọi nó nhiều lần trong hàm main, hoặc các hàm con khác. Việc mô-đun giúp cho mạch điện đơn giản, dễ thiết kế và gỡ lỗi, cũng như thể hiện ưu điểm nổi trội của mạch số là khả năng mở rộng và thiết kế hệ thống.
Có 2 phần quan trọng: hiện thực mạch con và đóng gói mạch con. • Hiện thực mạch con Một mạch con cần xác định số đầu vào và số đầu ra cũng với chức năng của nó. - Nếu chức năng của mạch con được biểu diễn bởi một hàm số Boole, tham khảo Phụ lục A.1 để hiện thực mạch. - Nếu chức năng của mạch con được xác định bằng bảng sự thật, tham khảo Phụ lục A.2 để hiện thực mạch.
- Hoặc mạch con có thể hiện thực bằng cách sử dụng các cổng và linh kiện trong thư viện của Logisim. • Đóng gói mạch con Các mạch con khi được sử dụng trong một mạch khác với một hình dạng nhất định, thông thường là một hình chữ nhật mà xung quanh các các chân điện vào và ra, một rãnh khuyết được vẽ để tránh nhầm lẫn khi linh kiện được xoay hướng. Tuy vậy, người thiết kết có thể bố trí lại các chân vào ra và hình dạng của mạch con bằng cách chọn lựa Project → Edit Circuit Appearance, rồi bố trí các chân và vẽ các hình dạng cần thiết.3: Hình dạng của mạch con (trái) và thể hiện của chúng ở mạch khác (phải) Yêu cầu 3.3 Phân tích mạch logic - Rút gọn mạch logic: tham khảo Phụ lục A. - Tìm biểu thức từ mạch logic: tham khảo Phụ lục A.4 Kết luận Chương trình Logisim đã được giới thiệu với một số chức năng đầu tiên và các cổng cơ bản.
Bằng việc ghép nối các cổng thành một mạch con, ghép nối các mạch con thành một mạch con lớn hơn, chúng ta có thể hiện thực ý tưởng "Trừu tượng hóa" của máy tính điện tử. Các mô tả của quá trình phân tích, hiện thực và ghép nối được trình bày trong các chương tiếp theo. 5 Bài thực hành LAB 2 MẠCH CỘNG / TRỪ NHỊ PHÂN "Hành trình vạn dặm, bắt đầu từ một bước chân.1 " Một chương trình máy tính được hình thành bởi hàng vạn câu lệnh có nghĩa được bố trí theo giải thuật nhất định. Một câu lệnh ở ngôn ngữ cấp cao lại được biên dịch thành vài thao tác mã máy.
Và một thao tác mã máy được thực thi bởi cụm mạch tổ hợp và mạch tuần tự, nơi mà các tín hiệu điện được tiếp nhận, xử lý và kết quả được truyền đến cổng ra - cũng bằng tín hiệu điện. Trong hệ thập phân, phép cộng giữa hai số tự nhiên được thực thi theo từng cặp kí số, bắt đầu từ hàng đơn vị rồi đến hàng chục và hàng trăm. Trong hệ nhị phân cũng theo quy tắc đó, và để giải quyết phép cộng hai số 32-bit với nhau, trước tiên chúng ta cần một phần cứng thực hiện phép cộng hai số 1-bit, sau đó mở rộng đến bit nhớ (carry bit) và cuối cùng là ghép nối các phần từ thành mạch cộng rộng hơn.1 Mạch cộng bán phần Tại hàng đơn vị, hai số 1-bit được cộng với nhau theo 4 tổ hợp khả hiện được liệt kê trong bảng 2. Mạch cộng bán phần (half adder) này có 2 đầu vào có hai đầu ra: S và C.
• S: là kết quả của phép cộng nhị phân của hai bit đầu vào a với b. • C: là bit tràn (còn gọi là bit nhớ) mang tín hiệu 1 khi cả 2 bit đầu vào là 1. 1 “Thiên lý chi hành, thủy vu túc hạ ” - Lão Tử.1: Bảng sự thật mạch cộng bán phần a+b Yêu cầu 1.