Nhập các luật thiết kế (Technology rules)

Một phần của tài liệu thiết kế vật lý hệ thống trên vi mạch sử dụng công nghệ cmos 90nm tsmc (Trang 27 - 90)

Nhập các yêu cầu của nhà sản xuất và các yêu cầu công nghệ sản xuất chip. Các luật này sẽ được trình bày trong phần đặc tả các luật về kỹ thuật trên các lớp.

3.1.1.3. Nhập thư viện vật lý (Import Physical Library)

Bước này sẽ nhập các thông tin của file LEF hoặc GDSII. File LEF chứa thông tin về tọa độ pin, hướng truyền nhận tín hiệu của pin (input, output), lớp. Riêng file GDSII chứa thông tin vật lý của các lớp, các cell, pad, via, diện tích thực của các cell…File GDSII là file binary. Để nhập file GDSII dùng lệnh import gds2.

Sau khi nhập các thư viện vật lý cần thực hiện việc kiểm tra xem thông tin trong file LEF, GDSII có dùng để route được không, kiểm tra các cell có trong thư viện vật lý không. Bởi vì trong thư viện mỗi loại cell về số lượng rất nhiều, có thể khi viết thiết kế có đề cập một loại nào đấy nhưng thư viện không có. Việc kiểm tra được thực hiện bằng lệnh run prepare lib.

Trong giai đoạn này, super cell model cũng được tạo ra thông qua lệnh :

run prepare lib.

3.1.1.4. Nhập các ràng buộc về thiết kế (Import design constraint)

Các ràng buộc thiết kế gồm thông tin luận lý về timing của đường liên kết giữa các cell (timing path). Các thông tin về thời gian do khách hàng yêu cầu. Để nhập các ràng buộc về thiết kế dùng lệnh import sdc.

3.1.1.5. Nhập netlist

Nhập cấu trúc luận lý của một một bảng thiết kế (schematic). Netlist sẽ cho ta biết các kết nối luận lý giữa các cell.

Khâu kiểm tra này nhằm đối chiếu lại những thông tin mà nhóm Front-end chuẩn bị có khớp với những thông tin logical mà nhập vào hay không.

Sau khi kiểm tra hoàn tất và các dữ liệu đều phù hợp với nhau thì ta có được một cơ sở dữ liệu cho việc thiết kế vật lý.

3.1.1.7. Quy luật kỹ thuật theo công nghệ sản Xuất (Import Technology Rules)

Mỗi nhà sản xuất có công nghệ sản xuất khác nhau đòi hỏi người thiết kế cần biết để tính toán thiết kế. Để tạo được thành phẩm tốt người thiết kế cần hiểu rõ các yêu cầu công nghệ của nhà sản xuất đưa ra và chuẩn bị chu đáo quy luật kỹ thuật thỏa các yêu cầu sản xuất. Các quy luật đó bao gồm

 Các quy luật về thiết kế (design rules). Luật này chứa các thông tin về grid, layer, via layer,…Luật về thông số ký sinh trên lớp thực hiện.

 Các luật để tránh hiệu ứng antenna.

3.1.1.8. Chuẩn bị các quy luật kỹ thuật của thiết kế (design rules)

Dựa vào thông tin của nhà sản xuất mà người thiết kế sẽ đưa ra các quy luật của grid, via, các lớp đi dây, mật độ kim loại cho bản thiết kế. Các quy luật này sử dụng trong suốt quá trình thiết kế, phân tích và kiểm tra vật lý.

3.1.1.9. Thông tin về grid

Đây là yếu tố cơ bản cần cho việc thiết kế và sản xuất. Các grid đóng vai trò như mạng lưới tọa độ để xác định vị trí đặt các cell, đi các đường dây cần phải dựa vào grid. Có một số loại grid sau được định nghĩa:

Manufacturing grid: Xác định dựa vào kích thước hình học nhỏ nhất mà nhà sản xuất có thể thực hiện được. Tất cả các thành phần có dạng hình học được tạo ra bao gồm các cell và các đường dây liên kết phải nằm trên manufacturing grid.

