Công nghệ vi điện tử
Trang 1I – MỞ ĐẦU
Công nghệ vi điện tử ngày nay đang chứng kiến một sự thay đổi to lớn: từ
những vi mạch được thiết kế bởi các chuyên gia vi mạch, sản xuất với số lượng lớn; chuyển sang các mạch chuyên dụng được thiết kế bởi các kỹ sư hệ thống tại các cơ sở ứng dụng, tại đó không nhất thiết phải đầu tư cơ sở vật chất để làm công nghệ bán dẫn và có thể sản xuất với số lượng nhỏ Nhờ công nghệ ASIC (Application-specific Integrated Circuit) nên các mạch tổ hợp lớn trong nhiều trường hợp có thể được “chế tạo” ngay tại các cơ sở ứng dụng Có được sự thay đổi đó là nhờ việc sử dụng các hệ thống tự động thiết kế CAD (Computer-aided Design)
Hiện nay, mạch vi điện tử chuyên dụng đang có nhu cầu thị trường rất cao, chiếm khoảng 42% thị trường IC thế giới, và trong những năm tới sẽ chiếm khoảng 65%
Phát triển ASIC là con đường ngắn để phát triển lĩnh vực công nghệ cao đối với một nước đang phát triển như nước ta hiện nay
Để kích thích sự đam mê của các bạn sinh viên trong trường cũng như sự quan tâm từ phía nhà trường về lĩnh vực công nghệ cao, nhóm chúng em đã mạnh dạn tiếp cận công nghệ này (công nghệ ASIC)
Chúng em hy vọng đề tài này sẽ là cầu nối cho những ai muốn tiếp cận công nghệ vi mạch mà chưa có kiến thức về vi mạch
Trang 2- Khái niệm ASIC là một khái niệm tương đối rộng và liên quan đến công nghệ thiết
kế sản xuất IC chứ không phải gắn với một dòng sản phẩm hay thiết bị cụ thể
- Đối lập với ASIC là các vi mạch tích hợp cho mục đích chung như 7400 series và
4000 series những vi mạch này có thể liên kết để tạo ra nhiều ứng dụng khác nhau Ngoài ra vì tính tương đối của việc phân loại theo mục đích sử dụng mà còn có thêm khái niệm Application Specific Standard Product (ASSP) – thiết bị chuẩn cho ứng dụng đặc biệt, chỉ đến những vi mạch nằm giữa hai khái niệm ASIC và vi mạch tích hợp cho mục đích chung
1.2 Các loại ASIC
Full-custom ASIC (ASIC đặc chế hoàn toàn)
Semi-custom ASIC (ASIC đặc chế bán phần)
o Standard-Cell-Based ASIC: ASIC dựa trên các tế bào chuẩn
o Gate-Array-Based ASIC: ASIC dựa trên mảng cổng lôgíc
Progammable ASIC (ASIC lập trình được)
o Programmable Logic Devices (PLD): Thiết bị logic có thể lập trình được
o Field-Programmable Gate Array (FPGA): Mảng cổng lôgíc có thể lập trình được theo trường/miền
1.2.1 Full-custom ASIC
Trong một 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 điều này có nghĩa là người kỹ sư từ bỏ phương pháp sử dụng các cell được mô tả trước và đã được kiểm tra trước cho tất cả hoặc một phần của thiết kế Điều này có nghĩa phương pháp này chỉ có ý nghĩa nếu không sẵn có các thư viện cell hiện hành thích hợp, các thư viện này có thể được sử dụng cho toàn bộ thiết kế Điều này
có thể do các thư viện cell hiện hành không đủ nhanh hoặc các cell logic không
đủ nhỏ hoặc tiêu thụ nhiều công suất Ta có thể cần sử 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ó các thư viện hiện hành nào hoặc do ASIC chuyên dụng đến mức một số mạch phải được thiết
kế tuỳ thuộc vào khách hàng Ngày càng ít các full-custom IC được thiết kế do
có nhiều vấn đề với các thành phần đặc biệt này của ASIC Tuy nhiên có một thành viên của họ này đang lớn mạnh, ASIC hỗn hợp tương tự-số
Trang 31.2.2 Standard-Cell-Based ASIC
Các ASIC dựa trên cell-based IC (CBIC —một từ thông dụng ở Nhật Bản) sử dụng các logic cell thiết kế sẵn ( cổng AND, cổng OR, multiplexers, và
flip-flops) được gọi là standard cells Chúng ta có thể sử dụng thuật ngữ CBIC
cho tất cả các IC sử dụng cell, nhưng thông thường cell-based ASIC hoặc CBIC
có nghĩa là standard cells-based ASIC
Các vùng standard cells (hay còn gọi là flexible blocks) trong CBIC được tạo nên từ nhiều hàng của standard cells-giống như bức tường xây từ các viên
gạch Các standard cells có thể sử dụng để kết hợp với các cells lớn đã được
thiết kế sẵn, có thể là bộ vi điều khiển hoặc ngay cả là bộ vi xử lý, được biết như
là megacell Megacell còn được gọi là megafunction, full-custom block,
system-level macros (SLMs), fixed blocks, cores, or Functional Standard Blocks (FSBs)
Người thiết kế ASIC chỉ định nghĩa vị trí của standard cells và interconnect trong 1 CBIC Tuy nhiên, standard cells có thể được đặt bất kỳ đâu
trên silicon, điều này có nghĩa là tất cả các mask layers của CBIC được thiết kế
theo yêu cầu và là duy nhất đối với từng khách hàng Thuận lợi của CBIC là
người thiết kế sẽ tiết kiệm được thời gian, tiền bạc, và giảm rủi ro bằng việc sử
dụng thư viện standard-cell đã thiết kế sẵn và đã được kiểm tra trước.thêm vào
đó, mỗi standard-cell có thể được xem xét một cách riêng lẻ Trong quá trình
thiết kế thư viện cell, từng transitor trong mỗi standard-cell có thể được chọn
đến tốc độ cực đại hay diện tích tối thiểu,ví dụ vậy Bất lợi của CBIC là thời gian
hay chi phí thiết kế hoặc mua thư viện standard-cell là rất cao và thời gian cần để
chế tạo tất cả layers của ASIC cho mỗi thiết kế mới là rất dài
Các tính chất quan trọng của ASIC loại này:
- Tất cả các mask layer đều tùy thuộc vào khách hàng – các transistor
và các interconnect
- Các khối tùy thuộc vào khách hàng có thể được nhúng(embedded)
- Thời gian sản xuất khoảng 8 tuần lễ
Standard-cell area: miền cell chuẩn
Fixed blocks: các khối cố định
1.2.3 Gate-Array-Based ASIC
Hình: khuôn của ASIC dựa trên cell (CBIC) có một miền cell chuẩn duy nhất (khối linh hoạt) cùng với 4 khối cố định
Trang 4Trong một dải cổng GA (gate array) hoặc ASIC dựa trên dải cổng (gate array based ASIC), các transsitor được xác định trên miếng silic Biểu đồ xác định trước các transsitor trên một dải cổng là dải nển (base array), và thành phần nhỏ nhất được tạo bản sao để thực hiện dải nền là cell nền (base cell), giống như các viên gạch trên sàn nhà (thỉnh thoảng được gọi là cell sơ cấp (primitive cell)) Chỉ vài lớp kim loại trên đỉnh, các lớp này xác định liên kết nối giữa các transsitor, được xác định bởi người thiết kế bằng cách sử dụng các mặt nạ tuỳ thuộc vào khách hàng (custom mask) Để phân biệt loại dải cổng này với các loại dải cổng khác, dải cổng này thường được gọi là dải cổng được lập mặt nạ MGA (masked gate array) Người thiết kế chọn các cell logic được thiết kế trước và được mô tả trước từ thư viện dải cổng Các cell logic trong một thư viện dải cổng thường được gọi là các macro Lý do cho việc gọi này là các layout cell nên (base-cell layout) giống nhau cho mỗi một cell logic, và chỉ có liên kết nối (bên trong các cell và giữa các cell) là tuỳ thuộc vào khách hàng, sao cho có một tương đồng giữa các macro dải cổng và macro của phần mềm Bên trong IBM, các macro dải cổng được gọi là các book (do vậy các book là phần của thư viện), nhưng thật không may thuật ngữ mô tả này không được sử dụng phổ biến bên ngoài IBM.
Ta có thể hoàn tất các bước khếch tán tạo thành các transsitor và kế đến
dự trữ các miếng silic (đôi khi ta gọi một dải cổng là một dải được khếch tán trước (prediffused array) do bởi lý do này Vì chỉ có các liên kết nối các kim loại
là duy nhất đối với MGA, ta có thể sử dụng các miếng silic được dự trữ cho nhiều khách hàng khác nhau khi cần đến Việc sử dụng các miếng silic được sản xuất trước các bước kim loại hoá làm giảm thời gian cần thiết để chế tạo một MGA, thời gian thay đổi hoàn toàn (turnaround), còn vài ngày hoặc tối đa là hai tuần Giá thành cho tất cả các bước chế tạo ban đầu đối với MGA được chia sẻ cho mỗi một khách hàng và điều này làm giảm giá thành của MGA so với thiết
kế full-custom ASIC hoặc ASIC dựa trên cell chuẩn
Ta có các loại MGA hoặc ASIC dưa trên dải cổng khác nhau sau đây:
- Dải cổng được chia kênh (channeled gate-array)
- Dải cổng không chia kênh (channeless gate-array)
- Dải cổng có cấu trúc (structured gate-array)
a Dải cổng được chia kênh
Đặc điểm quan trọng của loại MGA này là :
- Chỉ có liên kết nối là tùy biến
- Liên kết nối sử dụng các khoảng trống xác định trước giữa các hàng của base cell
- Thời gian sản xuất 2 ngày đến 2 tuần
Trang 5Base cell: cell nền.
b 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], dải nhiều cổng[sea-of-gate array] hoặc dải SOG)
Các tính chất quan trọng:
o Chỉ có một số lớp mặt nạ tùy thuộc vào khách hàng – liên kết nối
o Thời gian sản xuất từ 2 ngày đến 2 tuần
Base cell:cell nền
Array of base cells (not all show): dải các cell nền (không được trình bày)
Sự khác biệt giữa channelless gate array và channeled gate array là không
có vùng diện tích nào định nghĩa sẵn dành cho routing giữa cell trên 1 channelless gate array Thay vì vậy ta phải định vị trên đỉnh của thiết bị chúng ta có thể làm điều này bởi vì chúng ta tùy biến contact layer ( định nghĩa sự kết nối giữa metal1, lớp kim loại đàu tiên và transistor)
c 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 (structured gate array) kết hợp một số tính chất của CBIC và một số tính chất của 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, thí dụ, 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 chức năng cụ thể Vùng được nhúng này hoặc có thể chứa một cell nền khác thích hợp hơn đối với việc xây dựng các cell nhớ, hoặc có thể chứa một khối mạch hoàn chỉnh, chẳng hạn như một bộ vi điều khiển
Hình: Khuôn của dải cổng được chia kênh Các khoảng cách giữa các hàng cell nền được để dành cho liên kết nối
Hình: Khuôn dải cổng không chia kênh Diện tích lõi của die lấp đầy hoàn toàn bởi mảng của base cell (the base array)
Trang 6Các tính chất quan trọng của loại MGA này như sau:
o Chỉ có liên kết nối tuỳ thuộc vào khách hảng
o Các khối tuỳ thuộc vào khách hàng (giống nhau cho mỗi một thiết kế)
có thể được nhúng
o Thời gian sản xuất từ 2 ngày 2 hai tuần
Embeded block: khối nhúng
Array of base cells (not all show): dải các cell nền (không được trình bày)
1.2.4 Programmable Logic Devices (PLD)
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 các linh kiện và được
bán với số lượng lớn đến nhiều khách hàng khác nhau Tuy nhiên, các PLD có
thể được cấu hình hoặc được lập trình để tạo ra phần tuỳ thuộc khách hàng cho
một ứng dụng cụ thể, và do vậy chúng cũng thuộc vào họ các ASIC Các PLD sử
dụng các công nghệ khác nhau để cho phép ta lập trình chip
Hình sau trình bày một PLD và các tính chất quan trọng mà tất cả các PLD
đểu có:
- Không có lớp mặt nạ hoặc các cell logic nào tùy thuộc vào khách hàng
- Thời gian thiết kế nhanh
- Khối liên kết nối lập trình được lớn, duy nhất
- Ma trận microcell logic thường bao gồm mạch logic dải lập trình được
PAL(programmable array logic), theo sau bởi một flipflop hoặc bộ chốt
Hình: Khuôn của dải cổng được nhúng hoặc có cấu trúc trình bày một khối nhúng ở góc trên bên trái Phần còn lại của khuôn được làm đầy bằng dải các cell chuẩn
Hình Khuôn của chip logic lập trình được PLD Các macrocell điển hình bao gồm mạch logic dải lập trình được PAL được theo sau bởi một flipflop hoặc bộ chốt Các macrocell được kết nối bằng cách sử dụng khối liên kết nối lập trình được lớn
Trang 71.2.5 Field-Programmable Gate Array (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 Sự khác biệt giữa FPGA và PLD đó là FPGA lớn hơn và phức tạp hơn so
với PLD FPGA là thành viên mới trong họ ASIC và đang phát triển rất nhanh
chóng, thay thế TTL trong hệ thông vi điện tử
Hình sau minh họa các đặc tính chủ yếu của một FPGA
- Không có lớp mặt nạ nào tùy thuộc vào khách hàng
- Phương pháp lập trình các cell logic cơ bản và liên kết nối
- 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 hiện
hệ tổ hợp cũng như hệ tuần tự
- Ma trận liên kết nối lập trình được bao quanh các cell logic cơ bản
- Các cell I/O lập trình được bao quanh lõi
- Thời gian thiết kế chỉ mất vài giờ
Programmable basic logic cell: cell logic cơ bản lập trình được
Programmable interconnect: liên kết nối lập trình được
Hình: Khuôn của dải lập trình được FPGA Tất cả các FPGA đều chứa một cấu trúc có hệ thống 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 Loại, kích thước và số cell logic lập trình cơ bản được biến thiên rất lớn
Trang 82 Qui trình thiết kế ASIC
2.1 Qui trình thiết kế chung
Hình 2.1: ASIC design flow
1. Mô tả bài toán: sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL hay Verilog).
2. Tổng hợp logic: dùng HDL và công cụ tổng hợp logic để xây dựng netlist – là
sự mô tả các tế bào (cell), các khối (block) và kết nối (interconnect) giữa chúng
3. Phân chia hệ thống: chia hệ thống lớn thành các phần thích hợp.
4. Mô phỏng tiền layout: kiểm tra tính đúng đắn của thiết kế (tiền layout = sơ đồ
mạch logic – chỉ gần đúng với thực tế)
5. Sắp xếp các khối trên chip: sắp xếp các khối của netlist trên chip Nên xem xét
cả khía cạnh vật lý và logic khi thiết kế bước này
6. Bố trí cell: định vị cell bên trong khối.
7. Thiết kế tuyến: kết nối giữa các cell và các khối.
8. Kiểm tra tính hợp lý của bước 7: tính toán trở kháng và dung kháng lớp
interconnect
9. Mô phỏng hậu layout: kiểm tra khả năng làm việc ổn định của toàn bộ thiết kế
trong trường hợp có thêm tải từ lớp interconnect (hậu layout = sơ đồ mạch thựctế)
Trong đó:
Các bước thiết kế 1 - 5: logic.
Trang 9Các bước thiết kế 5 – 9 : vật lý.
2.2 Qui trình thiết kế cụ thể:
Hình 2.2: Quy trình thiết kế ASIC
2.2.1 Thiết kế kiến trúc (Architecture design)
Trang 10ASIC với ý nghĩa là IC cho một ứng dụng riêng biệt, nên xuất phát từ mỗi ứng dụng trong thực tiễn cuộc sống, sẽ đặt ra yêu cầu phải thiết kế nên IC thỏa mãn tốt nhất những yêu cầu của ứng dụng đó Thiết kế kiến trúc(Architecture design) là bước đầu tiên của quy trình thiết kế, bước này có nhiệm vụ tiếp nhận các yêu cầu của thiết kế và xây dựng nên kiến trúc tổng quát của thiết kế Người thực hiện thiết kế kiến trúc phải là người nhìn nhận được một cách tổng quan thiết
kế và phải là người nắm bắt được khả năng của công nghệ, am hiểu được toàn bộ các bước thiết kế xuyên suốt qui trình
Các bước tổng quan của một qui trình Thiết Kế Kiến Trúc:
- Define overall chip : Trong bước này, từ những yêu cầu của thiết kế và dựa trên
khả năng của công nghệ hiện có, người thiết kế kiến trúc sẽ xây dựng nên toàn bộ kiến trúc tổng quan cho thiết kế Nghĩa là trong bước này người thiết kế kiến trúc phải mô tả được những vấn đề sau :
Thiết kế có những khối nào ?
Mỗi khối có chức năng gì ?
Hoạt động của thiết kế và của mỗi khối ra sao ?
Phân tích các kỹ thuật sử dụng trong thiết kế và các công cụ, softwave hỗ trợ thiết kế
- Initial Floorplan : Bước tiếp theo trong thiết kế kiến trúc đó là việc phân
bố, sắp xếp các khối có trong thiết kế Đây chính là bước định hình cho toàn bộ thiết kế Việc phân bố, sắp xếp các khối phải theo những nguyên tắc nhất định Kiến trúc của thiết kế ảnh hưởng rất lớn đến chất lượng của thiết kế và ảnh hưởng đến các bước sau của quy trình cho nên việc phân bố kiến trúc phải làm sao cho thiết kế tối ưu nhất
- RTL or C model: Bước này sử dụng ngôn ngữ mô tả phần cứng hoặc
ngôn ngữ C để mô phỏng tổng thể hoạt động của thiết kế Nhằm mục đích kiểm tra sơ bộ xem thiết kế có hoạt động đúng về mặt chức năng chưa, nếu chưa đúng thì phải chỉnh sửa lại các bước trên Bước này còn có ý nghĩa mô tả cụ thể hơn, làm rõ ràng hơn cho kiến trúc của thiết kế, giúp cho việc nắm bắt ý đồ thiết kế và việc thực hiện thiết kế ở bước sau này được thuận lợi hơn
2.2.2 Thiết kế logic (Logic Design)
Trang 11Thiết kế logic là bước mô phỏng tổng thể các chức năng logic và tối ưu một thiết kế Người thiết kế tạo ra một HDL behavioral model cho những custom circuit, định nghĩa những bộ vector để kiểm tra toàn bộ thiết kế, biên dịch netlist
và tối ưu hóa thiết kế
Các bước tổng quan của một qui trình thiết kế logic:
- Behavioral verilog
Thiết kế có thể gồm nhiều khối standard và custom kết hợp với nhau Đối với các khối standard cells có thể dùng RTL code để mô tả Tuy nhiên đối với các khối được thiết kế dưới dạng custom (ví dụ: bộ nhớ nhúng – embeded memory) thì không thể dùng RTL code được mà phải dùng Behavioral verilog để mô tả chi tiết tính năng của các khối đó
- Logic simulation
Sau khi thực hiện xong công đoạn behavioral verilog, người thiết kế cần mô phỏng tổng thể thiết kế ở mức cao nhất (top-level) để kiểm tra thiết kế có hoạt động đúng với các tính năng yêu cầu Nếu chưa đúng phải kiểm tra lại các khối standard cell hoặc custom circuit
- Logic Synthesis (tổng hợp logic)
Tổng hợp logic là quá trình tổng hợp các RTL code thành netlist Quá trình chia thành 2 bước: chuyển đổi các RTL code thành mô tả dưới dạng các biểu thức đại số Boolean, dựa trên các biểu thức này kết hợp với thư viện standard cells sẵn
có để tổng hợp nên một thiết kế tối ưu
- Datapath Schematic
Nhập netlist và các ràng buộc về timing vào một công cụ phân tích timing Công cụ phân tích timing sẽ tách rời tất cả các path của design, tính thời gian trễ của các path dựa trên các ràng buộc Dựa trên kết quả phân tích (report) của công
cụ phân tích, ta xác định các path không thỏa mãn về timing Tùy theo nguyên nhân dẫn đến không thỏa mãn mà ta có thể viết lại mã RTL và tiến hành lại tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc Sau khi tất cả các vi phạm timing đã
bị loại bỏ tiến hành placement và routing
2.2.3 Thiết kế mạch (Circuit design)
Trang 12Sau bước thiết kế logic là bước thiết kế mạch, bước này xây dựng nên sơ đồ mạch thực sự của thiết kế Dựa vào các yêu cầu về chức năng, tính năng đã được thiết lập ra từ bước trên, bước này xây dựng nên các mạch thực sự để thực hiện những chức năng đạt và đạt được những tính năng đã được yêu cầu.
Có hai phương pháp tiếp cận để thiết kế mạch:
- Phương pháp tùy biến (custom methodology): Đây là phương pháp để tiếp
cận thiết kế cho một loại thiết kế và cấu hình cụ thể Với phương pháp này, hầu như mọi bước đều được thực hiện thủ công và được tối ưu hóa hoàn toàn Ưu điểm của phương pháp này là tạo ra được một thiết kế gần như tối ưu hóa hoàn toàn, nhưng bù lại, nó cũng có những nhược điểm là tốc độ thiết kế chậm và khả năng tái sử dụng là rất thấp
- Phương pháp biên dịch (compiler methodology): Đây là một phương pháp
có tính hệ thống cho phép xây dựng một họ các cấu hình của một loại thiết kế Việc thiết kế được thực hiện bằng sự xây dựng các tế bào mạch (leaf-cell library hay mega-cell library), mỗi tế bào mạch là một thành tố cơ sở để tạo thành một khối bên trong Sau đó, sử dụng một chương trình biên dịch (Mega Compiler), với đầu vào là các cấu hình mong muốn và thư viện tế bào, để sắp xếp các tế bào mạch theo một trình tự xác định và cấu thành cấu hình cho thiết kế Ưu điểm của phương pháp này là tốc độ thiết kế rất nhanh, có thể tạo ra được nhiều cấu hình cùng lúc, nhưng nó cũng có nhược điểm về tối ưu thiết kế Với phương pháp này, việc tối ưu thiết kế chỉ được thực hiện trên các cấu hình biên, vì vậy các cấu hình trung gian bên trong dải sẽ không được tối ưu nhất
Các bước tổng quan của một qui trình thiết kế mạch:
- Xây dựng bản vẽ (Circuit schematic): Dùng các công cụ xây dựng mạch như
là Power View, Cadence5,… để vẽ nên các bản vẽ mạch Phần này bao gồm những bước như sau:
Tạo các mega cell: Tùy thuộc vào mỗi loại thiết kế, thư viện mega-cell của chúng sẽ khác Thư viện mega-cell của mỗi loại chứa những tế bào mạch cơ sở
để tạo nên cấu hình của thiết kế, vì vậy chúng ta sẽ thay đổi tùy thuộc vào chức năng và yêu cầu của thiết kế đó Để tạo ra các mega-cell, có thể sử dụng
Trang 13lại các cấu trúc mạch chuẩn đã có sẵn như là bit cell 6T circuit, S.A circuit, decoder circuit …và tạo thêm các mạch cần thiết khác cho thiết kế
Xây dựng sơ đồ nguyên lý cho các cấu hình mẫu: Bước này tạo ra một số cấu hình mẫu, đây là các cấu hình biên của một dải cho phép của thiết kế Các cấu hình mẫu sẽ được mô phỏng, kiểm tra về các yêu cầu như là chức năng, tốc độ, công suất tiêu thụ, diện tích…và sẽ được tối ưu hóa, nhằm đảm bảo rằng nếu các cấu hình này thỏa mãn một số yêu cầu xác định thì các cấu hình tạo ra từ Mega Compiler hoạt động trong dải cho phép đó sẽ thỏa mãn yêu cầu Mọi cấu hình sẽ được xây dựng một số sơ đồ nguyên lý khác nhau, nhằm phục vụ cho những mục tiêu mô phỏng và kiểm tra khác Ví dụ, sơ đồ nguyên lý toàn cấu hình (full configuration) được xây dựng cho việc kiểm tra chức năng thiết kế
và công suất tiêu, sơ đồ nguyên lý rút gọn thiết kế (critical path) được xây dựng cho việc kiểm tra tốc độ thiết kế…
- Mô phỏng mạch điện (Circuit simulation): Sau khi các sơ đồ nguyên lý
đã được xây dựng (ở bước trên), bước này sẽ thực hiện mô phỏng chúng bằng các trình mô phỏng công nghiệp với độ chính xác cao, với các điều kiện mô phỏng gần như thực tế, để kiểm tra sự vận hành tổng thể của mạch Quá trình mô phỏng
và kiểm tra bao gồm các công đoạn như sau :
Mô phỏng bằng công cụ HSPICE: Kiểm tra tốc độ thực hiện của thiết kế Nếu tốc độ hoạt động chưa đạt yêu cầu, sẽ quay lại bước thực hiện mạch để tiếp tục tối ưu
Mô phỏng bằng công cụ HSIM: Kiểm tra chức năng hoạt động và công suất tiêu thụ của mạch Việc kiểm tra chức năng được thực hiện bằng cách cho thiết
kế thực hiện tất cả các chức năng của nó, với nhiều lần liên tục, và nhiều sự trộn lẫn các chức năng lồng vào nhau, để đảm bảo rằng thiết kế không bị lỗi về mặt chức năng Nếu phát hiện được lỗi phải lập tức quay về bước thực hiện mạch để sửa chữa
Xây dựng phác thảo hình dạng và cấu trúc của layout cho các mega cell và tính toán phỏng đoán để đảm bảo thiết kế thỏa mãn được yêu cầu về mặt diện tích Nếu diện tích quá lớn so với yêu cầu, phải quay lại bước sửa chữa mạch và mô phỏng trở lại, nhằm đảm bảo mọi yêu cầu của thiết kế là đạt được
Trang 14- Xây dựng khối và cấu hình (Mega cell block):
Bước này sử dụng trình biên dịch để tạo các cấu hình Các cấu hình được tạo ra trong bước này, là những cấu hình được lựa chọn tùy ý trong các dải cho phép, nhằm mục đích kiểm tra ngẫu nhiên thiết kế Như đã trình bày ở trên, phương pháp thiết kế theo kiểu biên dịch chỉ cho phép tối ưu hóa trên những cấu hình biên, vì vậy việc kiểm tra phải được thực hiện một cách ngẫu nhiên trên các các cấu hình nằm bên trong các dải, để tính kiểm tra được trong suốt (transparency) và bảo đảm thiết kế đạt yêu cầu
2.2.4 Thiết kế vật lý cho các cells đặc trưng (Mask Design)
Mask design hay layout design là một quá trình thiết kế từ sơ đồ mạch luận
lý sang sơ đồ mạch vật lý để từ đó nhà sản xuất sẽ đổ các lớp mẫu đã được quy định trên cơ sở các mặt nạ (mask layers) để được các lớp vật lý biểu thị các transistor, các cổng logic và các kết nối giữa chúng để được một mạch tích hợp mong muốn Để đạt được điều đó thì trong quá trình layout, người thiết kế buộc phải tuân theo các quy định ràng buộc bởi quá trình sản xuất, bởi quy trình thiết
kế và bởi các yêu cầu được chỉ ra trong mô phỏng mạch để mạch có thể hoạt động được
Mạch IC CMOS là một mạch rất phức tạp bao gồm nhiều transistor với kích thước cực kỳ nhỏ được tích hợp trên cùng một phiến đế và nhiệm vụ của layout là
vẽ biểu diễn các lớp bán dẫn cũng như các lớp kim loại và thực hiện kết nối các transistor cũng như các cell liên quan lại với nhau trên phiến đế sao cho đạt được kích thước tối ưu nhất theo yêu cầu của khách hàng mà vẫn đảm bảo mạch có thể hoạt động tốt như thiết kế ban đầu Do đó trong layout đòi hỏi phải tuân thủ nghiêm ngặt các luật thiết kế cũng như các yêu cầu trong thiết kế Việc thiết kế layout phải đảm bảo không có lỗi sau khi qua các bước kiểm tra lỗi DRC (design rule check), LVS (layout vesus schematic)
Các bước tổng quan của một qui trình thiết kế layout:
- Layout & Floorplan:
Nhiệm vụ của bước này là vạch ra kế hoạch cho việc thiết kế, xem xét các khu vực sẽ đặt linh kiện, các khu vực mà tín hiệu sẽ chạy qua, xác định kích thước của các khối và phân phối các cell, sắp xếp các lớp, các linh kiện cho phù
Trang 15hợp nhưng phải thỏa mãn yêu cầu về diện tích và vẽ những cell cơ bản trong thiết kế (cell cơ bản là những cell nhỏ, có thể dùng lại nhiều lần trong thiết kế) Bước này rất quan trọng, nếu ta có một floorplan hợp lý thì việc thực hiện sẽ dễ dàng hơn và việc chỉnh sửa vị trí các lớp trong cell sẽ ít hơn như vậy sẽ tiết kiệm được thời gian.
- Assemble Cell library:
Sau khi đã thực hiện floorplan cho toàn mạch và vẽ các cell nhỏ, bước này sẽ thực hiện thiết kế các khối mạch lớn hơn bằng cách kết nối các cell cơ bản lại với nhau và chạy dây giữa chúng theo các kế hoạch đã sắp xếp trong phần floorplan Với bước floorplan tốt, việc thực hiện sẽ dễ dàng Trong bước này bao gồm cả việc tạo thư viện và thực hiện thiết kế cho các bản vẽ cụ thể Ở bước này thực hiện chạy các phần mềm CALIBRE hoặc HERCULES để kiểm tra lỗi DRC, LVS cho các cell, với các cell quan trọng như các bitcell là cell lưu trữ dữ liệu sẽ được xem xét, kiểm tra và đo đạc các điện trở, điện dung để đảm bảo được các yêu cầu thiết kế
- Plot:
Sau khi hoàn thành bảng vẽ mạch, người thiết kế sẽ kiểm tra lỗi thiết kế
so với luật thiết kế của nhà sản xuất (Design Rules Check - DRC) và kiểm tra bảng vẽ so với mạch luận lý ban đầu để bảo đảm chức năng, cấu trúc mạch Sau khi đã thực hiện chạy tốt các kiểm tra, người ta sẽ thực hiện trích file định dạng gds2 để đưa xuống cho bước thực hiện tiếp theo
1.3.5 Thiết kế vật lý (Physical Design)
Sau khi người thiết kế hoàn thành giai đoạn layout những mạch đặc biệt của chip thì các mạch đó được sắp đặt và kết nối với nhau, hoặc với các khối chức năng khác trên một vùng diện tích nhất định dựa vào thiết kế luận lý của chip (gate-level netlist) Quy trình này gọi là Place and Route và gồm các bước sau:
- Floorplan: chuẩn bị dữ liệu đầu vào, xác định kích thước các khối và đặt
chúng vào các vị trí tối ưu cho việc chạy dây Sắp xếp các vùng đặt các IO cells, các power pad, standard cells Lập kế hoạch cho việc cung cấp nguồn VDD, VSS cho các khối