Hiệu ứng Antenna

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 36 - 90)

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

3.3.1. Mục đích

Trong bước fix netlist ta sẽ chuyển đổi mã RTL đã được tối ưu ở bước fix rtl thành các SuperCell Models. Bởi vì SuperCell Models là đại diện cho một nhóm cell nên SuperCell Models không có kích thước thực và thời gian đi qua SuperCell Models là thời gian tượng trưng. Điều này làm giảm việc tính toán và ước lượng thời gian hiệu quả hơn.

Việc chuyển đổi sang SuperCell Models rất có ý nghĩa trong việc phân tích và tối ưu thời gian đường truyền. Bên cạnh đó, việc tính toán và ước lượng để tối ưu về thời gian, chiều dài dây được giảm đáng kể khi thực hiện trên SuperCell Models. Ngoài ra khi dùng SuperCell Models sẽ giúp thoả mãn các quy luật về thời gian.

Ví dụ: Giả sử lúc đầu chuyển cổng nandx1 sang super cell. Nếu trong quá trình tính toán, sắp xếp nhận thấy việc dùng nandx1 không thỏa khả năng lái tải (drive strength) hoặc chưa tối ưu về thời gian thì tool sẽ tự động dùng super cell như cổng nand khác có drive strength mạnh hơn, tối ưu hơn về thời gian chẳng hạn là nandx4. Sau đó, khi chuyển super cell thành standard cell phục vụ cho việc tính toán theo thời gian thực trên mỗi standard cell thì cổng nandx4 sẽ được thay thế.

Cũng trong bước này, Magma cũng tiến hành thiết lập các đường datapath và tối ưu hóa logic của mạch. Tạo ra một thiết kế duy nhất, sau đó khởi tạo kỹ thuật mapping. Lệnh này chỉ dùng khi dữ liệu đầu vào là file RTL, nếu thiết kế đã là các file netlist thì ta có thể bỏ qua bước này và tiến hành ngay bước fix time.

3.3.2. Các bước tiến hành Fix Netlist

3.3.2.1. Loại bỏ cấu trúc thứ bậc của thiết kế ( flatten design)

Trong bước này Magma sẽ flatten một thực thể xác định (có thể là model hoặc cell). Nếu là model thì Magma sẽ trải phẳng theo cấu trúc thứ bậc của model. Nếu là cell thì Magma sẽ flatten theo một cấp duy nhất, nó sẽ làm mờ (dissolves) cell và copy nội dung bên trong cell vào model chứa nó. Việc loại bỏ tạm thời cấu trúc thứ bậc của thiết kế giúp Magma “nhìn” chi tiết hơn kết nối giữa các cell trong thiết kế, làm cho việc tối ưu hóa được tốt hơn.

Trong bước này sẽ sử dụng lệnh:

Data flatten object –option

3.3.2.2. Thay đổi thư viện và làm sạch thiết kế

Trong bước này Magma sẽ unmap model với thư viện xác định đã được map từ trước nhằm tối ưu hóa logic hoặc thay đổi mục tiêu thiết kế từ thư viện này sang thư viện khác. Sau khi đã unmap ta phải map thư viện mới với thiết kế.

Một số lệnh được sử dụng:

run gate unmap $m $l –option run gate map $m $l –option

Sau khi đã map model vào một thư viện mới sẽ phát sinh những cell dư thừa hoặc không được map ta phải xóa bỏ các cell đó bằng lệnh:

run gate sweep $m –option

3.3.2.3. Chuyển các cell trong model thành các Model SuperCell

Một số lệnh được sử dụng trong bước này

run gate unmap $m –option run gate map $m $l –option

3.4. Tối ưu hóa thời gian cho mạch - Fix Time

3.4.1. Mục đích

Timing là một vấn đề rất quan trọng trong thiết kế vi mạch, khi một con chip được thiết kế thì nó phải tuân thủ rất nghiêm ngặt về vấn đề thời gian, bởi vì timing liên quan trực tiếp đến tốc độ xử lý và chức năng của chip. Vì vậy bước fix time sẽ tiến hành sửa những lỗi liên quan đến timing, sao cho thỏa yêu cầu của thiết kế.

3.4.2. Các bước thực hiện Fix Time

3.4.2.1. Tối ưu hóa dựa trên những rằng buộc về thời gian

Trong quá trình tối ưu hóa thiết kế dựa trên những rằng buộc về thời gian đã được định nghĩa từ trước, kết quả của bước fix time tùy thuộc rất nhiều vào những rằng buộc về thời gian (timing constraints). Trong quá trình fix time, Magma sử dụng một số phương pháp để tối ưu hóa cho thỏa mãn timing.

Thay đổi cấu trúc logic: ta có thể thay đổi vị trí logic của một cell hoặc một cổng nào đó cho nếu nó không thỏa mãn các rằng buộc về thời gian, mà không ảnh hưởng tới chức năng của mạch.

Một số lệnh có thể được dùng:

Run gate speed $m $l –multipass –balance medium

Run gate swap $m $l

Run gate speed $m $l

Redundancy removal: loại bỏ đi những cổng không cần thiết.

Gain Triming: Gain triming được điều chỉnh trong suốt quá trình fix time. Ban đầu giá trị của tất cả các cell được đặt là 1. Giá trị gain này sẽ tạo ra những slack path âm hoặc dương. Giá trị của Gain sẽ được thay đổi trong qua trình fix time sao cho giá trị của slack trên các path về 0.

Slack âm

Slack >= 0

Hình 3.19: Khi chưa điều chỉnh Gain, Slack âm

Hình 3.20: Sau khi đã điều chỉnh Gain, Slack dương Một số lệnh dùng trong gain triming

Run gate trim $m $l

Run gate trim $m $l

Khi thực thi lệnh

Fix time $m $l –option

Gain giảm Gain = 1

Tùy theo các option mà Magma sẽ thực thi rất nhiều lệnh khác. Đây là lệnh chung tổng quát nhất cho bước fix time.

3.5. Sắp xếp các module và tạo các đường power - Floorplanning Và Power Routing

3.5.1. Mục Đích

Mục đích của việc floorplanning và power routing là sắp xếp vị trí các khối module vào vùng core, tạo các đường power và ground cung cấp nguồn cho macro, memory, tạo các đường power rail cung cấp cho các standard cell.

Hình 3.21: Lưu đồ thực hiện Floorplan và Power Routing

3.5.2.1. Thiết lập một số thông số vật lý 3.5.2.2. Kích thước của chip cần thiết kế

Để xác định chiều cao,chiều rộng của chip ta dùng cú pháp lệnh

force floorplan parameter floorplan_name -height (real) -width (real)

NETLIST SAU KHI THỰC HIỆN BƯỚC FIX TIME

TẠO CORE POWER RING

TẠO ĐƯỜNG POWER VÀ GROUND MESH

KẾT NỐI GIỮA CÁC MODULE VÀ CÁC ĐƯỜNG POWER ,GROUND

TẠO CÁC ĐƯỜNG POWER RAIL FLOORPLANING

TẠO I/O PIN RING CHO MODULE

SẮP XẾP CÁC MODULE VÀO VÙNG CORE

TẠO PLACEMENT BLOCKAGE TẠO PAD RING

THIẾT LẬP THÔNG SỐ VẬT LÝ CHO CORE

Ví dụ:

set designName b2fstc003_top

set model /work/b2fstc003_top/ b2fstc003_top data create floorplan $model $designName

force floorplan parameter ${model}/floorplan:designName -height 5000u -width 5200u

3.5.2.2.1. Xác định vùng clearance giữa I/O và core

Vùng clearance là vùng đặt các pad cell, core power ring (các pad cell và core power ring có chức năng nhận các tín hiệu điện từ bên ngoài).Vùng clearance không cho phép đặt các standard cell.

Khoảng cách clearance = khoảng cách từ cạnh của core đến cạnh của core ground ring + chiều rộng của core ground ring + chiều rộng của core power ring + khoảng cách core ground ring và core power ring + khoảng cách từ pad đến core power ring + chiều cao của pad + chiều cao lớn nhất của bond cell.

Hình 3.23: Mô tả chi tiết vùng clearance

3.5.2.2.2. Xác định các thông số cho Cell Row

Các standard cell khi xếp vào vùng core sẽ được xếp lên cell row. Do đó chiều cao của cell row được thiết lập phải bằng chiều cao của standard cell. Các power rail trên cell row là các đường power, ground cung cấp power cho standard cell.

3.5.2.3. Tạo Pad Ring

Các pad ring dùng để nhận các tín hiệu điện từ bên ngoài đưa vào thông qua các pad cell. Có hai loại pad cell là: signal pad và power pad.

Signal pad sẽ nhận và truyền các tín hiệu điện giữa bên ngoài vào hệ thống bên trong.

Power pad sẽ nhận điện thế power và ground bên ngoài cung cấp cho hệ thống power bên trong.

Tuy nhiên để tạo được vòng pad ring liên tục phải có filler pad và conner pad. Các filler pad lấp đầy khoảng hở giữa các pad cell đồng thời tạo một đường power liên tục để truyền power từ power pad đến tất cả signal pad. Các conner cell là pad filler chuyển tiếp tại các góc của pad ring, làm vòng ring liên tục .

3.5.2.3.1. Tạo các I/O Pin Ring

Các khối module cần có các I/O pin để thực hiện các liên kết với các hệ thống power, Hình 3.25: Pad ring được hình thành từ pad cell, corner cell, filler cell

Việc sắp xếp các I/O pin dựa vào routing pitch. Có thể sắp xếp các pin theo thứ tự như hình vẽ sau:

Sắp xếp các I/O pin ở bottom Sắp xếp I/O pin xung quanh Hình 3.26: Cách sắp xếp các I/O pin ring

3.5.2.4. Sắp xếp các macro vào vùng core

Việc sắp xếp các macro vào vùng core thuận lợi hơn thông qua việc dùng các dây flyline

•Dùng dây flyline để xác định những macro nào cần đặt gần nhau.

•Dùng flyline để tránh tình trạng chéo dây giữa các macro.

Hình3.27 : (a) Các dây bị chéo nhau (b) Sau khi sắp xếp lại

3.5.2.5. Tạo các Blockage

Trong thiết kế có một số trường hợp không cho phép có sự thêm vào các thành phần khác hoặc là trong quá trình sắp xếp các cell ta không muốn cell đặt vào nơi nào khi đó cần tạo placement blockage. Placement blockage sẽ ngăn không cho đặt các cell vào vùng bảo vệ của placement blockage.

Có thể phân loại blockage thành những dạng sau:

Standard placement blockage: ngăn không cho đặt các standard cell kể cả buffers và repeaters.

Nonbuffer placement blockage: ngăn không cho đặt các standard cell trừ buffer và repeater.

Routing blockage: ngăn không cho các dây đi vào vùng được đặt bởi routing blockage. Routing blockage có những dạng sau:

 All-net blockage : ngăn tất cả các dây kể cả power, tín hiệu.  Non-power blockage: ngăn tất cả các dây trừ đường power.

 Power blockage: ngăn tất cả các đường power, không ngăn các đường tín hiệu.

Hình3.28: Standard cell placement blockage

Ta có thể tạo blockage trực tiếp trên GUI hoặc thông qua lệnh data create box.

3.5.3. Power Routing 3.5.3.1. Tạo Power Ring 3.5.3.1. Tạo Power Ring

Power ring là những đường bao quanh cung cấp power và ground cho core hoặc cho macro.

Standard cell placement blockage

Hình3.29: Core ring và macro ring Ta có thể tạo power ring bằng GUI hoặc sử dụng các lệnh:

Run route power2 ring $model option

Các đường này phải được kết nối thông qua via để tạo vòng ring khép kín và liên tục cho core. Độ rộng của các đường power ring phải lớn hơn độ rộng của các pin power trên memory hoặc macro. Lựa chọn lớp kim loại cho power ring tùy thuộc vào từng thiết kế và kinh nghiệm của người kỹ sư thiết kế.

3.5.3.2. Tạo Power Mesh

Power Mesh là những đường Power và ground mở rộng từ power ring cung cấp nguồn cho cho macro hoặc memory.

Hình3.30: Các đường power Mesh

Các đường power Mesh được tạo thông qua GUI hoặc có thể sử dụng lệnh:

3.5.3.3. Tạo Power Rail

Power mesh là các đường power và ground kết nối với power mesh thông qua via để cung cấp nguồn cho standard cell. Bởi vì standard cell nằm trên layer 1 vì vậy các đường power rail nằm trên layer 1.

Hình 3.31: Các đường power rail Để tạo các power rail ta sử dụng lệnh

Run route power2 rail $model option.

3.6. Sắp xếp lại các standard cell – Fix Cell

3.6.1. Mục đích

Model super cell chỉ là những cell đại diện cho một nhóm cell nên không có kích thước thực. Mục đích của bước fix cell là chuyển tất cả model super cell thành các standard cell trong thư viện, sắp xếp các standard cell này dựa trên các ràng buộc và thực hiện một số phương pháp tối ưu của Magma tool.

Có hai phương pháp để thực hiện bước fix cell là:

Sắp xếp toàn cục (Placing Flat) sắp xếp các standard cell thông qua các bước  Gobal placer

 Detailed placer

Sắp xếp phân vùng theo yêu cầu thiết kế (Region-Based Design) sẽ thực hiện nhóm các cell có yêu cầu giống nhau vào một vùng riêng biệt. Ở đó có các cell phải hoạt động dựa vào những ràng buộc và yêu cầu thiết kế đặc biệt về điện thế, nhiệt độ, tần số cao,…

3.6.2. Lưu thực hiện bước Fix Cell

Hình 3.32: Lưu đồ thực hiện bước fix cell GLOBAL PLACER TIMING-DRIVEN PLACEMENT COARSE PLACER DETAILED PLACER INCREMENTAL PLACEMENT

SAU KHI THỰC HIỆN FIX WIRE FIX CLOCK

Xác định phân vùng cho Region-Based Design

3.6.3. Thực hiện sắp xếp các Standard Cell3.6.3.1. Global Placer 3.6.3.1. Global Placer

Bước global placer sắp xếp sơ bộ các standard cell trên diện tích còn lại của vùng core sao cho chiều dài kết nối các cell là nhỏ nhất và tối ưu về mặt thời gian. Ở bước này các cell có thể chồng lên nhau, chưa được sắp xếp nằm trên các cell row. Bước global placer tập trung xem xét về vấn đề thời gian hơn tình trạng tắc nghẽn các dây.

Để thực hiện fix cell ta sử dụng lệnh: run place global $model -options

3.6.3.2. Coarse Placer

Placer làm tốt lại việc sắp xếp các standard cell trước đó ở bước global placer. Coarse placer không loại trừ trường hợp các cell bị chồng lên nhau. Bước coarse placer tập trung việc xem xét tình trạng tắc nghẽn các dây hơn vấn đề thời gian.

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 36 - 90)

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

(90 trang)
w