Professional Documents
Culture Documents
TÁC GIẢ
PGS. TS. Nguyễn Đ ình Việt (chủ biên)
ThS. Lươ ng Việt Nguyên
KS. Nguyễn Hoài Nam
KS. Nguyễn Đứ c Thiện
HÀ NỘI - 2010
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 1/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 1
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 2/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 2
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 3/108
MỤC LỤC
BÀI 2 Học sử dụng Logisim theo tr ợ giúp – Help (tiếp) ...................... 11
2.1. Các yêu cầu và nội dung chính.................................................................................. 11
2.2. Sử dụng thư viện của Logisim và thay đổi thuộc tính của các phần tử logic............ 11
2.3. Tạo và sử dụng các mạch con.................................................................................... 11
2.4. Tra cứu theo các menu............................................................................................... 11
2.5. Bài tậ p (theo giáo trình Kiến trúc máy tính).............................................................. 11
BÀI 3 Học sử dụng Logisim theo tr ợ giúp – Help (tiếp) ...................... 13
3.1. Các yêu cầu và nội dung chính.................................................................................. 13
3.2. Tạo và sử dụng các bó dây ........................................................................................ 13
3.3. Phân tích các mạch tổ hợ p (Combinational circuits)................................................. 13
3.4. Bài tậ p (theo giáo trình Kiến trúc máy tính).............................................................. 13
BÀI 4 Học sử dụng Logisim theo tr ợ giúp – Help (tiếp) ...................... 15
4.1. Các yêu cầu và nội dung chính.................................................................................. 15
4.2. Các thành phần của bộ nhớ ........................................................................................ 15
4.3. Bài tậ p (theo giáo trình Kiến trúc máy tính).............................................................. 15
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 3
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 4/108
BÀI 7: Xây dựng các thành phần còn lại của đường dữ liệu.............. 28
7.1. Các yêu cầu và nội dung chính.................................................................................. 28
7.2. Xây dựng và mô phỏng sự hoạt động của shifter...................................................... 29
7.2.1 Phân tích ..........................................................................................................................29
7.2.2 Xây dựng mạch con shifter ..............................................................................................29
7.2.3 Mô phỏng hoạt động của shifter ......................................................................................31
7.3. Xây dựng và mô phỏng sự hoạt động của các thanh ghi chốt A Latch và B Latch .. 31
7.3.1 Phân tích ..........................................................................................................................31
7.3.2 Xây dựng thanh ghi chốt..................................................................................................31
7.3.3 Mô phỏng hoạt động của thanh ghi chốt (Latch Register) ..............................................32
7.4. Xây dựng và mô phỏng sự hoạt động của AMUX.................................................... 32
7.5 Xây dựng và mô phỏng sự hoạt động của MAR ........................................................ 32
7.5.1 Phân tích ..........................................................................................................................32
7.5.2 Xây dựng thanh ghi MAR ...............................................................................................33
7.5.3 Mô phỏng hoạt động của MAR .......................................................................................33
7.67.6.1 dựngtích
XâyPhân mô phỏng sự hoạt động của MBR ........................................................ 34
và ..........................................................................................................................34
7.6.2 Xây dựng thanh ghi MBR................................................................................................34
7.6.3 Mô phỏng hoạt động của MBR........................................................................................35
7.7. Bài tậ p........................................................................................................................ 36
BÀI 8: Xây dựng Control Store, MIR và Micro Seq của đơn vị điều
khiển......................................................................................................... 37
8.1. Các yêu cầu và nội dung chính.................................................................................. 37
8.2. Xây dựng và mô phỏng sự hoạt động của Control Store .......................................... 38
8.2.1 Phân tích ..........................................................................................................................38
8.2.2. Xây dựng và nạ p nội dung cho Control Store.................................................................38
8.2.3. Mô phỏng sự hoạt động của Control Store .....................................................................44
8.2. Xây dựng và mô phỏng sự hoạt động của MIR......................................................... 44
8.2.1 Phân tích ..........................................................................................................................44
8.2.2 Xây dựng thanh ghi MIR .................................................................................................44
8.2.3 Mô phỏng hoạt động của thanh ghi MIR.........................................................................45
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 4
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 5/108
8.3. Xây dựng và mô phỏng sự hoạt động của Micro Seq ............................................... 45
8.3.1 Phân tích ..........................................................................................................................45
8.3.2 Xây dựng mạch con Micro Seq .......................................................................................45
8.3.3 Mô phỏng hoạt động của Micro Seq................................................................................46
BÀI 9: Xây dựng các thành phần còn lại của bộ điều khiển ............... 47
9.1. Các yêu cầu và nội dung chính.................................................................................. 47
9.2. Xây dựng và mô phỏng hoạt động của thanh ghi MPC ............................................ 47
9.2.1 Phân tích ..........................................................................................................................47
9.2.2 Xây dựng thanh ghi MPC ................................................................................................47
9.2.3 Mô phỏng hoạt động của thanh ghi MPC ........................................................................48
9.3. Xây dựng và mô phỏng hoạt động của đơ n vị Increment ......................................... 48
9.3.1 Phân tích ..........................................................................................................................48
9.3.2 Xây dựng mạch con Increment........................................................................................48
9.3.3 Mô phỏng hoạt động của Increment ................................................................................49
9.4. Xây dựng và mô phỏng hoạt động của đơ n vị Mmux............................................... 49
9.5. Xây dựng và mô phỏng hoạt động của decoder ........................................................ 49
9.5.1 Phân tích ..........................................................................................................................49
9.5.2 Xây dựng mạch con làm A, B decoder và mô phỏng sự hoạt động của nó.....................49
9.5.3 Xây dựng mạch con làm C decoder và mô phỏng sự hoạt động của nó..........................50
9.6. Xây dựng và mô phỏng hoạt động của Clock ........................................................... 51
9.6.1 Phân tích ..........................................................................................................................51
9.6.2 Xây dựng mạch con làm đơ n vị Clock ............................................................................52
9.6.3 Mô phỏng sự hoạt động của Clock ..................................................................................53
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 5
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 6/108
GIỚMenu
6. 6.1 ỆU CÁC MENU........................................................................................... 84
I THIFile............................................................................................................................84
6.2 Menu Edit ...........................................................................................................................85
6.3 Menu Project.......................................................................................................................86
6.4 Menu Simulate....................................................................................................................87
6.5 Menu Window ....................................................................................................................88
6.6 Menu Help ..........................................................................................................................88
7. CÁC THÀNH PHẦ N CỦA BỘ NHỚ ......................................................................... 88
7.1 Truy cậ p bộ nhớ ..................................................................................................................89
7.2 Pop-up menus and files.......................................................................................................89
7.3 Hex editor ...........................................................................................................................90
8. LOGGING .................................................................................................................... 91
8.1 Thẻ lựa chọn (the selection tab) ..........................................................................................92
8.2 Thẻ table .............................................................................................................................93
8.3 Thẻ tệ p ................................................................................................................................94
9. APPLICATION PREFERENCES................................................................................ 95
9.1 Thẻ Template ......................................................................................................................96
9.2 Thẻ International.................................................................................................................96
9.3 Thẻ Experimental................................................................................................................98
9.4 Tùy chọn Command-line ....................................................................................................99
10. PROJECT OPTION.................................................................................................. 100
10.1 Thẻ Canvas .....................................................................................................................101
10.2 Thẻ Simulation................................................................................................................103
10.3 Thẻ Toolbar.....................................................................................................................104
10.4 Thẻ Mouse ......................................................................................................................105
11. SỰ TRUYỀ N GIÁ TR Ị ............................................................................................ 106
11.1 Sự tr ể của cổng ...............................................................................................................106
11.2 Lỗi dao động ...................................................................................................................107
11.3 Hạn chế ...........................................................................................................................108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 6
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 7/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 7
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 8/108
GIỚ I THIỆU
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 8
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 9/108
này.không gặ p tr ở ngại nào. Có thể dùng Synaptic Package Manger để tìm và cài bản java
và
Chạy logisim như sau: java –jar logisim-2.3.5.jar [Enter]
1.4. Bài tập (theo giáo trình Kiến trúc máy tính)
Chú ý khi làm các bài tập của chươ ng này:
• Đầu ra của 1 cổng có thể nối vớ i đầu vào của 1 cổng khác. Đối vớ i các đầu vào/ra
không nối vớ i các đầu vào/ra của các cổng khác, mỗi đầu vào cần nối vớ i một phần tử
“input” và mỗi đầu ra cần nối vớ i phần tử “output”.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 9
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 10/108
• Để thử lại chức năng, sử dụng công cụ “poke tool” tr ỏ vào các phần tử “input” và
kích nút chuột bên trái để đảo giá tr ị của input, đồng thờ i quan sát giá tr ị của phần tử
“output”.
• Sau khi đã tạo và thử các mạch logic, cần “save” vào bộ nhớ ngoài (ổ đĩ a c ứng, ổ đĩ a
USB...), sau đó thử “open” để xem lại. Tên file lưu mạch điện theo các hình vẽ trong
giáo trình nên đặt theo tên hình vẽ cho dễ nhớ . Thí dụ, vớ i mạch điện trên hình 3-02,
tên file nên đặt là “hinh3-02.circ”, hoặc “figure3-02.circ”.
Bài tập:
1. Mô phỏng sự họat động của các cổng logic đơ n giản nhất trên hình 3-02.
Hình 3-02 Ký hiệu và hành tr ạng chức năng của 5 cổng cơ bản
2. Tạo và mô phỏng họat động của các mạch logic số như trên Hình 3-03, kiểm tra sự
tươ ng đươ ng của chúng.
Hình 3-06 Bảng chân lý của hàm XOR và các m ạch điện thực hiện hàm này
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 10
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 11/108
2.2. Sử dụng thư viện của Logisim và thay đổi thuộc tính của các
phần tử logic
Thực hành trên máy theo “Help” c ủa logisim, xem mục Libraries and Attributes.
2.5. Bài tập (theo giáo trình Kiến trúc máy tính)
Chú ý:
• Các mạch logic số sau đây đã có trong thư viện của logisim, nhưng sinh viên vẫn cần
tạo ra chúng bằng các phần tử logic cơ bản để hiểu sâu về sự hoạt động của chúng.
• Sinh viên nên lấy từ thư viện một phần tử có chức năng tươ ng tự chức năng của mạch
logic số mà mình vừa tạo ra để so sánh chức năng của chúng.
• Sau này, khi xây dựng “Micro Architecture” (hình 4-07, hình 4-09), chúng ta sẽ sử
dụng các phần tử đã có trong thư viện.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 11
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 12/108
Bài tập:
1. Tạo và mô phỏng họat động của multiplexer và demultiplexer trên Hình 3-07.
2. Tạo và mô phỏng họat động của bộ decoder “3 to 8” trên Hình 3-08.
3. Tạo và mô phỏng họat động của bộ so sánh 4 bit trên Hình 3-09.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 12
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 13/108
3.4. Bài tập (theo giáo trình Kiến trúc máy tính)
Chú ý:
• Một s ố mạch logic số sau đây đã có trong thư vi ện c ủa logisim, nhưng sinh viên vẫn
cần tạo ra chúng bằng các phần tử logic cơ bản để hiểu sâu về sự hoạt động của
chúng.
• Sinh viên nên lấy từ thư viện một phần tử có chức năng tươ ng tự chức năng của mạch
logic số mà mình vừa tạo ra để so sánh chức năng của chúng.
•
Sau này, khi xây dựng “Micro Architecture” (hình 4-07, hình 4-09), chúng ta sẽ sử
dụng các phần tử đã có trong thư viện.
Bài tập:
1. Tạo và mô phỏng họat động của bộ dịch (shifter) trên Hình 3-11. Thực tậ p sử dụng
các phần tử “Shifter” và “Shift Register” có trong th ư viện của logisim (trong các
nhóm “Arithmetic” và “Memory”).
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 13
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 14/108
2. Tạo và mô phỏng họat động của các bộ cộng (Haft-Adder và Full-Adder) trên Hình
3-12. Thực tậ p sử dụng phần t ử “Adder” có trong thư viện của logisim (trong nhóm
“Arithmetic”).
Hình 3-14 ALU 8-bit đượ c tạo bở i “8 mảnh” ALU 1-bit
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 14
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 15/108
4.3. Bài tập (theo giáo trình Kiến trúc máy tính)
Chú ý:
• Một s ố mạch logic số sau đây đã có trong thư vi ện c ủa logisim, nhưng sinh viên vẫn
cần tạo ra chúng bằng các phần tử logic cơ bản để hiểu sâu về sự hoạt động của
chúng.
• Sinh viên nên lấy từ thư viện một phần tử có chức năng tươ ng tự chức năng của mạch
logic số mà mình vừa tạo ra để so sánh chức năng của chúng.
• Sau này, khi xây dựng “Micro Architecture” (hình 4-07, hình 4-09), chúng ta sẽ sử
dụng các phần tử đã có trong thư viện.
Bài tập:
1. Tạo và mô phỏng sự hoạt động của
Thanh ghi chốt đơ n giản nhất -
thanh ghi chốt RS, theo Hình 3-16;
sau đó lặ p lại việc này nhưng sử
dụng các phần tử NAND thay cho
các phần tử NOR.
Hình 3-16 a/ Thanh ghi chốt dùng cổng NOR ở tr ạng thái 0; b/ Thanh ghi chốt dùng
cổng NOR ở tr ạng thái 1
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 15
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 16/108
2. Tạo và mô phỏng sự hoạt động của Thanh ghi chốt RS hoạt động theo nhị p xung
đồng h ồ theo Hình 3-17. Chú ý th ử tín hiệu đồng h ồ (clock) theo 2 cách: 1/ s ử d ụng
phần tử “input” và dùng phần tử “poke tool” để thay đổi giá tr ị của “input”; 2/ sử
dụng đơ n vị tạo tín hiệu clock thuộc nhóm “Base” trong thư viện của logisim.
Hình 3-17 Thanh ghi chốt RS hoạt động theo nhị p xung đồng hồ
3. Tạo và mô phỏng sự hoạt động của Thanh ghi chốt D hoạt động theo nhị p xung đồng
hồ (Hình 3-18).
Hình 3-18 Thanh ghi chốt D hoạt động theo nhị p xung đồng hồ
4. Tạo và mô phỏng sự hoạt động của Phần tử nhớ 1 bit của bộ nhớ RAM t ĩ nh (SRAM)
như trên Hình 3-19.
Hình 3-19 Mạch điện của một phần tử nhớ RAM t ĩ nh 1 bit Sij
Chú ý:
- Sử d ụng phần t ử “Controlled Buffer” thuộc nhóm “Gates” trong thư vi ện làm bộ
đệm 3 tr ạng thái có đầu ra nối vớ i “Dout”.
- Sử dụng phần tử “Buffer” thuộc nhóm “Gates” trong thư viện làm bộ đệm có đầu
vào nối vớ i “Din”.
5. Tự đọc các mục Logging; Application Referenes và Projection trong Help c ủa
logisim.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 16
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 17/108
không
ra. thay đổi; các bít tr ạng thái N và Z đượ c thiết l ậ p ph ụ thu ộc vào k ết qu ả ở đầu
• ALU (= F0 F1) = 11: Đảo tóan hạng ở đầu vào bên trái (đầu vào A) và đưa ra đầu ra.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 17
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 18/108
Carry-out của b ộ cộng 2 bit bậc cao nhất (15) không cần quan tâm (để mạch điện
và việc phân tích nó không quá ph ức tạ p).
• Để việc xây dựng mạch điện theo kiểu “mô-đun” hóa, chúng ta s ẽ xây dựng mạch
ALU 1 bit tr ướ c, lưu vào file ALU-1bit.circ; sau đó sử dụng nó để xây dựng ALU-
8bits; cuối cùng xây dựng ALU-16bits theo yêu cầu từ 2 ALU 8 bit và một số phần tử
mạch điện khác, thí dụ mạch tạo các tín hiệu tr ạng thái N và Z.
Chú ý: Chúng ta có thể xây dựng 1 ALU-16bits từ 16 ALU-1bit, thậm chí từ các phần tử
logic cơ bản. Tuy nhiên, nếu làm như vậy sẽ không thể nhìn thấy toàn bộ mạch điện trên
màn hình.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 18
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 19/108
• Kiểm tra sự th ực hi ện 4 chức n ăng c ủa ALU bằng cách dùng phần t ử “poke tool” để
thiết lậ p các giá tr ị khác nhau của các đầu vào: F0, F1, A, B và Carry-in; đồng thờ i
quan sát giá tr ị trên các đầu ra: Output và Carry-Out.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 19
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 20/108
5.5. Xây dự ng ALU 16 bit hoàn chỉnh
• Vào menu Project \ Add Circuit, logisim sẽ hiện lên một cửa sổ nhỏ, hỏi tên mà ta
muốn đặt cho mạch điện. Hãy đặt tên là ALU-16bits. Trong cửa sổ con ở góc trên bên
trái, ngoài tên main, ALU-1bit, ALU-8bits, logisim hi ện tên mạch con (subcircuit)
mà chúng ta vừa tạo ra, đó là ALU-16bits.
• Lưu (save) mạch điện mà chúng ta t ạo ra vào file (Micro-Architecture-SVxx.circ):
vào menu File \ Save. Mạch con ALU-16bits sẽ đượ c lưu cùng vớ i Micro-
Architecture-SVxx.circ.
• Xây dựng ALU-16bits như ở hình dướ i đây. Chú ý:
Hãy sử dụng các phần tử ALU-8bits do chúng ta tạo ra.
Các phần t ử input có ghi nhãn “To A-bus“, “To B-bus“ và phần t ử output có ghi
nhãn “ALU output“ là 16 bits.
Đầu vào Carry_in của ALU-8bits bên phải đượ c nối vớ i phần tử “Constant“ thuộc
nhóm “Gates“ trong thư vi ện c ủa logisim. Chúng ta cần đặt thuộc tính cho phần
tử này bằng 0.
• Kiểm tra sự th ực hi ện 4 chức n ăng c ủa ALU bằng cách dùng phần t ử “poke tool” để
thiết lậ p các giá tr ị khác nhau của các đầu vào: F0, F1, A, B và Carry-in; đồng thờ i
quan sát giá tr ị trên các đầu ra: Output và Carry-Out.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 20
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 21/108
5.6. Bài tập (không có trong giáo trình Kiến trúc máy tính)
Hãy sử dụng các các phần t ử “Hex Digit Display“ và “Splitter“ để đọc đượ c dướ i dạng
số Hexa các giá tr ị đưa vào ALU và k ết quả nhận đượ c ở đầu ra ALU.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 21
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 22/108
Bus-A, hoặc Bus-B, hoặc đồng thờ i ra cả Bus-A và Bus-B. Vi ệc chọn 1 trong 16
thanh ghi để đổ dữ liệu ra bus A đượ c thực hiện bằng “A decoder“. Việc chọn 1 trong
16 thanh ghi để đổ dữ liệu ra bus B đượ c thực hiện bằng “B decoder“.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 22
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 23/108
Hình 4-02 a/ Thanh ghi 8 bit nối vớ i một bus vào (input bus) và m ột bus ra (output bus).
b/ Ký hiệu của một thanh ghi 16 bit v ớ i một bus vào và hai bus ra
Trong bài thực hành này chúng ta sẽ s ử d ụng phần t ử “register“ thuộc nhóm “Memory“
trong thư viện của logisim. Một số thuộc tính của phần tử này có thể thay đổi đượ c thông
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 23
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 24/108
• Label Font: font chữ và cỡ chữ của nhãn; Chúng ta cần chọn sao cho đẹ p, chữ
không đè lên các nét của hình vẽ.
Các đầu vào/ra của phần tử nhớ :
• D (Data bits): đầu vào dữ liệu (1..32 bits).
•
Q (đầu ra dữ liệu): có độ r ộng (số bit) bằng đầu vào D.
• “^“: đầu vào (1 bit) c ủa tín hiệu đồng hồ.
• en (Enable): tín hiệu mở chip chứa phần tử nhớ , tươ ng tự tín hiệu CS (Chip Select)
hoặc CE (Chip Enable) mà chúng ta đã gặ p khi phân tích một số mạch điện trong
“Chươ ng 3 Mức logic số“.
• “0“: đầu vào tín hiệu xóa (đặt giá tr ị 0) nội dung phần tử nhớ .
Sau khi biết đượ c các thuộc tính và các đầu vào/ra của phần tử nhớ “Register“, chúng ta
sẽ thực hiện xây dựng khối 16 thanh ghi theo cách như sau (Việc phân tích cần đối chiếu
vớ i một số hình vẽ trong giáo trình Kiến trúc máy tính):
• Đầu vào D (16 dây) c ủa cả 16 thanh ghi nối chung lại vớ i nhau (các đườ ng truyền bit
0 nối vớ i nhau, các đườ ng truyền bit 1 nối vớ i nhau,...) và sẽ nối vớ i Bus-C thông qua
phần tử “input“ 16 bit (Xem Hình 4-02 và Hình 4-07).
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 24
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 25/108
• Đầu ra Q (16 dây) của mỗi một trong số 16 phần tử “Register“ đượ c nối vớ i 2 đầu
vào của 2 bộ đệm 3 tr ạng thái (phần t ử “Controlled buffer“ thuộc nhóm “Gates“), để
có thể đượ c điều khiển để đổ dữ liệu ra hoặc Bus-A, hoặc Bus-B hoặc đồng thờ i ra cả
2 Bus-A và Bus-B. 16 đầu ra của 16 bộ đệm 3 tr ạng thái thứ nh ất nối vớ i nhau và
nối vớ i một phần tử “output“ để đổ dữ liệu ra Bus-A; 16 đầu ra của 16 bộ đệm 3 tr ạng
thái thứ hai nối vớ i nhau và nối vớ i một phần tử “output“ để đổ dữ liệu ra Bus-B.
Phần t ử “Controlled buffer“ có đầu ra nối v ớ i Bus-A đượ c điều khiển b ở i tín hiệu t ừ
một trong các đầu ra của A-decoder. Tươ ng t ự nh ư v ậy, phần t ử “Controlled buffer“
có đầu ra nối v ớ i Bus-B đượ c điều khiển b ở i tín hiệu từ m ột trong các đầu ra của B-
decoder (Xem Hình 4-02 và Hình 4-07). Các phần tử “Controlled buffer“ nói trên đều
là 16 bits (chúng ta đặt thuộc tính “Data Bits“ của chúng bằng 16).
• Đầu vào tín hiệu đồng hồ “^“ của tất cả 16 thanh ghi đượ c nối vớ i nhau (Xem Hình 4-
02).
• Mỗi đầu vào en (Enable) của một trong 16 ph ần t ử “register“ nối v ớ i một đầu ra của
C-decoder. Như vậy C-decoder sẽ chọn lấy 1 trong 16 thanh ghi để nhận dữ liệu từ
Bus-C vào.
• Đầu vào tín hiệu xóa “0“: trong các bài th ực hành này, chúng ta ch ưa sử dụng đến
nên để hở (không nối đi đâu cả), tức là không xóa.
trênốnbên
mu đặttrái, mạch tên
cho ngoài điện.main, đặt tên là 16registers-block.
Hãy ALU-1bit, ửa sổ con
Trong clogisim
ALU-8bits, ALU-16bits hi ệở
n góc
tên
mạch con (subcircuit) mà chúng ta v ừa tạo ra, đó là 16registers-block.
• Lưu (save) mạch điện mà chúng ta t ạo ra vào file (Micro-Architecture-SVxx.circ):
vào menu File \ Save. Mạch con 16register-block sẽ đượ c lưu cùng vớ i Micro-
Architecture-SVxx.circ.
• Trong cửa s ổ con “Canvas Window” của logisim, chúng ta tạo m ột t ậ p 16 thanh ghi
như ở hình vẽ dướ i đây.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 25
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 26/108
6.3.2 Mô phỏng hoạt động của khối 16-Register
Chúng ta có thể mô phỏng để xem đơ n vị 16-Registers mà chúng ta vừa tạo ra có thực
hiện đúng các chức năng như ý đồ thiết k ế không.
Chọn 1 trong 16 thanh ghi để nhận dữ liệu vào từ Bus-C:
1. Đặt giá tr ị cho phần tử input “clock” bằng 1 (sử dụng “poke tool”).
2. Đặt giá tr ị cho phần tử input “Input from C-bus” bằng một giá tr ị nhị phân nào đó,
chẳng hạn bằng “1111.0000.1100.1100”.
3. Đặt giá tr ị cho phần tử input “From C-decoder” bằng “0000.0000.0000.0001” để
chọn thanh ghi “PC”, cho nó nhận d ữ li ệu từ ph ần t ử input “Input from C-bus”. Nếu
thay đổi giá tr ị này (chú ý: luôn ch ỉ có 1 bit bằng 1, còn các bit khác bằng 0) thì một
trong 15 thanh ghi khác đượ c chọn.
Chú ý: Vớ i mạch điện và các giá tr ị đượ c thiết lậ p như trên, chúng ta thườ ng không đọc
đượ c giá tr ị nh ị phân chứa vào thanh ghi đượ c ch ọn. Để có thể nhìn thấy, chúng ta thực
hiện thêm 2 bướ c như sau:
4. Đặt giá tr ị cho phần t ử input “From B-decoder” giá tr ị nhị phân giống giá tr ị đặt cho
phần tử input “From C-decoder”.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 26
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 27/108
5. Dùng phần tử “poke took” đảo giá tr ị của phần tử input “clock” 2 lần; chúng ta sẽ
nhìn thấy giá tr ị mà thanh ghi đượ c chọn đã nhận từ Bus-C, nay truyền ra phần tử
output “To B-bus”.
6.4. Bài tập (không có trong giáo trình Kiến trúc máy tính)
Hãy sử dụng các các phần t ử “Hex Digit Display“ và “Splitter“ để đọc đượ c dướ i dạng
số Hexa các giá tr ị đưa vào các phần tử ouput “To A-Bus” và “To B-Bus”.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 27
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 28/108
BÀI 7: Xây dự ng các thành phần còn lại của đườ ng dữ liệu
7.1. Các yêu cầu và nội dung chính
Đườ ng dữ liệu (Data Path) đượ c
trình bày trong “Chươ ng 4 Mức
Vi chươ ng trình” và đượ c minh
họa trên hình vẽ bên (Hình 4-
07).
Trong 2 bài thực hành tr ướ c,
chúng ta đã xây dựng và mô
phỏng sự làm việc của 2 thành
phần là ALU-16bits và khối 16
thanh ghi.
Trong bài thực hành này, chúng
ta sẽ xây dựng và mô phỏng sự
hoạt động của các thành phần
còn lại của đườ ng dữ liệu, đó là:
• Shifter
• A Latch, B Latch
• AMUX
• MAR
• MBR
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 28
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 29/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 29
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 30/108
• Phần tử shifter:
o Số thuộc tính: 2, chúng ta cần thiết lậ p giá tr ị của chúng cho phù hợ p vớ i yêu cầu
của mình:
Data Bits: 16 (có th ể nhận các giá tr ị trong miền 1..32)
Shift Type: Logical Left (các giá tr ị khác có thể nhận là: Logical Right,
Arithmetic Right, Roll Left, Roll Right)
o Số chân: 3 (2 chân cho tín hi ệu vào, 1 chân cho tín hiệu ra):
1 chân vào cho data (16 bits): phía trên bên trái.
1 chân ra cho data (16 bits): bên phải, có đánh dấu mũi tên, hướ ng mũi tên
tùy theo chúng ta chọn thuộc tính “Shift Type” là left hay right.
1 chân vào để điều khiển số vị trí bit sẽ dịch, trên hình có ghi nhãn “bits to
shift”. Nếu chúng ta đã thiết lậ p “Data Bits” =16 (2^4) thì đầu vào này nhất
thiết phải là 4 bit. Nếu chúng ta chỉ muốn dịch 1 bit, thì thiết lậ p giá tr ị cho
phần tử input nối vớ i đầu vào này bằng 0001.
• Phần tử MUX (Multiplexer):
o Số thuộc tính: 3, chúng ta cần thiết lậ p giá tr ị của nó cho phù hợ p vớ i yêu cầu của
mình:
Facing: East - hướ ng đầu ra về phía đông (các giá tr ị khác: West, North,
South)
Select Bits: 2 (vì chúng ta cần chọn 1 trong 3 k ết quả để đưa ra)
Data Bits: 16
o Số chân: 6 (5 chân cho tín hi ệu vào, 1 chân cho tín hi ệu ra):
Chân vào số 0 (có ký hiệu 0): 16 bits cho giá tr ị “no shift”.
Chân vào số 1 (bên dướ i chân 0): 16 bits cho giá tr ị “shift left”.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 30
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 31/108
7.3. Xây dự ng và mô phỏng sự hoạt động của các thanh ghi chốt A
Latch và B Latch
7.3.1 Phân tích
Thanh
đơ n giảghi chốcó
n. Nó t mà
đầuchúng sẽ xây
ta đầ
vào và dựng
u ra 16 để làm
bits, A Latch
đầu vào và ểBn Latch
điều khi điứềuc nkhi
có ch
1 bit (L0 ăngểnr ấAt
Latch, L1 điều khiển B Latch). Khi tín hi ệu trên đầu vào điều khiển bằng 1, giá tr ị 16 bits
ở đầu sẽ đượ c nhớ và đưa ra đầu ra. Khi tín hiệu điều khiển t ừ 1 tr ở về 0, giá tr ị trong
thanh ghi (và đầu ra) không thay đổi đượ c nữa, dù giá tr ị ở đầu vào có thay đổi.
7.3.3 Mô phỏng hoạt động của thanh ghi chốt (Latch Register)
Chúng ta có thể mô phỏng để xem đơ n vị latch mà chúng ta vừa tạo ra có thực hiện đúng
các chức năng như ý đồ thiết k ế không. Có thể thực hiện như sau:
1. Ban đầu, bit “Clock” bằng 0 và đặt giá tr ị cho phần tử “Input” bằng một giá tr ị nhị
phân nào đó, chẳng hạn bằng “1111.0000.1100.1100”.
2. Thiết lậ p giá tr ị cho bit “Clock” bằng 1, chúng ta sẽ thấy đầu ra “Output” sẽ có giá tr ị
đúng bằng “Input” là: “1111.0000.1100.1100”.
3. Đảo bit “Clock” bằng 0.
4. Thay đổi giá tr ị của “Input”, chúng ta sẽ thấy “Output” không bị thay đổi.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 32
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 33/108
• Ngoài tín hiệu điều khiển M0 nói trên phải có mức tích cực, chúng ta đã biết r ằng,
MAR chỉ đượ c chốt dữ li ệu trong chu k ỳ con thứ 3 của đơ n v ị đồng h ồ (v ấn đề này
đượ c phân tích trong mục “4.2.3 Việc định thờ i vi chỉ th ị”, giáo trình Kiến trúc máy
tính). Tóm lại, có 2 tín hiệu điều khiển MAR chốt dữ li ệu, m ột là tín hiệu lấy t ừ bit
MAR trong thanh ghi MIR (chính là M0 trong hình vẽ ở đầu bài thực hành này); hai
là tín hiệu lấy từ đườ ng chu k ỳ con thứ 3 của đơ n vị đồng hồ.
7.5.2 Xây dự ng thanh ghi MAR
• Vào menu Project \ Add Circuit, logisim sẽ hiện lên một cửa sổ nhỏ, hỏi tên mà ta
muốn đặt cho mạch điện. Hãy đặt tên là MAR-16bits. Trong cửa sổ con ở góc trên
bên trái, ngoài tên main và tên các mạch con mà chúng ta đã t ạo ra từ tr ướ c, logisim
hiện tên mạch con (subcircuit) mà chúng ta v ừa tạo ra, đó là MAR-16bits.
• Lưu (save) mạch điện mà chúng ta t ạo ra vào file (Micro-Architecture-SVxx.circ):
vào menu File \ Save. M ạch con MAR-16bits sẽ đượ c lưu cùng vớ i Micro-
Architecture-SVxx.circ.
• Trong cửa sổ con “Canvas Window” của logisim, chúng ta xây d ựng MAR-16bits
như ở hình vẽ dướ i đây. Tất cả các phần tử cần sử dụng chúng ta đều đã biết.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 33
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 34/108
4. Thay đổi giá tr ị của “Input”, chúng ta sẽ thấy “Output” không bị thay đổi.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 34
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 35/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 35
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 36/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 36
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 37/108
BÀI 8: Xây dự ng Control Store, MIR và Micro Seq của đơ n
vị điều khiển
8.1. Các yêu cầu và nội dung chính
Đơ n vị điều khiển – CU (Ctrol Unit) đượ c giớ i thiệu khái quát trong mục “2.1 Kiến trúc
chung của máy tính điện tử”; Tại chươ ng 2, chúng ta đã biết r ằng CU thực hiện việc điều
khiển sự hoạt động của tất cả các đơ n vị tạo nên hệ thống máy tính theo chươ ng trình
trong bộ nhớ chính.
CU đượ c nghiên cứu sâu hơ n trong chươ ng 4, tại các mục “4.2.2 Vi chỉ thị -
microinstruction”, “4.2.3 Việc định thờ i vi chỉ thị”, “4.2.4 Sự định trình tự các vi chỉ
thị”,...Trong sơ đồ khối đầy đủ của một vi kiến trúc dướ i đây, chúng ta thấy CU bao gồm
các đơ n v ị sau: Control Store, MIR, Micro Seq, MPC, Increment, Mmux, A Decoder, B
decoder, C decoder và đơ n vị tạo tín hiệu đồng hồ - Clock.
• Control Store: phải ch ứa đượ c toàn bộ vi chươ ng trình thực hi ện thông dịch các lệnh
lấy về từ bộ nhớ chính (Main memory).
Đầu vào: Có 1 đầu vào địa chỉ 8 bits nối vớ i đầu ra của MPC. Địa chỉ này dùng để
chọn 1 trong số 2^8 vi chỉ thị chứa trong Control Store.
• Trong cửa sổ con “Canvas Window” c ủa logisim, việc xây dựng Control-Store-
256x32bits hết sức đơ n giản:
Lấy một phần tử
ROM trong
nhóm Memory
đặt vào “Canvas
Window”.
Thiết lậ p giá tr ị
cho các thuộc
tính của nó như
đã phân tích ở
trên (Address Bit
Width: 8; Data
Bit Width: 32).
• Để nạ p nội dung cho phần tử nhớ Control-Store, hãy kích nút chuột bên phải, logisim
hiện lên một danh sách các lựa chọn. Hãy chọn “Edit Contents...”, logisim sẽ hiện lên
một cửa sổ “Logisim: Hex Editor” để ngườ i sử dụng nạ p nội dung cho phần tử nhớ
Control-Store.
• Việc n ạ p n ội dung cho Control-Store tuy đơ n gi ản, nhưng mất nhiều th ờ i gian và đòi
hỏi tuyệt đối chính xác. Hình vẽ trên là nội dung Control-Store đã đượ c nạ p 79 (4FH
= 4*16 + 15) words dướ i dạng số hexa, mỗi word 32 bits là một vi chỉ thị của vi
chươ ng trình làm nhiệm vụ thông dịch.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 39
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 40/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫ n thự c hành Kiế n trúc máy tính”, version-1.0
A C
Địa chỉ Statement M O A S M M R W E
(Hexa) (Chỉ thị ngôn ngữ MAL) U N L H B A D R N C B A
X D U R R C
(Các vi chỉ thị dướ i đây thầy Việt chưa kiểm tra lại bằng việc cho thực h
Địa chỉ
Chỉ thị MAL Chỉ thị (nhị phân)
(Hexa)
0E ac := mbr + ac; goto 0; 1110.0000.0001.0001.0001.0000.0000
0F mar := ir; rd; 0001.0000.1100.0000.0011.0000.0000
10 ac := ac + 1; rd; 0000.0000.0101.0001.0110.0001.0000
11 a := inv(mbr); 1001.1000.0001.1010.0000.0000.0000
12 ac := ac + a; goto 0; 0110.0000.0001.0001.0101.0001.0000
13 tir := lshift(tir); if n then goto 25; 0011.0100.0001.0100.0000.0100.0001
14
15 alu
alu :=
:= tir;
ac; if
if nn then
then goto
goto 23;
0;
0011.0000.0000.0000.0000.0100.0001
0011.0000.0000.0000.0000.0001.0000
16 pc := band(ir, amask); goto 0; 0110.1000.0001.0000.1000.0011.0000
17 alu := ac; if z then goto 22; 0101.0000.0000.0000.0000.0001.0001
18 goto 0; 0110.0000.0000.0000.0000.0000.0000
1B ac := band(ir, amask); goto 0; 0110.1000.0001.0001.1000.0011.0000
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫ n thự c hành Kiế n trúc máy tính”, version-1.0
39 rd; 0000.0000.0100.0000.0000.0000.0000
3A mar := ac; wr; goto 10; 0111.0000.1010.0000.0001.0000.0000
3B alu := tir; if n then goto 62; 0011.0000.0000.0000.0000.0100.0011
3C
3D
sp
mar:=:=spsp;
+ (-1);
mbr := ac; wr; goto 10;
0000.0000.0001.0010.0111.0010.0000
0111.0001.1010.0000.0010.0001.0000
3E mar := sp; sp := sp + 1; rd; 0000.0000.1101.0010.0010.0110.0000
3F rd; 0000.0000.0100.0000.0000.0000.0000
40 ac := mbr; goto 0; 1111.0000.0001.0001.0000.0000.0000
41 tir := lshift(tir); if n then goto 73; 0011.0100.0001.0100.0000.0100.0100
42 alu := tir; if n then goto 70; 0011.0000.0000.0000.0000.0100.0100
43 mar := sp; sp := sp + 1; rd; 0000.0000.1101.0010.0010.0110.0000
44 rd; 0000.0000.0100.0000.0000.0000.0000
45 pc := mbr; goto 0; 1111.0000.0001.0000.0000.0000.0000
46 a := ac; 0001.0000.0001.1010.0000.1010.0000
47 ac := sp; 0001.0000.0001.0001.0000.0010.0000
48 sp := a; goto 0; 0111.0000.0001.0010.0000.1010.0000
49 alu := tir; if n then goto 76; 0011.0000.0000.0000.0000.0100.0100
4A a := band(ir, smask); 0000.1000.0001.1010.1001.0011.0000
4B sp := sp + a; goto 0; 0110.0000.0001.0010.1010.0010.0000
4C a := band(ir, smask); 0000.1000.0001.1010.1001.0011.0000
4D a := inv(a); 0001.1000.0001.1010.0000.1010.0000
4F a := a + 1; goto 75; 0110.0000.0001.1010.0110.1010.0100
(Chú ý: dấu ‘.’ đã đượ c “viết” thêm vào giữa các nhóm 4 bit nhị phân và các nhóm 2 s ố hexa để ch
Control-Store)
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫ n thự c hành Kiế n trúc máy tính”, version-1.0
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 44
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 45/108
Chú ý: Các phần tử “reg” làm 16 thanh ghi trên có đầu vào “en” đượ c logisim đặt giá tr ị
mặc định bằng 1 (active), vì vậy chúng ta không cần nối 16 đầu “en” của 16 thanh ghi lại
vớ i nhau và truyền vào đó giá tr ị “1”.
• Chúng ta sẽ xây dựng mạch sinh tín hiệu Mmux = L RN + L R Z + LR cho dễ hiểu hơ n.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 45
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 46/108
8.3.3 Mô phỏng hoạt động của Micro Seq
Mô phỏng hoạt động của mạch con Micro-Seq: Thiết lậ p giá tr ị cho phần tử input
“COND” lần lượ t bằng: 00, 01, 10 và 11, ki ểm tra giá tr ị tại đầu ra MMUX phụ thuộc
vào N và Z như thế nào:
• COND = 00: MMUX luôn bằng 0, không phụ thuộc vào N và Z.
• COND = 01: MMUX bằng 1 nếu N = 1 (N và Z không bao gi ờ đồng thờ i bằng 1).
• COND = 10: MMUX bằng 1 nếu Z = 1.
•
COND = 11: MMUX luôn bằng 1, không phụ thuộc vào N và Z.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 46
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 47/108
BÀI 9: Xây dự ng các thành phần còn lại của bộ điều khiển
9.1. Các yêu cầu và nội dung chính
Trong bài thực hành này, chúng ta sẽ tạo ra và mô phỏng sự hoạt động của các đơ n vị
còn lại của CU, bao gồm các đơ n vị sau:
• MPC: con tr ỏ vi chỉ thị.
• Increment: nhận input từ MPC r ồi cộng thêm 1 và đưa ra đầu ra để truyền tớ i Mmux.
• Mmux: Bộ dồn kênh 2-to-1, độ r ộng các đườ ng vào/ra là 8 bits.
• A Decoder, B decoder và C decoder
A và B decoder là các bộ giải mã địa chỉ 4-to-16 thông thườ ng.
C decoder: ngoài chức năng giải mã thông thườ ng như A và B decoder, C decoder
còn phải có 1 đặc điểm khác nữa: 1 trong 16 đầu ra đượ c chọn chỉ đượ c truyền
mức logic 1 ra ngoài khi và ch ỉ khi ENC=1 đồng thờ i tín hiệu đồng hồ ở đầu ra
subcycle 4 có mức 1.
• Clock: đơ n v ị t ạo tín hiệu đồng h ồ có 4 đầu ra cùng tần s ố do chúng ta chọn, nhưng
lệch pha nhau 90 độ.
9.2. Xây dự ng và mô phỏng hoạt động của thanh ghi MPC
9.2.1 Phân tích
Nh ư có
hành thểMPC
số 8, thấy có:
trên “Hình 4-09 Sơ đồ khối đầy đủ của một vi kiến trúc” trong Bài thực
• 1 đầu vào dữ li ệu 8 bits nối v ớ i đầu ra của đơ n v ị Mmux, đây chính là địa ch ỉ c ủa vi
chỉ thị trong Control Store cần đưa ra MIR để thực hiện.
• 1 đầu ra dữ liệu 8 bits đưa vào Control Store.
• 1 đầu ra dữ liệu 8 bits đưa vào đơ n vị Increment để làm tăng lên 1.
• 1 đầu vào điều khiển nối vớ i đầu ra tín hiệu chu k ỳ con thứ 4 (subcycle 4) c ủa đơ n vị
Clock, chỉ khi tín hiệu này bằng 1 thì MPC mớ i chốt giá tr ị ở đầu vào (ngh ĩ a là giá tr ị
ở đầu ra nhận giá tr ị c ủa đầu vào), còn khi tín hi ệu này bằng 0 thì giá tr ị ch ứa trong
MPC (và giá tr ị ở đầu ra) không thay đổi.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 48
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 49/108
• Trong cửa sổ con “Canvas Window” của logisim, xây dựng Increment như hình vẽ
sau đây:
9.5.2 Xây dự ng mạch con làm A, B decoder và mô phỏng sự hoạt động của nó
•
Chúng ta có thể sử dụng phần tử Decoder trong nhóm Plexers trong th ư viện của
logisim, hoặc chúng ta sử dụng các phần tử đó có bổ sung thêm một số phần tử khác
để mạch con mà chúng ta xây d ựng trông “gọn gàng” hơ n, như sẽ thực hiện dướ i đây.
• Vào menu Project \ Add Circuit, logisim sẽ hiện lên một cửa sổ nhỏ, hỏi tên mà ta
muốn đặt cho mạch điện. Hãy đặt tên là Decoder-A&B. Trong cửa sổ con ở góc trên
bên trái, ngoài tên main và tên các mạch con mà chúng ta đã t ạo ra từ tr ướ c, logisim
hiện tên mạch con (subcircuit) mà chúng ta v ừa tạo ra, đó là Decoder-A&B.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 49
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 50/108
Chú ý:
Nếu chúng ta chỉ dùng 1 phần tử Decoder trong thư viện của logisim, thì chúng ta không
cần phải dùng thêm đến 3 phần tử, đó là:
• Phần tử input “4-bit input”
• Phần tử output “16 parallel line output”
• Phần tử Splitter để chậ p 16 dây ra từ decoder thành 1 bó dây cho g ọn.
Mô phỏng việc thực hiện chức năng của Decoder-A&B:
•
Thay đổi tăng dần giá tr ị của phần tử “4-bit input” từ 0000 đến 1111.
• Quan sát phần tử “16 parallel line output” chúng ta sẽ thấy giá tr ị nhị phân 16 bit thay
đổi, bit có giá tr ị 1 chuyển từ vị trí 0 đến vị trí 15, trong khi đó các bit còn lại bằng 0.
9.5.3 Xây dự ng mạch con làm C decoder và mô ph ỏng sự hoạt động của nó
• Vào menu Project \ Add Circuit, logisim sẽ hiện lên một cửa sổ nhỏ, hỏi tên mà ta
muốn đặt cho mạch điện. Hãy đặt tên là Decoder-C. Trong c ửa sổ con ở góc trên bên
trái, ngoài tên main và tên các mạch con mà chúng ta đã tạo ra từ tr ướ c, logisim hiện
tên mạch con (subcircuit) mà chúng ta v ừa tạo ra, đó là Decoder-C.
•
Lưu (save) mạch điện mà chúng ta t ạo ra vào file (Micro-Architecture-SVxx.circ):
vào menu File \ Save. Mạch con Decoder-C sẽ đượ c lưu cùng vớ i Micro-
Architecture-SVxx.circ.
• Trong cửa sổ con “Canvas Window” của logisim, xây dựng Decoder-C như hình vẽ
sau đây:
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 50
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 51/108
Mô phỏng việc thực hiện chức năng của Decoder-C: Thực hiện tươ ng tự như khi mô
phỏng Decoder-A&B, nhưng thực hiện 2 lần:
• Lần thứ nhất thiết lậ p giá tr ị cho ENC và CLOCK sao cho ENC.CLOCK b ằng 1.
• Lần thứ hai thiết lậ p giá tr ị cho ENC và CLOCK sao cho ENC.CLOCK b ằng 0.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 51
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 52/108
Vớ i vi kiến trúc đượ c nghiên cứu trong môn học Kiến trúc máy tính, tr ừ các chị thị Read
và Write, các chỉ thị đượ c thi hành trong thờ i gian như nhau và đượ c gọi là 1 chu k ỳ
đườ ng dữ liệu. Như vậy, các tín hiệu đồng hồ đượ c coi là lệch pha nhau 900.
Counter: phần tử đếm có trong thư viện. Counter có các thuộc tính sau:
+ Data bits (1..32): độ l ớ n c ủa số mà Counter sẽ đếm. Chúng ta cần đặt bằng 2
để Counter đếm từ 0 đến 3.
+ Maximum value: giớ i hạn số cao nhất mà Counter đếm, phải đặt không lớ n
hơ n giá tr ị chứa đượ c trong “Data bits”.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 52
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 53/108
+ Action on Overflow: 1/ Wrap around (đếm vòng lại từ số bé nhất); 2/ Stay at
value (dừng đếm) ...
+ Trigger: 1/ Rising Edge (kích hoạt việc đếm bở i sườ n dươ ng); 2/ Falling Edge
(kích hoạt việc đếm bằng sườ n âm).
Decd (Decoder): đây là phần tử giải mã thông thườ ng, có sẵn trong thư viện.
4 ph ần t ử output đượ c ghi nhãn 1, 2, 3, 4 tươ ng ứng v ớ i 4 đầu ra truyền tín hiệu
của 4 chu k ỳ con.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 53
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 54/108
Logisim là một công cụ giáo dục dùng cho việc thiết k ế và mô phỏng các mạch lôgíc số.
Vớ i giao diện đơ n giản dạng thanh công cụ và việc mô phỏng các mạch giống như mạch
đượ c xây dựng, sẽ r ất dễ dàng để đơ n giản hóa việc học những tư tưở ng cơ bản nhất liên
vẽ cácđếbó
quan ạchch
n mdây ỉ vớ iVmớ ội tchcúứcrênăchu
logic. ng ộxây dựng cáccómth
t, Logisim ạch lớ nctừs các
ể đượ ử dụm ạchvàcon
ng( nhỏđượ
đang hơ nc và
sử
dụng) để thiết k ế và mô phỏng toàn bộ các CPU cho mục đích giáo dục.
Sinh viên ở các tr ườ ng đại học và cao đẳng trên toàn thê gi ớ i sử dụng Logisim cho r ất
nhiều mục đích, trong đó có:
• Một môđun trong tổng quan khoa học máy tính đại cươ ng
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 57
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 55/108
• Một đơ n v ị h ọc trình trong khóa học t ổ ch ức h ệ th ống máy tính của sinh viên
năm thứ hai
• Trong suốt học k ỳ của khóa học kiến trúc máy tính ở mức độ chuyên sâu.
H ướ ng d ẫ n s ử d ụng Logisim mà b ạn đang đọc là tài liệu tham khảo chính thức cho các
tính
nhữngnăng
phầcnủchính
a Logisim. Phần thứCác
của Logisim. nhấđề ủaụctàinày
t c m liệuđượ
làcmviộết tchu
saoỗicho đề mụđượ
cácchúng c gicớ đọ
i thiệuỹ
c k
càng để học tất cả những tính năng quan tr ọng nhất của Logisim.
Những đề mục còn lại là một tậ p hợ p của các tư liệu tham khảo và chú thích của một vài
khía cạnh nhỏ hơ n của Logisim.
Logisim cho phép bạn thiết k ế và mô phỏng mạch các k ỹ thu ật s ố. Nó đượ c định hướ ng
như một công cụ giáo dục, sử dụng để giúp đỡ cho việc học các mạch hoạt động như thế
nào.
To practice using Logisim, let's build a XOR circuit - that is, a circuit that takes two
inputs (which we'll call x and y) and outputs 0 if the inputs are the same and 1 if they are
different. The following truth table illustrates.
Đề tậ p sử dụng Logisim, chúng ta sẽ xây dựng một mạch XOR- một mạch lấy 2 giá tr ị
đầu vào ( x và y) và cho giá tr ị đầu ra là 0 nếu x và y giống nhau, 1 nếu x và y khác nhau.
Bảng chân lý sau đây thể hiện.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 58
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 56/108
Tuy nhiên bở i vì mạch đượ c v ẽ trên giấy không có ngh ĩ a m ạch đó là chính xác. Để xác
minh mạch đó, chúng ta sẽ cẽ nó trên Logisim và kiểm tra. Như một lợ i thế thêm nữa,
chúng ta sẽ có một mạch đẹ p hơ n cái mà ta sẽ có nếu vẽ bằng tay.
Logisim đượ c chia thành 3 phần, explorer pane, attribute table ( bảng thuộc tính) và
canvas. Bên trên 3 ph ần này là thanh menu ( menu bar ) và thanh công c ụ ( toolbar).
Chúng ta có thể nhanh chóng bỏ qua explorer pane và attribute table: chúng ta sẽ không
kiểm tra chúng trong khuôn kh ổ bản hướ ng sử dụng dẫn này và bạn chi có thể bỏ qua
chúng. Cùng vớ i đó, menu bar sẽ đượ c các bạn tự khám phá.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 59
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 57/108
Còn lại toolbar và canvas. Canvas là nơ i bạn có thể vẽ m ạch của minhf và toolbar bao
gồm các công cụ mà bạn sẽ sử dụng để hoàn thành nó.
Hãy nhớ lại r ằng chúng ta đang cố gắng xây dựng mạch sau trên Logisim.
Tôi khuyến cáo việc xây dựng mạch bằng cách chèn các cổng vào tr ướ c giống như sự
ắ p xlàế pchèn
slàm khung xươ 2ngcổvàngsau
thêm đó mKích
AND. ớ i liên k ếộtt chúng
chu lại bcằụng
vào công dây n(ối.AND
AND Việctool)
tr ướ ctrên ta sẽ
tiênthanh
công cụ. Sau đó kích chuột vào nơ i mà bạn mu ốn c ồng AND thứ nhất đi đến. Hãy chắc
chắn r ằng bạn đã dành đủ chỗ cho phần bên trái. Sau đó bạn tiế p tục kích chuột vào
AND tool một lần nữa và đặt cổng AND thứ hai bên dướ i cổng thứ nhất.
Để ý đến 5 dấu chấm ở phía bên trái của cổng AND. Chúng là những điểm mà dây nối có
thể đượ c g ắn. Tình cờ chúng ta sẽ ch ỉ dùng 2 trong số chúng cho mạch XOR của chúng
tam tuy nhiên đối vớ i các mạch khác, bạn sẽ nhận ra r ằng có nhiều hơ n 2 dây trong một
cổng AND là hữu dụng,
Bây giờ , thêm 1 cổng khác vào mạch. Kích vào OR tool ( ); , sau đó kích vài nơ i bạn
muốn đặt nó và đặt 2 cổng NOT trên bản vẽ sử dụng NOT tool ( ).
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 60
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 58/108
Tôi để dành 1 ít khoảng tr ống giữa các cổng NOT và các cổng AND, nếu bạn muốn, bạn
có thể đặt chúng ngượ c nhau và tiết kiệm công sức liên k ết chúng lại vớ i nhau bằng dây
nối sau này.
Bây giờ chúng ta muốn thêm 2 giá tr ị đầu vào x và y vào b ản vẽ. Chọn Input tool ( ) và
đóng các chốt xuống. Bạn cũng nên đặt một chốt đầu ra bên cạnh cổng đầu ra của OR
bằng cách dùng Output tool ( ). ( M ột l ần nữa, tôi chừa lại một chút khoảng tr ống giữa
cổng OR và chốt đầu ra, nhưng bạn nên đặt chúng ngay bên cạnh nhau).
Nếu b ạn không thích nơ i mà bạn đặt ph ần tử nào đó, b ạn có thể chọn nó bằng Edit tool
và thả nó
(chọ)n Delete trênvào ầnỉnh
phch
bảng bảnsửvaẽ(. Edit
Hoặcmenu
bạn )cóhothặểc xóa toàn phần tử đó bằng cách
hoànDelete.
ấn phím
Khi bạn đặt bất cứ thành phần nào của mạch, bạn sẽ nhận thấy r ằng ngay khi thành phần
đó đượ c đặt vào, Logisim quay lại Edit tool thế nên bạn có thể di chuyển thành phần
mớ i đượ c đặt vào đó hoặc k ết n ối nó vớ i các thành phần khác bằng cách tạo ra các dây
nối. N ếu nh ư b ạn mu ốn thêm vào một b ản sao của thành phần m ớ i thêm vào, một phím
tắt là tổ hợ p Ctrl + D để nhân đôi thành phần đượ c chọn. ( Một vài máy tính sử dụng
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 61
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 59/108
phím khác cho menus, ví d ụ như Command key trên máy Macintoshes. B ạn có thể b ấm
phím đó vớ i phím “D” ).
Sau oạnđãdây
các đkhi có ntấốti.cCh
ả các phần( đượ
thànhTool
ọn Edit thiếcon
). cKhi t lậ ptr ỏtrên bản đviẽể,mbạcó
ở trên n đthãểcó
nốthi ểdây,
bắt m
đầộut thêm
vòng
tròn nhỏ màu xanh sẽ bao quanh điểm đó. Nhấn chuột ở điểm đó và kéo dây đến nơ i bạn
muốn.
Logisim khá thông minh trong việc chèn dây nối. Bất cứ khi nào một dây k ết thúc trên
dây khác, Logisim sẽ t ự động n ối chúng lại v ớ i nhau. Bạn c ũng có thể kéo dài hoặc thu
gọn một dây nối bằng cách kéo một trong hai đầu của dây, sử dụng writing tool.
Dây nối trong Logisim chỉ có thể nằm ngang hoặc dọc. Để có thể nối đầu vào ở trên vớ i
cổng NOT và cổng AND, tôi cần dùng thêm 3 dây khác nhau.
Logisim tự động nối các dây vớ i các cổng và các dây vớ i nhau. Trong đó gồm có việc tự
động vẽ chấm tròn ở phần giao nhau hình chữ T của các dây như trên hình, thể hiện r ằng
các dây đã đượ c nối vớ i nhau.
Khi vẽ các dây nối, bạn có thể thấy một vài dây màu xanh da tr ời hoặc dây màu xám.
Màu xanh da tr ời th ể hi ện r ằng giá tr ị ở m ột điểm là không xác định, màu xám thể hi ện
ằng dây
r
trong quá ch ưa đượ
trình xâycdnựống
i vmớ ại ch
bấtc ủcaứ bph
ạn.ầnTuy
tử nào.
nhiênĐkhi
ây không không
bạn hoàn phảmi ạlàchvcấủnađề
thành lớ n
mình,
các dây không đượ c có màu xanh hoặc xám. ( Chân chưa đượ c k ết n ối c ủa c ổng OR sẽ
vẫn có màu xanh, điều đó là chấ p nhận đượ c).
Nếu b ạn có một dây màu xanh hay xám khi mà b ạn cho r ằng t ất c ả các dây đã đượ c n ối
vớ i nhau, thì cũng có ngh ĩ a là đã có nhầm l ẫn ở đâu đó. Việc nối dây ở đúng chỗ là r ất
quan tr ọng. Logisim vẽ các dấu ch ấm nh ỏ trên các phần t ử để ch ỉ ra nơ i các dây có thể
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 62
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 60/108
đượ c n ối t ớ i. Khi bạn th ực hi ện, b ạn s ẽ th ấy nh ững d ấu ch ấm chuyển t ừ màu xanh sang
màu xanh nhạt hoặc xanh thẫm.
Khi tất cả các dây đã đượ c k ết nối, chúng sẽ có màu xanh nhạt hoặc xanh thẫm.
Chọn text tool ( ). Bạn có thể kích chuột vào chốt đầu vào và bắt đầu đặt cho nó một cái
nhãn. ( Sẽ là tốt hơ n nếu bạn kích tr ực tiế p vào chốt đầu vào chứ không phải nơ i bạn
muốn đoạn text đi đến bở i vì nhãn sẽ di chuyển theo chốt). Bạn có thể làm tươ ng t ự đối
vớ i chốt đầu ra. Hoặc bạn có thể chỉ kích chuột vào vị trí cũ và gõ text để đặt nhãn ở bất
cứ nơ i nào khác.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 63
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 61/108
Lưu ý r ằng các cả 2 chốt đầu vào và chốt đầu ra đều đang chứa các số 0. Điều đó nói lên
r ằng mạch đó đã tính ra giá tr ị 0 khi cả hai giá tr ị đầu vào đều là 0.
Bây giờ ta sẽ thử một tổ hợ p giá tr ị đầu vào khác. Chọn poke tool ( ) và thay đổi giá tr ị
đầu vào bằng cách kích vào đầu vào đó. Mỗi l ần bạn thay đổi đầu vào, giá tr ị c ủa nó sẽ
đượ c chốt lại. Chúng ta đầu tiên sẽ ấn vào đầu vào bên dướ i
Khi bạn thay đổi giá tr ị đầu vào, Logisim sẽ chỉ ra cho bạn giá tr ị nào di chuyển theo dây
nối bằng cách vẽ chúng màu xanh nhạt cho giá tr ị 1 và xanh thẫm ( gần như màu đen)
cho giá tr ị 0. Bạn cũng có thể nhận thấy r ằng giá tr ị đầu ra đã chuyển thành 1.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 64
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 62/108
Chúng ta đã kiểm tra 2 dòng đầu tiên của bảng chân lý, và các giá tr ị đầu ra đều thỏa
mãn các giá tr ị đượ c định tr ướ c.
Bằng cách ấn vào các công tắc trên các cách k ết hợ p khác, chúng ta có thể xác minh 2
dòng còn lại. N ếu các giá tr ị đều th ỏa mãn thì mạch đã đượ c hoàn thành và có thể ho ạt
động đượ c.
Để hoàn thành công việc, bạn có thể sẽ muốn lưu lại hay in mạch của mình ra. File menu
cho phép bạn làm việc đó và đươ ng nhiên cũng cho phép bạn thoát khỏi Logisim. Nhưng
tại sao lại thoát vào lúc này?
Lúc này bạn đã hoàn thành bài hướ ng dẫn, bạn có thể thử nghiệm Logisim bằng cách xây
dựng các mạch của riêng bạn. Nếu muốn xây dựng các mạch vớ i các tính năng phức tạ p
hơ n, bạn nên xem thêm phần còn lại của mục Help để biết có thể làm đượ c những gì
khác. Logisim là một công cụ mạnh, nó cho phép bạn xây dựng và thử nghiệm các mạch
r ất lớ n; quá trình từng bướ c một này mớ i chỉ phác họa nên lớ p bề mặt của Logisim.
Trong mụđcónày,
Logisim, ta sẽ xem
chúng pane
là explorer sử dụng hai l ĩ nh vực chính khác của cửa sổ
xét cáchtable.
và attribute
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 65
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 63/108
Nếu bạn nhìn qua các lựa chọn trong thư viện Cổng, bạn sẽ nhận thấy r ằng chúng ta
không cần phải tự xây dựng mạch XOR như lúc tr ướ c: Nó đã đượ c dựng sẵn trong
Logisim.
Khi bạn tạo ra một dự án, nó sẽ tự động bao gồm một vài thư viện:
• Base ( nền móng): Các công cụ đượ c tích hợ p để sử dụng Logisim.
• Gates( các cổng): Các thành phần biểu diễn các chức năng số đơ n giản.
• Plexers: Các thành phần ghép nối phức tạ p hơ n như bộ dồn kênh ( multiplexer),
bộ giải mã ( decoder).
• Arithmetic ( số học): Các thành phần biểu diễn số học.
• Memory ( bộ nhớ ): Các thành phần nhớ dữ liệu như các flip-flop, thanh ghi và
RAM.
Logisim cho phép ta thêm các thư viện mớ i, thông qua thẻ Load Library trong mục
Project. Bạn có thể thấy r ằng Logisim có 3 lớ p thư viện.
• Built-in libraries ( thư viện dự ng sẵn) là các thư vi ện đượ c phân phối cùng vớ i
Logisim. Chúng đượ c xác minh trong Library Reference. ( tham khảo thư viện).
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 66
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 64/108
• Logisim libraries ( thư viện Logisim) là công trình đượ c dựng bên trong
Logisim và đượ c lưu vào ổ đĩ a giống như công trình Logisim. Bạn có thể phát
triển m ột t ậ p h ợ p các mạch trong một công trình đơ n l ẻ ( như đã đượ c giớ i thiệu
tỏng mục Subcircuits của tậ p hướ ng dẫn này) sau đó sử dụng tậ p hợ p mạch đó
như một thư viện cho các công trình khác.
• JAR libraries ( các thư viện JAR) Là các thư viện đượ c phát triển trong Java
nhưng không đượ c phân phối cùng vớ i Logisim. Bạn có thể download thư viện
JAR đã đượ c viết bở i những ngườ i khác, hay bạn có thể viết thư viện của riêng
bạn như đã đượ c giớ i thiệu trong mục JAR Libraries . Phát triển một thư viện JAR
khó hơ n nhiều so vớ i phát triển m ột thư viện Logisim, tuy nhiên các thành phần
có thể thú vị hơ n r ất nhiều, bao gồm những thứ như các thuộc tính và sự tươ ng tác
vớ i ngườ i sử dụng. Các thư viện dựng sẵn ( không giống Base) đượ c viết sử dụng
giao diện chươ ng trình ứng dụng ( API ) giống vớ i các thư viện JAR có thể sử
dụng nên chúng biểu hiện một cách xác đáng hệ các chức năng mà các thư viện
JAR có thể hỗ tr ợ.
Một số thư viện JAR đượ c phân phối mà không có thông tin về lớ p Java ta sẽ bắt
đầu cùng. Khi nạ p JAR, Logisim sẽ nhắc bạn gõ vào một tên lớ p. Tên l ớ p đó nên
đượ c cung cấ p bở i ngườ i phân phối file JAR cho bạn.
Để gỡ bỏ một thư viện, chọn Unload Library… từ mục Project. Logisim sẽ ngăn bạn
khỏi vi ệc g ỡ b ỏ các thư vi ện chứa các thành phần đượ c s ử d ụng trong mạch, việc đó s ẽ
xuất hiện trên thanh công cụ hoặc đượ c ánh xạ đến một nút bấm của con chuột.
M ột cách
thành tìnhVìcờ
phần. ột thưth
th, ếm trong viưệ vi
n vệnề m
n ềặnt k
( ỹBase
thuậlibrary),
t chỉ chứbaạcác
n sẽcông ụ mà Tool
thấyc Poke không( ch),ứaEdit
các
Tool ( ) và các công cụ khác, chúng không tr ực tiế p ứng vớ i các thành phần riêng r ẽ
nào. Hầu hết các thư viện chỉ chứa các công cụ dùng cho việc thêm các thành phần riêng
r ẽ; tất cả các thư viện dựng sẵn ngoài thư viện nền ( Base library) đều giống như vậy.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 67
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 65/108
hình dướ i đây mô tả những gì diễn ra khi ta chọn cổng đầu vào phía trên của mạch XOR
r ồi kéo màn hình xuống phần chọn font cho tiêu đề. (Label Font attribute)
Để chỉnh sửa một giá tr ị thuộc tinh, kích chuột vào giá tr ị đó. Giao diện để chỉnh sửa một
thuộc tính sẽ phụ thuộc vào chính thuộc tính mà bạn đang thay đổi; trong tr ườ ng hợ p
chỉnh sửa font cho tiêu đề, một bảng hội thoại sẽ hiện ra cho việc chọn font mớ i; tuy
nhiên một vài thuộc tính ( như vị trí tiêu đề) sẽ hiện ra một menu nhỏ hơ n mà bạn sẽ lựa
chọn giá tr ị từ đó.
Mỗi loại thành phần có một t ậ p h ợ p các thu ộc tính khác nhau; để bi ết đượ c chúng có ý
ngh ĩ a gì, bạn có thể xem tài liệu thích hợ p ở Library Reference.
Nếu như bạn đã lựa chọn nhiều thành phần qua công cụ chỉnh sửa( Edit tool) , bảng
thuốc tính sẽ hiện ra các thuộc tính chung của tất cả các thành phần đó ( ngoại tr ừ các
dây). Nếu các thành phần đượ c chọn không có một giá tr ị thuộc tính nào có chung cho t ất
cả, phần hiện ra sẽ tr ống. Bạn có thể 1 lần thay đổi giá tr ị thuộc tính của tất các các thành
phần đượ c chọn thông qua bảng thuộc tính.
ccác thành
ụ. Khi n lầựna có
bạph chọthnểm
đượ c thaycụđổ
ột công i sau mà skhông
, Logisim đổi bảảnh
ẽ thay làm ưở nộgc thu
nghthu tínhộcđểtính củaệncông
thể hi các
thuộc tính của công cụ đó.
Ví dụ như khi bạn muốn thiết lậ p các cổng AND nhỏ hơ n. Ngay từ bây giờ , mỗi khi
chúng ta chọn công cụ AND, Logisim sẽ tạo ra một cổng AND lớ n. Tuy nhiên nếu chúng
ta chỉnh sửa thuộc tính kích cỡ cổng ngay sau khi lựa chọn công cụ ( tr ướ c khi đặt các
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 68
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 66/108
cổng AND của nó vào mạch), chúng ta sẽ thay đổi các thuộc tính cho công cụ để sau đó
các cổng AND đượ c chèn vào thông qua công c ụ sẽ ti mỉ hơ n.
Bây giờ , chúng ta có thể xóa hai cổng AND đã tồn tại và chèn vào 2 cổng AND mớ i vào
vị trí cũ. Lần này, chúng sẽ đượ c thu gọn. ( Nếu bạn chọn giảm số lượ ng đầu vào xuống
3, c ổng AND sẽ không có các phần m ở r ộng ở phía bên trái. Nhưng b ạn s ẽ phải nối lại
các dây nối trong mạch để các dây liên k ết đượ c vớ i phía trái của các cổng AND).
Đối vớ i một số công cụ, các biểu tượ ng công cụ sẽ thể hiện một giá tr ị vài thuộc tính. Ví
dụ cộng cụ chốt có biểu tượ ng giống vớ i giá tr ị mà thuộc tính bề mặt thể hiện.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 69
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 67/108
Các công cụ trong thanh công cụ đều có một bộ thuộc tính tách r ờ i từ các công cụ tươ ng
ứng trong explorer pane. Vì thế, cho dù chúng ta có thay đổi công cụ AND trong thanh
công cụ để tạo ra các cổng AND thu gọn, công cụ AND trong thư viện cổng sẽ vẫn tạo ra
các cổng AND lớ n tr ừ khi bạn thay đổi luôn cả các thuộc tính của nó.
Trên thực tế, các công cụ chốt đầu vào và đầu ra trên thanh công cụ mặc định đều là các
tr ườ ng hợ p của công cụ chốt ( Pin) trong thư viện nền, tuy nhiên các bộ thuộc tính là
khác nhau. Biểu tượ ng của công cụ chôt ( Pin tool) đượ c vẽ thành một vòng tròn hay một
hình vuông tùy theo giá tr ị đầu ra của nó.
Logisim cung cấ p một phím tắt r ất tiện l ợ i cho việc thay đổi thuộc tính hướ ng ( Facing
tool), thuộc tính này điều khiển hướ ng mà các thành phần sẽ quay đến: Việc gõ một
phím mũi tên khi đang chọn công cụ này sẽ tự động thay đổi hướ ng của thành phần.
Nếu bạn đã quen vớ i lậ p trình, bạn cũng sẽ quen vớ i khái niệm chươ ng trình con ( còn
đượ
mạch ọi làcũthng
c gcon c, hàm hay phươ ng pháp trong các ngôn ngữ khác nhau). Khái niệm về
ủ t tụươ ng t ự nh ư khái niệm về ch ươ ng trình con trong lậ p trình, nó đượ c s ử
dụng cho các mục đích giống chươ ng trình con: Để chia nhỏ một công việc lớ n thành các
phần nhỏ hơ n, tiết kiệm công sức định ngh ĩ a lại các phần giống nhau và để cho việc sửa
lỗi dễ dàng, thuận tiện hơ n.
bcách ễ dàng:
ất k ỳd cho mạchChmọớ
ni “Add ra. mạch)…trong thẻ Project và đặt một cái tên
mà bạn muốn t (ạochèn
Circuit”
Giả sử ta muốn xây dựng một bộ d ồn kênh 2-to-1 vớ i tên là “2:1 MUX”. Sau khi thêm
mạch, Logisim sẽ hiện ra như sau:
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 70
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 68/108
Trong phần explorer pane, bạn có thể thấy r ằng công trình hiện tại bao gồm hai mạch,
“main” và “2:1 MUX”. Logisim vẽ hình một cái kính lúp bên trên biểu t ượ ng của m ạch
đang xét; tên của mạch đang xét đó cũng sẽ hiện lên trên thanh tiêu đề.
Sau khi chỉnh sửa mạch cho đúng vớ i một bộ dồn kênh 2:1, ta sẽ có một mạch như sau:
Nếu bạn kích đúp vào mạch 2:1 MUX trên explorer pane cửa số chươ ng trình sẽ chuyển
thành chỉnh sửa mạch 2:1 MUX.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 71
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 69/108
Mạch d ồn kênh 4:1 của ta sử dụng 3 bản sao của b ộ d ồn kênh 2-to-1, mỗi bản sao đượ c
vẽ như một cái hộ p vớ i các chấm dọc theo cạnh của hộ p. Các dấu chấm trong hộ p này
ươ ncgủứang
tTây hộ pvớ ứing i 2ốtch
cácvớ
ch đầốut quay mặđầ
vào và t vuềra trong
hướ ạch trong
ng Đmông 2:1 MUX. dấMUX;
mạch 22:1 u chấmch
ở ấm
mặở
t phía
mặt
phía đông ứng v ớ i chốt quay sang hướ ng tây của mạch 2:1 MUX ( tình c ờ c ũng là một
chốt đầu ra); và chấm ở mặt phía nam của hộ p ứng vớ i chốt quay sang hướ ng bắc của
mạch 2:1 MUX. Thứ t ự c ủa 2 dấu chấm trên mặt phía tây của hộ p t ướ ng ứng v ớ i th ứ t ự
từ trên xuống d ướ i trong thiết k ế mạch con. ( nếu c ũng có nhiều ch ấm nh ỏ trên mặt b ắc
và nam của hộ p, chúng sẽ tươ ng ứng vớ i thứ tự phải trái trong mạch con).
Nếu các chốt trong bảng mạch con có nhãn k ết hợ p v ớ i chúng, Logisim sẽ hiển thị nhãn
đó trong tip ( một khung chữ tạm thờ i) khi ngườ i dùng tr ỏ chuột vào vị trí tươ ng ứng
trong
thông phầnProject/Options/
qua tử mạch con. ( nCanvas).
ếu bạn cảm thấy các tip này bất tiện, bạn có thể tắt bỏ chúng
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 72
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 70/108
Một vài các thành phần khác cũng sẽ hiển thị các tip: một số chốt của một flip-flop dựng
sẵn, tr ỏ chuột vào nó sẽ hiện ra dòng chú giải về công việc của chốt.
Một cách ngẫu nhiên, tất c ả các chốt đối vớ i m ột mạch chỉ có thể là hoặc đầu vào hoặc
đầ g hMợ pộtvà
tr ưuờ nra. s ố các
đóngchíp đượ làc đầ
vai trò s ảnu xu
ra ấtrong
t có các tr ườ nđgóng
các chân hợ pvai trò blàạnđầkhông
khác; u vào th ể xâymdộựt ng
trong s ố
các chip đó trong Logisim ( ít nh ất là đối vớ i phiên bản hiện thờ i).
Logisim sẽ duy trì thông tin tr ạng thái khác nhau cho t ất cả các mạch con xuất hiện trong
mạch. Ví dụ một mạch có một flip-flop và mạch đó đượ c sử dụng nhiều lần như một
mạch con, khi đó flip-flop của mỗi một mạch con sẽ có giá tr ị riêng của nó khi mô phỏng
mạch lớ n hơ n.
Bây giờ chúng ta có một bộ dồn kênh 4-to-1 đã đượ c định ngh ĩ a, chúng ta có thể sử dụng
đnóâu-trong
mặccác mạschẽ ng
dù nó khác. Logisim
ăn ch không
ặn các m giớ ci lhồạng
ạch đượ ột mạbên
n mchính ch có thể chúng.
trong đượ c lồng vào sâu đến
Chú ý: Không có gì là sai khi ch ỉnh sửa một mạch mà đang đượ c sử dụng như một mạch
con; trên thực t ế điều đó là r ất ph ổ bi ến. Bạn hãy nhớ r ằng b ất c ứ một thay đổi nào trên
các chốt của mạch ( chèn, xóa hay di chuy ển chúng) cũng sẽ sắ p xế p lại chúng trong
mạch lớ n. Vì thế nếu bạn thay đổi một chốt nào đó của một mạch, bạn cũng sẽ cần phảu
chỉnh sửa tất cả các mạch sử dụng mạch đó như một mạch con.
Khi bạn kiểm tra các mạch, bạn sẽ thườ ng phát hiện ra lỗi. Để tìm ra lỗi sai, việc kiểm tra
những gì đang diễn ra trong các mạch trong khi vận hành bảng m ạch t ổng thể giúp bạn.
Bạn có thể thực hiện việc đó khi đang xem xét mạch tổng thể bằng cách mở cửa sổ pop-
up của mạch con ( kích chuột phải hoặc tổ hợ p Ctrl+ chuột trái vào hộ p) sau đó bạn chọn
mục View.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 73
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 71/108
Sau khi bạn chọn như vậy, cửa sổ quan sát sẽ chuyển sang mạch con.
Chú ý r ằng giá tr ị của các chốt trong mạch con trùng vớ i các giá tr ị đượ c truyền cho
chúng trong mạch chứa chúng.
Trong khi đối vớ i m ạch con, bạn có thể thay đổi nó theo bất c ứ cách nào bạn mu ốn; b ất
cứ thay đổi nào của các giá tr ị c ủa ch ốt c ũng s ẽ đượ c truyền cho mạch chứa. ( Nếu b ạn
thử chuyển giá tr ị của một chốt sử dụng Poke Tool . Logisim sẽ mở ra một khung hội
thoại để hỏi bạn có muốn tạo mớ i một tr ạng thái hay không; tr ả lờ i Yes sẽ tách tr ạng thái
đượ c xem xét vớ i mạch cong khỏi tr ạng thái của mạch bên ngoài, trong khi nó câu tr ả lờ i
No sẽ k ết thúc yêu cầu thay đổi giá tr ị).
Bạn sẽ k ết thúc việc xem xét và chỉnh sửa mạch tổng thể bằng cách kích đúp vào
explorer pane, hay thông qua c ủa sổ con Go Out To State trong phần mô phỏng
(Simulate menu)
Mỗi một công trình đều có một mạch chính( main circuit) định sẵn, m ạch chính này có
thể đượ c thay đổi thành mạch hiện hành thông qua tùy chọn Set As Main Circuit trong
phần Project. Ý ngh ĩ a duy nhất c ủa m ạch chính là nó sẽ đượ c hi ện ra tr ướ c tiên khi bạn
mở công trình đó ra. Tên mặc định c ủa mạch khi mớ i đượ c t ạo ra (“main”) không quan
tr ọng và bạn có thể đổi tên hoặc xóa mạch đó một cách tự do.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 74
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 72/108
Vớ i một thư viện Logisim đượ c nạ p, bạn sẽ đượ c phép xem các mạch đó và quản lý các
tr ạng thái của chúng, tuy nhiên Logisim sẽ ngăn không cho bạn thay đổi thiết k ế của
mạch cũng như các dữ liệu khác đượ c lưu tr ữ trong file.
Nếu bạn muốn sửa một mạch trong thư viện Logisim đượ c nạ p vào, bạn sẽ cần mở
rieend
sửa; nhnó
ưngtrong
nếu Logisim.
nó khôngNgay hiệnbạch
thực khi n ứlưcunnó,
ăngcông
này, trình
bạn cókhác ẽ tự độ
thểs kích ngộtnạph
chu p ảbiảvào ỉnhư
n chth
mục library trong explorer pane và chọn Reload Library.
4. DÂY
Trong các mạch điện Logisim đơ n gi ản, h ầu h ết các dây chỉ mang 1 bit, nhưng Logisim cũng cho phép
bạn k ết hợ p các dây vào để mang những giá tr ị nhiều bit. Số lượ ng bit đi qua dây đượ c gọi là độ r ộng bit.
Mọi đầu vào và đầu ra trên một mạch đều có 1 chiều r ộng bit k ết hợ p vớ i nó. Thườ ng thì
chiều r ộng bit là 1, và không có cách nào để thay đổi nó, nhưng nhiều thành phần trong
Logisim bao gồm các thuộc tính cho phép bạn tu ỳ chỉnh độ r ộng bit đầu vào và đầu ra
của chúng.
Ảnh chụ p màn hình minh hoạ dướ i đây là một mạch đơ n giản cho việc tìm kiếm các
bitwise AND của hai đầu vào ba bit. Chú ý làm th ế nào để 3 bit đầu ra là AND của 2 đầu
vào. Tất cả các thành phần đã đượ c điều chỉnh để phù hợ p vớ i dữ liệu 3 bit thông qua
những data bits thuộc tính. Ảnh chụ p màn hình biểu thị các thuộc tính của cổng AND,
bao gồm các data bits thuộc tính của 3.
Tất c ả các thành phần trong Logisim xác định một chiều r ộng bit cho mỗi đầu vào và đầu ra. Ngượ c l ại,
chiều r ộng bit của dây là không xác định. Thay vào đó, chiều r ộng của dây điều chỉnh theo các thành
phần mà nó đượ c đính kèm. Nếu một dây k ết nối hai thành phần đượ c yêu cầu mà độ r ộng bit khác nhau,
Logisim sẽ báo cáo "độ r ộng không tươ ng thích" và chỉ ra các cị trí vi phạm b ằng màu da cam. Ở hình
dướ i, chiều r ộng bít của đầu ra đã bị thay đổi thành 1, vì vậy Logisim báo cáo r ằng không thể k ết nối một
giá tr ị 3 bit vớ i 1 giá tr ị 1 bit
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 75
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 73/108
Các dây k ết nối các địa điểm không tươ ng thích (màu da cam) không mang giá tr ị. V ớ i
những dây một bit bạn có thể thấy ngay giá tr ị mà dây mang vì Logisim tô các dây v ớ i
màu xanh lá cây nhạt hoặc xanh lá cây đậm tùy theo giá tr ị. Nó không hiển thị các giá tr ị
của những dây mang nhiều bit: chúng thườ ng đượ c tô đơ n giản bằng màu đen. Tuy nhiên
bạn có thể biết giá tr ị của một sợ i dây bằng cách nhấn vào nó sử dụng công cụ poke.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 76
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 74/108
Trong ví dụ này, splitter thực s ự chia một giá tr ị đầu vào thành nhiều giá tr ị r ồi gửi đi. Nhưng
splitter cũng có thể k ết hợ p nhiều giá tr ị vào thành một giá tr ị duy nhất. Trong thực tế, những
splitter này là không có định hướ ng (non-directional): chúng có thể gửi các giá tr ị theo một
đườ ng vào một th ờ i điểm nào đó, nhưng s ẽ theo một đườ ng khác.vào một th ờ i điểm sau đó, và
chúng thậm chí có thể gửi cả 2 đườ ng một lúc. Như trong ví dụ dướ i đây có một giá tr ị đi về
phía đông thông qua hai splitter, sau đó đượ c định tuyến tr ở lại về phía tây qua 2 splitter đó một
lần nữa, và sau đó lại tr ở về phía đông, nơ i nó gặ p đầu ra.
Chìa khóa để có thể hiểu đượ c các splitter là những thuộc tính của nó.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 77
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 75/108
Màu xám: độ r ộng bit của dây điện không rõ. Điều này xảy ra bở i vì dây điện không đượ c g ắn
vào bất kì đầu vào hay đầu ra nào của các thành phần. (Tất cả các yếu tố đầu vào và đầu ra có độ
r ộng bit đượ c định ngh ĩ a sẵn.)
Màu xanh da trờ i: dây này để mang những giá tr ị 1 bit, nhưng không biết đượ c giá tr ị nó đang
mang
Màu xanh lá cây thẫm: mang bit 0
Màu xanh lá cây nhạt: mang bit 1
Màu đen: Dây mang một giá tr ị nhiều bit. Một số hoặc tất cả các bit có thể không đượ c chỉ
định.
Màu đỏ: Dây mang một giá tr ị l ỗi. Điều này thườ ng phát sinh bở i sự mâu thuẫn các giá tr ị trên
dây.
Màu da cam: Các thành phần trên dây không chấ p nhận độ r ộng bit. Dây màu da cam r ất có khả
năng bị “hỏng”. Nó không mang giá tr ị giữa các thành phần.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 78
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 76/108
Tất cả các loại mạch đều r ơ i vào 2 mục chính: Trong một mạch tổng hợ p, tất cả các mạch đầu ra
đều là sự tổng hợ p chặt chẽ của các mạch đầu vào hiện tại, trong khi trong mạch tuần tự, một số
k ết quả đầu ra có thể phụ thuộc vào các yếu tố đầu vào tr ướ c đó (chuỗi đầu vào theo thờ i gian ).
Mục các mạch tổng hợ p thườ ng đơ n giản là sự k ết hợ p của 2 mạch. Các học viên sử dụng ba
dụng cụ chính để tổng hợ p các mạch như vậy:
1. Mạch logic
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 79
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 77/108
Từ một cửa sổ chỉnh sửa mạch điện, bạn cũng có thẻ yêu cầu Logisim phân tích m ạch bằng cách
chọn “Analyze Circuit” từ menu Project. Tr ướ c khi Logisim mở ra cửa sổ, nó sẽ tính toán các
biểu thức Boolean và bảng chân lý tươ ng ứng vớ i mạch điện và đặt ở nơ i bạn có thể xem.
Để có thể phân tích mach thành công, m ỗi đầu vào phải đượ c g ắn v ớ i m ột chốt đầu vào và mỗi
đầu ra phải đượ c g ắn v ớ i m ột ch ốt đầu ra. Logisim chỉ phân tích những m ạch v ớ i nhiều nh ất 8
đầu vào hoặc 8 đầu ra, và chúng đều phải là những chốt 1 bit. Nếu không bạn sẽ nhìn thấy thông
báo lỗi và cửa số sẽ không mở ra.
Trong xây dựng các biểu th ức Boolean tươ ng ứng vớ i một mạch, Logisim đầu tiên sẽ cố gắng
xây dựng một biểu thức Boolean tươ ng ứng chính xác vớ i các cổng trong mạch. Nhưng nếu
mạch điện s ử d ụng các thành phần không phải là cổng (như multiplexer) nó sẽ b ật lên một h ộ p
thoại cho bạn biết không thể thu đượ c bi ểu th ức Boolean, và thay vào Logisim s ẽ đưa ra những
biểu thức dựa trên bảng chân lí.
Nhữ ng hạn chế
Logisim sẽ không phát hiện các mạch tuần t ự. Nếu bạn b ắt nó phân tích một mạch tuần t ự, nó
vẫn sẽ tạo ra một bảng sự thật và biểu thức Boolean tươ ng ứng nhưng sẽ không chính xác. Vì
thế không nên sử d ụng bừa bãi hệ thông Phân tích tổng h ợ p. Chỉ s ử d ụng nó khi bạn ch ắc ch ắn
r ằng mạch bạn đang phân tích thực sự là mạch tổng hợ p.
Logisim có thể sẽ làm những thay đổi không mong muốn vớ i mạch điện. Hệ thông Phân tích
tổng hợ p yêu cầu mỗi đầu vào và đầu ra có một tên (gán nhãn) duy nhất mà phù hợ p vớ i các quy
tắc đặt tên của Java (mỗi kí tự ph ải là chữ cái hoặc s ố, và kí tự đầu tiên phải là chữ cái, không
đượ c có dấu cách giữa các kí tự). Nó sẽ c ố g ắng sử d ụng các nhãn đang tốn t ại của các chốt, và
sẽ s ử d ụng một danh sách các giá tr ị mặc định n ếu nhãn không tồn t ại. N ếu m ột nhãn đượ c đặt
không hợ p lệ, Logisim sẽ cố gắng trích ra một tên hợ p lệ từ nhãn đó.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 80
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 78/108
Phần này miêu tả 3 thẻ Inputs, Output và Table. Phần ti ế p theo sẽ ti ế p t ục miêu tả 2 thẻ
còn lại Expression và Minimized.
Thẻ Inputs và Outputs
Thẻ Inputs cho phép bạn xem và sửa danh sách các yếu tố đầu vào. Để thêm đầu vào
mớ i, gõ nó vào phần dướ i cùng của cửa sổ, và nhấ p vào Add. Nếu bạn muốn đổi tên một
đầu vào, chọn nó và nhắ p vào Rename.
Để
đầu loại m
vào bằộng cách sbửạ dnụnh
t input, ngắ pnútvào nó và
Move hoọặnc Remove.
Upch Bạn cũng có thể sắ p xế p lại các
Move Down.
Mọi việc làm tác động đến bảng chân lí ngay lậ p tức.
Thẻ Output làm việc c ũng như th ẻ Inputs, ngoại tr ừ việc nó làm việc v ớ i các yếu t ố đầu
ra.
Thẻ Table
Trong thẻ này chỉ có bảng chân lí hiện thờ i, vớ i đầu vào tạo thành các cột bên trái và đầu
ra tạo thành các cột bên phải.
Bạn có thể chỉnh sửa các giá tr ị hiện tại xuất hiện trong các cột đầu ra bằng cách nhắ p
vào giá tr ị c ủa đầu vào.Các giá tr ị s ẽ xoay vòng xung quanh 0, 1 và x (ngh ĩ a là “không
quan tâm”). Chúng ta sẽ thấy trong các phần tiế p theo, bất kì giá tr ị “không quan tâm”
nào cũng sẽ cho phép tính toán các bi ểu thức rút gọn linh hoạt hơ n.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 81
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 79/108
Bạn cũng có thể điều h ướ ng và chỉnh sửa b ảng chân lí bằng cách sử dụng bàn phím. Và
bạn có thể sao chép và dán giá tr ị sử dụng clipboard.
Nếu bàn chân lý dựa trên một mạch hiện có, bạn có thể thấy một số hình vuông màu
hồng trong các cột đầu ra vớ i dấu "!!" trong đó. Những d ấu này tươ ng ứng vớ i các lỗi
xhiảệynrara trong
một dkhi
ụngtính
cụ miêu ả đótr ịlà cho
toán tgiá lỗi hàng đó.khi
gì. Sau Tuy nhiên
click vàokhi
mụdi ỗi, bộạt nlên
c lchu sẽ các mụcchu
ở trong đó skìẽ
0-1-x; không có cách nào để tr ở lại.
Thẻ Expression cho phép bạn xem và chỉnh sửa các biểu th ức liên k ết v ớ i mỗi biến đầu ra. Bạn
có thể chọn biểu thức đầu ra bạn muốn xem và chỉnh s ửa bằng cách sử dụng b ộ chọn có nhãn
"Output:" ở trên cùng của cửa sổ.
Biểu thức sẽ hiện ra vớ i những kí hiệu r ất thông dụng. Phép OR sẽ đượ c biểu thị bằng phép
ctrên
ộng,đầphép
u cácAND
biến. sẽ đượ c biểu thị bằng phép nhân, phép NOT đượ c biểu thị vớ i dấu gạch ngang
Khung bên dướ i sẽ hiện thông tin tươ ng tự những dướ i d ạng mã ASCII. Ở đây phép NOT đượ c
biểu thị bằng dấu ngã “~”
Bạn có thể chỉnh sửa các biểu thức trong cửa sổ văn bản và bấm nút Enter để làm cho nó có hi ệu
lực; b ảng chân lí cũng sẽ đượ c c ậ p nh ật theo. Nút Clear xóa toàn bộ khung văn b ản, nut Revert
khôi phục khung tr ở lại biểu thức tươ ng ứng vớ i biểu thức boolean hiện tại.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 82
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 80/108
Ngoài ra bạn cũng có thể sử dụng các toán tử của C/Java để biểu thị các phép toán AND, OR:
Phép toán đượ c ưu tiên nhất ~! NOT
(none) & && AND
^ XOR
Phép toán đượ c ưu tiên thấ p nhất + | || OR
Các cách diễn đạt sau đây đều đúng cho cùng 1 biểu thức boolean. Bạn có thể k ết hợ p
các toán tử
~a (b + c)
!a && (b || c)
NOT a AND (b OR c)
Thẻ Minimized
Thẻ Minimized hiển thị các biểu thức rút gọn liên quan đến một cột của b ảng chân lí. Bạn có thể chọn
xem biểu thức rút gọn của các output bằng bộ chọn ở đầu trang..
Nếu có nhỏ h ơ n 5 biến đầu vào, một b ản đổ Karnaugh sẽ hi ện ra . Bạn có thể nh ắ p vào b ảng để thay đổi
giá tr ị của bảng chân lí.
Ở dướ i bản đồ chính là biểu thức boolean của bi ến đầu ra, hiển thị nh ư ở trong thẻ Expression. Nếu có
nhiều hơ n 4 biến đầu vào, bản đồ Karnaught sẽ không hiện ra, nhưng biểu thức rút gọn vẫn đượ c tính
(Logisim sử dụng thuật toán Quine-McCluskey để tính biểu thức rút gọn).
Nút “Set As Expression” cho phép bạn chọn biểu thức rút gọn cho các biến. Nút này thườ ng là không cần
thiết, vì sử dụng thẻ Expression sẽ thuận tiện hơ n.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 83
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 81/108
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 84
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 82/108
Export Image..
Tạo ra file ảnh tươ ng ứng vớ i mạch.
Print...
In mạch.
Preference...
Hiển thị các cửa số ứng dụng ưu tiên. (trong hệ điều hành Mac OS, nó sẽ xuất
hiện trong menu Logisim)
Exit
Đóng tất cả các project và thoát kh ỏi Logisim (trong hệ điều hành Mac OS, nó sẽ
có tên là Quit trong menu Logisim)
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 85
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 83/108
Load Library
Tải một thư viện vào project. Bạn có thể 3 loại thư viện (đề cậ p đến trong mục
khác)
Unload Libraries...
Gỡ bỏ các thư viện hiện tại trong mạch, Logisim sẽ không cho phép bạn gỡ bất cứ
thư viện nào đang đượ c dùng.
Analyze Circuit
Xây dựng bảng chân lí và các biểu thức boolean tươ ng ứng vớ i mạch hiện tại,
hiển thị chúng ở cửa số Phân tích tổng hợ p. Quá trình phân tích chỉ thực hiện
đượ c cho những mạch tổng hợ p. Một bản mô tả đầy đủ của quá trình phân tích sẽ
đượ c hiển thị trong bảng Phân tích tổng hợ p.
Rename Circuit...
Đổi tên mạch đang đượ c hiển thị.
Move Circuit Up
Chuyển mạch đang đượ c hiển thị lên một dòng trong danh sách các m ạch của
project ở cửa số explorer.
Xóa bỏ mạch đang đượ c hiển thị khỏi project. Logisim sẽ không cho bạn gỡ bỏ
những mạch đang đượ c sử dụng như nh ững m ạch con của các mạch khác, và nó
cũng sẽ không cho bạn xóa bỏ mạch điện cuối cùng còn lại trong project.
Show Project Toolbar
Khi đượ c đánh dấu, nó sẽ hiển thị một thanh công cụ nhỏ phía trên cửa số
explorer, cho phép ngườ i dùng dễ dàng thực hi ện các thao tác vớ i các mạch như:
thêm, đổi tên, sắ p xế p lại và xóa bỏ một mạch từ project.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 86
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 84/108
Options...
Mở cửa sổ các tùy chọn của project (Project Options).
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 87
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 85/108
M ở ra mộ.t cửa sổ ghi phiên bản. (Trong hệ điều hành Mac OS, mục này ở trong menu
Logisim)
Tư liệu về c ơ ch ế hoạt động của chúng trong mạch có thể tìm thấy trong mục RAM và
ROM của library references. Mục này của user’s guide giải thích về giao diện cho phép
ngườ i sử dụng quan sát và chỉnh sửa nội dung bộ nhớ .
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 88
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 86/108
bTuy nhiên,
ạn có đểỉnh
thể ch quan
sửa sát
địa và hiỉểnh
chỉch sửị,avà
n th trong cóạch,
bạn m ỉnhcsụử Poke
công
thể ch có 2tr ịch
a các giá ến độ
đơ . ạt động:
lẻ ho
Để chỉnh sửa địa chỉ hiển thị, click vào vùng ngoài hình ch ữ nhật. Logicsim sẽ vẽ một
+ gõ các chữ số của hệ 16 sẽ thay đổi các địa chỉ top tươ ng ứng .
+ gõ Enter sẽ xuống một dòng
+ gõ backspace sẽ lên một dòng
+ gõ spacebar sẽ cuộn xuống 1 trang (4 dòng)
Để chỉnh sửa một giá tr ị cụ thể, click vào giá tr ị đó trong vùng chữ nhật hiển thị.
Logicsim sẽ vẽ một hình chữ nhật xung quanh địa chỉ đó.
+ gõ các chữ số của hệ 16 sẽ thay đổi giá tr ị ở địa chỉ đang đượ c chỉnh sửa.
+ gõ enter sẽ chuyển tớ i chỉnh sửa giá tr ị tiế p theo ngay dướ i nó (xuống một
dòng).
+ gõ backspace sẽ chuyển tớ i chỉnh sửa giá tr ị của địa chỉ tr ướ c đó.
+ gõ spacebar sẽ chuyển tớ i chỉnh sửa giá tr ị của địa chỉ k ế tiế p.
Các định dạng tệ p sử dụng cho các tệ p ảnh r ất đơ n giản, nó cho phép bạn viết một
chươ ng trình, như một chươ ng trình assembler, tạo ra các bộ nhớ ảnh mà có thể sau đó
truyền vào trong bộ nhớ . Một ví dụ của khuôn thức này: nếu chúng ta có một bộ nhớ 256
bytes mà 5 bytes đầu là: 2, 3, 0, 20 và -1 và tất c ả các giá tr ị còn lại bằng 0 thì chúng ta
sẽ có một tệ p ảnh như sau:
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 89
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 87/108
V2.0 raw
02
03
00
14
ff
dòng đầu tiên xác định khuông thức t ệ p đang đượ c s ử dụng (hiện t ại, chỉ một định dạng
tệ p đượ c tìm thấy). Các giá tr ị ti ế p theo liệt kê các giá tr ị trong hệ 16, bắt đầu t ừ địa chỉ
0, bạn có thể đặt vài giá tr ị như thế vào cũng một dòng. Logicsim sẽ tự cho r ằng, các giá
tr ị ko đượ c liệt kê bằng 0.
Tệ p ảnh có thể s ử d ụng run-length encoding, ví dụ thay vì liệt kê giá tr ị 00 16 lần trong
một hàng, tệ p đó có thể truyền vào 16 * 00 thay vì l ặ p lại 00 mườ i sáu lần. Chú ý r ằng số
lần lặ p lại đượ c viết trong hệ cơ số 10. Tệ p đượ c tạo ra bở i logicsim sẽ sử dụng run-
length encoding để chạy qua ít nhất 4 giá tr ị.
Những s ố in nghiêng nằm ở c ột ngoài cùng bên trái, hiển th ị giá tr ị địa ch ỉ c ủa b ộ nh ớ ,
viết trong hệ 16. Các số khác hiển thị các giá tr ị bắt đầu từ giá tr ị ô nhớ đó, hex editor có
thể hiển thị 4, 8 hoặc 16 giá tr ị trên một dòng, phụ thuộc vào kích cỡ của cửa sổ.Để tiện
cho việc đếm, giữa nhóm 4 giá tr ị có một khoảng tr ắng lớ n ngăn cách.
Bạn có thể di chuyển đến các ô giá tr ị bằng thanh cuộn hoặc sử dụng các phím di chuyển
để thay đổi giá tr ị của ô nhớ bằng cách gõ vào các giá tr ị hệ 16.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 90
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 88/108
Bạn có thể chọn một vùng các giá tr ị bằng cách kéo thả chuột, shift-clicking hoặc giữ
shift khi dùng phím di chuyển. Các giá tr ị có thể đượ c sao chép và dán bằng lựa chọn
edit. Bảng ghi giá tr ị này có thể đượ c chuyển sang các ứng dụng khác.
8. LOGGING
Khi thử một mạch điện lớ n và phức t ạ p, đôi khi bạn cần l ưu lại các tr ạng thái hoạt động
của nó. Đây là mục đích thiết lậ p nên của chế độ logging trong logicsim, cho phép ngườ i
sử dụng chọn các thành phần mà giá tr ị của chúng nên đượ c ghi lại. Một cách tùy ý, bạn
có thể chọn một tệ p để lưu các giá tr ị ghi đó.
Chú ý: đây là giai đoạn quan tr ọng nhất, tuy có phần nhàm chán nhưng nó r ất thuận tiện
trong việc chỉnh sửa sau này. Nếu ngườ i sử dụng không chèn thêm các comments thì b ản
ghi sẽ không thay đổi.
Bạn có thể vào chế độ logging qua menu Simulate trên khay hệ thống. Một khay hệ
thống gồm 3 thẻ hiện ra.
Mỗi project chỉ có m ột cửa sổ logging. Vì vậy, khi ngườ i sử dụng chuyển đến một mạch
khác trong cùng một project, cửa sổ logging sẽ tự động chuyển sang chế độ logging của
mạch đó.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 91
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 89/108
Chú ý khi chế độ logging chuyển sang ghi chép cho m ột mô phỏng khác, nó sẽ k ết thúc
và ghi vào một tệ p. Khi bạn quay tr ở lại, nó sẽ ghi nhớ cấu hình của mô phỏng đó, nhưng
ngườ i sử dụng sẽ phải khở i động lại chế độ logging này.
Thẻ selection đượ c chia làm 3 vùng làm vi ệc: vùng đầu tiên (ngoài cùng bên trái) li ệt kê
tất cả các thành phần trong mạch mà giá tr ị của chúng có thể đượ c ghi lại vào log. Trong
các thư viện tích hợ p sẵn, các loại thành phần sau có thể đượ c logging:
Thư viện cơ sở : Pin, Probe và thành phần Clock.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 92
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 90/108
Vùng ngoài cùng bên phải liệt kê các thành phần đã đượ c lựa chọn. Nó cũng chỉ ra cơ sở
mà các giá tr ị đa bit đượ c ghi vào, cơ sở này không có tác dụng cụ thể đối vớ i các giá tr ị
đơ n bit.
Cột giữa gồm các nút cho phép điều khiển các mục trong cột selection
Add: thêm các mục đang đượ c chọn trong cột trái vào cột phải
Change radix: thay đổi các cơ sở của các thành phần trong cột phải giữa các hệ:
nhị phân, thậ p phân và 16
Move up: di chuyển lên
Move down: di chuyển xuống
Remove: xóa thành phần đang đượ c chọn khỏi cột phải
8.2 Thẻ table
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 93
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 91/108
Mỗi thành phần trong cột selection sẽ có một cột tươ ng ứng. Mỗi hàng hiển thị một
snapshot sau khi sự truyền giá tr ị đượ c thực hiện. Các dòng giống nhau sẽ ko đượ c thêm
vào trong log. Chú ý r ằng chỉ có khoảng 400 hàng đượ c hi ền thị. Một s ố hàng có thể có
các phần tr ống nếu các thành phần tươ ng ứng không nằm trong vùng lựa chọn khi mà
hàng đó đượ c tính toán.
8.3 Thẻ tệp
Thẻ tệ p cho phép ngườ i sử dụng xác định một tệ p để lưu các log vào
Trên cùng là một chỉ thị cho biết việc lưu log vào file có đang đượ c thực hiện hay
không và một nút cho phép bật hoặc tắt nó. (chú ý r ằng ngườ i sử dụng không thể enable
nó cho đến khi một file đượ c xác định ở phía dướ i.) Nút cho phép ngườ i sử dụng tạm
dừng và khở i động l ại vi ệc ghi chép. Khi ngườ i s ử d ụng chuyển vào cửa sổ của project
để quan sát sự giả lậ p khác, quá trình log sẽ tự động dừng lại; nếu ngườ i sử dụng quay lại
và muốn tiế p tục log, họ phải thiết lậ p lại bằng tay sử dụng nút trên cùng.
ở giữa là chỉ thị cho biết tệ p nào đang đượ c ghi vào. Để thay đổi nó, sử d ụng nút
Select. Khi chọn một t ệ p, chế độ logging sẽ đượ c t ự động khở i động. Nếu ch ọn m ột t ệ p
đã có sẵn, logicsim sẽ h ỏi n ếu ng ườ i s ử d ụng muốn ghi đè lên hay mở r ộng t ệ p v ề phía
cuối.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 94
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 92/108
dướ i cùng ngườ i sử dụng có thể điều khiển một dòng tệ p header có nên đặt vào
trong một t ệ p để chi ra mục nào đượ c ch ọn hay không. Nếu header đượ c thêm vào, một
dòng header mớ i sẽ đượ c đặt vào tệ p ngay khi các mục thay đổi.
Các ghi chép đượ c đặt vào trong tệ p d ướ i hình thức g ần gi ống v ớ i nh ững gì hiện
lên trong thẻ Table. (Một điểm khác là bất cứ header lines nào sẽ chứa đườ ng dẫn tớ i các
đối t ượ ng n ằm trong các mạch phụ.) Định d ạng này đượ c thiết k ế đơ n gi ản để ng ườ i s ử
dụng có thể đưa nó vào trong các chươ ng trình khác để xử lý, như là Python/perl hoặc
các chươ ng trình bảng tính.
Vì thế các bản ghi có thể xử lý tệ p cùng lúc khi logicsim đang chạy, logicsim sẽ
nạ p bản ghi mớ i vào đĩ a cứng sau mỗi 500ms. Chú ý r ằng Logicsim cũng có thể đóng
một cách gián đoạn hoặc mở lại các tệ p trong thờ i gian chạy, đặc biệt khi một vài giây
trôi qua mà không có thêm b ản ghi nào đượ c nạ p vào.
9. APPLICATION PREFERENCES
Logisim hỗ tr ợ hai loại tùy chọn cấu hình là application preferences và project options.
Application preferences hiển thị tất cả các project đang mở còn project options chỉ làm
việc vớ i một project cụ thể. Phần này sẽ nói về application preferences còn project
options sẽ đượ c nói tớ i trong phần khác
Bạn có thể xem và chỉnh sửa application preferences bằng cách vào FilePreferences.
Một cửa sổ sẽ hiện ra vớ i hai thẻ(tab). Chúng ta sẽ giớ i thiệu từng thẻ một và sau đó tìm
hiểu cách cấu hình từ dòng lệnh.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 95
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 93/108
9.1 Thẻ Template
Một mẫu là một file của logisim mà đượ c khở i động mỗi khi tạo ra một project mớ i.
Ngoài ra, nếu bạn có sẵn môt file logisim vớ i môi tr ườ ng làm việc đã đượ c chỉnh sửa,
bạn có thể s ử d ụng nút Revert All to Template để đưa về m ặc định trong cửa s ổ để s ửa
Project Options
Mặc dù những mẫu r ất hiệu quả khi sử dụng ở những tr ườ ng hợ p khác, chúng hợ p lí nhất
khi sử dụng trong lớ p học, nơ i mà những hướ ng dẫn viên có thể đưa cho sinh viên những
mẫu để b ắt đầu làm việc. Việc này đặc biệt thích hợ p nếu l ớ p h ọc s ử d ụng logisim một
cách thườ ng xuyên vớ i các tính năng nâng cao. Trong tr ườ ng hợ p đó, thiết lậ p mặc định
tỏ ra không hiệu qu ả. Mẫu c ũng có thể dùng trong lớ p khi mà h ướ ng d ẫn viên cho phép
sinh viên nộ p bài mà họ tự thiết lậ p môi tr ườ ng làm việc
Mặc định, tùy chọn Plain Template sẽ đượ c chọn, s ử dụng mẫu mặc định c ủa logisim.
Nếu bạn muốn một thiết lậ p cơ bản nhất, bạn có thể chọn Empty Template. Nhưng nếu
ạn muốn một file khác sử dụng mẫu, chọn Select và chọn mẫu sau đó chọn Custom
btemplate.
9.2 Thẻ International
Thiết lậ p này hỗ tr ở tùy chọn để Logisim có thể sử dụng đượ c ở nhiều nướ c
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 96
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 94/108
• Hình dạng cổng: logisim hỗ tr ợ ba chuẩn để vẽ cổng: cổng định hình dạng, cổng
dạng chữ nhật, và cổng kiểu DIN 40700. Bảng sau đây thể hiện sự khác biệt giữa
chúng
Bở i vì hình dạng định sẵn thì phổ biến ở Mỹ trong khi kiểu dáng hình chữ nhật thì lại
phổ biến ở Châu Âu, một số ngườ i quy định những kiểu này theo vùng của họ. Bở i vậy,
từ shaped(hình dáng định sẵn) và rectangular(hình chữ nhật) đượ c ưa thích dùng. Chuẩn
DIN 40700 là chuẩn dùng cho biên tậ p nội dung tươ ng tự (analog) và nội dung số
(digital) đượ c đưa ra bở i t ổ chức chuẩn c ủa Đức tên là DIN. DIN đưa ra chuẩn hình chữ
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 97
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 95/108
nhật cho các thành phần số vào năm 1976 nhưng một số k ĩ sư vẫn thích dùng những kiểu
cũ hơ n nhưng số này ngày càng ít đi.
Logisim không tuân theo chặt chẽ một chuẩn nào. Nó đi theo hướ ng để có thể chuyển đổi
giữa các chuẩn. Một số tr ườ ng hợ p, cổng có hình dáng sẵn thì thườ ng vuông hơ n kích
r ộướ
th ngcgiđượ
ốngc vđịớ nh
i c ổrangbở vàẩnNOR
i chu
OR IEEE.
vớ Và, u ặhình
i ki ểm cổững
c dùch nhXOR khôngcầđượ
và XNOR
ật. Chúng n phcảtiạocórachi
nhềưu
thế vì sự khó khăn trong việc tạo ra hình dáng của cổng XOR.
Hiện nay, cổng OR chữ nh ật th ườ ng đượ c v ẽ v ớ i m ột kí hiệu “>0” hơ n là kí hiệu chuẩn
đượ c đề cậ p ở phần trên bở i vì r ất nhiều hệ thống không hỗ tr ở đầy đủ bộ mã Unicode.
Ngôn ngữ : Thay đổi giữa các ngôn ngữ. Phiên bản hiện tại hỗ cả Tiếng Anh và tiếng
Tây Ban Nha. Phần dịch sang tiếng Tây Ban Nha đượ c đóng góp bở i Pablo Leal Ramos,
Tây Ban Nha.
Chúng tôi hoan nghênh tất v ả m ọi ng ườ i d ịch logisim sang các ngôn ngữ. N ếu b ạn th ấy
thích thú vớ i việc này, hãy liên hệ vớ i tôi, Carl Burch. Tôi sẽ thông báo cho bạn việc
phải làm, gửi cho bạn hướ ng dẫn và việc này không đòi hỏi hiểu biết về ngôn ngữ JAVA.
Thay đổi các kí tự : M ột s ố hệ thống hỗ tr ợ không tốt cho các kí tự (như ñ hoạc ö) mà
không có trong bộ mã ASCII 7 bit. Khi việc này đượ c kiểm tra, logisim sẽ thay thể tất cả
những kí tự trên vớ i những kí tự tươ ng ứng của bộ mã ASCII 7 bit. Phần đánh dấu đượ c
ẩn vì hiện này ngôn ngữ hiện tại không có một dị bản nào khác.
9.3 Thẻ Experimental
Những thiết lậ p này liên quan đến những tính năng thí nghiệm mà đượ c đưa vào dựa trên
những phản hồi của ngườ i dùng.
• Tăng tốc đồ họa: M ột s ố ngườ i s ử dụng logisim phản ánh r ằng Logisim xử lí đồ
họa tươ ng đối chậm. Một ngườ i dùng tiến hành thêm lệnh Dsun.java2d.d3d = true
trong phần dòng lệnh để chỉ ra rõ ra điều này. Bạn có để điều khiển việc này bằng
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 98
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 96/108
cách sử dụng hộ p thực đơ n sổ xuống. Tôi chưa từng xem xét vấn đề tốc độ của
logisim, vì thế không thể đánh giá một cách chính xác đượ c. Tôi tin tưở ng vào
những phản hồi của ngườ i dùng về việc này. Một điều lưu ý r ằng nó không có tác
dụng khi bạn chưa khở i động lại logisim.
• Kéo dài dây nối: Khi các thành phần đượ c di chuyển theo chiều ngang hoặc dọc.
Logisim tự động thêm dây nối để bảo toàn sự k ết nối. Những phiên bản trong
tươ ng lai có thể đặt thuộc tính này là mặc định mà không thể tắt đi đượ c nhưng tôi
muốn cho ngườ i dùng cơ hội để thử và đề xuất ý kiến về nó.
Việc thêm file vào dòng lệnh sẽ đượ c mở bở i những cửa số khác nhau trong logisim.
Ví dụ sau đây mô tả việc bật Logisim vớ i những thiết lậ p cơ bản
java -jar jarFileName -plain -gates shaped -locale en
-plain
-empty
-template templateFile
Thiết lậ p các mẫu để dùng logisim
-gates [shaped |rectangular ]
Thiết lậ p ngôn ngữ đượ c dùng. Ở đây hỗ tr ỡ hai loại là tiếng Anh và Tây Ban Nha
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 99
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 97/108
-accents [ yes|no ]
Tùy chọn này chỉ đượ c dùng cho những ngôn ngữ sử dụng kí tự ngoài bảng mã 7
bit ASCII. Những kí tự ngoài bảng mã sẽ đượ c thay thế bằng những kí tự tươ ng
ứng. Điều này r ất thuận lợ i cho những hệ thống không hỗ tr ợ các loại kí tự này.
-nosplash
Tắt cửa sổ hiện thị đang mở Logisim khi bắt đầu khở i động
-help
Hiện thị tổng quát về các lện trong phần thiết lậ p dòng lệnh
-version
Bạn có thể xem và chỉnh sửa phần project option bằng cách vào ProjectOption
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 100
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 98/108
Ở dướ i cùng là nút lệnh Revert All to Templete để đưa tất cả các thiết lậ p và thu ộc tính
về mẫu hiện tại
10.1 Thẻ Canvas
Thể Canvas cho phép thiết lậ p các thông số cho vùng để vẽ mạch.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 101
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 99/108
Có tám lựa chọn:
• Printer View: Xác định xem mạch có đượ c hiện thị trên màn hình giống như qua
máy in không. Thông thườ ng, Logisim hiển thị mạch trên màn hình vớ i chỉ dẫn để
biết tr ạng thái của m ạch và nó cũng hiển thị m ột vài hướ ng d ẫn v ề giao diện các
thành phần. Còn máy in thườ ng b ỏ qu ả nh ững chỉ d ẫn v ề tr ạng thái và những chỉ
•
ẫn về giao
dShow ện các
Grid:diXác thành
định ần.hiển thị các dấu chấm trên nền khu vực vẽ hay
xemphcó
không.
• Show Attribute Halo: Xác định xem có hiển thị hình ovan xung quanh các thuộc
tính hay công cụ mà đang các thuộc tính của nó đang đượ c hi ện th ị ở b ảng thuộc
tính.
• Show Ghosts: Xác định xem viền màu xám có đượ c hiện thị quanh các thành
phần khi di chuột qua vùng vẽ mạch. Ví dụ, nếu bạn chọn cổng AND và di chuột
vào cửa sổ nhưng không click, một viền màu xám của cổng AND sẽ xuất hiện.
• Show component Tips: Xác định có hiển thị “tool tips” tạm thờ i khi chuột di qua
các thành phần của mạch.
• Zoom Factor: cho phép bạn phóng to hay thu nhỏ hình ảnh bở i một tỉ lệ nào đó.
• First Radix When Wire Poked: thiết lậ p các giá tr ị sẽ đượ c hiển thị như thế nào
khi một dây nối đượ c chọn sử dụng công cụ Poke. Khi đượ c chọn, các giá tr ị sẽ
đượ c hiện thị tạm thờ i cho đến khi ngườ i dùng click chuột vào vùng khác.
• Second Radix When Wire Poked: Thiết lậ p phần thứ hai của giá tr ị sẽ đượ c hiển
thị như thế nào.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 102
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 100/108
10.2 Thẻ Simulation
Thẻ Simulation cho phép thiết lậ p các thuật toán cho việc việc giả lậ p các mạch. Các
tham số đượ c áp dụng cho tất cả các mạch đang đượ c giả lậ p trong cùng một cửa sổ,
ngay cả khi các mạch đó tồn tại ở một thư viện khác trong project.
•
Add
nhiênNoise
mà đượ Toc Component Delays:
thêm vào sự tr ễ của các
chothành bạầnn.bSậtự mô
phép ph hoặcph
tắỏt ng
cácbên ễu ngẫsửu
nhitrong
dụng một đồng hồ ẩn cho sự giả lậ p này, để cho thực tế, các thành phần(tr ừ dây
nối và bộ chia) đều có một độ tr ễ nh ất định giữa việc chúng nhận input và tr ả ra
output. Nếu thiết lậ p này đượ c chọn, Logisim sẽ thườ ng xuyên tạo ra các thành
phần nhận tín hiệu click chuột chậm hơ n một chút. Sự ngẫu nhiên này đượ c thêm
vào để giải quyết vấn đề của mạch chốt. Nếu không có độ nhiễu ngẫu nhiên, mạch
sẽ dao động khi cổng làm việc như nhau. Nhưng khi nhiễu ngẫu nhiên đượ c thêm
vào, một cổng sẽ làm việc nhanh hơ n cổng còn lại.
Tôi khuyến cáo nên bật thiết lậ p này. Vì sự thêm vào độ nhiễu này là tươ ng đối
mớ i vì vậy chúng có thể dẫn đén một số lỗi trong khi giả lậ p mạch.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 103
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 101/108
Iterations Until Oscillation: Cho phép bạn thiết lậ p thờ i gian bao lâu để mô
phỏng mạch tr ướ c khi quyết định nó đang dao động. Số trong hộ p mô t ả số lượ ng
clicks của đồng hồ ẩn bên trong( cổng bình thườ ng chỉ cần một click). Con số mặc
đinh là 1000 là đủ t ốt cho hầu h ết các mục đích ngay cả khi mạch là lớ n. Nhưng
bạn có thể t ăng con số này lên nếu b ạn đang làm việc v ớ i m ột m ạch mà Logisim
báo là dao động bị sai. Có thể tưở ng tượ ng r ằng một mạch là k ết hợ p của cách
mạch chốt có thể tạo ra lỗi. Bạn cũng có thể phải giảm con số này xuống khi bạn
làm việc vớ i một mạch mà có xu hướ ng dao động và bạn đang sử dụng một bộ xử
lí chậm chạ p.
10.3 Thẻ Toolbar
Thẻ Toolbar cho phép bạn thiết lậ p những công cụ sẽ xuất hiện trên thanh công cụ.
Bên trái là một của sổ liệt kê tất cả các công cụ, và danh sách bên phải là những công cụ
hiện đang đượ c hiển thị trên thanh công cụ. “---“ là kí hiệu của dấu ngăn cách hiển thị
như một khoảng tr ắng nhỏ. Ở giữa là năm nút bấm chọn là một thực đơ n sổ xuống:
• Add Tool: Thêm công cụ đang đượ c ch ọn ở c ửa s ổ bên trái vào cuối thanh công
cụ
• Add Separator: Thêm dấu ngăn cách vào cuối thanh công cụ.
• Move Up: chuyển công cụ đang đượ c chọn lên một vị trí trong thanh công cụ
• Move Down: Chuyển công cụ đang đượ c chọn xuống một vị trí trong thanh công
cụ
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 104
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 102/108
10.4 Thẻ Mouse
Mặc định, khi bạn click chuột vào khu vực v ẽ c ủa Logisim, công cụ đang đượ c ch ọn s ẽ
đượ c sử dụng. Nếu bạn click chuột phải hoặc phím điều khiển, một cửa sổ công cụ sẽ
hiện lên cho những thành phần hiện tại đang ở bên dướ i tr ỏ chuột.
Logisim cho phép bạn thay đổi thiết l ậ p này, để b ạn không phải dùng tớ i thanh công cụ
hoặc cửa sổ chứa các thành phần nhiều lấn.(Điều này r ất thuận tiện nếu bạn thuận tay
trái). Mỗi một tổ hợ p của phím chuột và một phím điều khiển (Shift,Control) sẽ đượ c
thay thế cho một công cụ khác nhau. Thẻ mouse cho phép bạn thiết lậ p các thay thế này.
• Ở bên trái là một cửa sổ nơ i bạn có thể chọn các công cụ bạn muốn thay thế bằng.
• Ở phía trên bên phải là một hình chữ nhật, bạn click vào đó để sử dụng tổ hợ p
chuột, phím thay thế cho một thành phần. Ví dụ, b ạn mu ốn tạo một dây nối mớ i
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 105
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 103/108
bằng viêc sử dụng cách giữ phím shift, đầu tiên bạn chọn công cụ Wiring trong
phần cửa sổ bên trái; sau đó bạn click + shift vào dòng ch ữ “Click Using
Combination to Map Wiring Tool”. N ếu t ổ h ợ p phím chuột b ạn ch ọn đã đượ c s ử
dụng, khi đó nó sẽ thay thế cho các tr ướ c đó.
• Bên đướ i khu vực này là danh mục các thành phần đã đượ c dùng tổ hợ p chuột và
phím này. Lưu ý r ằng bất cứ tổ hợ p nào mà không đượ c liệt kê sẽ đượ c dùng bình
thườ ng bằng cách chọn.
• Bên dướ i là một nút bấm Remove cho phép bạn xóa tổ một tổ hợ p phím chuột
đang đượ c chọn ở bảng liệt kê phía trên. Trong tươ ng lai, tổ hợ p chuột phím sẽ có
thể thay thế cho bất kì công cụ nào đang đượ c chọn ở thanh công cụ hay cửa sổ
chứa các thành phần.
• Bên dướ i là danh sách của các thuộc tính của công cụ đang đượ c chọn trong danh
sách của các tổ hợ p đã đượ c tạo. Mỗi tổ hợ p này có một thuộc tính riêng, khác vớ i
thuộc tính đượ c sử dụng trên thanh công cụ và cửa sổ chứa các thành phần. Bạn
có thể thay đổi các thuộc tính ở đây.
Dướ i đây là một ví dụ cho thấy sự tinh vi của thuật toán sử dụng trong logisim.
Rõ ràng r ằng output luôn là 0. Nhưng trong thực t ế c ổng NOT không đáp ứng ngay lậ p
tức khi nhận đượ c input, và cũng như vậy trong Logisim. Do vậy, khi input của mạch
chuyển tự 0 sang 1, cổng AND sẽ nhận hai input là 1 và do đó sẽ tr ả ra output là 1 trong
một khoảng thờ i gian ngắn. B ạn không nhìn thấy điều đó trên màn hình nhưng k ết quả
này có thể thấy rõ qua việc sử dụng output của cổng AND làm input cho đồng hồ của
một flip-flop D.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 106
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 104/108
Khi output của cổng AND xuất hiện sẽ ngay lậ p tực đi vào flip-flop D. Do đó, giá tr ị sau
khi qua flip-flop D sẽ thay đổi mỗi lần output của cổng AND chuyển từ 0 sang 1.
Mỗi thành phần đều có sự tr ễ bên trong. Các thành ph ần phức tạ p trong Logisim thườ ng
có độ tr ễ lớ n hơ n. Tuy nhiên độ tr ễ môt phần nào đó không biết tr ướ c đượ c do đó có thể
không diển tả đúng so vớ i trong thực tế.
Thỉnh thoảng, vớ i tần số không đếu, Logisim sẽ thêm độ tr ễ vào sự xử lí của của một
thành phần. Việc này là để mô phỏng sự không đều trong mạch thực. Tr ườ ng hợ p đặc
biết, một chốt R-S xử dụng hai cổng NOR sẽ hoạt động mà không cần đến sự tr ễ ngẫu
nhiên vì hai cổng này xử lí input ở cùng một th ờ i điểm. S ự thêm độ tr ễ này có thể thay
đổi ở thẻ Simulation trong Project Options.
Đứng từ góc độ k ĩ thuật, không khó để xử lí vấn đề độ tr ễ trong các mạch đơ n. Xử lí vấn
đề độ tr ễ của cổng trong một mạch con phức tạ p hơ n một chút. Logisim đang cố gắng để
diễn tả một cách chính xác nhất.
Lưu ý r ằng tôi không nói về việc Logisim luôn luôn luôn mô t ả đúng sự tr ễ của các
cổng. Nhưng ít nhất Logisim sẽ cố gằng một cách tốt nhất có thể.
Mạch này đang ở tr ạng thái không thay đổi( t ĩ nh). Nhưng nếu bạn đổi input sang 1, mạch
sẽ t ạo ra một vòng lặ p vô hạn. Sau một thờ i gian, Logisim sẽ thông báo r ằng m ạch này
đang dao động.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 107
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 105/108
Nó sẽ hiển thị giá tr ị ở thờ i điểm Logisim dừng chạy mạch. Giá tr ị này(trong hình vẽ) có
thể sai. Cổng AND cho ra ouput 1 mạc dù một input của nó là 0 nhưng nó có thể do cổng
NOT có input và output đều là 1.
Logisim khoanh tròn bằng màu đỏ ở nơ i mà có thể tạo ra sự dao động. Nếu một điểm
đượ c đánh dấu nắm trong một mạch con, Logisim sẽ vẽ mạch con đó trong viền màu đỏ.
Khi Logism phát hiện ra sự dao động, nó sẽ tắt toàn bộ s ự mô phỏng. Bạn có thể bật l ại
sự mô phỏng bằng cách bật thiết lậ p Simulation Enabled trong thực đơ n Simulate.
Logisim phát hiện sự dao động b ằng một cách tươ ng đối đơ n giản. Nếu mạch mô phỏng
có nhiều thứ đượ c lặ p l ại, chúng sẽ d ừng lại vào thông báo dao động. (Những điểm mà
Logisim phát hiện ra là tham gia vào sự dao động là những điểm mà đượ c chạy qua trong
25% cuối cùng của sự lặ p lại). Vì vậy, nó có thể nhầm lẫn trong việc báo có sự dao động,
đặc biệt khi bạn làm việc vớ i một mạch r ất lớ n. Tuy nhiên đó có lẽ phải là một mạch lớ n
hơ n t ất cả các mạch mà tôi đã xây dựng b ở i logisim. Trong bất cứ tr ườ ng h ợ p nào, n ếu
bạn ch ắc r ằng thông báo đó là không đúng, bạn có thể thi ết l ậ p lại số vòng lặ p l ại tr ướ c
khi sự dao động xảy ra ở thẻ Simulation trong Project Options.
• Logisim không thể mô phỏng đượ c các mạch con mà các chân có thể vừa làm
input vừa làm output. Các thành ph ần đượ c xây dựng bở i Java có thể có các chân
như vậy: Trong thư viện có sẵn, thư vi ện bộ nhớ mạch RAM có một chân D mà
có thể vừa làm input vừa làm output.
• Logisim dừng sự mô phỏng lại khi sự lặ p lại vượ t quá một con số định sẵn và
thông báo có sự dao động. Có thể thấy r ằng, một mạch lớ n mà như vậy chưa phải
là dao động sẽ gặ p vấn đề.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 108
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 106/108
• Ngoài vấn đề về độ tr ễ của cổng, Logisim không quan tâm đến thờ i gian của sự
của độ tr ễ trong các phần tử. Sự tr ễ ngẫu nhiên này trong một số phần tử có thể
làm cho giống v ớ i thực t ế h ơ n nh ưng chưa th ể mô phỏng thực s ự gi ống v ớ i th ực
tế.
• Logisim không phân biệt sự khác nhau giữa các mức điện áp: một bít chỉ có thể là
bật, tắt, không xác định hoặc bị lỗi.
• Còn một số thiếu sót nữa mà tôi bỏ qua ở đây vì chúng tươ ng đối khó hiểu và nếu
bạn có hiểu thì Logisim cũng sẽ không đi theo hướ ng khắc phục nó. Ví dụ, tôi có
một ngườ i b ạn làm việc cho một công ty chuyên sản xu ất chip, và công vi ệc của
anh ấy là về các “bubbles” trong chip theo công ngh ệ dây nano có thể d ẫn t ớ i s ự
mất k ết nối đột ngột.
• Tôi không phải là một ngườ i thiết k ế mạch chuyên nghiệ p, vì vậy có thể có một số
lỗi trong phươ ng pháp truyền t ải dữ liệu mà tôi chưa biết. Tôi r ất mong có đượ c
sự đóng góp của những ngườ i chuyên nghiệ p.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “H ướ ng d ẫn thự c hành Kiế n trúc máy tính”, version-1.0 109
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 107/108
Bài số 5
1. Hãy sử dụng các các phần tử “Hex Digit Display“ và “Splitter“ để đọc đượ c dướ i
dạng số Hexa các giá tr ị đưa vào ALU và k ết quả nhận đượ c ở đầu ra ALU.
------------------------------------------------------------------------------------------------------------------------------------
Giáo trình “Hướng dẫn thực hành Kiến trúc máy tính” version-1 0 110
http://slide pdf.c om/re a de r/full/hdth-ktmt-ba ng-mophong-logisim-moi 108/108