Quá trình phát triển của IC với độ phức tạp và số lượng transistor ngày càng tăng, điều này đòi hỏi người thiết kế phải nghiên cứu đưa ra các công nghệ chế tạo tiên tiến và phương pháp l
Trang 1Trang
TỔNG QUAN ĐỀ TÀI 4
1.1 Giới thiệu 4
1.2 Tổng quan về tình hình nghiên cứu 5
1.3 Tổ chức nội dung đề tài 6
1.4 Ý nghĩa đề tài: 7
Phần 1: Thiết kế Logic 8
CHƯƠNG 1: CISC và RISC 9
1.1 Bộ xử lý tập lệnh phức tạp(CISC): 9
1.2 Bộ xử lý tập lệnh phức tạp RISC 9
1.2.1 RISC? 9
1.2.2 Kỹ thuật đường ống (pipelining): 10
1.2.3 RISC ngược với CISC: 10
1.3 Xây dựng tập lệnh 13
CHƯƠNG 2: KIẾN TRÚC RISC 32-BIT 15
2.1 Kiến trúc RISC 32-bit 15
2.2 Đơn vị điều khiển 17
2.3 Bộ phận nạp lệnh 18
2.4 Tầng giải mã 20
2.5 Tầng thực thi 21
2.6 Tầng bộ nhớ dữ liệu 22
2.7 Kết quả 23
Phần 2: Thiết kế vật lý 24
CHƯƠNG 1: ASIC 25
1.1 Khái niệm ASIC 25
1.2 Các loại ASIC 25
1.2.1 ASIC đựơc đặc chế hoàn toàn (full-custom ASIC) 26
1.2.2 Các ASIC dựa trên các cell chuẩn (CBIC): 26
1.2.3 Các ASIC dựa trên dải cổng ( Gate-array based ASIC): 28
1.2.4 Các chip logic lập trình được: 29
1.2.5 Dải cổng lập trình được dạng trường (FPGA) 30
1.3 Luồng thiết kế ASIC 32
CHƯƠNG 2: CLOCK VÀ TIMING 38
2.1 Các khái niệm 38
2.2 Phân tích delay trong thiết kế 39
2.2.1 Ảnh hưởng các mức delay 39
2.2.2 Mô hình delay mức CMOS 40
2.2.3 Delay trong liên kết nối (Interconnect Delay) 41
2 2.4 Tính toán trì hoãn RC theo mô hình Elmore 43
2.2.5 Mô hình trì hoãn cổng tuyến tính: 43
2.2.6 Tính toán trì hoãn trong Magma 44
2.2.7 Tính toán định thời trong một đường dẫn 45
Trang 22.3.2 Các kiểu mô phỏng 47
2.3.3 Pre-layout và post-layout STA 50
2.4 CLOCK 51
2.4.1 Kiến trúc hệ thống clock trong RISC: 51
2.4.2 Các kiểu phân bố clock toàn cục: 52
2.5 Ràng buộc chu kỳ clock nhỏ nhất 56
2.5.1 Tính toán chu kỳ nhỏ nhất 56
2.5.2 Tính toán ràng buộc trì hoãn lớn nhất(max-delay) 60
2.5.3 Tính toán ràng buộc trì hoãn nhỏ nhất (min-delay) 62
CHƯƠNG 3: BẢO TOÀN TÍN HIỆU 64
3.1 Những nguyên tắc cơ bản của bảo toàn tín hiệu 64
3.1.1 Ảnh hưởng của tần số 64
3.1.2 Sự không phối hợp trở kháng và bảo toàn tín hiệu 65
3.2 Ảnh hưởng nhiễu xuyên âm (crosstalk noise) 66
3.2.1 Nhiễu delay (Noise Delay) 67
3.2.2 Nhiễu chức năng (functional noise) 68
3.3 Ảnh hưởng của mật độ dòng điện trong dây dẫn 68
CHƯƠNG 4: PHÂN BỐ LƯỚI NGUỒN VÀ HỆ THỐNG I/O 70
4.1 Phân phối nguồn trong chip: 70
4.2 Sự rơi điện áp IR và nhiễu Ldi/ dt: 71
4.3 Bộ lọc nguồn cung cấp: 72
4.4 Hệ thống Input/Output 73
4.2.1.Các mạch I/O pad căn bản: 73
4.2.2 Chèn các diode và buffer tại ngõ ra/ngõ vào 76
CHƯƠNG 5: THIẾT KẾ VẬT LÝ VỚI CÔNG CỤ MAGMA 77
5.1 Giới thiệu công cụ Magma 77
5.1.1 Thuận lợi của công cụ thiết kế dùng Magma 77
5.1.2 Giải pháp của Magma 77
5.2 Luồng thiết kế trong Magma: 78
5.2.1 Fix rtl: 81
5.2.2 Fix netlist: 81
5.2.3 Fix time: 81
5.2.4 Floorplaning 81
5.2.5 Fix cell 82
5.2.6 Fix clock 82
5.2.7 Fix wire 82
5.3 Thiết kế vật lý cho RISC 32-bit dùng công cụ Magma 83
5.3.1 Xây dựng library: 83
5.3.2 Xây dựng ràng buộc constraint 86
5.3.3 Thực hiện tổng hợp (synthesis) 87
5.3.4 Phân tích định thời tĩnh (STA) 88
5.3.5 Phân tích một report trong Magma 94
5.3.6 Phân chia hệ thống thành nhiều thành phần (System partitioning) 94
5.3.7 Lập sơ đồ tầng (floorplaning) 95
5.3.8 Tổng hợp cây clock 101
5.3.9 Thực hiện routing 105
5.3.10 Kiểm tra các qui luật thiết kế 106
5.3.11 Phân tích dòng giới hạn trên hệ thống lưới nguồn: 108
5.3.12 Phân tích IR-Drop 109
Trang 35.3.13 Phân tích công suất 111
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 115
6.1 Kết luận 115
6.2 Hướng phát triển đề tài 116
Tài liệu tham khảo: 118
Trang 4TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu
Hiện nay, thiết kế và chế tạo vi mạch là một lĩnh vực đang phát triển nhanh chóng Quá trình phát triển, cũng như lịch sử phát triển đã chứng minh lợi nhuận mang lại từ lĩnh vực này
Năm 1948, Bardeen và Brattain (Bell Labs) đã đăng ký bằng sáng chế
“Three Electrode Circuit Element Utilizing Semiconductive Materials" đánh dấu sự
ra đời của transistor đầu tiên, được gọi là “point contact transistor” Năm 1951, William Shockley đã phát triển “junction transistor”, một dạng transistor thực tế hơn Năm 1958, Jack Kilby (Texas Instruments) đã đăng ký bằng sáng chế
"Miniaturized electronic circuits" xác nhận sự ra đời của mạch tích hợp đầu tiên (tích hợp các transistor, điện trở, tụ điện…) và đã được chia sẻ giải Nobel vật lý vào năm nhờ phát minh này Năm 1962, công nghiệp bán dẫn vượt qua con số 1 tỷ USD Năm 1963, bằng sáng chế “Low Stand-By Power Complementary Field Effect Circuitry" do Frank Wanlass (Fairchild Semiconductor) đăng ký đã đánh dấu
sự ra đời của CMOS, cơ sở của một số lượng IC khổng lồ ngày nay Năm 1965, Gordon Moore (Fairchild Semiconductor) đã viết rằng mức độ phức tạp của IC sẽ tăng gấp đôi sau mỗi 2 năm và điều đó đã trở thành định luật Moore nổi tiếng vẫn còn đúng cho đến ngày nay Năm 1970, DRAM 1Kbits với qui trình chế tạo PMOS, 8um, kích thước die khoảng 10mm2 xuất hiện Năm 1971, UVEPROM được phát minh Cũng vào năm này, Intel đã cho ra đời vi xử lý 4-bit đầu tiên 4004 Năm
1974, Intel phát triển 8008, vi xử lý 8-bit thương mại rất thành công của họ 8008 được thiết kế với qui trình NMOS, chứa 6000 transistor, tốc độ clock 2MHz và kích thước die là 20mm2 Năm 2000, Intel cho ra đời Pentium 4, với qui trình CMOS 0.18um, chứa 42 triệu transistor, tốc độ clock đến 1.5GHz và kích thước die là 224mm2
Trang 5Hình 1.1: Sự phát triển độ phức tạp TST trong thiết kế Khi vấn đề tốc độ, diện tích chip ngày càng là vấn đề nóng; khi tất cả các ứng dụng như ứng dụng di động, laptop, các thiết bị cầm tay đòi hỏi nhỏ gọn, ít tốn năng lượng ngày càng nhiều thì sự thách thức các mạch tích hợp càng đẩy lên cao hơn Tất cả các nhà nghiên cứu về chip đang cố gắng cân bằng ba yếu tố này một cách hiệu quả nhất
Quá trình phát triển của IC với độ phức tạp và số lượng transistor ngày càng tăng, điều này đòi hỏi người thiết kế phải nghiên cứu đưa ra các công nghệ chế tạo tiên tiến và phương pháp lập trình hiệu quả nhằm tiết kiệm được số lượng cổng trong một thiết kế với diện tích, tiêu tán công suất nhỏ nhất, tốc độ clock cao nhất
1.2 Tổng quan về tình hình nghiên cứu
Thiết kế bộ xử lý kiểu kiến trúc RISC (Reduced Instruction Set Computer) được hình thành và phát triển trong những năm 80 Qua nhiều nghiên cứu về hệ thống máy tính, người ta nhận thấy rằng hầu hết khoảng 80% các lệnh ít được sử dụng Và đề án RISC đầu tiên từ IBM, Stanford và UC-Berkeley IBM 801, Stanford MIPS, và Berkeley RISC 1 và 2, tất cả được thiết kế với mô hình tương tự nhau và được biết như là RISC ngày nay
IC công nghệ Planar – Thiết bị nhớ 1 bit trên chip Memory
1971: Máy tính đầu tiên với một bộ vi
xử lý - 2300 Transistor 2003: Pentium intel IV với 55 triệu transistor
1958: IC đầu tiên với 1
Transistor & 4 thiết bị khác trên
một Chip
1967: IC được tạo đầu tiên với sự hỗ trợ của máy tính
Trang 6nghệ cao mà chưa có trường nào đào tạo Thiếu nguồn nhân lực sẽ xảy ra khi nước
ta tham gia WTO
1.3 Tổ chức nội dung đề tài
Thiết kế RISC là một đề tài rộng Mục tiêu chính là tìm hiểu nguyên tắc hoạt động, xây dựng tập lệnh và thiết kế phần lõi RISC 32-bit dùng ngôn ngữ phần cứng VHDL và thực hiện layout cho thiết kế dùng Magma tool từ công ty Signet Design Solutions Việt Nam Đây là một phần mềm hiện đang được rất nhiều công ty sử dụng như Sigmatel, Motorola, Intel…với rất nhiều tính năng tối ưu về timing, diện tích và phân bố lưới nguồn Bố cục luận văn như sau:
Chương giới thiệu tổng quan về đề tài
Đề tài được chia làm hai phần: Thiết kế logic và thiết kế vật lý
Thiết kế logic (thiết kế Front-End)
Chương 1: Tìm hiểu sự khác nhau giữa CISC và RISC, với các ưu điểm của RISC Từ đó xây dựng tập lệnh cho RISC
Chương 2: Mô tả kiến trúc vật lý của RISC, với tập lệnh cho RISC được xây dựng Từ đó viết chương trình dùng VHDL mô tả bộ xử lý RISC 32-bit thực hiện cộng hai số 8-bit để làm thí dụ
Cùng với sự hỗ trợ MaxPlusII của Altera, đề tài sẽ mô phỏng và kiểm tra hoạt động định thời trên MaxPlusII
Thiết kế vật lý (Thiết kế Back-end)
Đây là thiết kế vật lý (physical design) Kết quả cuối cùng của physical design phải là GDSII Đây là file mô tả hình dạng các lớp layout để các nhà máy chip có thể dùng nó làm các lớp mặt nạ (mask layer)
Thiết kế vật lý bao gồm các phần sau:
Chương 1: Giới thiệu ASIC, các loại ASIC và luồng thiết kế ASIC hiện nay Chương 2: Các vấn đề về định thời trong ASIC, các khái niệm và phân tích định thời tĩnh (STA) Các mô hình tính toán trì hoãn trong thiết kế vật lý và mô hình Magma dùng để tính trì hoãn
Chương 3: Các hệ thống phân phối nguồn và Input/Ouput giao tiếp bên trong chip với thế gới bên ngoài và đặc tính kỹ thuật của nó
Trang 7Chương 4: Bảo toàn tín hiệu thiết kế layout
Chương 5: Kết quả thực hiện layout trong Magma và phân tích
Chương 6: Kết luận các giá trị thiết kế kỹ thuật cho RISC và hướng phát triển đề tài
Trang 8Phần 1: Thiết kế Logic
9 Chương 1: CISC và RISC
9 Chương 2: Kiến trúc RISC 32-bit
Trang 9CHƯƠNG 1: CISC và RISC
9 Định dạng lệnh có chiều dài thay đổi
9 Có nhiều lệnh thực hiện trên các toán hạng bộ nhớ
Các đặc trưng của hầu hết máy tính RISC:
Trang 109 Tất cả các phép toán được thực hiện bên trong thanh ghi
9 Có một số lớn thanh ghi: để giảm giới hạn truy xuất bộ nhớ
9 Kỹ thuật đường ống
Bộ vi xử lý RISC cũng có những hoạt động như bộ vi điều khiển nhưng nó không có nhiều lệnh, vì vậy tốc độ xử lý của nó nhanh hơn
1.2.2 Kỹ thuật đường ống (pipelining):
Kỹ thuật đường ống làm việc như thế nào? Đây là một đặc trưng chuẩn trong
vi xử lý RISC Nó hoạt động giống như một dây chuyền Bởi vì bộ vi xử lý làm việc trên những bước khác nhau của một chỉ thị tại cùng một thời gian, nhiều chỉ thị có thể được thi hành trong một khoảng thời gian ngắn
Nguyên tắc đường ống trong RISC:
Một đường ống của vi xử lý RISC hoạt động dựa vào sự thay đổi của năm quá trình sau:
1 Chỉ thị thực thi từ bộ nhớ
2 Đọc thanh ghi và giải mã các chỉ thị
3 Thực thi chỉ thị hoặc tính toán địa chỉ
4 Truy cập một toán hạng trong bộ nhớ dữ liệu
5 Ghi kết quả vào thanh ghi
Chúng ta thấy rằng chiều dài của một đường ống phụ thuộc vào chiều dài của bước dài nhất Trong khi các chỉ thị CISC thay đổi chiều dài, các chỉ thị RISC
có cùng chiều dài và có thể được thực thi trong một hoạt động đơn giản Một cách
lý tưởng, mỗi trạng thái trong đường ống bộ vi xử lý RISC tốn một chu kỳ để mà bộ
xử lý hoàn thành một chỉ thị trong mỗi chu kỳ clock và trung bình một chu kỳ cho một chỉ thị
1.2.3 RISC ngược với CISC:
Cách đơn giản nhất để kiểm tra sự thuận lợi và bất lợi của kiến trúc RISC là
so sánh nó với kiến trúc trước là kiến trúc CISC
Trang 11Ví dụ nhân hai số bộ nhớ
Hình 1.1: Mô tả phép nhân hai số Bên cạnh là giản đồ trình bày sự sắp xếp lưu trữ cho máy tính Bộ nhớ chính được chia thành vị trí được đánh số từ trong bảng (6, 4) Khối thực thi chỉ thực hiện trên data được nạp vào một trong sáu thanh ghi (A, B, C, D, E, F) Bây giờ ta so sánh cách mà hai bộ xử lý thực thi phép nhân hai số: một số được chứa trong 2:3 và
số khác được lưu trong 5:2 và kết quả tích được lưu tại 2:3
1 Dùng phương pháp CISC:
Mục tiêu chính của kiến trúc CISC là hoàn thành nhiệm vụ chỉ trong vài dòng assembly có thể Điều này đạt được bởi việc xây dựng phần cứng có khả năng hiểu và thực thi hàng loạt các phép toán Với nhiệm vụ này, bộ vi xử lý CISC cần một chỉ thị cho trước gọi là MULT Khi thực thi, MULT nạp hai giá trị vào hai thanh ghi riêng rẻ, sau đó phép nhân được tính trong đơn vị thực thi và lưu tích vào trong thanh ghi Vì vậy, toàn bộ nhiệm vụ của phép nhân hai số được thực thi với một chỉ thị:
MULT 2:3, 5:2
Phép toán nhân được xem như là chỉ thị phức tạp Nó hoạt động một cách trực tiếp trong bank bộ nhớ máy tính, và không yêu cầu người lập trình gọi một cách tường minh bất kỳ một hàm load hay store nào Một thuận lợi chính của hệ thống này là trình biên dịch (complier) phải làm rất ít công việc để biên dịch một phát biểu ngôn ngữ cấp cao thành asembly Bởi vì chiều dài của mã tương đối ngắn,
Trang 12được xây dựng trực tiếp vào trong phần cứng
LOAD A, 2:3 LOAD B, 5:2 PROD A, B STORE 2:3, A
Có nhiều dòng trong đoạn mã, vì vậy cần nhiều RAM được chứa trong các chỉ thị mức asembly Trình biên dịch cũng phải thực hiện nhiều việc để chuyển từ một ngôn ngữ mức cao thành asembly
Tuy nhiên kiến trúc RISC cũng mang nhiều thuận lợi quan trọng Các chỉ thị RISC yêu cầu ít transistor không gian phần cứng hơn chỉ thị CISC Bởi vì tất cả các chỉ thị thực thi cùng một số lượng thời gian (tức là một chu kỳ clock), đường ống có thể thực hiện
Sự tách riêng giữa chỉ thị LOAD và STORE thật sự giảm số lượng công việc
mà máy tính cần thực hiện Sau khi lệnh MULT được thực thi, bộ xử lý tự động xóa thanh ghi Nếu một trong những phép toán cần được dùng cho các tính toán khác,
bộ vi xử lý phải load lại data từ bank bộ nhớ vào trong thanh ghi Trong RISC, phép toán sẽ duy trì trong thanh ghi tới khi giá trị khác được load vào nơi này
Trang 13Bảng 1.1: So sánh giữa máy RISC và CISC
RISC CISC Các chỉ thị đơn giản chiếm một
chu kỳ Các chỉ thị phức tạp chiếm nhiều chu kỳ
Chỉ LOADS/STORES tham chiếu
cứng
Các chỉ thị được phiên dịch bởi vi chương trình
Dạng các chỉ thị cố định Dạng các chỉ thị thay đổi
Chỉ có vài chỉ thị và kiểu định địa
chỉ Có nhiều chỉ thị và kiểu định địa chỉ
Độ phức tạp thuộc về trình biên
Định dạng J Opcode Địa chỉ đích rẽ nhánh
Trang 14lệnh lưư từ (store word) Chương trình bằng hợp ngữ sau tính A=B+C
LW $2, B ; nạp thanh ghi 2 bằng giá trị của bộ nhớ ở địa chỉ B
LW $3, C ; nạp thanh ghi 3 bằng giá trị của bộ nhớ ở địa chỉ C ADD $4, $2, $3 ; Thanh ghi 4 = B+C
SW $4, A ; giá trị của bộ nhớ ở địa chỉ A= thanh ghi 4
Lệnh của khuôn dạng I như BEQ sẽ rẽ nhánh nếu hai thanh ghi có cùng giá trị Ví dụ lệnh, BEQ $1 $2 LABEL sẽ nhảy đến LABEL nếu hai thanh ghi 1 và 2 bằng nhau Trường địa chỉ của lệnh rẽ nhánh sẽ chứa độ dời (offset) từ địa chỉ hiện tại PC phải cộng với trường địa chỉ để tính địa chỉ rẽ nhánh Ta gọi là địa chỉ tương đối theo PC
Bảng 1.3: Tóm tắt các lệnh cơ bản của RISC như sau
Trang 15CHƯƠNG 2: KIẾN TRÚC RISC 32-BIT
2.1 Kiến trúc RISC 32-bit
Kiến trúc RISC gồm năm module chính: Module tìm nạp lệnh (IFETCH) chứa bộ nhớ chương trình, bộ đếm chương trình PC và phần cứng tăng bộ đếm chương trình để tính địa chỉ của lệnh kế Module bộ điều khiển (CONTROL) chứa mạch logic cho đơn vị điều khiển Module giải mã (IDECODE) chứa các thanh ghi 32-bit Module thực thi (EXECUTE) chứa địa chỉ, dữ liệu rẽ nhánh của ALU, và mạch cộng địa chỉ rẽ nhánh dùng cho các lệnh rẽ nhánh tương đối theo PC Module
bộ nhớ (DMEMORY) chứa bộ nhớ dữ liệu
Trang 172.2 Đơn vị điều khiển
Đơn vị điều khiển với ngõ vào 6-bit opcode từ 32-bit của một chỉ thị lệnh tạo
ra 8 tín hiệu điều khiển để điều khiển các tầng khác nhau của bộ xử lý Đơn vị này điều khiển tất cả hoạt động của bộ xử lý Module này tạo ra tất cả các tín hiệu để điều khiển hoạt động đọc ghi của tập thanh ghi và bộ nhớ dữ liệu, tín hiệu điều khiển đơn vị quyết định rẽ nhánh
Tín hiệu RegDst: tín hiệu cho phép vào thanh ghi đích
Tín hiệu Branch: quyết định sự rẽ nhánh của bộ đếm
Tín hiệu MemRead: tín hiệu cho phép đọc dữ liệu từ bộ nhớ
Tín hiệu ALUOp: Điều khiển tới khối ALU thực hiện các phép toán số học và logic
Tín hiệu MemWrite : cho phép ghi dữ liệu vào bộ nhớ
Tín hiệu MemtoReg: Cho phép truy suất bộ nhớ tới thanh ghi
Hình 2.2: Giao diện đơn vị điều khiển
Hình 2.3: Mô phỏng chức năng đơn vị điều khiển
Trang 182.3 Bộ phận nạp lệnh
4
Clock Zero
Branch
Next
PC ADD Result
PC+4
M U X 0
1
ADD
PC
Instruction Memory
Instruction [31-0]
Read Address
Hình 2.4: Mô tả các khối chức năng đơn vị nạp lệnh Tầng nạp lệnh bao gồm các đơn vị: bộ đếm chương trình PC (Program Counter), bộ nhớ lệnh và đơn vị quyết định rẽ nhánh
Bộ đếm chương trình PC :
Bộ đếm chương trình chứa địa chỉ của lệnh sẽ được nạp từ bộ nhớ lệnh trong thời gian của chu kỳ kế tiếp PC sẽ tăng lên 4 trong mỗi chu kỳ xung clock, nếu lệnh thực thi không phải là lệnh rẽ nhánh Nếu lệnh thực thi là lệnh rẽ nhánh thì PC sẽ tăng hoặc giảm lượng bằng với lượng offset của nhánh
Bộ nhớ lệnh
Bộ nhớ lệnh chứa các lệnh mà bộ vi xử lý sẽ thực hiện Ngõ vào của đơn vị này là địa chỉ 8-bit từ bộ đếm chương trình, ngõ ra các lệnh có độ dài 32-bit Bộ nhớ lệnh là ROM với kích thước 256X32 Chương trình ROM 256X32:
Bộ nhớ lệnh chứa chương trình thực thi
Trang 19[00 FF]: 00000000; nop (add r0,r0,r0)
Bắt đầu các lệnh cần thực thi
Địa chỉ bộ nhớ là các từ 8bit
00: 8C020000; lw $2,0 ;memory(00)=55 01: 8C030001; lw $3,1 ;memory(01)=AA 02: 00430820; add $1,$2,$3
03: AC010003; sw $1,3 ;memory(03)=FF 04: 1022FFFF; beq $1,$2,-4
05: 1021FFFA; beq $1,$1,-24 End;
Đơn vị quyết định rẽ nhánh:
Có nhiệm vụ xác định có hoặc không có lệnh rẽ nhánh xảy ra hay không dựa vào tín hiệu branch từ đơn vị điều khiển và cờ zero từ đơn vị logic số học Ngõ ra là một bit Hai tín hiệu này đồng thời ở mức cao khi có lệnh rẽ nhánh Ngõ ra là tín hiệu điều khiển bộ Mux trong việc quyết định tăng PC lên 4 hay tăng một lượng offset
Hình 2.5: Mô phỏng chức năng đơn vị nạp lệnh
Trang 202.4 Tầng giải mã
I
Instruction [15 – 0]
Memto Reg Read Data ALU Result
Instruction [15 – 11]
Instruction [20 – 16]
Instruction [25 – 21]
Reg Dst
M U X
0 1
M U X
0 1
Sign Extend
32 16
Read Register 2
Read Data 1
Read Register 1 Registers
Write Register
Read Data 2
Write Data RegWrite
Hình 2.6: Các khối chức năng đơn vị giải mã Khối giải mã lệnh gồm: tầng giải mã chứa dải thanh ghi, các Mux chọn tín hiệu, và đơn vị mở rộng dấu
Bộ RISC chứa các thanh ghi 32-bit Để tăng tốc việc tổng hợp và mô phỏng, dải thanh ghi được giảm xuống thành 8 thanh ghi 8-bit, từ R0 tới R7 Trong đó thanh ghi R0 là thanh ghi đặc biệt luôn chứa giá trị 0 và lệnh ghi không thực hiện được với thanh ghi này Đây là tập thanh ghi có thể thực hiện đồng thời hai lệnh đọc
và lệnh ghi Tập thanh ghi này dùng để lưu kết quả trung gian của phép tính, hạn chế việc sử dụng bộ nhớ Vì thế có thể giảm được các lệnh truy suất từ bộ nhớ Đơn
vị mở rộng dấu dùng để mở rộng số 16-bit thành 32-bit
Trang 21Hình 2.7: Mô phỏng chức năng đơn vị giải mã
2.5 Tầng thực thi
Hình 2.8: Các khối chức năng đơn vị thực thi
Tầng thực thi của RISC bao gồm một đơn vị số học-logic (ALU) để thực hiện các phép tính số học, phép tính logic và mạch cộng rẽ nhánh cộng các giá trị offset tương đối theo PC
Bộ cộng rẽ nhánh
Mạch cộng rẽ nhánh dùng để cộng các giá trị địa chỉ offset vào giá trị PC hiện
Trang 22Đơn vị logic số học đảm nhiệm tất cả các phép toán logic và số học xảy ra bên trong bộ vi xử lý
Hình 2.9: Mô phỏng chức năng đơn vị thực thi
2.6 Tầng bộ nhớ dữ liệu
Data Memory
Read Data Address
Write Data MemWrite
MemRead
Hình 2.10: Giao diện đơn vị bộ nhớ dữ liệu Tầng bộ nhớ dữ liệu của RISC dùng một RAM với chức năng chứa bộ nhớ dữ liệu Bộ nhớ dữ liệu bao gồm 256 vị trí 8-bit Bộ nhớ dùng chức năng LPM_RAM_DQ, một khối EAB trong FLEX10K khi thiết kế trên FPGA Tuy nhiên, khi thực hiện layout trên ASIC (application specific IC), khối RAM này được dùng như một IP, được mua từ một nhà cung cấp RAM Trong thiết kế layout,
ta xem khối RAM này như một hộp đen (Blackbox ) chỉ biết hình dạng, kích thước
và số pin giao tiếp với bên ngoài (sẽ đề cập chi tiết trong phần thiết kế vật lý)
Bộ nhớ dữ liệu thực hiện cộng hai số 8-bit có giá trị 55H và AAH
Ram chứa bộ nhớ dữ liệu, kích thước 256X8
Trang 23Hình 2.11: Mô phỏng chức năng đơn vị bộ nhớ dữ liệu
Bộ nhớ dữ liệu RISC đươc khởi động từ giá trị trong RAM Bộ nhớ này đựơc nạp với các giá trị là địa chỉ từ, không phải là giá trị địa chỉ byte Hai giá trị 55 và
AA ở các địa chỉ byte 0 và 4 Các vị trí còn lại đều đựơc khởi động bằng 0
2.7 Kết quả
Kết nối 5 module trên và mô phỏng cộng hai số 8bit làm thí dụ có giá trị 55H
và AAH, với bộ nhớ chương trình nạp trong ROM, và bộ nhớ dữ liệu nạp trong RAM ta đựơc dạng sóng như sau:
Trang 24Phần 2: Thiết kế vật lý
9 Chương 1: ASIC
9 Chương 2: Clock và timing
9 Chương 3: Phân bố lưới nguồn và hệ thống I/O
9 Chương 4: Bảo toàn tín hiệu
9 Chương 5: Thiết kế vật lý với công cụ Magma
9 Chương 6: Kết luận và hướng phát triển đề tài
9 Tài kiệu tham khảo
Trang 25CHƯƠNG 1: ASIC
1.1 Khái niệm ASIC
ASIC("a-sick") viết tắt của Application-Specific Integrated Circuit
ASIC là một mạch tích hợp được dùng trong một ứng dụng xác định theo nhu cầu của người dùng, thay vì là dùng với mục đích chung Ví dụ một chip được thiết kế để chạy trong cell phone là một ASIC Các ASIC hiện nay thường bao gồm toàn bộ các bộ xử lý 32-bit, các khối bộ nhớ như ROM, RAM, EEPROM và thường được gọi là SoC(System-on-a-chip)
ASIC được xây dựng bằng việc kết nối các khối mạch đã được xây dựng theo các phương pháp mới Do các khối mạch sử dụng đã có sẵn nên việc sản xuất một ASIC mới dễ dàng hơn nhiều so với việc thiết kế một vi mạch từ những phác thảo ban đầu
ASIC ngày nay được ứng dụng hầu như khắp mọi nơi, từ các máy móc tự động để điều khiển các chức năng của các phương tiện truyền thông, xe cộ, tàu vũ trụ, các hệ thống xử lý, các dây chuyền công nghiệp, và ngay cả trong các thiết bị cầm tay PDA
FPGA bao gồm một khối logic có thể lập trình được và kết nối các khối với nhau có thể lập trình, điều này cho phép FPGA dùng trong nhiều ứng dụng khác nhau Với các thiết kế nhỏ và số lượng nhỏ, FPGA hiệu quả hơn ASIC về tính kinh
Có hai kiểu thiết kế IC: full-custom IC và semicustom
Một IC hoàn toàn tùy thuộc vào khách hàng (full-custom IC), bao gồm tất cả các cell logic được thiết kế theo yêu cầu của khách hàng Việc làm theo yêu cầu
Trang 26là đắt tiền Các full-custom IC thường dùng cho một ứng dụng cụ thể, do vậy có thể gọi một số trong chúng là full-custom ASIC
Các semicustom ASIC là các ASIC tuỳ thuộc một phần vào khách hàng Các semicustom ASIC có các cell logic được thiết kế trước và một số lớp mặt nạ tuỳ thuộc vào khách hàng Việc sử dụng các cell được thiết kế trứơc từ một thư viện cell (cell library), làm cho người thiết kế ngày càng dễ dàng hơn Có hai loại semicustom ASIC: các ASIC dựa trên cell chuẩn ( standard cell-based ASIC) và các ASIC dựa trên dải cổng (gate-array-based ASIC) Tiếp đến là các ASIC lập trình được (programmable ASIC) Các ASIC lập trình được đều có các cell logic được thiết kế trước và không có lớp mặt nạ nào tuỳ thuộc vào khách hàng Có hai loại ASIC lập trình được: thiết bị logic lập trình được và dải cổng hiệu ứng trường lập trình đựơc FPGA (field-programable gate array)
1.2.1 ASIC đựơc đặc chế hoàn toàn (full-custom ASIC)
Trong full-custom ASIC, người kỹ sư thiết kế một số hoặc tất cả các cell logic, các mạch hoặc layout một cách cụ thể cho một ASIC Kỹ sư sẽ không dùng các cell được mô tả trước Phương pháp này chỉ có ý nghĩa khi không có thư viện cell sẵn thích hợp Có thể các cell hiện tại không đủ nhanh hay đủ nhỏ hoặc tiêu thụ nhiều công suất Ta có thể dùng thiết kế full-custom nếu công nghệ ASIC là mới hoặc chuyên dụng đến mức không có thư viện hiện hành nào phù hợp hoặc ASIC chuyên dụng đến mức phải thiết kế lại tùy thuộc theo yêu cầu của khách hàng Ngày càng ít full-custom IC được thiết kế, chỉ còn thiết kế ASIC hỗn hợp tương tự-số là đang lớn mạnh
1.2.2 Các ASIC dựa trên các cell chuẩn
(CBIC):
Các ASIC dựa trên cell chuẩn( cell-based
IC), sử dụng các cell logic được thiết kế trước ( thí
dụ cổng AND, cổng OR, các bộ ghép kênh, flipflop)
được gọi là các cell chuẩn
dựa trên cell, có một miền cell chuẩn cùng 4 khối cố định Miền cell chuẩn chứa các cell
Trang 27Hình bên là một ASIC hoàn chỉnh dựa trên cell có một miền cell chuẩn và 4 khối cố định.Các hình vuông nhỏ là các cell đệm liên kết với các chân của vỏ
Các khối trong một CBIC được tạo từ các dạng cell chuẩn, giống như một bức tường được xây bởi các viên gạch Các vùng cell chuẩn có thể được kết hợp với các cell lớn hơn được thiết kế trước, có thể là các bộ vi điều khiển hoặc ngay cả bộ
vi xử lý, gọi là các megacell Các megacell còn được gọi là các megafunction, các khối này luôn tùy thuộc vào khách hàng, các macro ở mức hệ thống, các khối cố định, các lõi (core), hoặc các khối chức năng chuẩn (functional standard block)
Người thiết kế ASIC chỉ cần xác định vị trí các cell chuẩn và liên kết nối trong một CBIC Tuy nhiên các cell chuẩn có thể được đặt bất cứ nơi nào trên miếng silic, điều này có nghĩa là tất cả các lớp mặt nạ của một CBIC đều tùy thuộc vào khách hàng và là duy nhất đối với một khách hàng cụ thể Lợi ích của các CBIC
là người thiết kế tiết kiệm được thời gian, tiền bạc và giảm rủi ro bằng cách sử dụng các cell chuẩn (standard-cell library) được thiết kế trước, được kiểm tra trước, và được mô tả trước Hơn nữa, mỗi một cell chuẩn có thể được tối ưu hóa riêng rẻ Thí
dụ trong thời gian thiết kế thư viện cell, mỗi một và mọi transistor trong mọi cell chuẩn có thể được chọn để cực đại hóa tốc độ và tối thiểu hóa kích thước Bất lợi của CBIC là thời gian và chi phí thiết kế hoặc mua thư viện cell chuẩn, thời gian cần có để chế tạo tất cả các lớp của ASIC đối với mỗi một thiết kế mới
Mỗi một cell chuẩn trong thư viện được được xây dựng bằng cách sử dụng các thiết kế hoàn toàn tùy thuộc vào khách hàng, nhưng ta có thể sử dụng các mạch
đã được thiết kế trước và được mô tả trước mà không phải tự thực hiện bất kỳ thiết
kế hoàn toàn tùy thuộc vào khách hàng nào cả Kiểu thiết kế này cho ta cùng các lợi ích về hiệu suất và tính linh động của một full-custom ASIC, nhưng giảm bớt thời gian thiết kế và giảm bớt rủi ro
Việc thiết kế cell chuẩn cho phép tự động hóa quá trình lắp đặt một ASIC Các nhóm cell ăn khớp nhau theo chiều ngang tạo thành các hàng Các hàng này xếp chồng nhau theo chiều dọc và tạo thành các khối linh hoạt mà ta có thể tạo hình dáng cho nó trong quá trình thiết kế Ta có thể linh hoạt nối một khối gồm nhiều hàng này với một khối cell chuẩn khác hoặc các khối logic khác tùy vào khách
Trang 28Cả hai ASIC dải cổng và dựa trên cell đều sử dụng các cell, đều thiết kế trước, nhưng ta có thể thay đổi các kích thước transistor trong một cell chuẩn để tối
ưu hóa tốc độ và hiệu suất, nhưng kích thước các linh kiện trong dải cổng là cố định
1.2.3 Các ASIC dựa trên dải cổng ( Gate-array based ASIC):
Để giảm thời gian thiết kế, bao gồm các cell nền và cell sơ cấp (primitive cell)
Có các loại ASIC dựa trên dải cổng (gate-array based ASIC) bao gồm:
9 Dải cổng được chia theo kênh (channel gate-array)
9 Dải cổng không chia kênh (channeless gate-array)
9 Dải cổng có cấu trúc (structured gate-array)
1 Dải cổng được chia kênh:
Các tính chất quan trọng của loại MGA này là:
9 Chỉ có liên kết nối tùy thuộc vào khách hàng
9 Liên kết nối sử dụng các khoảng cách được xác định trứơc giữa các hàng của các cell nền
9 Thời gian sản xuất khoảng từ hai ngày tới hai tuần
Dải cổng được chia kênh tương tự như một CBIC: cả hai đều sử dụng các hàng cell được phân cách bởi các kênh, các kênh này được sử dụng cho liên kết nối Một khác biệt giữa chúng là khoảng cách dành cho liên kết nối giữa các hàng cell là
cố định theo chiều cao trong dải cổng được chia kênh, trong khi đó khoảng cách giữa các hàng cell có thể điều chỉnh được trong CBIC
Hình 1.2: Định dạng các ASIC dựa trên dải cổng
a) Dải cổng dược chia kênh b) Dải cổng không chia kênh
c) Dải cổng có cấu trúc
Trang 292 Dải cổng không chia kênh:
Dải cổng không chia kênh còn gọi là dải cổng kênh tự do (channel-free gate array) Có các tính chất quan trọng của loại MGA sau:
9 Chỉ có một lớp mặt nạ tùy thuộc vào khách hàng-liên kết nối
9 Thời gian sản xuất từ hai ngày tới hai tuần
Khác biệt chính giữa dải cổng không chia kênh và dải cổng được chia kênh là không có các vùng được xác định trước dự trữ cho việc định đường dẫn giữa các cell trong dải cổng không chia kênh Thay vào đó ta định tuyến trên đỉnh các cá thành phần dải cổng
3 Dải cổng có cấu trúc:
Dải cổng được nhúng (embedded gate array) hoặc dải cổng có cấu trúc kết hợp một số tính chất của CBIC và một số tính chất MGA Một trong những điểm bất lợi của MGA là cell nền dải cổng cơ bản cố định Điều này làm cho việc thực hiện bộ nhớ sẽ khó khăn và không hiệu quả Trong một dải cổng được nhúng ta dự trữ một vùng nào đó trong IC và dành riêng vùng này cho một chức năng cụ thể
Các tính chất quan trọng của MGA này:
9 Chỉ có liên kết nối tùy thuộc vào khách hàng
9 Các khối tùy thuộc vào khách hàng có thể nhúng được
9 Thời gian sản xuất từ hai ngày tới hai tuần
Dải cổng được nhúng cho hiệu quả cải thiện diện tích và hiệu suất được gia tăng của một CBIC cũng như giá thành thấp hơn và thời gian thay đổi hoàn toàn nhanh hơn của một MGA Bất lợi của dải cổng được nhúng là chức năng sẽ cố định
1.2.4 Các chip logic lập trình được:
Các linh kiện logic lập trình được PLD (programmable logic device) là các
IC chuẩn có sẵn dưới dạng các cấu hình chuẩn từ sách tra cứu linh kiện và được bán với số lượng lớn Tuy nhiên, các PLD có thể được cấu hình hay lập trình cho một ứng dụng cụ thể
Trang 30Hình 1.3: Định dạng chip logic lập trình được PLD
Các tính chất của một PLD:
9 Không có lớp mặt nạ hay cell logic nào tùy thuộc vào khách hàng
9 Thời gian thay đổi hoàn toàn thiết kế nhanh
9 Khối liên kết nối lập trình được lớn, duy nhất
Ma trận các macrocell logic gồm mạch logic dải lập trình được gồm các flop hay bộ chốt
flip-Loại đơn giản nhất của IC này là ROM, EEROM…
1.2.5 Dải cổng lập trình được dạng trường (FPGA)
Trên PLD một bậc về độ phức tạp là dải cổng lập trình được dạng trường FPGA FPGA thường lớn hơn và phức tạp hơn so với PLD
Tất cả FPGA đều chứa một cấu trúc
các cell logic cơ bản lập trình được, được
bao quanh bởi các liên kết nối lập trình được
Đặc điểm chung:
9 Không có lớp mặt nào tùy thuộc vào khách hang
9 Phương pháp lập trình các cell logic cơ bản và liên kết nối
9 Lõi là dải có hệ thống các cell logic cơ bản lập trình được, có thể thực
Hình 1.4: Khuôn dạng dải cổng lập trình được dạng trường FPGA
Trang 31hiện hệ tổ hợp cũng như hệ tuần tự
9 Ma trận các liên kết nối lập trình được bao quanh các cell logic cơ bản
9 Các cell I/O lập trình được bao quanh lõi
9 Thời gian thay đổi hoàn toàn thiết tế trong vài giờ
Trang 321.3 Luồng thiết kế ASIC
Quá trình thiết kế ASIC là một chuỗi các bước cần thực hện Trong mỗi quá trình thực hiện một quá trình khác nhau
Hình 1.5: Giản đồ mô tả các bước thiết kế ASIC
Physical design
Trang 331 Nhập thiết kế (Design entry): là phương pháp chung nhất cho thiết kế
ASIC Có hai cách để mô tả phần cứng Dùng ngôn ngữ mô tả phần cứng (HDLs) như Verilog hoặc VHDL để mô tả hành vi chức năng thiết kế (mô tả RTL), hoặc vẽ
sơ đồ mạch (ở mức transistor)
Hình 1.6: Hai cách nhập thiết kế
2.Tổng hợp logic (Logic synthesis):
Hình 1.7: Các yêu cầu ngõ vào để tổng hợp netlist Quá trình này biến đổi từ mô tả mức truyền thanh ghi (RTL) tới cổng mức netlist Các netlist mức cổng này bao gồm các cell, macro mức cổng được kết nối nhau Các mô hình của các cell mức cổng được chứa trong thư viện kỹ thuật Các cổng mức netlist đã được tối ưu cho diện tích và độ trễ, khả năng kiểm tra, tối ưu công suất
Các ngõ vào là mức truyền thanh ghi (RTL) như các mô tả VHDL, các ràng buộc về thời gian (constraints) và thư viện kỹ thuật (library) Quá trình tổng hợp tạo
Trang 34• Mô tả mức truyền thanh ghi(RTL):
Đặc trưng bởi các thanh ghi và các logic tổ hợp với nhau Các thanh ghi là các hình vuông được kết nối tới các tín hiệu clock Các logic tổ hợp được mô tả bởi các biểu thức logic và các phát biểu tuần tự (CASE, IF then ELSE ), các chương trình con, hoặc các phát biểu đồng thời
Hình: 1.8 : Mô tả RTL giữa hai thanh ghi
• Các ràng buộc định thời: (timing constraints)
Constraint được dùng để điều khiển ngõ ra của quá trình tối ưu (optimization) và ánh xạ (mapping) Constaints sẽ đưa ra các ràng buộc để quá trình tối ưu và ánh xạ được gặp nhau và điều khiển sự thực thi kiến trúc của thiết kế
CLK
Mạch Logic tổ hợp (Combinational Logic)
Ràng buộc cho Clock
Diện tích:
1mm2
Ràng buộc cho delay
Ràng buộc cho kích thứơc chip
Hinh 1.9 Các ràng buộc cho thiết kế
Trang 35• Thư viện kỹ thuật:
Thư viện bao gồm tất cả các thông tin cần thiết cho quá trình synthesis để tạo
ra netlist cho thiết kế dựu trên các hành vi logic và ràng buộc định thời trong thiết
kế Thư viện kỹ thuật bao gồm cả chức năng của cell và diện tích của cell, timing ngõ vào và ra, ràng buộc trong fanout của cell, timing check được yêu cầu của cell
và hình dạng của cell để dùng trong thiết kế vật lý
• Synthesis:
Để chuyển đổi từ mô tả RTL tới mức cổng, cần ba bước thông thường sau: Trước tiên, mô tả RTL được chuyển thành mô tả boolean chưa tối ưu thường bao gồm các cổng ban đầu như AND, OR, Flip-flop, latch Điều này chỉ đúng chức năng nhưng chưa được tối ưu hoàn toàn.Tiếp theo, các thuật toán tối ưu boolean thực thi để tạo ra mô tả các giá trị boolean tối ưu Cuối cùng nó được ánh xạ sang cổng logic thực sự
Hinh 1.10: Thứ t ự các bước synthesis từ RTL tới netlist
3 Phân chia thiết kế:
Chia thiết kế thành các thiết kế nhỏ hơn Mỗi thiết kế được thiết kế một cách độc lập Điều này làm giảm sự phức tạp của các chương trình lớn và dễ dàng hơn trong thiết kế những chip lớn
Trang 36có đúng chức năng không
5 Phân chia hệ thống thành nhiều thành phần (System partitioning)
Chia hệ thống lớn thành các khối nhỏ để dễ thực hiện và thời gian thiết kế nhanh Có thể phân chia theo kiểu phân cấp (hierachical design) hoặc không phân cấp (flatten design) tuỳ theo thiết kế lớn hay nhỏ và ý chủ định của người thiết kế để tối ưu tài nguyên, timing, công suất, rơi áp (IR-Drop) hoặc sử dụng lại (reuse)
6 Lập sơ đồ tầng (Floorplaning):
¾ Sắp xếp các khối (block) nhỏ trong một chip lớn
¾ Quyết định vị trí của I/O pads, hệ thống lưới nguồn (power mesh), macro và các kiểu phân bố nguồn
¾ Tạo kích cở các hàng để đặt các cell (cellrow)
7 Định vị trí (Placement):
Các tool sẽ tự động thực hiện qui trình định vị trí Đặt các cell một cách hợp
lý trên các cellrow với diện tích và khả năng định tuyến tốt nhất dẫn tới timing tốt nhất có thể
8 Định đường dẫn hay định tuyến (Routing)
Chuyển các kết nối logic tới các kết nối vật lý với định tuyến ngắn nhất có thể Các yêu cầu cho các lớp (layer) bao gồm các qui luật (rules) của các lớp routing, các yêu cầu về tải (load), các qui luật di trú điện tích (electromigration) cho mỗi lớp Dùng các thông tin theo yêu cầu này, các tool sẽ thực hiện layout một cách
tự động để tối ưu diện tích nhỏ nhất và đạt được timing tốt nhất
9 Trích mạch (Circuit extraction):
Tạo ra các điện dung ký sinh và điện trở liên quan tới các kết nối nhau với các xuyên qua (via) , và các kết nối Sau đó, tính toán lại timing của các tín hiệu liên kết nối sau khi cell được đặt và routing Các giá trị delay này được đưa trở lại bộ
mô phỏng mạch để kiểm tra lại thiết kế sau quá trình layout Kết quả của trích mạch
là một tập tin định dạng SDF (Standard Delay Format) Tập tin này sẽ được dùng kết hợp với netlist để thể hiện giá trị thật của thiết kế vật lý
Trang 37Hình 1.11: Các tụ, điện trở ký sinh dây dẫn
10 Mô phỏng sau layout (Postlayout simulation)
Kiểm tra timing sau quá trình layout và kiểm tra xem thiết kế có còn hoạt động đúng với các cell thêm vào và tải liên kết nối được thêm vào
Trang 38CHƯƠNG 2: CLOCK VÀ TIMING
2.1 Các khái niệm
Trong hệ thống VLSI, clock có lẽ là tín hiệu quan trọng nhất, bởi vì nó điều khiển tốc độ xử lý dữ liệu và thông tin Một mạng clock phân phối clock từ bộ tạo clock (clock nguồn) tới ngõ vào clock của các cổng đồng bộ Các phần tử cổng logic thường có delay khác nhau, vì vậy các delay qua các đường dẫn (path) sẽ khác nhau
Có một số khái niệm quan trọng liên quan tới clock như: jitter và skew
Hình 2.1: Mô hình khái niệm jitter và skew Thời gian thiết lập (setup time): khoảng thời gian mà tín hiệu phải giữ ở trạng thái ổn định trước khi tín hiệu clock thay đổi tích cực
Dữ liệu phải ở trạng thái ổn định trong khoảng thời gian màu đen đậm để clock có thể lấy mẫu chính xác giá trị bit khi có sự thay đổi cạnh clock
Hình 2.2 Thời gian thiết lập (setup time) và thời gian giữ (hold time)
Clk
100 0
Data
PLL
• Jitter - sự thay đổi trong chu kỳ clock nguồn
• Skew – Sự khác nhau thời gian tới tại các endpoint
Hold Time Setup Time
Trang 39Hold timing: khoảng thời gian mà tín hiệu phải giữ ở trạng thái ổn định sau khi tín hiệu clock thay đổi tích cực
2.2 Phân tích delay trong thiết kế
2.2.1 Ảnh hưởng các mức delay
Trong thiết kế, có nhiều đường dẫn logic (logic path) không yêu cầu ta phải tốn nhiều công sức để thỏa mãn các ràng buộc về timing Tuy nhiên, có một
số đường dẫn quan trọng được gọi là các critical path yêu cầu ta phải tính toán
trì hoãn (delay) ở nhiều mức thiết kế khác nhau Các công cụ phân tích định thời (timing) sẽ tìm các đường tín hiệu chậm nhất trong thiết kế, một đường dẫn (path) quan trọng cần được phân tích và tối ưu tại bốn mức sau:
¾ Mức kiến trúc
¾ Mức cổng logic
¾ Mức mạch (mức transistor)
¾ Mức layout
Mức kiến trúc là quan trọng nhất Nó đòi hỏi một kiến thức rộng và hiểu rõ
về chức năng của đường dẫn như cần bao nhiêu cổng để thỏa mãn một chu kỳ clock, chiều dài liên kết nối như thế nào, delay của nó là bao nhiêu Đôi khi phải đánh đổi số mức logic, làm đường dẫn ngắn lại, giảm tốc độ v.v để đạt được trì hoãn qua đường dẫn như mong muốn
Tối ưu timing mức cổng bao gồm chọn khối chức năng nào phù hợp như
dùng bộ cộng dạng ripple carry hay lookahead, số mức cổng trong một chu kỳ
clock, số fan-in, fan-out của cổng Sự tổng hợp từ mức hàm tới mức cổng cũng đòi hỏi kinh nghiệm và kỹ năng cũng như sự tối ưu của bộ tổng hợp logic Tuy nhiên, không thể nào tối ưu tốt một thiết kế khi thiết kế không tốt tại mức kiến trúc
Một khi một cổng logic đã được chọn, delay có thể được tinh chỉnh tại mức mạch (circuit level) bằng cách chọn theo kích cỡ transistor hoặc dùng các kiểu khác nhau của cổng CMOS
Cuối cùng delay phụ thuộc vào lập sơ đồ tầng (floorplan) Đây cũng là một
Trang 40delay rất cao nếu floorplaning không đúng
Tác giả tập trung phân tích hai thành phần tính toán delay là tối ưu hóa mức mạch và kỹ thuật layout (tối ưu hóa delay trong liên kết nối)
Tối ưu hóa về cách thiết kế đường dẫn dữ liệu (tối ưu hóa kiến trúc) chủ yếu tập trung vào thiết kế logic Người thiết kế logic phải hiểu cụ thể chức năng của từng đường dẫn (path) và từng khối, trên đó tối ưu trì hoãn qua từng đường dẫn
Tối ưu hóa mức cổng là cách người làm thư viện đưa ra, nó phụ thuộc vào công nghệ chế tạo CMOS cũng nhu cách tổ chức, sắp xếp các NMOS và PMOS
để thành các cell chuẩn Đặc tính kỹ thuật CBIC (cell based IC) không cho người thiết kế ASIC tối ưu tại mức cổng
2.2.2 Mô hình delay mức CMOS
Tối ưu hóa về layout được phân tích ở các chương sau Mô hình delay mức cổng CMOS bao gồm một điện trở R và tụ C Khi các transistor ON, các transistor được xem như một điện trở nối với tụ
Hình 2.3: Mạch tương đương của NMOS và PMOS Đây là mạch tương đương dùng cho các transistor MOS: gồm một khóa chuyển mạch tụ điện và điện trở
9 NMOS gồm một điện trở R và một tụ điện C
9 PMOS gồm điện trở 2R và tụ điện C
Khi kích thước transistor giảm, các giá trị R, C bị ảnh hưởng Tụ C tỉ lệ thuận với chiều rộng kích thước transistor Điện trở R tỉ lệ nghịch với chiều rộng kích thước transistor Dùng mô hình RC để tính toán delay cho các cổng logic