Routing grid: Trong quá trình đi dây, các đường dây nối các pin input/output của các cell căn cứ trên routing grid. Kỹ thuật mới mà Magma dùng là subgrid routing. Kỹ thuật này có một số cải tiến hơn những kỹ thuật đi dây dựa vào grid và không sử dụng grid (grid-based routing và gridless router) trước đó.

Placement grid: Đây là mạng lưới dùng xác định toạ độ đặt các standard cell và có thể xác định grid đặt cho các cell theo hướng xác định. Nếu xác định theo hướng trục hoành (horizontal) có nghĩa là toạ độ y của cell sẽ được canh theo grid này. Nếu xác định theo trục tung (vertical) thì toạ độ x của cell sẽ được canh theo grid này. Giá trị của Placement grid trên 2 hướng tương ứng với chiều cao và chiều rộng của standard cell nhỏ nhất có trong thư viện. Nếu chưa định nghĩa placement grid thì hệ thống có thể dùng routing pitch để đặt các cell

Clock grid: Dùng cú pháp lệnh rule grid clock để thiết lập hệ thống grid cho các đường tín hiệu clock. Nếu không được thiết lập thì mặc định dùng routing grid để đi các đường tín hiệu clock.

I/O grid: Tương ứng như Placement grid, I/O grid xác định tọa độ đặt các I/O. Giá trị này được xác định bằng chiều cao và chiều rộng của I/O nhỏ nhất tương ứng với 2 hướng: hướng trục hoành và trục tung. Dùng cú pháp lệnh rule grid io

để định nghĩa placement grid cho các I/O pin. Nếu không được định nghĩa thì mặc định dùng routing grid để xác định vị trí đặt các I/O pin.

3.1.2. Thông tin về các lớp đi dây và lớp via3.1.2.1. Thông tin về các lớp đi dây 3.1.2.1. Thông tin về các lớp đi dây

Các đường dây, các pin I/O của cell nằm trên metal layer (lớp dẫn điện còn gọi là routing layer). Routing layer mang các thông số, khoảng cách nhỏ nhất giữa 2 dây, các luật về độ rộng nhỏ nhất của các đường dây, routing pitch, hướng ưu tiên để đi các đường dây (vertical/horizonal), các giá trị trở kháng trên đơn vị diện tích hoặc chiều dài.

3.1.2.2. Thông tin về lớp via

Lớp via hay còn gọi là cut via. Chức năng chính của via là hình thành liên kết,dẫn điện giữa các đường dây trên layer các layer khác nhau. Có 3 dạng via: via đơn, via mảng, via nối tầng.

Via đơn (Single via): Single via dùng cho việc kết nối giữa hai đường tín hiệu trên hai lớp liên tục nhau. Single via dùng cho trường hợp chiều rộng dây nhỏ.

Via nối tầng (Stack via): Các via được nối chồng nhau liên kết giữa hai lớp cách xa nhau.

Hình 3.3: (a) single via, (b) array via, (c) stack via

Lệnh rule via định nghĩa kích thước cho cut layer, overhang, các thông số ràng buộc giữa ba lớp (cut layer, hai routing layer liền kề cần nối liên kết về điện). Cú pháp lệnh:

rule via via - cut_layer -bottom_layer -top_layer -cut_width -cut_height -bottom_x_over -bottom_y_over -top_x_over -top_y_over

Thông thường, hình dạng cut phải là hình vuông (chiều dài và chiều rộng của cut bằng nhau). Chiều dài của các routing layer gối lên cut layer (overhang) thì không cần đối xứng.

Hình 3.4: Mô tả via cut và via overhang

Khi xét thông số cho array via, ngoài các thông số kích thước cut layer, giá trị overhang, cần thiết lập thêm thông số khoảng cách giữa các cut trong array via.

(a) (b) (c) bottom_y_over overhang bottom_x_over top_y_over top_x_over cut

