intTypePromotion=1
ADSENSE

Giáo trình Thiết kế mạch logic số - Chương 5: Thiết kế vi mạch số trên thư viện cổng chuẩn

Chia sẻ: Trần Văn Thắng | Ngày: | Loại File: PDF | Số trang:29

378
lượt xem
78
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình Thiết kế mạch logic số - Chương 5: Thiết kế vi mạch số trên thư viện cổng chuẩn giới thiệu công nghệ chế tạo IC, tổng quan về công nghệ ASIC trên thư viện cell chuẩn, quy trình thiết kế ASIC trên thư viện cổng chuẩn, tổng hợp thiết kế bằng Synopsys Design Compiler và phần bài tập chương 5.

Chủ đề:
Lưu

Nội dung Text: Giáo trình Thiết kế mạch logic số - Chương 5: Thiết kế vi mạch số trên thư viện cổng chuẩn

  1. Chương V: Thiết kế vi mạch số trên thư viện cổng chuẩn 1. Công nghệ chế tạo IC Công nghệ chế tạo vi mạch bán dẫn được phát triển từ những năm giữa của thế kỷ 20 và không ngừng phát triển biến đổi. Hình 4.1: Mô hình tấm silicon trong sản xuất IC Nguyên liệu để sản xuất IC vật liệu bán dẫn thường là silicon. Silicon đầu tiên được chuẩn bị dưới dạng thanh trụ dài (Silicon Ingot), hình dạng cho phép thu được tinh thế có độ đồng nhất cao. Khối trụ có đường kính thay đổi từ 50mm đến 300mm, sau đó được cắt thành các tấm hình tròn dầy bằng nhau (Silicon wafer), chiều dày của các tấm silicon thay đổi tùy từ 200 – 1000 µm tùy thuộc đường kính của tấm. Những tấm silicon này sẽ trải qua một quy trình quang khắc (photolithography) để cho ra sản phẩm cuối cùng là các khối IC vuông kích thước 2-15mm, mà thuật ngữ gọi là các dice, thông thường để tiết kiệm chi phí sản xuất thì các dice này được sản xuất hàng loạt giống nhau trên cùng một tấm silicon. Hình vẽ dưới đây minh họa cho nguyên l{ hoạt động của quá trình quang khắc. Nguyên l{ của quá trình quang khắc rất giống với nguyên l{ của quy trình rửa ảnh chụp bằng phim. Khi chụp ảnh thì cửa chụp của máy ảnh chỉ được mở ra trong một thời gian cực ngắn đủ cho ánh sáng tác động lên lớp vật liệu cảm quang trên bề mặt phim. Phim sau đó được rửa để tạo thành phim âm bản, qua phim này vùng nào bị ánh sáng chiếu vào thì trong suốt để ánh sáng đi qua, và ngược lại. Tới giai đoạn tái tạo hình ảnh, ánh sáng chiếu qua phim âm bản lên giấy ảnh,dưới kích thích của cường độ ánh sáng khác nhau lớp hóa Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 1
  2. chất trên giây ảnh sẽ tạo nên màu sắc khác nhau nhờ đó hình ảnh gốc khi chụp được khôi phục. Hình 4.2. Quy trình quang khắc (photolithography) trong sản xuât IC. Đối với quá trình quang khắc nguyên l{ làm việc cũng tương tự như vậy. Để sản xuất một IC, người ta dùng một bộ mặt nạ (masks) có tác dụng như phim âm bản, ánh sáng sử dụng trong kỹ thuật quang khắc là tia cực tím với bước sóng vào khoảng 200nm. Tấm silicon trước khi được chiếu tia cực tím thì được phủ lớp vật liệu cản quang (photoresit), lớp vật liệu này có độ dày từ 0,5- 1,0 µm. Tia cực tím được chiếu qua mặt nạ lên lớp cản quang, sau đó tấm silicon được rửa bằng dung dịch hóa chất đặc biệt, nếu vật liệu phủ là cản quang dương thì phần chịu tác động của tia cực tím sẽ bị biến đổi và bị rửa trôi, còn nếu là cản quang âm thì ngược lại, lớp vật liệu này sẽ bền trong dung dịch rửa trong khi phần còn lại sẽ bị hòa tan. Bên cạnh công nghệ “rửa ướt” bằng dung dịch hóa chất còn sử dụng công nghệ “rửa khô” bằng plasma. Sau khi những vị trí cần thiết bị tẩy đi thì tùy yêu từng giai đoạn sẽ phủ kim loại (thường là Cu) hoặc sử dụng những hóa chất tương ứng khuếch tán vào lớp bán dẫn để tạo cấu trúc tinh thể theo yêu cầu(tạo ra các khối bán dẫn kiểu P hay N). Tiếp đó phần vật liệu cản quang trên còn lại trên bề mặt được rửa đi Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 2
  3. hoàn toàn. Quá trình trên có thể được lặp đi lặp lại nhiều lần với nhiều mặt nạ khác nhau cho đến khi tạo xong hết các lớp cần thiết theo thiết kế. 2. Tổng quan về công nghệ ASIC trên thư viện cell chuẩn 2.1 Khái niệm thư viện phần tử logic chuẩn Standart Cell Library (SCL) hay thư viện phần tử logic chuẩn là tập hợp các phần tử logic cơ bản (cell) như AND, OR, NOT, Flip-flop, Latch, buffer… có cùng kích thước chiều cao nên gọi là chuẩn. Thư viện chuẩn tồn tại ở hai dạng cơ bản - Timing Abstract – Thư viện này thường có định dạng Synopsys Liberty, cung cấp thông tin về chức năng, tham số thời gian, về công xuất, nhiễu cho từng cell một. - Layout Abstract – thường dùng định dạng LEF, hoặc Synopsys Milkyway, chỉ chứa thông tin về layout của các cells tức là thông tin về hình dáng kích thước nhằm phục vụ cho quá trình bố trí cells và thiết lập kết nối giữa các cells (Place and Route). Phân biệt các công nghệ bán dẫn: Khi đề cập tới một công nghệ bán dẫn thì thường đề cập tới các tên gọi công nghệ 180nm, 90nm hay 65nm, đó là giá trị kích thước đặc trưng của thư viện bằng chiều dài kênh bán dẫn L (channel length) của các cổng logic có trong thư viện. Các công nghệ có kích thước đặc trưng càng nhỏ thì tương ứng có độ tích hợp càng cao và mức tiêu thụ năng lượng trên một đơn vị cổng càng thấp. Hình 4.3 Mô hình logic cell Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 3
  4. 2.2 Các đặc trưng của cell Max fan-out của một cell là số lượng kết nối tối đa có thể kết nối ở đầu ra của một cell đó , tương ứng cell có Drive Strengh càng lớn thì sẽ có khả năng kết nối nhiều đầu ra và có Max fan-out lớn. Drive strength: Một tham số khá quan trọng khác của các cổng logic là Drive strength hay Current flow là cường độ dòng chạy qua cổng, hay thường được coi như công suất của cổng, giá trị này tỷ lệ thuận với W/L. Trên thực tế để tăng công suất của cổng người ta thường ghép nối hai cổng nối tiếp hoặc song song như minh họa dưới đây. Hình 4.4 Tăng công suất cho cell Delay: Độ trễ cell là thời gian cần thiết để ổn định giá trị tín hiệu đầu ra của cell kể từ thời điểm ổn định của các tín hiệu đầu vào, đơn vị thời gian thường được quy định trong thư viện, ví dụ công nghệ 130nm quy định là ns (10-9s), trong khi thư viện 90nm trở xuống thường quy định là ps (10-12s). Độ trễ cell càng nhỏ nếu kích thước cell càng nhỏ, nghĩa là công nghệ càng tiên tiến thì vi mạch hoạt động càng nhanh. Độ trễ còn tỷ lệ nghịch với công xuất hay cường độ dòng của cell, nghĩa là cell có dòng ra càng lớn thì độ trễ càng nhỏ. Trên thực tế khi cố gắng giảm độ trễ của vi mạch thì một trong những giải pháp là sử dụng cell có công suất lớn hơn và dẫn đến tăng kích thước của vi mạch. Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 4
  5. Physical layout: là mô tả hình học của cell hay các kết nối được thể hiện bằng các khối đa giác được cấu tạo từ các vật liệu khác nhau. Hình vẽ dưới đây mô tả physical layout của cổng INVERTER dùng công nghệ CMOS. Physical layout của các cell là cơ sở để kết xuất ra các mặt nạ (MASK) dùng cho công đoạn cuối cùng là chế tạo bán dẫn. Hình 4.5 View of a cell 2.3 Khái niệm thiết kế ASIC trên thư viện cell chuẩn ASIC (Application Specific Intergreted Circuits) là khái niệm chỉ những vi mạch IC được thiết kế cho những ứng dụng đặc thù cụ thể nhất định. Với định nghĩa như vậy thì những IC chức năng thiết kế trên FPGA cũng có thể xem là ASIC. Tuy vậy trong lĩnh vực thiết kế vi mạch VLSI thuật ngữ công nghệ ASIC chỉ tới quy trình thiết kế chế tạo IC trên các thư viện cổng, nội dung của chương này sẽ đi sâu nghiên cứu một phần về công nghệ thiết kế này. Công nghệ thiết kế này chia làm hai loại chính: Full-custom ASIC Design: là quy trình thiết kế IC có mức độ chi tiết cao nhất nhằm thu được sản phẩm tối có hiệu quả làm việc cao nhất và đạt tối ưu về mặt tài nguyên trên nền một công nghệ bán dẫn nhất định. Để đạt được mục đích đó thiết kế không những được tối ưu ở những mức cao mà còn được tối ưu ở mức độ bố trí transitor và kết nối giữa chúng, ví dụng hai khối logic Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 5
  6. cùng thực hiện hàm OR nhưng phân bố ở hai vị trí khác nhau thì được cấu trúc bằng các mạch transitor khác nhau, phụ thuộc vào các thông số khác như tải đầu vào, đầu ra, vị trí, các khối liền kề…Chính vì thế Full-custom ASIC đôi khi còn được gọi là random-logic gate networks nghĩa là mạch tạo bởi những cổng không đồng nhất. Semi-custom ASIC Design: Phân biệt với Full-custom ASIC, khái niệm này chỉ quy trình thiết kế mà mức độ chi tiết không đạt đến tối đa, thông thường thiết kế đạt chi tiết đến mức cổng logic hoặc cao hơn. Do Full-custom ASIC có độ phức tạp cao nên không những chi phí cho quá trình thiết kế rất lớn mặt khác thời gian dành cho thiết kế có thể kéo dài hàng vài năm trở lên, trong thời gian đó có thể đã có những công nghệ mới ra đời, mỗi một thay đổi nhỏ kéo theo việc phải làm lại gần như toàn bộ thiết kế và phát sinh thêm chi phí rất nhiều do vậy lợi nhuận sản phẩm bán ra thấp hay thậm chí thua lỗ. Semi- custom ASIC cân bằng giữa chi phí thiết kế và chất lượng sản phẩm bằng cách đẩy nhanh và giảm thiểu chi phí cho quá trình thiết kế, bù lại sản phẩm làm ra không đạt được mức tối ưu l{ thuyết như Full-custom design. Có nhiều dạng semi-custom design nhưng một trong những kiểu cơ bản mà thường được sử dụng là thiết kế trên cơ sở thư viện cổng chuẩn (Standard Cell Library), thư viện này là tập hợp của các cổng logic như AND, OR, XOR, thanh ghi… có cùng kích thước chiều cao băng kích thước đặc trưng của thư viện. Trong chương này ta sẽ nghiên cứu kỹ về công nghệ ASIC này. 2.4 So sánh giữa ASIC và FPGA Trước khi đi sâu vào nghiên cứu về ASIC, ta sẽ so sánh một cách tổng quan nhất ASIC và công nghệ FPGA mà ta đã tìm hiểu ở chương trước: Tiêu chí FPGA ASIC Ưu thế Mức độ phức Đơn giản, tập trung vào Phức tạp, từ thiết kế chức FPGA tạp thiết kế chức năng là chính, năng đến khi tạo ra các các bước khác thực hiện Layout gồm 11 bước, độ gần như tự động hoàn toàn phức tạp tăng từ trên xuống dưới Thời gian thiết Thời gian ngắn có thể trong FPGA kế vài tuần hoặc vài tháng Đội ngũ kỹ sư Có thể 1 người thực hiện Nhiều người và nhiều lĩnh FPGA hoặc một nhóm người hiểu vưc khác nhau, trình độ biết về FPGA cao. Khả năng tối ưu Ít, chủ yếu bằng thuật toán Nhiều, có nhiều bước để ASIC thiết kế tối ưu thiết kế. Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 6
  7. Sản phẩm Có thể làm được trong điều Chỉ có sau khi sản xuất tại FPGA kiện bình thường nhà máy Khả năng làm Thấp(so với ASIC) do cấu Cao, do được tối ưu ở ASIC việc (cho cùng trúc khả trình chặt chẽ. nhiều mức. một IC chức năng) Diện tích (cho Gấp hàng chục lần ASIC do Nhỏ (so với FPGA) nhiều ASIC cùng một IC cấu trúc FPGA phức tạp và lần chức năng ) FPFA có hiệu xuất sử dụng tài nguyên không cao. Khả năng tái Có Không FPGA cấu trúc Chi phí Thấp nếu cho ít sản phẩm, Thấp nếu sản xuất hàng ASIC nhưng đối với số lượng lớn loạt nhiều sản phẩm thì đắt hơn ASIC Hình 4.6. FPGA vs ASIC Dựa vào bảng trên cho thấy ASIC phù hợp với những thiết kế đòi hỏi tính tối ưu cao, chẳng hạn các vi mạch dùng cho các quá trình tính toán mô phỏng phức tạp vượt quá khả năng của PC hay FPGA, những vi mạch dùng trong quân sự, y học đòi hỏi làm việc với thời gian thực điều kiện môi trường khắc nghiệt, Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 7
  8. những thiết bị dân dụng có thị trường lớn như Vi xử l{, vi điều khiển vì chi phí sản xuất khi đó sẽ thấp. FPGA sẽ thích hợp cho những thiết kế ứng dụng nhỏ, đặc biệc có khả năng tái cấu trúc, những thiết kế có chi phí thấp và thời gian hoàn thiện ngắn hạn, không đòi hỏi cao về khả năng làm việc hay điều kiện làm việc. 3. Quy trình thiết kế ASIC trên thư viện cổng chuẩn. Phần trên đã trình bày sơ lược về quy trình sản xuất vi mạch bán dẫn, trên thực tế quy trình này rất phức tạp, có sự tham gia của nhiều nghành khoa học khác nhau và đòi hỏi độ chính xác rất cao. Trong khuôn khổ chương trình tại các trường đại học các sinh viên chủ yếu được giới thiệu về công nghệ thiết kế vi mạch trên máy tính. Nhờ có sự tiêu chuẩn hóa và thống nhất cao trong định dạng trao đổi dữ liệu cũng như quy trình công nghệ mà quá trình thiết kế có thể tách riêng không phụ thuộc nhiều vào quá trình sản xuất tại nhà máy. Đầu vào của quá trình sản xuất chính là bộ Physical layouts hay các mặt nạ (masks). Do đó sản phẩm cuối cùng của quy trình thiết kế là tạo ra phiên bản các mặt nạ (masks) phục vụ trong quá trình sản xuất hàng loạt. Sơ đồ tổng quan của quy trình thiết kế được trình bày ở hình sau: Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 8
  9. FRONT-END DESIGN BACK-END DESIGN Mô tả thuật toán Floorplaning (Specifitation) (Specifitation) RTL - coding Placement RTL Simulation/ Clock Tree Verification Synthesis Tổng hợp Routing (Synthesis) Verification Logic Verification (Formal, Timing, Physical) Fabrication Mask Generation (GDSII), IC Manufacturing and Testing Hình 4.7: Quy trình thiết kế IC. Toàn bộ quy trình thiết kế IC được phân chia thành hai phần, phần thứ nhất Front-End Design - thiết kế logic và Back-End Design - Thiết kế vật lý. Chú ý rằng khái niệm Front-End và Back-end nếu dùng cho quá trình sản xuất IC thì lại được hiểu khác, khi đó Front-end là toàn bộ các bước từ thiết kế logic cho đến khi chế tạo xong IC, Back-end là quy trình kiểm tra và đóng gói IC. Mô tả thuật toán (Specification): Đối với những thiết kế phức tạp thì quá trình hoàn thiện các tài liệu mô tả thuật toán chiếm thời gian không nhỏ trong toàn bộ thiết kế. Mô tả chức năng bao gồm đặt vấn đề bài toán, trên cơ sở đó phân tích để tìm ra thuật toán giải quyết. Thuật toán thường được thể hiện bằng các sơ đồ khối trên đó mô tả chi tiết chức năng của từng khối và cách chúng liên kết với nhau. Một trong những điểm khó nhất trong việc mô tả Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 9
  10. thuật toán là phải lập được biểu đồ trạng thái làm việc của mạch theo thời gian. Nếu mô tả ở phần này càng chi tiết thì càng đơn giản cho quá trình viết mã HDL ở dưới và tránh được những lỗi thiết kế về mặt thuật toán. RTL coding là thuật ngữ chỉ mô tả thiết kế ở mức thanh ghi truyền tải. Đây là một trong những bước quan trọng nhất trong quy trình thiết kế logic, ở bước này các kỹ sư sẽ mô tả thiết kế bằng ngôn ngữ mô tả phần cứng HDL (Hardware Description Language) trên cơ sở tài liệu mô tả thuật toán ở bước trên, nếu so sánh với lập trình viên phần mềm thì bước này tương ứng với bước viết code chương trình. Mô tả VHDL thường được chia nhỏ thành các module độc lập, việc chia nhỏ này thực chất cũng đã được thực hiện ở bước một, các module khi này có thể được tiến hành mô tả độc lập và song song với nhau. RTL Simulation: kiểm tra thiêt kế ở mức cao đã được đề cập ở chương hai, tuy nhiên khi làm những thiết kế phức tạp không thể bỏ qua bước đầu tiên là lập phương án kiểm tra. Lập phương án kiểm tra bao gồm xác định phương pháp kiểm tra, dạng kiểm tra (đầy đủ hay không đầy đủ), và miền kiểm tra. Việc kiểm tra thiết kế được thực hiện từ theo lần lượt từ các module riêng lẻ cấp dưới đến các module lớn hơn và cuối cùng là module tổng (Top-level module). Kiểm tra theo quy trình đó là cách tốt nhất nhằm đơn giản hóa quá trình kiểm tra vì kiểm soát lỗi ở module nhỏ bao giờ cũng đơn giản hơn kiểm soát lỗi ở một module cỡ lớn. 4. Tổng hợp thiết kế bằng Synopsys Design Compiler Ở phần này sẽ tập trung vào giới thiệu quy trình tổng hợp thiết kế từ mã nguồn RTL trên thư viện cổng chuẩn, cụ thể là trên công cụ tổng hợp logic Design compiler của hãng Synopsys. Các lệnh minh họa và ví dụ được làm trên phiên bản Design compiler 2004, công cụ này chạy trên hệ điều hành Linux, ở chế độ dòng lệnh tương tự như khi dùng mô phỏng thiết kế trên Modelsim bằng Tcl Script. Ví dụ minh họa ở hình sau: Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 10
  11. Hình 4.8: Chương trình Design Compiler. Dữ liệu của đầu vào tổng hợp thiết kê bao gồm mô tả RTL, mô tả thư viện công nghệ (Technology Library) và mô tả các yêu cầu hay điều kiện ràng buộc đối với thiết kế. RTL model TECHNOLOGY CONSTRAINT LIBRARY LOGIC SYNTHESIS .DB file NETLIST Hình 4.9: Tổng hợp logic . Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 11
  12. 4.4. Thiết lập điều kiện làm việc, mục tiêu thiết kế (Constraint design) Chức năng của thiết kế được quy định ở mô tả RTL là không thể thay đổi nhưng có thể hiện thực hóa theo nhiều phương án khác nhau. Thiết lập ràng buộc (Constraint design) là bước thiết lập các điều kiện làm việc, mục tiêu cho đối tượng thiết kế, những thiết lập này là cơ sở cho quá trình tối ưu hóa thiết kế khi thực hiện tổng hợp. Các điều kiện ràng buộc thiết lập có thể liên quan tới các tham số về mặt thời gian, diện tích, các tham số về điều kiện làm việc hay đối tượng công nghệ sẽ áp dụng. Các điều kiện đó được chia thành 2 dạng như sau: ENVIROMENT DESIGN CONSTRAIT CONSTRAINT CONSTRAINT Hình 4.10: .Điều kiện ràng buộc cho tổng hợp logic - Enviroment constraint: Thiết lập các tham số vật lý về môi trường làm việc như nhiệt độ, điện áp… - Design constraints: Là các điều kiện ràng buộc chi tiết, hay mục tiêu cho đối tượng thiết kế cụ thể. Các điều kiện ràng buộc thường được viết dưới dạng một file text, có đuôi mở rộng là .scr (không bắt buộc). Các lệnh này có thể được đưa vào tuần từ từ dòng lệnh hoặc đưa vào bằng cú pháp dc_shell> include Ví dụ nội dung một file script như sau: current_design pu_pu clk_name = clk clk_period = 2950 clk_s = "2950" if (find(port, clk) == {"clk"}) { clk_name = clk create_clock -period clk_period clk } set_clock_uncertainty 610 clk_name set_driving_cell -lib_cell SCWBUFXC1 all_inputs() Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 12
  13. set_max_fanout 4.0 all_inputs() set_input_delay 1500 -clock clk_name REG_CODE[*] set_load 0.01 all_outputs() set_max_transition 100 all_inputs() set_max_area 1150000 set_multicycle_path 2 -from ctreg/Num_pack_out_bits[*] set_max_delay 4000 -from ctreg/XS[*] -to fu/pu_pack/PACK_OUT[*] set_multicycle_path 2 -from ctreg/M[*] set_multicycle_path 2 -from ctreg/Y[*] current_design pu_pu compile -boundary_optimization -map_effort medium Dưới đây ta sẽ lần lượt đi tìm hiểu các điều kiện ràng buộc này với các ví dụ viết cho trình tổng hợp logic Design Compiler của Synopsys 4.4.1. Thiết lập các tham số về môi trường làm việc (Enviroment constraints) Set_operating_condition: Lệnh này thiết lập điều kiện làm việc của thiết kế, điều kiện đó được quy định bằng các tên gọi không độc lập với thư viện là xấu nhất (WORST), tiêu chuẩn (NOMINAL) và tốt nhất (BEST). Các tham số cụ thể gắn với từng tên gọi này được quy định trực tiếp trong mô tả thư viện. Set_operating_condition Ví dụ: dc_shell -t> set_operating_conditions WORST dc_shell -t> set_operating_conditions BEST Ví dụ mô tả operating condition có dạng như sau: operating_conditions (WORST) { process : 1.3 ; temperature: 100.0 ; voltage: 2.75 ; tree_type : worst_case_tree ; } operating_conditions (NOMINAL) { process : 1.0 ; temperature: 25.0 ; voltage : 3.00 ; tree_type : balanced_tree ; } operating_conditions (BEST) { process : 0.7 ; temperature: 0.0 ; voltage: 3.25 ; tree_type : best_case_tree ; } Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 13
  14. Điều kiện làm việc ảnh hưởng rất lớn tới kết quả tổng hợp, đặc biệt là về mặt thời gian. Ví dụ trong trường hợp WORST nhiệt độ môi trường làm việc là 100oC thì các phần tử logic làm việc với độ trễ cao hơn so với bình thường ở 25oC, và hiệu xuất làm việc của IC nói chung sẽ kém hơn. Một ví dụ khác là khi giá trị voltage là DC đầu vào càng lớn thì tốc độ làm việc càng cao và khả năng chống nhiễu càng tốt. Set_wire_load_model: thiết lập mô hình của đường kết nối, các dạng mô hình được định nghĩa sẵn ở trong thư viện công nghệ của Synopsys. Mô hình đường kết nối xác định các tham số vật l{ như điện trở (resistance) điện dung (capacitance) diện tích, fan-out length của kết nối trên một đơn vị chiều dài, các tham số này dùng cho mô hình tính trễ của đường truyền. Ví dụ như sau: set_wire_load_model -name dc_shell -t> set_wire_load_model-name MEDIUM Ví dụ về WIRE_LOAD_MODEL wire_load (SMALL) { resistance : 0.2 ; capacitance :1.0 ; area : 0 ; slope : 0.5 ; fanout_length( 1, 0.020) ; fanout_length( 2, 0.042) ; fanout_length( 3, 0.064) ; fanout_length( 4, 0.087) ; fanout_length(1000,20.0) ; } wire_load(MEDIUM) { resistance : 0.2 ; capacitance : 1.0 ; area : 0 ; slope : 1.0 ; fanout_length( 1, 0.022) ; fanout_length( 2, 0.046) ; fanout_length( 3, 0.070) ; fanout_length( 4, 0.095) ; fanout_length(1000,30.0) ; } set_wire_load_mode: định nghĩa lựa chọn một trong ba cách thức thực áp dụng mô hình dây dẫn là top, enclosed, và segmented trên thực tế chỉ một trong hai model đầu tiên thường được sử dụng. set_wire_load_mode < top | enclosed | segmented > dc_shell -t> set_wire_load_mode top Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 14
  15. top: quy định tất cả các module con đều được thừa hưởng mô hình kết nối giống như module ở cấp cao nhất (top-level module). enclosed: quy định rằng mô hình kết nối của module con sẽ giống mô hình kết nối của module trực tiếp chứa nó. segmented: quy định cho mô hình đường kết nối giưac các khối con ví dụ hai khối con B và C nằm trong khối A sẽ có kết nối theo mô hình của A, nhưng bản thân mô hình đường kết nối của các đường dữ liệu bên trong B và C thì được định nghĩa riêng. set_drive và set_driving_cell: sử dụng chỉ cho các đối tượng là inputs và outputs, set_drive dùng để thiết lập drive strength cho tín hiệu đầu vào, nếu dùng set_driving_cell thì giá trị drive strength đầu vào được lấy từ giá trị của cell được coi là đứng trước nó. Chú ý rằng trên thực tế không có cell nào được đặt thêm vào mạch. Cú pháp và ví dụ của các lệnh như ở dưới đây, chú { nếu drive strength được đặt là 0 thì có nghĩa là tín hiệu có độ mạnh nhất và thường dùng đặt cho tín hiệu clock. set_drive set_driving_cell –cell –pin dc_shell -t> set_drive 0 {CLK RST} dc_shell-t> set_driving_cell –cell BUFF1 –pin Z [all_inputs] set_load: quy định giá trị điện dung cho các tín hiệu thường là các tín hiệu đầu ra của các khối, đơn vị điện dung tính băng nf, pf tùy theo quy định về đơn vị trong thư viện. Cú pháp và ví dụ như sau: set_load dc_shell -t> set_load 1.5 [all_outputs] dc_shell -t> set_load 0.3 [get_nets blockA/n1234] Design Rule Constraints hay DRCs là tâp hợp các lệnh set_max_transition, set_max_fanout and set_max_capacitance thiết lập các quy tắc mà quá trình tổng hợp thiết kế phải tuân thủ, các quy định này được trích ra từ các tham số liên quan tới quy trình công nghệ sản xuất IC và nhất thiết không được vi phạm thì mới đảm bảo sản phẩm IC tạo ra làm việc đúng theo yêu cầu. DRC áp dụng cho tất cả input và output của thiết kế hiện hành. Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 15
  16. set_max_transition: thường được dùng cho các input, quy định rằng tất cả các đầu vào có thời gian truyền transition time lớn hơn thời gian quy định của chân tải đầu max_transition vào sẽ không được nối. Ví dụ set_max_transition dc_shell-t> set_max_transition 0.3 current_design set_max_capacitance: thường được dùng cho các output, quy định rằng đầu ra tương ứng chỉ được phép nối với các đường dẫn có tổng giá trị điện dung nhỏ hơn giá trị max_capacitance. set_max_capacitance dc_shell-t> set_max_capacitance 1.5 [get_ports out1] set_max_fanout: quy định số lượng lớn nhất các kết nối mà đầu ra có thể phục vụ. set_max_fanout dc_shell-t> set_max_fanout 3.0 [all_outputs] 4.4.2. Thiết lập constraints cho thiết kế cụ thể. Đối với các thiết kế cụ thể, người thiết kế phải xác lập các mục tiêu và các điều kiện ràng buộc tương ứng về mặt thời gian và diện tích. Phụ thuộc vào các xác lập này, trình tổng hợp sẽ cố gắng đưa ra những phương án mạch nhằm đáp ứng những yêu cầu đó, quá trình đó chính là quá trình tối ưu hóa thiết kế. Một lưu { quan trọng là những xác lập phải dựa trên cơ sở thực tế, nếu người thiết kế cố tình đưa ra những yêu không có khả năng hiện thực hóa sẽ khiến quá trình tổng hợp kéo dài mà kết quả tổng hợp đưa không phải là tối ưu. create_clock: Lệnh quy định cho xung nhịp đồng bộ cho toàn bộ hoặc một phần của thiết kế, clock sẽ được xác lập với chu kz xác định và hình dạng tín hiệu. Ví dụ để xác nhận tín hiệu có tên CLK trong thiết kế là tín hiệu xung nhịp hệ thống với chu kz 40 ns và bán với 50% thời gian của chu kz đầu tích cực ở mức cao thì dùng câu lệnh như sau dc_shell-t> create_clock–period 40 –waveform [list 0 20] CLK Trong một số trường hợp khi làm việc với các khối tổ hợp thuần túy thì có thể tạo ra một xung nhịp ảo để giới hạn thời gian trễ đầu vào với đầu ra, tuy vậy cách làm đơn giản mà dễ sử dụng hơn là dùng lệnh set_max_delay, ví dụ set_max_delay -to all_outputs() 1.7 Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 16
  17. create_generated_clock: lệnh này sử dụng để định nghĩa xung nhịp đồng thứ cấp được tạo ra bên trong khối thiết kế, thông thường bởi các khối chia tần. create_generated_clock –name –source –divide_by | –multiply_by set_dont_touch_network: là một lệnh rất hữu dụng, thường được sử dụng với các tín hiệu như xung nhịp clock hay reset, khi gặp lệnh này Design compiler sẽ bỏ qua không thực hiện thay đổi thêm với các tín hiệu đó trong quá trình tối ưu thiết kế nữa. Ví dụ như sau: dc_shell > set_dont_touch_network {CLK, RST} set_dont_touch: Dùng để báo cho trình tổng hợp biết không được thay đổi cấu trúc của thiết kê, khối, cổng, chỉ ra trong dòng lệnh. Lệnh này rất hay được sử dụng khi tổng hợp module từ các module đơn lẻ, khi các module đơn lẻ đã đạt được cấu trúc hợp lý có thể dùng lệnh này để lưu giữ cấu trúc đó lại, quá trình tối ưu sẽ chỉ được thực hiện với các module khác bên ngoài nó. Ví dụ như sau: dc_shell-t> set_dont_touch current_design dc_shell -t> set_dont_touch [get_nets gated_rst] set_dont_use: Dùng để báo cho Design Compiler biết không được sử dụng cell, hoặc danh sách các cell chỉ định trong tham số dòng lệnh. Ví dụ lệnh sau ngăn không cho Design Compiler sử dụng các Flip-flop có tên SDFF* hoặc RSFF* dc_shell -t> set_dont_use [list mylib/SDFF* mylib/RSFF*] set_input_delay Là một lệnh khá quan trọng dùng để thiết lập giá trị độ trễ đầu vào cho thiết kế. Giá trị này được đặt chỉ khi mạch đang xét là mạch dãy, khi đó độ trễ thường được tính căn cứ vào thời điểm xung nhịp đồng bộ được kích hoạt. Xét như ở ví dụ dưới đây. dc_shell> set_input_delay –max 23.0 –clock CLK {datain} dc_shell> set_input_delay –min 0.0 –clock CLK {datain} Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 17
  18. Hình 4.11: Thiết lập input delay Khi ta đặt trễ đầu vào với tham số -max cho tín hiệu din nghĩa là khoảng thời gian kể từ điểm kích hoạt của xung nhịp đồng hồ cho tới khi tín hiệu đầu vào ổn định không được vượt giá trị thời gian quy định trong câu lệnh, hay nói một cách khác đó là thời gian trễ lớn nhất có thể của khối logic tổ hợp đầu vào của thiết kế giữa thanh ghi cuối cùng của module trước đó đến thanh ghi đầu tiên của module đang xét. Khi câu lệnh đi cùng tham số -min thì đó chính là giới hạn thời gian Thold của lớp thanh ghi tại vị trí đầu vào. Ở ví dụ trên: Như ở hình vẽ trên, tín hiệu xung nhịp đồng bộ có chu kz là 30ns, trong đó ½ chu kz là mức tích cực dương còn ½ là mức tích cực âm. Với hai câu lệnh trên thì thời gian trễ lớn nhất của khối logic đầu vào là 23ns, và thời gian Tsetup tương ứng là 7ns với Thold = 0ns set_output_delay: Dùng để thiết lập tham số thời gian trễ cho tín hiệu ra quy định khoảng thời gian kể từ khi giá trị tín hiệu đầu ra xác định đến thời điểm kích hoạt của xung nhịp đồng bộ tiếp theo. Ví dụ như sau: dc_shell> set_output_delay –max 19.0 –clock CLK {dataout} Hình 4.12: thiết lập input delay Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 18
  19. Với lệnh trên khối logic tổ hợp đầu ra có độ trễ tối đa không quá T – 19 ns = 11ns, nghĩa là đầu ra buộc phải ổn định sau 11ns sau sườn xung nhịp. set_clock_uncertainty: Thiết lập giá trị cho clock skew hoặc điều chỉnh các giá trị cho Tsetup và Thold ví dụ, câu lệnh thứ nhất xác lập các giá trị Tsetup và Thold, câu lệnh thứ hai xác lập giá trị clock_skew dc_shell> set_clock_uncertainty –setup 0.5 –hold 0.25 CLK dc_shell> set_clock_uncertainty .25 CLK set_false_path: được sử dụng để báo cho Design compiler biết đường dữ liệu (paths) cần phải bỏ qua khi thực hiện tối ưu hóa thiết kế, lệnh này thường gặp ví dụ khi thiết kế của chúng ta có nhứng nhóm đường gây trễ lớn mà không thể tối ưu hơn được trong khi trình biên dịch lại bỏ qua những đường khác, việc bỏ qua các đường đó giúp Design Compiler làm việc tốt hơn với nhóm còn lại và có thể có kết quả ảnh hưởng theo chiều hướng tốt với các nhóm bị bỏ qua. dc_shell> set_false_path –from in1 –through U1/Z –to out1 set_multicycle_path: Trong mô tả RTL có những tình huống mà thời gian trễ giữa hai lớp thanh ghi không phải lúc nào cũng là 1 xung nhịp đồng hổ mà có thể là vài xung nhịp. Lệnh set_multicycle_path cho phép quy định nhóm đường dữ liệu hoạt động với độ trễ là nhiều xung nhịp, việc đặt đúng tham số này sẽ giúp Design Compiler dễ dàng tối ưu hóa thiết kế tốt hơn do hiểu đúng cách thức làm việc của mạch thực tế. dc_shell> set_multicycle_path 2 –from U1/Z –through U2/A –to out1 set_max_delay Xác định thời gian trễ lớn nhất cho một hay một nhóm đường dữ liệu, lệnh này thường được sử dụng để giới hạn thời gian trễ cho các khối logic tổ hợp, ví dụ câu lệnh sau giới hạn thời gian trễ từ tất cả đầu vào cho đến đầu ra không được vượt quá 5 ns dc_shell -t> set_max_delay 5 –from [all_inputs] –to [all_outputs] set_min_delay Thiết lập điều kiện ngược với set_max_delay, trên thực tế rất ít sử dụng lệnh này. dc_shell> set_min_delay 3 –from [all_inputs] –to [all_outputs] Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 19
  20. set_max_area: xác định giới hạn diện tích sử dụng cho thiết kế, diện tích tỷ lệ thuận với số lượng cổng và thông thường tỷ lệ nghịch với thời gian trễ hay tốc độ của mạch. Theo ngầm định thì Design Compiler ưu tiên tối ưu hóa về mặt tài nguyên trước sau đó mới đến diện tích. Việc tối ưu về diện tích thường được làm sau khi tối ưu về mặt thời gian, trên thực tế đôi khi quá trình tối ưu hóa về mặt diện tích lại có tác động tích cực lên các tham số thời gian. dc_shell> set_max_area 10000 4.2 Tổng hợp logic Khái niệm tổng hợp logic (logic synthesis), trong thiết kế ASIC cũng giống như khái niệm tổng hợp thông thường, tức là chuyển mô tả RTL từ một mức độ trừu tượng cao xuống mức độ trừu tượng thấp hơn. Bên cạnh đó, thiết kế RTL là thiết kế độc lập với công nghệ còn kết quả của quá trình tổng hợp là đã gắn với một thư viện phần cứng xác định và do đó phụ thuộc vào công nghệ của thư viện đó. Có các phương pháp sau thường được sử dụng để tổng hợp logic dùng Design compiler. 4.2.1 Tổng hợp toàn bộ Với phương pháp này module cấp cao nhất sẽ được tổng hợp, ở một số phiên bản cũ của Design compiler việc tổng hợp các module lớn (>10k gates) là một nhiệm vụ hết sức khó khăn, tuy vậy ở các phiên bản sau thì Design Compiler đã có thể dễ dàng làm việc với các mô tả >100K gates. Ưu điểm của phương pháp này là chỉ cần một file script thiết lập điều kiện cho quá trình tổng hợp và quá trình tối ưu được thực hiện giữa các khối, mang lại hiệu quả cao. Nhược điểm là thời gian tổng hợp thường rất lâu, một thay đổi nhỏ của một khối sẽ dẫn đến phải làm lại từ đầu. Mặt khác với những thiết kế sử dụng có cấu trúc xung nhịp hệ thống phức tạp (multicycle paths, generated clocks) thì kết quả tổng hợp thường không đạt tối ưu. 4.2.2. Tổng hợp theo phương pháp chia nhỏ. Đối với phương pháp này thiết kế bị chia nhỏ thành các khối chức năng riêng, mỗi một khối được tổng hợp với các điều kiện ràng buộc riêng, sau đó mới tổng hợp module tổng dựa trên kết quả tổng hợp các khối con. Phương pháp này có ưu điểm là dễ dàng kiểm soát các mã tổng hợp cho các khối riêng, Chương IV - Thiết kế vi mạch sổ trên thư viện cổng chuẩn 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD


intNumView=378

 

Đồng bộ tài khoản
2=>2