Các bước tiến hành trong fix cell

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

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.

Để thực hiện coarse placer ta có thể dùng một trong hai lệnh:

fix cell kết hợp với tùy chọn –coarse để thực hiện coarse placer

run place coarse $model -option

3.6.3.3. Detailed Placement

Sau khi chuyển lại tất cả super cell model thành standard cell, bước detailed placement sẽ xác định vị trí cuối cùng cho các standard cell. Lúc này các standard cell phải nằm vừa trên placement grid và cell row, các cell không được dời đi xa hơn 7 bucket và các cell không được chồng lên nhau. Bên cạnh đó sau khi thực hiện detailed placement phải bảo đảm không có standard cell nào nằm trong vùng placement blockage, lỗi phát sinh liên quan tới những đường dây, những cell khác, bảo đảm các cell không chồng lên nhau (overlap).

Mục đích chính của detailed placer là xác định vị trí cuối cùng cho các cell sao cho giảm tối đa độ phức tạp của việc đi các dây và tình trạng tắc nghẽn.

Có thể thực hiện detailed placer bằng các lệnh:  fix size, fix echo, fix wire

3.6.4. Các phương pháp tối ưu trong Fix Cell3.6.4.1. Timing-Driven Placement 3.6.4.1. Timing-Driven Placement

Mục đích chính của timing-driven placement là giảm tối đa sự khác biệt về thời gian khi có sự chuyển đổi super model cell thành các cell thật sự. Thật vậy, trong quá trình phân tích trên đường truyền các cell có thể được thay thế để tăng khả năng lái tải hoặc thỏa một số ràng buộc nào đó. Nhưng chính việc thay đổi này gây sự khác biệt về thời

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

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

(90 trang)
w