3.1.3. Đặc tính kỹ khuật của các lớp layer3.1.3.1. Luật về khoảng cách (Spacing Rules) 3.1.3.1. Luật về khoảng cách (Spacing Rules)

Mô tả yêu cầu về khoảng cách giữa hai vật thể hình học bất kỳ trên cùng một lớp. Mối tương quan về khoảng cách giữa hai vật thể hình học có thể là via – via, net – blockage, pin – net, net – net… Nếu trong quá trình thiết kế không thỏa yêu cầu khoảng cách giữa các vật thể có thể gây ra lỗi.

Ta cần thiết lập thông số yêu cầu khoảng cách nhỏ nhất để không bị lỗi spacing và short giữa hai vật thể hình học đứng cạnh nhau trên metal layer đang xét. Khoảng cách này có thể thay đổi tùy theo độ rộng đường dây của routing layer đang xét. Thực hiện thiết lập các thông số này dựa vào cú pháp lệnh :

rule layer spacing layer spacing library -width [width/{pair width}]

-adjacent_via {num_cuts within_distance}

Ví dụ

rule layer spacing m1 0.23 $l

0.23u là khoảng cách nhỏ nhất giữa hai dây trên layer m1

Ngoài ra ta cũng cần quan tâm đến khoảng cách chéo nhau giữa hai dây (diagonal spacing).

Hình 3.5: Khoảng cách chéo nhau giữa hai dây

Dùng lệnh rule diagonal spacingđặt luật về khoảng cách hai dây chéo nhau.

3.1.3.2. Đặc tả một số luật cơ bản về hình học trên dây

Các luật hình học trên dây đặc tả các quan hệ ràng buộc giữa các dây để không phát sinh các lỗi. Các luật hình học trên dây này gồm có các luật: routing width rule, diagonal width rule, maximum width rule, technology width rule, fat wire halo rule, notch rule, hole rule, island rule, short-edge rule,v.v.

dy dx

Routing width rule: Nếu độ rộng của dây quá nhỏ có thể gây ra nhiều lỗi khác như: không đủ mật độ kim loại cần thiết (island), không thoả yêu cầu truyền dẫn điện,…Routing width rule nhằm đặt luật quy định bề rộng tối thiểu mà một dây cần có.

Diagonal width rule:Trên toàn bộ đường truyền có thể có nhiều đoạn dây nhỏ nối nhau. Có thể các đoạn dây này thoả luật routing width rule nhưng tại những chỗ nối nhau cần xem xét lại. Nếu tại những chỗ nối nhau không thỏa về yêu cầu bề rộng nhỏ nhất (routing width rule) thì lỗi diagonal xãy ra. Hình bên dưới minh hoạ về lỗi diagonal width.

Hình 3.6: Lỗi diagonal phát sinh tại các chỗ nối nhau trên dây

Maximum width rule:Một dây có bề rộng quá lớn có thể gây ra lỗi. Ta có thể khác phục lỗi này bằng cách tách thành nhiều dây kim loại nhỏ hơn (metal slotting).

Hình 3.7: Thực hiện metal slotting đối với dây có bề rộng lớn hơn maxwidth Lệnh rule layer physical –maximum_width đặt ra giới hạn lớn nhất cho bề rộng một dây mà không gây ra lỗi.

Fat wire halo rule: Fatwire_halo là phần chuyển tiếp của dây có bề rộng nhỏ (thin wire) nối với dây có bề rộng lớn (fat wire). Fatwire_halo được gán các luật, đặc tính như fat wire.

Giả sử fat wire phải cách thin wire một khoảng là 0.6u. Thin wire cách thin wire một khoảng là 0.23u. Fatwire_halo sẽ được gán luật giống với fat wire. Do đó Fatwire_halo sẽ có khoảng cách với thin wire là 0.6u .

Hình 3.8: (a) lỗi spacing xãy ra nếu fatwire_halo được đặt ở khoảng cách giống thin wire, (b) không có lỗi spacing xãy ra nếu

fatwire_halo được đặt ở khoảng cách giống fat wire Để tạo fatwire_halo dùng cú pháp lệnhrule layer physical

Notch rule: Bản chất của luật này là qui đinh khoảng cách nhỏ nhất của 2 khối hình học trên cùng một đường kết nối. Khi một đường dây đi gấp khúc như hình (a) có thể gây ra lỗi notch. Hoặc trên cùng một đường tín hiệu mà được nối với nhau bởi nhiều đoạn, có thể bị hở và gây ra lỗi notch như hình (b), (c).

Hình 3.9: Các trường hợp gây ra lỗi notch thường thấy

halo 0.23u

lỗi spacing

halo 0.6u

Có thể chữa lỗi notch bằng các dùng lệnh run rout refine notch để lấp những khoảng hở của dây.

Một số luật cho via khi thực hiện kết nối

Khi liên kết giữa thin wire và fat wire,via overhang phải có chiều rộng tối thiểu nhất định để thỏa yêu cầu chiều rộng tối thiểu của fat wire.

Hình 3.10: a, b, d via overhang thỏa yêu cầu, c via overhang không thỏa yêu cầu Ngoài ra, việc kết nối giữa thin wire và fat wire còn phụ thuộc vào số lượng via cần có để thực hiện kết nối. Tuỳ vào chiều rộng của fat wire mà số lượng via ít hay nhiều. Nếu chiều rộng của fat wire càng lớn thì số lượng via càng nhiều.

Hình 3.11: (a) trường hợp lỗi khi thực hiện kết nối chỉ 1 via, (b) không bị lỗi

3.1.3.3. Thông tin về mật độ kim loại (metal density)

Mỗi nhà sản xuất có yêu cầu khác nhau về tỷ lệ mật độ kim loại trên các metal layer. Một vùng với mật độ kim loại quá dày hoặc quá ít đều có thể gây lỗi và có thể dẫn đến nhiều lỗi khác

Dùng lệnh rule layer density để quy định mật độ kim loại lớn nhất và nhỏ nhất cần có trên metal layer.

rule layer density layer_name library_name -window_size {x , y} -step_size {x , y} -offset {x , y} -minumum value -maximum value

Hình 3.12: Minh hoạ cho các tuỳ chọn window_size, step_size, offset Ví dụ:

rule layer dendity m1 $l -minimum 0.2 -maximum 0.8 window_size {50u 50u} -step_size {25u 25u} -offset {10u 10u}

3.1.3.4. Chuẩn bị các quy luật về các thông số ký sinh (điện trở và tụ điện)

Để tính toán thời gian trì hoãn, phân tích thời gian và có được tín hiệu chính xác đòi hỏi phải xác định các luật về các thông số ký sinh (điện trở và điện dung).

3.1.3.4.1. Xác định luật về điện trở

Điện trở của một dây trên lớp dẫn điện được tính toán bằng giá trị điện trở suất trên một đơn vị chiều dày của lớp kim loại (ohms per square) có đơn vị là ohm hay là bội số của ohm. Giá trị điện trở của via là hằng số. Để xác định điện trở của dây trên lớp dẫn điện ta dùng lệnh rule layer resistance.

Ví dụ:

rule layer resistance metal1 0.09 tsmc_25u -type min –width 0.4u

Điện trở của các dây có bề rộng 0.4u trên lớp metal1 là 0.09 ohm/m2

3.1.3.4.2. Xác định các luật về điện dung

Hình vẽ 3.13: Mô phỏng giá trị điện dung của một đoạn dây

Hình 3.14: Mặt cắt lớp sau chi tiết thành phần điện dung trên đoạn dây.

3.1.4. Hiệu ứng Antenna3.1.4.1. Khái niệm Antenna 3.1.4.1. Khái niệm Antenna

