Physical Design Flow II: Floorplanning và Netlist

Thảo luận trong 'ASIC CĂN BẢN' bắt đầu bởi Lu ROm, 21 Tháng một 2018.

Chia sẻ trang này

Lượt xem: 750

  1. Lu ROm

    By:Lu ROmin: 21 Tháng một 2018
    Administrator Staff Member

    Tham gia ngày:
    25 Tháng bảy 2014
    Bài viết:
    475
    Đã được thích:
    102
    - Mình sẽ giới thiệu ( trong bài khác ) về FLOW của Physical Design(PD). Trong bài này mình sẽ giới thiệu cho các bạn về bước đầu tiên trong FLOW đó là Floorplanning hay có tên gọi khác Design Planning.
    Vậy, Floorplanning là gì? Nó có quan trọng như thế nào trong Flow của PD.

    - Floorplanning là quá trình lặp đi lặp lại (cả trong FLOW) để lên kế hoạch cho việc layout IC như:
    + Kích thước và hình dạng lõi IC (hay còn gọi là die) và các hàng cho placement (tạo ra các tracks để đặt các Standard cell).
    + Đặt các: Macro, IO, coner..
    + Xác định vị trí các Filler Pad cell ( tìm kiếm trên gg để biết nó là gì nha, hoặc hôm khác mình giới thiệu).
    + Tạo các contrains(ràng buộc) đế đặt Standard cell ví dụ như blockages cho Macro.
    + Power grid (rings, straps, rails).
    - Đây là bước quan trọng đầu tiên cho việc layout và theo mình đây là bước quan trọng nhất .Floorplan xác định chất lượng chip của chúng ta. Ở bước này chúng ta xác định kích thước chip /block của mình,phân bố các routing resources, đặt macro và dự trữ space cho các Standard Cell. Mỗi giai đoạn tiếp theo như place, route và CTS là tùy thuộc vào foorplan của chúng ta tốt như thế nào.

    Một Floorplanning tốt nên đáp ứng các ràng buộc sau đây.
    • Giảm thiểu tổng diện tích chip.
    • Làm cho giai đoạn Route dễ dàng.
    • Cải thiện hiệu suất bằng cách giảm sự delay của signal.
    Đầu vào của Floorplanning bao gồm:
    • Synthesized netlist(.v, .vhdl): code Verilog được Synthesis(tổng hợp) thành file Netlist ( cũng là code verilog nhưng ở mức GATE).
    • Design Constrains (SDC): Các ràng buộc của thiết kế như: input delay, output delay, latency, skew, max fanout...
    • Thông tin phần vùng cho thiết kế như: kích thước IC, thông tin P/G,..
    • IO placement file: Thông tin vị trí đặt các IO, pad cell...
    • Macro placement file: thông tin về Macro như: P/G, kích thước Macro..
    • Các File thư viện như: Technology File (thư viện công nghệ), Standard Cell Library ( Mình sẽ giới thiệu một bài về nó)...
    upload_2018-1-21_21-45-53.png
    Output của Floorplanning:
    • Die/Block area
    • I/O pad/placed
    • Macro placed
    • Power grid design
    • Power pre-routing
    • Standard cell placement areas.
    Các bước cơ bản trong Floorplanning:
    upload_2018-1-21_21-48-59.png

    Các bước quan trọng trong Floorplanning:
    Core Boundary
    Floorplan xác định kích thước và hình dạng của chip/block. Thiết kế số mức top sẽ có dạng hình chữ nhật hoặc hình vuông hoặc hình chử L tùy vào yêu cầu. Core boundary xác định Area(diện tích) mà chúng ta sẽ đặt các Standard Cell và các khối IP khác. Chúng ta có thể có không gian route bên ngoài core boundary. Đối với một chip đầy đủ, chúng ta cũng sẽ có IO buffers và IO pads đặt bên ngoài Core boundary .
    Trong công cụ PnR, Floorplanning có thể được kiểm soát bởi các thông số khác nhau:
    · Aspect ratio: Đây là tỷ số chiều cao chia cho chiều rộng, xác định floorplan là hình vuông hay hình chữ nhật. Aspect ratio bằng 1 sẽ cho chúng ta floorplan hình vuông.
    · Core utilization: Core utilization = (standard cell area+ macro cells area)/ total core area. Tỷ lệ sử dụng core là 0.8 có nghĩa là 80% diện tích dùng để place các cell, trong khi 20% cho việc route.
    IO Placement/Pin placement
    Nếu chúng ta đang làm một thiết kế digital-top, chúng ta cần phải đặt thêm IO pads và IO buffers của chip. Một chip hình chữ nhật hoặc hình vuông có pad ở bốn bên. Chúng ta có thể lấy các bên và vị trí tương đối của PADs từ tool. Các pad này có chức năng kết nối các Power và Ground của IO lại với nhau.
    Macro placement
    Khi chúng ta đã có sẵn kích thước và hình dạng của floorplan, bước tiếp theo là đặt các Macro vào bên trong core. Bạn có thể đặt tự động các Macro bằng lệnh hoặc bằng tay. Tốt nhất là cả hai :D . Bạn cũng có thể thêm Blockage xung quanh Macro để tránh các Cell đặt gần các IO của Macro, có thể dễ dẫn đên congestion trong khi Route.
    Creating Power Rings and Straps
    Ở giai đoạn này, chúng ta xác định các trunks cung cấp Power cho lõi. Chúng ta cũng phải đảm bảo rằng tất cả các macros đều có đủ các rings/straps xung quanh nó để nối vào PG trunks. Một cấu trúc Power tốt sẽ thực hiện lặp đi lặp lại để tối ưu và phân tích IR drop ở giai đoạn sau. upload_2018-1-21_22-33-29.png

    Những bước trên là những bước cơ bản trong Floorplanning. Mình sẽ giới thiệu các thuật ngữ, các bước chi tiết trong bài khác :D . Bài viết còn nhiều sai sót vì mình mới học PD. Mong các bạn góp ý. Cảm ơn :D
     

    Bài viết cùng chủ đề: