QUY TRÌNH THIẾT KẾ CHIP CMOS VÀ GIỚI THIỆU VỀ CÔNG NGHỆ 90nm˗ Các con Chip hiện nay đang tồn tại ở trong hầu hết các vật dụng điện tử, nhậnthấy vai trò đóng góp to lớn của Chip do đó trê
Trang 1THIẾT KẾ CHIP VI XỬ LÝ 4 BIT DÙNG
CÔNG NGHỆ CMOS
Trang 2AC Alternating Current
AHDL Analog Hardware Descriptionn Language
CMOS Complementary Metal-Oxide-Semiconductor
PIC Programmable Interface Controller
RTL Register Transfer Level
VHDL VHSIC hardware description language
VHSIC Very-high-speed integrated circuit
Trang 3CHƯƠNG 1 QUY TRÌNH THIẾT KẾ CHIP CMOS VÀ GIỚI THIỆU VỀ CÔNG NGHỆ 90nm
˗ Các con Chip hiện nay đang tồn tại ở trong hầu hết các vật dụng điện tử, nhậnthấy vai trò đóng góp to lớn của Chip do đó trên thế giới ngành công nghiệp đểsản xuất ra những con chip hay những vi mạch tich hợp này hiện đang là mộttrong những lĩnh vực mới mẻ và hứa hẹn nhiều tiềm năng
1.1 Quy trình thiết kế chip CMOS[1]
˗ Quy trình thiết kế bao gồm 2 giai đoạn chính:
+ Thiết kế luận lý (Local Design – Front End Design)
+ Thiết kế vật lý (Physical Design – Back End Design)
˗ Trong thiết kế luận lý, thiết kế vi mạch thường chia làm 3 loại:
+ Thiết kế số (Digital IC Design)
+ Thiết kế tương tự (Analog IC Design)
+ Thiết kế tín hiệu hỗn hợp (Mixed-signal Design)
1.1.1 Thiết kế luận lý – Front End Design
˗ Thiết kế số:
+ Sử dụng ngôn ngữ thiết kế phần cứng (Verilog-HDL, VHDL, C…) để thực hiện các chức năng logic của thiết kế Không cần quan tâmđến cấu tạo chi tiết của mạch mà chỉ chú trọng vào chức năng của mạchdựa trên kết quả tính toán cũng như sự luân chuyển dữ liệu giữa cácthanh ghi (Register) Đây là thiết kế mức chuyển thanh ghi (RTL –Register Transfer Level) Sau đó thiết kế RTL sẽ được mô phỏng để kiểmtra xem có thỏa tính đúng đắn của mạch hay không
System-+ Thiết kế RTL được tổng hợp (synthesize) thành các cổng cơ bản : NOT,NAND, XOR, MUX,… Kết quả của quá trình tổng hợp không là duynhất và tùy thuộc vào CADs và thư viện các cổng và macro của nhà sảnxuất chip
˗ Thiết kế tương tự:
+ Các thiết kế tương tự không được hỗ trợ đắc lực bởi CADs như thiết kế số.Phần lớn công việc được thực hiện bởi con người (80%) và đòi hỏi nhiều
Trang 4kinh nghiệm cũng như hiểu biết về cấu trúc vật lý, tham số đặc trưng, côngnghệ sản xuất của các linh kiện Các thiết kế tương tự chủ yếu là các chipquản lí năng lượng, ADC, DAC, DC-DC converter, PLL, VCO, … ( cáclĩnh vực mà chip số chưa làm được hoặc không hiệu quả ) chứa số lượnglinh kiện ít hơn nhiều so với các thiết kế số với hàng triệu transistor.
+ Xuất phát từ các thông số yêu cầu của chip và các ứng dụng mà các chipanalog được sử dụng, chọn kiến trúc chip thích hợp Sau đó tham số củacác linh kiện trong kiến trúc đã chọn được tính toán và mô phỏng với cácphần mềm chuyên dụng Quá trình tính toán, mô phỏng được thực hiện chođến khi đạt được kết quả theo yêu cầu, đôi khi phải thay đổi cả cấu trúcmạch
+ Bên cạnh các mô phỏng miền thời gian, đáp ứng tần số, Một số loại môphỏng thường hay sử dụng khi thiết kế chip analog là mô phỏng Monte-Carlo Mô phỏng này dùng để khảo sát tín hiệu ra khi có các thay đổi vềđiện áp nguồn, nhiệt độ môi trường, sai số qui trình sản xuất
˗ Thiết kế tín hiệu hỗn hợp:
+ Ngày nay các chip thường có chức năng phức tạp và chức đồng thời cáckhối analog và digital Bên cạnh các kĩ thuật dùng cho analog và digital,các nhà thiết kế phải tính đến những ảnh hưởng lẫn nhau của khối analog
và digital (nhiễu, giao thoa, ) để đảm bảo chúng hoạt động ổn định Ngônngữ mới được phát triển dùng cho thiết kế chip tín hiệu hỗn hợp là AHDL(Analog Hardware Descriptionn Language)
1.1.2 Thiết kế vật lý – Back End Design
˗ Thiết kế layout:
+ Netlist thu được trong quá trình thiết kế luận lý được dùng để tạo layoutcho chip Ở giai đoạn này các linh kiện (transistor, điện trở, tụ điện, cuộncảm) và các liên kết giức chúng được tạo hình (hình dạng thực tế của cáclinh kiện và dây dẫn trên wafer trong quá trình sản xuất) Việc thiết kếtuân theo quy luật (Design Rules) mà các nhà sản xuất đưa ra Các qui luậtnày phụ thuộc vào khả năng thi công và công nghệ của nhà máy sản xuất
Trang 5Có hai loại quy luật thiết kế là : lamda (λ) và qui luật tuyệt đối Với quiluật lamda thì các kích thước phải là bội số của lamda, trong khi qui luậttuyệt tuyệt đối sử dụng các kích thước cố định Sử dụng qui luật lamdagiúp chuyển đổi thiết kế nhanh khi công nghệ thay đổi.
+ Thiết kế số được hỗ trợ lớn bởi CADs, từ việc sử dụng lại thư viện cáccells cơ bản cho đến place and route tự động Chip analog đòi hỏi các thiết
kế chính xác và các kĩ thuật chuyên biệt để đảm bảo tương thích(matching) giữa các linh kiện nhạy cảm, chống nhiễu (noise) và đáp ứngtần số
˗ Kiểm tra DRC và LVS:
+ Sau khi layout chip và hoàn tất kiểm tra qui luật thiết kế DRC, layoutđược export thành file netlist để đem so sánh với netlist thu được trongquá trình thiết kế luận lý để kiểm tra tính đồng nhất của chúng Nếu không
có sự tương đồng giữa 2 netlist thì phải kiểm tra và sửa lại layout cho đếnkhi tương đồng DRC và LVS được thực hiện bởi các tool chuyên dụngcủa Synopsys, Candence hay Mentor Graphic Sau đó các toàn bộ quátrình thiết kế vật lý sẽ được tapeout ra 1 file và gửi đến nhà máy sản xuất.+ Chip sau khi sản xuất sẽ được kiểm tra (test) trước và sau khi đóng gói đểkiểm tra thông số trước khi được chuyển cho khách hàng hoặc đưa ra thịtrường
Trang 6Hình 1-1: Quy trình thiết kế chip CMOS[1]
1.2 Giới thiệu về công nghệ 90nm[4]
˗ Một quy trình công nghiệp 90 nm hoàn chỉnh đã được Intel giới thiệu vào năm
2003 Với các kênh bán dẫn có kích thước khoảng 50 nm, có thể so sánh với các
vi sinh vật nhỏ nhất, đây thực sự là một công nghệ nano Sự mới lạ chính liênquan đến công nghệ 90 nm là căng silicon để tăng tốc độ di chuyển của sóngmang Điều này làm tăng cả tranzito kênh n và kênh pcủa transistor Điều này đãđược biết đến kéo dài trong nhiều thập kỉ của quá trình phát triển lưới silicon củasóng mang di động và trên những thiết bị hiện nay
Trang 7Hình 1-2: Sự kéo căng được tạo bởi lớp phủ silicon-nitride[4]
˗ Sự kéo căng này làm gia tăng khoảng cách giữa các nguyên tử bên dưới cổng,điều này làm tăng tốc độ di chuyển của các điện tử di động trên kênh n của thiết
bị MOS
˗ Đối với các hạt mang điện, sự kéo căng mạng cho phép dòng chảy nhanh hơn từcác cổng vào nguồn, tính di dộng cải tiến thiển hiện sự phụ thuộc tuyến tính đốivới độ dày màng kéo Sự căng thẳng cũng có thể được áp dụng từ dưới cùng vớimột lơp đồng nhất của hợp kim Silicon và Germanium (SiGe)
Hình 1-3: Áp lực nén để giảm khoảng cách giữa các nguyên tử bên dưới cổng[4]
˗ Việc nén mạng tinh thể làm tăng tốc độ dòng điện vào các lỗ trống của bán dẫnloại p Sự kết hợp của chiều dài kênh giảm cùng với giảm độ dày giữa Oxit vàSilicon làm tăng đáng kể dòng biến tần cho cả nMOS và pMOS
1.2.1 Đặc tính của kênh nMOS
Trang 8˗ Cổng nMOS được giới hạn với một lớp silicon-nitride cụ thể gây ra sự căngthẳng của kênh kéo căng để cải thiện tính di động của hạt mang điện.
˗ Các đặc tính thiết bị I / V của mức thấp và mức cao của CMOS thu được bằngcách sử dụng mô hình MOS BSIM4 không có sự chênh lệch lớn
Bảng 1-1: Thông số đặc trưng nMOS dùng công nghệ 90mn[4]
0.1m50nm0.5m0.25V0.74mA300nA
˗ Các đặc tính I / V thể hiện khả năng truyền động hiện tại khoảng 0,6 mA đối với
W = 0,5 µm, tức là 1,2 mA / µm ở nguồn điện áp 1,2 V Đối với mức cao, cảchiều dài kênh hiệu dụng và điện áp ngưỡng được giảm nhẹ, để đạt được dòngđiện khoảng 1,5 mA / µm Khuyết điểm lớn là dòng rò lớn, tăng từ 60 nA / µm(mức thấp) lên 600 nA / µm (mức cao)
Trang 9Hình 1-4: Mặt cắt ngang của toàn bộ nMOS[4]
Hình 1-5: Đặc tuyến Id/Vd mức thấp và cao của nMOS[4]
Trang 101.2.2 Đặc tính của kênh pMOS
Bảng 1-2: Thông số đặc trưng pMOS dùng công nghệ 90nm[4]
0.1m50nm0.5m0.39mA135nA
Hình 1-6: Mặt cắt của pMOS[4]
˗ Dòng trong pMOS 90nm cao tới 700 µA / µm đối với mức thấp và lên đến 800
µA / µm cho mức cao Một lớp phim Silicium-bermanium (Sibe) tạo ra sự căngthẳng của kênh nén làm tăng tính di động của lỗ pMOS Những giá trị này đặcbiệt cao, vì các ứng dụng đích cho công nghệ này tại Intel là các mạch kỹ thuật
số tốc độ cao như bộ vi xử lý Dòng rò là khoảng 40 nA / µm đối với mức thấp vàgần 300 nA / µm đối với mức cao
1.2.3 Các biến thể của công nghệ 90nm
Trang 11˗ Công nghệ 90nm được coi là cộng nghê đạt tốc độ cao nhất có thể có bởi giá trịdòng rò, biến thể này được gọi là “tốc độ cao” vì nó dành riêng cho những ứngdụng với tốc độ cao làm mục đích chính: bộ vi xử lý nhanh, DSP nhanh
˗ Biến thể thứ hai gọi là “ mục đích chung” bởi vì mục đích nhắm đến là các sảnphẩm tiêu chuẩn, tốc độ không phải là yếu tố quan trọng Dòng rò lớn hơn dòng
rò của biến thể “tốc độ cao”, độ trễ cổng tăng 50%
˗ Biến thể “Công suất thấp” liên quan đến các IC mà rò rỉ phải ở mức thấp nhất cóthể, tiêu chí này là tiêu chí hàng đâu trong các ứng dụng như thiết bị nhúng, điệnthoại di động Độ trễ cổng gấp 3 lần so với “tốc độ cao”, do phần Oxit dày hơnvài chiều dài cổng lớn hơn
ASIC, Microcontrollers, FPGA
Mobiles, embedded devices
1.01.6650.357003005n12
1.22.2800.5050020050p251.3 Phần mềm DSCH[6]
1.3.1 Giới thiệu chung
˗ DSCH là một trình soạn thảo logic và giả lập DSCH được sử dụng để xây dựngcấu trúc của mạch logic trước khi thiết kế vi mạch DSCH cung cấp một môitrường thân thiện với người dùng để thiết kế logic phân cấp và mô phỏng nhanhvới phân tích độ trễ, cho phép thiết kế và xây dựng các cấu trúc logic phức tạp
˗ DSCH cũng có các biểu tượng, mô hình và hỗ trợ lắp ráp cho bộ điều khiển 8051
và PIC16F84, có thể tạo các mạch logic để giao tiếp với các bộ điều khiển này vàxác minh các chương trình phần mềm bằng DSCH
1.3.2 Đặc điểm nổi bật
Trang 12˗ Môi trường thân thiện với người dùng để thiết kế nhanh chóng các mạchlogic.
˗ Hỗ trợ thiết kế logic phân cấp
˗ thêm một công cụ phân tích lỗi ở cấp độ cổng kỹ thuật số
˗ Giao diện được cải thiện giữa DSCH và Winspice
˗ Xử lý cả mô phỏng logic dựa trên mô hình thông thường và trực quan trên môphỏng điều khiển bằng chuột
˗ Trình trích xuất tích hợp tạo ra một danh sách mạng SPICE từ sơ đồ nguyên lý (Tương thích với PSPICETM và WinSpiceTM)
˗ Tạo một mô tả ĐỘNG LỰC của sơ đồ để chuyển đổi bố cục
˗ Truy cập ngay vào các thuộc tính ký hiệu (Trì hoãn, fanout)
˗ Hỗ trợ mô hình và lắp ráp cho vi điều khiển 8051 và PIC 16F84
˗ Sub-micron, subicron sâu, hỗ trợ công nghệ nano
˗ Được hỗ trợ bởi thư viện biểu tượng khổng lồ
1.4 Phầm mềm viết ngôn ngữ VeriLog QuartusII[2]
1.4.1 Giới thiệu chung
˗ Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môi trườngthiết kế toàn diện cho các thiết kế SOPC (System On a Programmable Chip - hệthống trên 1 chip khả trình) Đây là phần mềm đóng gói tích hợp đầy đủ phục vụcho thiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm các dòngAPEX, Cyclone, FLEX, MAX, Stratix
1.4.2 Khả năng thiết kế logic của Quartus II
˗ Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngôn ngữ:AHDL, VHDL, và Verilog HDL
− Thiết kế LogicLock
− Là công cụ mạnh để tổng hợp logic
− Khả năng mô phỏng chức năng và thời gian, phân tích thời gian
− Phân tích logic nhúng với công cụ phân tích SignalTap@ II
− Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình
− Tự động định vị lỗi
− Khả năng lập trình và nhận diện linh kiện
˗ Sử dụng bộ tích hợp NativeLink@ với các công cụ thiết kế cung cấp việc truyềnthông tin liền mạch giữa Quartus với các công cụ thiết kế phần cứng EDA khác
Trang 13˗ Đọc các file mạch (Netlist) EDIF chuẩn, VHDL và Verilog HDL cũng như tạo racác file netlist này.
˗ Môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biên dịch, soát lỗi,
mô phỏng
Hình 1-7: Phần mềm Quartus II [2]
1.5 Tìm hiểu về KIT DE2-115[3]
1.5.1 Giới thiệu chung
˗ DE2 luôn đi đầu trong các ban phát triển giáo dục bằng cách phân biệt chính nóvới sự phong phú của các giao diện để đáp ứng các nhu cầu ứng dụng khác nhau.Terasic công bố DE2-115 mới nhất có thiết bị Cyclone IV E Đáp ứng nhu cầu vềvideo di động, thoại, truy cập dữ liệu và hình ảnh chất lượng cao, DE2-115 mớicung cấp sự cân bằng tối ưu về chi phí thấp, năng lượng thấp và nguồn cung cấpphong phú về khả năng logic, bộ nhớ và DSP
˗ Thiết bị Cyclone EP4CE115 được trang bị trên DE2-115 có 114.480 logic (LEs),lớn nhất được cung cấp trong dòng Cyclone IV E, RAM lên tới 3,9 Mbits và 266nhân
˗ 115 áp dụng các tính năng tương tự từ dòng DE2 trước đó chủ yếu là
DE2-70, cũng như các giao diện bổ sung để hỗ trợ các giao thức chính bao gồmGigabit Ethernet (GbE) Đầu nối Thẻ lửng tốc độ cao (HSMC) được cung cấp để
hỗ trợ thêm chức năng và kết nối thông qua thẻ và cáp con gái HSMC Để pháttriển nguyên mẫu ASIC quy mô lớn, một kết nối có thể được thực hiện với hai
Trang 14hoặc nhiều bo mạch dựa trên nền tảng đồ họa bằng cáp HSMC thông qua đầu nốiHSMC.
1.5.2 Đặc điểm kỹ thuật của KIT DE2-115
˗ Thiết bị cấu hình và mạch USB-Blaster
+ Thiết bị cấu hình nối tiếp EPCS64
+ Mạch USB-Blaster trên board
+ Bộ mã hóa / giải mã 24 bit (CODEC)
+ Jack cắm đầu vào, đầu ra và đầu vào micrô
˗ Hiển thị: màn hình LCD 16x2
˗ Mạch đồng hồ
+ Ba đầu vào đồng hồ dao động 50 MHz
+ Đầu nối SMA (đầu vào / đầu ra đồng hồ bên ngoài)
˗ Ổ cắm thẻ SD: Cung cấp chế độ SD SPI và 4 bit để truy cập Thẻ SD
˗ Hai cổng Ethernet Gigabit
+ Tích hợp 10/100/1000 Gigabit Ethernet
+ Hỗ trợ lõi Ethernet công nghiệp
˗ Thẻ gác lửng tốc độ cao 172 pin (HSMC) Các tiêu chuẩn I / O có thể định cấuhình (mức điện áp: 3,3 / 2,5 / 1,8 / 1,5V)
Trang 15˗ Đầu ra VGA: VGA DAC (bộ ba tốc độ cao)
˗ Đầu nối nối tiếp DB-9: Cổng RS232 có điều khiển lưu lượng
˗ Đầu nối PS / 2: Đầu nối PS / 2 để kết nối chuột hoặc bàn phím PS2 với DE2-115
˗ Điều khiển từ xa: Module thu hồng ngoại
˗ Đầu nối TV-in: Bộ giải mã TV (NTSC / PAL / SECAM)
˗ Công suất
+ Đầu vào DC của máy tính để bàn
+ Bộ điều chỉnh chuyển mạch và bước xuống LM3150MH
Hình 1-8: KIT DE2-115[3]
Trang 16CHƯƠNG 2 SƠ ĐỒ KHỐI
VÀ XÂY DỰNG CÁC LỆNH
CHO CHIP 2.1 Giới thiệu chung:
Hình 2-1: Sơ đồ khối của chip
˗ Khối chương trình đếm (Program Counter): đếm từ 0000 đến 1111, giám sát địachỉ của lệnh đang hoạt động Ban đầu, bộ đếm chương trình được đặt 0000, vìvậy bộ vi xử lý bắt đầu với vị trí đầu tiên của bộ nhớ
˗ Khối chương trình bộ nhớ (Program Memory): chứa chương trình, mỗi chươngtrình có định dạng là 8 bit với 4 bit quan trọng nhất đại diện cho lệnh và 4 bit cònlại dành cho dữ liệu
˗ Khối tích lũy A (Accumulator A): là một thanh ghi 4 bit, được sử dụng để lưu trữmột trong các phép toán số học, khối tích lũy cũng lưu trữ trung gian kết quả tínhtoán của bộ vi xử lý Khi có yêu cầu (Enable A), kết quả sẽ được đưa và đườngbus nội bộ
˗ Khối tích lũy B (Accumulator B): cũng là một thanh ghi 4 bit, được sử dụng đểchứa số hạng thứ 2 của phép toán số học Ngoài ra, khối này được thêm vào bộtích lũy A để sử dụng phép toán trừ hai số hạng
˗ Khối số học ( Arirthmeti Unit): thực hiện các phép toán số học
Trang 17+ Phép cộng (Addition): S = A + B
+ Phép trừ (Subtraction): S = B + ~A +1
+ Phép logic (And, Or): S = A and B, S = A or B
˗ Khối thanh ghi ngõ vào (Input Register): kích thước 4 bit, cho phép truyền dữliệu từ ngoài vào bộ vi xử lý
˗ Khối thanh ghi ngõ ra (Output Register): kích thước 4 bit, lệnh ở thanh ghi đượcthực hiện cuối cùng sẽ đưa kết quả từ đường bus nội bộ để hiển thị kết quả cuốicùng Thanh ghi thường được nối với một bộ hiển thị
Hình 2-2: Bộ điều khiển tín hiệu Enable
˗ Các hoạt động của chip dựa trên đường bus nội bộ ( IB – Internal Bus) dùng đểđưa một tín hiệu Enable cho phép thực thi hoạt động đó Ví dụ, bộ tích lũy A sửdụng tín hiệu cho phép “Enable A” khi Enable A bật lên mức cao, dữ liệu trong
bộ tích lũy A sẽ được đẩy vào đường bus nội bộ
˗ Các tín hiệu kiểm soát này được cung cấp bởi khối vi điều khiển, đóng vai trò cơbản trong hoạt động của bộ vi xử lý
Bảng 2-1: Bốn khối điều khiển của đường bus nội bộ
Enable Signal Mô tả
EnableA
EnableAlu
Cho phép bộ tích lũy A kiểm soát đường busĐưa kết quả của phép tính số học ( Add, Sub, And và Or) và
Trang 18EnableIn
đường busĐưa dữ liệu 4 bit chứa câu lệnh vào đường busCho phép đưa dữ liệu đầu vào ở bên ngoài vào đường bus bêntrong
2.2 Các lệnh thực thi trong chip vi xử lý
˗ Mỗi lệnh trong con chip thực hiện một chuỗi bốn hoạt động vi mô bên trong, cònđược gọi là vi lệnh Do đó thời gian thực hiện của mỗi lệnh có thể chia thành 4pha (T1 – T4), mỗi pha tương ứng với một vi lệnh Hai giai đoạn đầu tiên đượcgọi là chuỗi nạp, hai giai đoạn cuối cùng được gọi là chuỗi thực hiện lệnh
Hình 2-3: Thực hiện 1 lệnh bao gồm 4 vi lệnh nhỏ riêng biệt
Bảng 2-2: Thực hiện 1 lệnh dựa trên 4 pha
Thực thi bước hai
Nội dung của vị trí bộ nhớ mong muốn được tải vàothanh ghi lệnh
Chương trình đếm địa chỉ bắt đầu tăng lên Thanh ghilệnh cung cấp bộ giải mã vi cấu trúc với lệnh
Tùy vào từng lệnh, bộ vi xử lí thực hiện bước đầucủa chuỗi thực thi
Bộ vi xử lí thực hiện bước hai của chuỗi thực thi
2.2.1 Lệnh không hoạt động – No Operation (NOP = 0000)
˗ Lệnh không hoạt động không có ảnh hưởng, không sửa đổi nội dung trên bất kìthanh ghi nào
˗ Chuỗi nạp ứng với quyền truy cập vào bộ nhớ (ReadMem = 1) và tải lệnh tươngứng (LoadInstr = 1) trong pha 1 Trong pha 2, lệnh được lưu trữ trước đó trong
Trang 19bộ nhớ sẽ được gửi vào bộ vi điều khiển (EnableInstr = 1) ngay khi bộ đếm tănglên (ProCount = 1)
˗ Vì lệnh “Không hoạt động” không ảnh hưởng đến bất kỳ thanh ghi nội bộ nàonên chuỗi thực thi (pha 3, pha 4) không tương ứng với bất kỳ hoạt động cụ thểnào
Hình 2-4: Thực thi các vi lệnh tương ứng lệnh NOP
2.2.2 Lệnh cộng – Addition (ADD = 0001)
˗ Giá trị của bộ tích lũy A được thêm vào lệnh như 1 tham số đi kèm Kết quả phépcộng được cập nhật trên bộ tích lũy A Phép cộng thực hiện cộng 4 bit, số nhớđược bỏ qua Ví dụ, với A = 2, lệnh “ADD3” tương ứng với S = 3 + A, nên S = 3+ 2 Kết quả cuối cùng giá trị của S là 5
Trang 20˗ Bộ cộng được thực hiện giữa giá trị trong bộ tích lũy A và dữ liệu 4 bit như 1tham số được đi kèm trong lệnh cộng Do đó, phép cộng được thực thi với dữliệu chứa trong bộ tích lũy B (Pha 3), sau đó bộ số học sẽ yêu cầu thực hiện cộnggiữa bộ tích lũy A và B (Pha 4), cuối cùng kết quả tính toán sẽ được chuyển vềlại bộ tích lũy A khi có cạnh lên của xung clock ở pha 4.
Hình 2-5: Thực thi các vi lệnh tương ứng lệnh ADD
Trang 210 0 0
0 1 0
1 0 0
1 1 1
˗ Quy tắc AND 2 số nhị phân 4 bit:
+ Cho A[3 0], B[3 0], tính S = A and B
+ Thực hiện phép AND 2 số nhị phân của A và B có trọng số tương ứng vớinhau S[3] = A[3] and B[3], S[2] = A[2] and B[2], S[1] = A[1] and B[1],S[0] = A[0] and B[0]
+ Dựa vào bảng trạng thái phép AND 2 số nhị phân 1 bit, có kết quả S
Hình 2-6: Ví dụ về phép AND 2 số nhị phân 4 bit
0 0 0
0 1 1
Trang 221 0 1
1 1 1
˗ Quy tắc OR 2 số nhị phân 4 bit giống như quy tắc AND 2 số nhị phân 4 bit
Hình 2-7: Ví dụ về phép OR 2 số nhị phân 4 bit
2.2.6 Lệnh nhận ngõ vào – Get Input (IN = 0100)
˗ Dữ liệu nhập ở cổng vào sẽ được đưa vào bộ tích lũy A ở pha thứ 3 Ở pha thứ 4,tất cả các thanh ghi không hoạt động
Hình 2-8: Thực thi các vi lệnh tương ứng lệnh IN
2.2.7 Lệnh xuất ngõ ra – Give Output (OUT = 0011)
Trang 23˗ Dữ liệu của bộ tích lũy A được chuyển đến ngõ ra thông qua đường bus nội bộtrong pha thứ 3 Cổng ngõ ra là một thanh ghi 4 bit ghi nhớ giá trị đầu ra và xuất
ra kết quả lên mạch hiển thị bên ngoài Bộ xử lí không hoạt động trong pha thứ 4
Hình 2-9: Thực thi các vi lệnh tương ứng lệnh OUT
2.2.8 Lệnh nạp bộ tích lũy A – Load Accumulator A (LDA = 0101)
˗ Lệnh nạp bộ tích lũy A với giá trị đưa ra như 1 tham số Ví dụ, lệnh LDA 9 làchuyển giá trị 9 (1001 ở dạng nhị phân) sang bộ tích lũy A Bốn bit giá trị đượcđưa vào đường bus nội bộ sau đó mới được chuyển sang bộ tích lũy Không cóhoạt động trong pha thứ 4
2.3 Bộ nhớ chương trình
˗ Bộ nhớ chương trình chứa tối đa 8 bit, nơi lưu trữ các lệnh thực thi, mỗi lệnh sẽdài 8 bit Mỗi lệnh sẽ được chia thành 2 phần: 4 bit đầu sẽ là 4 bit mã lệnh, 4 bitcuối sẽ là 4 bit dữ liệu
Hình 2-10: Mỗi lệnh chia làm 4 bit lệnh và 4 bit dữ liệu Bảng 2-5: Ví dụ về cộng 2 số nhị phân 4 bit
Trang 24Câu lệnh OpCode
(nhị phân)
OpCode (Hexa) LDA 2
Trang 25Hình 3-1: Sơ đồ khối tích lũy A
Trang 26Hình 3-2: Kết quả mô phỏng khối tích lũy A
Trang 27˗ Cũng như khộ tích lũy A, bộ tích lũy B cũng có 4 flip-flop D Thanh nghi ngõ ra
là các giá trị aluB0 aluB3 để thực hiện phép toán số học Tín hiệu latchB chophép truyền dữ liệu dầu vào (thông qua bàn phím) tới bộ tích lũy B khi rơi vàocạnh xuống của xung clock
Hình 3-4: Sơ đồ khối tích lũy B
Hình 3-5: Kết quả mô phỏng khối tích lũy B
Trang 28Hình 3-6: Dạng sóng mô phỏng bộ tích lũy B
˗ Tại thời điểm t = 310ns, với giá trị ngõ vào B = 7 nhập từ bàn phím, 2 ngõ vàoClearB và LatchB ở mức cao, kích xung clock cạnh xuống, giá trị ngõ ra[AluB3 AluB0] = 0111
= A.B + A.Cin + B.Cin
˗ Từ biểu thức của S và Cout, xây dựng sơ đồ mạch cộng toàn phần
Trang 29Hình 3-7: Sơ đồ mạch cộng toàn phần
Hình 3-8: Kết quả mô phỏng bộ cộng toàn phần
Trang 30Hình 3-9: Dạng sóng mô phỏng bộ cộng toàn phần
˗ Tại thời điểm t = 1200ns, với giá trị ngõ vào A = 1, B = 1 và Cin = 1; giá trị ngõ
ra Cout = 1 và S = 1
3.3.2 Thiết kế bộ số học
˗ Bộ số học thực hiện 4 chức năng là cộng, trừ, AND vào OR 2 số nhị phân 4 bit,
để thêm chức năng trừ cho bộ số học với việc sử dụng bộ cộng toàn phần, phảithiết kế bổ sung thêm:
+ Mạch tạo phần bù cho A
+ Mạch nhỏ tạo giá trị Carry ban đầu bằng 1
˗ Sử dụng bộ chia kênh 2:1, khi OpCode[0] = 0, đầu vào A được truyền đến đầu racùng với đầu vào B sẽ đi qua bộ cộng toàn phần để thực hiện phép cộng Do đó,opCode[0] = 0 tương ứng với việc chuyển A sang chuỗi cộng, trong khiOpCode[0] = 1 tương ứng với việc chuyển nghịch đảo của giá trị A (~ A), phéptoán sẽ thực hiện là S = B + ~A +1 tương ứng với S = B – A (số nhớ đầu tiên sẽđẩy lên 1 và được đưa cùng vào cùng với chuỗi cộng)
˗ Ngõ vào OpCode[0] cũng là điều kiện để thực hiện 2 phép AND và OR, vớiOpCode[0] = 0, thực hiện phép AND và OpCode[0] = 1, thực hiệu phép OR
˗ Do việc thực hiện 4 phép số học cùng 1 lần, OpCode[0] là điều kiện để chọn ra 2phép số học thực hiện Để bộ số học thực hiện 1 lệnh duy nhất, sử dụngOpCode[1] để chọn ra giữa 2 phép số học mà OpCode[0] đã chọn
Trang 31Hình 3-10: Sơ đồ bộ số học
Hình 3-11: Dạng sóng mô phỏng bộ số học
Trang 32˗ Tại thời điểm t = 250ns, với 2 giá trị ngõ vào nhập từ bàn phím A= 03, B = 06, OpCode[1 0] = 00, EnableAlu bật ở mức cao thì giá trị ngõ ra tương ứng là IB_Alu = 09 (IB_Alu = B + A = 06 + 03 = 09), Carry ở mức thấp.
˗ Tại thời điểm t = 400ns, với 2 giá trị ngõ vào A = 03, B = 06, OpCode[1 0] = 01,EnableAlu vẫn giữ trạng thái, giá trị ngõ ra IB_Alu = 03 (IB_Alu = B – A = 06 –
03 = 03), Carry ở mức cao
˗ Tại thời điểm t = 660ns, 2 giá trị ngõ vào A = 05, B = 04, OpCode[1 0] = 11, bộ
số học thực hiện phép OR, EnableAlu = 1, ngõ ra IB_Alu = 05, Carry = 0
˗ Tại thời điểm t = 750ns, ngõ vào A và B vẫn không đổi, OpCode[1 0] = 10, bộ
số học thực hiện phép AND, EnableAlu = 1, ngõ ra IB_Alu = 04, Carry = 0
3.3.3 Mô phỏng mạch con với bộ tích lũy và bộ số học
Hình 3-12: Mạch với bộ tích lũy và bộ số học
Trang 33˗ Ban đầu, chân Reset đang ở mức 0 – tương ứng với trạng thái đang hoạt động củaReset Thanh ghi A và B vẫn đang ở giá trị 0 Mạch sẽ không hoạt động cho đếnkhi đưa chân Reset lên mức 1.
˗ Nhập giá trị mong muốn vào ngõ A, bật LatchA lên mức cao, giá trị sẽ được đưavào bộ tích lũy A ngay tại cạnh xuống của xung Clock sau khi bật LatchA
˗ Tương tự như giá trị B, nhập vào giá trị B, giá trị sẽ được đưa vào bộ tích lũy Bngay tại cạnh xuống của xung Clock sau khi bật Latch B lên 1 Bộ số học sẽ tínhtoán tổng của A + B với ngõ vào OpCode = 00, tính hiệu B – A với OpCode = 01,phép AND với OpCode = 10 và phép OR với OpCode = 11
˗ Bật EnableAlu lên mức cao để hiển thị kết quả phép tính
Hình 3-13: Kết quả mô phỏng bộ tích lũy và bộ số học
Trang 34Hình 3-14: Dạng sóng mô phỏng của bộ tích lũy và bộ số học
˗ Tại thời điểm t = 230ns, các giá trị LatchA, LatchB, MainReset và EnableAlu ởmức cao, với giá trị A = 02, B = 07, 2 giá trị này được đưa vào bộ AluA và AluBkhi có xung clock xuống, giá trị OpCode = 00, tổng của A và B được tính; giá trịngõ ra IB_Alu = 09
˗ Tại thời điểm t = 300ns, ngõ vào OpCode0 được đưa lên mức cao, hiệu của B và
A được tính và kết quả quá trị ngõ ra IB_Alu = 05
˗ Tại thời điểm t = 640ns, OpCode1 = 1, phép OR giữa B và A được thực hiện, kếtquả giá trị ngõ ra IB_Alu = 03
˗ Tại thời điểm t = 670ns, OpCode1 vẫn giữ nguyên trạng thái, OpCode0 = 0, phépAND giữa B và A được thực hiện, kết quả giá trị ngõ ra IB_Alu = 00
3.4 Thanh ghi ngõ vào
˗ Thanh ghi ngõ vào sử dụng bộ đệm 3 trạng thái Không cần sử dụng thanh ghivới flip-flop-D, dữ liệu sẽ được chuyển trực tiếp đến bộ tích lũy A
Trang 35Hình 3-15: Sơ đồ thanh ghi ngõ vào
Hình 3-16: Kết quả mô phỏng trên thanh ghi ngõ vào
Hình 3-17: Dạng sóng mô phỏng thanh ghi ngõ vào
˗ Tại thời điểm t = 300ns, với giá trị nhập vào từ bàn phím DataIn = 7,EnableIn được đưa lên mức cao, giá trị ngõ ra [B3 B0] = 0111
3.5 Thanh ghi ngõ ra
˗ Thanh ghi ngõ vào sử sụng flip-flop D Ở cạnh lên xung clock, dữ liệu sẽ đượclưu vào thanh ghi Điều quan trọng là dữ liệu được lưu khi có cạnh lên của xungclock trong pha thứ 3 mà không phải trên cạnh xuống để tránh phát sinh đồng bộhóa xung đột Do đó, một cổng NAND được sử dụng để kích khi có cạnh lên củaxung clock
Trang 36Hình 3-18: Sơ đồ thanh ghi ngõ ra
Hình 3-19: Kết quả mô phỏng thanh ghi ngõ ra
Hình 3-20: Dạng sóng mô phỏng thanh ghi ngõ ra
Trang 37˗ Tại thời điểm t = 300ns, giá trị nhập vào IB = 7, EnableOut được đưa lên mứccao, ngay tại xung clock cạnh lên giá trị ngõ ra [Out3 Out0] = 0111
3.6 Bộ đếm pha
˗ Để chuyển đổi bộ vi xử lý trên thành một bộ vi xử lý được lập trình đầy đủ, cầnxây dựng một số mạch để tạo ra các tín hiệu điều khiển thích hợp Bộ đếm phaphải tạo ra tín hiệu bốn pha từ Phase0 đến Phase3 ở cạnh xuống của xung đồng
hồ Bộ đếm phải được đặt lại bằng tín hiệu Clear hoạt động ở mức thấp Thiết kếcủa bộ đếm pha dựa trên các chốt nhạy cạnh của flip-flop D và cổng XOR
Hình 3-21: Sơ đồ bộ đếm pha
˗ Khi tín hiệu Clear được bật lên mức cao (tắt kích hoạt) thì các pha xuất hiện tuần
tự từ Phase0 đến Phase3 sau đó lại quay trở về Phase0
˗ Tại thời điểm t = 130ns, khi Clear được bật lên mức 1, các pha bắt đầu chạy từPhase0 đến Phase3 và lặp lại