Hiệu ứng antenna phát sinh trong quá trình sản xuất. Trong quá trình kết nối các đường kim loại, giữa các lớp, một đường kim loại có một đầu nối với cổng transistor và đầu còn lại chưa kịp kết nối, do đó dây ở trạng thái thả nổi (floating). Nếu đường dây chưa được kết nối quá dài thì nó có thể tích điện và tập trung điện tích trong quá trình sản xuất, Nếu năng lượng tiếp tục tăng thì đến một lúc nào đó nó đột ngột phóng điện gây hư hỏng transistor.

3.1.4.2. Các phương pháp khắc phục lỗi Antenna

Để tránh hiệu ứng antenna xảy ra, ta phải chia nhỏ đoạn dây thả nổi tích điện thành các đoạn nhỏ hơn để tránh sự tích điện và phóng điện xảy ra tại các cổng transistor. Hoặc có thể chèn diode tại cực cổng để gánh dòng điện trên dây phóng ra. Có hai cách tránh hiệu ứng antenna: chèn jumper hoặc gắn các diode tại các cổng transistor.

Hình3.15:. Thực hiện tránh lỗi antenna bằng cách chèn jumper

Hình 3.16: Tránh hiệu ứng antenna bằng cách chèn diode

3.2. Tối ưu hóa mức cao - Fix RTL

3.2.1. Khái niệm

Fix RTL là quá trình tối ưu hóa ở mức cao, sau khi nhóm front-end đã hoàn thành công việc thì kết quả thiết kế sẽ là các mã RTL. Ta phải tối ưu hóa những đoạn mã này cho phù hợp với công việc của back-end.

3.2.2. Các bước tiến hành trong fix cell3.2.2.1. Mở rộng thiết kế 3.2.2.1. Mở rộng thiết kế

Trong bước này ta sẽ đi sâu vào bên trong thiết kế, trải rộng thiết kế để tối ưu, ở bước này Magma có khả năng “nhìn sâu” vào một khối macro để tối ưu nó.

3.2.2.2. Gỡ bỏ các đoạn code dư thừa và constant

Trong quá trình làm front-end có thể phát sinh ra những đoạn code thừa không cần thiết thì bước fix RTL sẽ loại bỏ đi những đoạn code thừa đó, hoặc có những đoạn code được lặp đi lặp lại nhiều lần thì Magma cũng tự động bỏ đi để làm cho thiết kế được tối

Trong bước này sẽ chèn mạch tổ hợp hoặc mạch chốt trước flip-flop có chân ENA nhằm duy trì trạng thái của chân clock không đổi trong một thời gian nhất định nhằm giảm sự tiêu tốn năng lương cho mạch. Ngoài ra còn có thể dùng để test chức năng của mạch.

Để chèn clock gatting vao mạch ta có thể sử dụng 2 lệnh sau:  Config rtl clockgate [on|of] -option

Force rtl clockgate model_name [on|of] –option

3.2.2.4. Tổng hợp và chia sẽ khối toán học

Trong quá trình tổng hợp và tối ưu hóa, Magma có thể xác định được các khối toán học giống nhau, trùng nhau. Hoặc nếu khối toán học đó đã đã được tối ưu hóa thì nó sẽ thay thế những khối toán học thừa đó nhằm làm giảm kích thước của thiết kế. Đồng thời cũng giảm thời gian tính toán của mạch.

Ta có thể điều khiển resourse sharing bằng 2 lệnh sau:  Config rlt sharing value

Force rtl sharing value object [-hier]

Hình 3.18: Resource sharing chia sẻ khối toán học Ta cũng có thể sử dụng lệnh:

Fix rtl model -option

Khi đó Magma sẽ tự động thực thi một số lệnh nhỏ bên trong.

3.3. Cấu trúc lại Netlist - Fix Netlist

Một phần của tài liệu thiết kế vật lý hệ thống trên vi mạch sử dụng công nghệ cmos 90nm tsmc (Trang 27 - 90)

Tải bản đầy đủ (DOC)

(90 trang)
w