Thiết kế ASIC khác với tổng hợp HDL của FPGA như thế nào?


42

Tôi đã có một số kinh nghiệm với các bộ công cụ FPGA / HDL như Xilinx ISE, Lattice Diamond, v.v. Quy trình công việc chung là viết Verilog / VHDL, mô phỏng, thử nghiệm và sau đó lập trình cho FPGA.

Tôi đã nghe một vài người nói rằng thiết kế ASIC rất khác nhau. Các bộ công cụ được sử dụng cho hai loại ASIC chính, ASIC cấp độ cổng và ASIC cấp độ Transitor là gì? Tôi đã xem xét các công cụ Tổng hợp cấp cao như Catapult C và Cadence C cho Silicon, nhưng tôi chưa bao giờ thử bất kỳ công cụ nào. Bạn có thể giải thích các loại công cụ khác nhau có sẵn trong trường ASIC / FPGA có thể thay đổi / tăng tốc quy trình làm việc HDL điển hình không?

Câu trả lời:


39

Thông thường thiết kế ASIC là một nỗ lực của nhóm do sự phức tạp và số lượng công việc. Tôi sẽ đưa ra một thứ tự các bước sơ bộ, mặc dù một số bước có thể được hoàn thành song song hoặc không theo thứ tự. Tôi sẽ liệt kê các công cụ mà tôi đã sử dụng cho từng nhiệm vụ, nhưng nó sẽ không phải là bách khoa toàn thư.

  1. Xây dựng thư viện di động. (Ngoài ra, hầu hết các quy trình đều có thư viện cổng có sẵn trên thị trường. Tôi sẽ khuyến nghị điều này trừ khi bạn biết bạn cần thứ gì đó không có sẵn.) Điều này liên quan đến việc thiết kế nhiều cổng cường độ ổ đĩa cho nhiều chức năng logic khi cần, thiết kế trình điều khiển / bộ thu pad, và bất kỳ macro nào như số nhân mảng hoặc bộ nhớ. Khi sơ đồ cho mỗi ô được thiết kế và xác minh, bố cục vật lý phải được thiết kế. Tôi đã sử dụng Cadence Virtuoso cho quá trình này, cùng với các trình giả lập mạch tương tự như SpectreHSPICE .

  2. Đặc trưng của thư viện di động. (Nếu bạn có thư viện cổng bên thứ ba, việc này thường được thực hiện cho bạn.) Mỗi ​​ô trong thư viện của bạn phải được mô phỏng để tạo các bảng thời gian cho Phân tích thời gian tĩnh (STA). Điều này liên quan đến việc lấy ô đã hoàn thành, trích xuất ký sinh trùng bố trí bằng Assura , Diva hoặc Calibre và mô phỏng mạch trong các điều kiện đầu vào và tải đầu ra khác nhau. Điều này xây dựng một mô hình thời gian cho mỗi cổng tương thích với gói STA của bạn. Các mô hình thời gian thường ở định dạng tệp Liberty . Tôi đã sử dụng Silicon SmartLiberty-NCXđể mô phỏng tất cả các điều kiện cần thiết. Hãy nhớ rằng bạn có thể sẽ cần các mô hình thời gian ở "trường hợp xấu nhất", "danh nghĩa" và "trường hợp tốt nhất" để hầu hết các phần mềm hoạt động chính xác.

  3. Tổng hợp thiết kế của bạn. Tôi không có kinh nghiệm với trình biên dịch cấp cao, nhưng vào cuối ngày, trình biên dịch hoặc chuỗi trình biên dịch phải lấy thiết kế cấp cao của bạn và tạo một danh sách mạng cấp độ cổng. Kết quả tổng hợp là cái nhìn đầu tiên bạn có được về hiệu năng hệ thống lý thuyết và là nơi các vấn đề về sức mạnh ổ đĩa được giải quyết đầu tiên. Tôi đã sử dụng Design Compiler cho mã RTL.

  4. Đặt và định tuyến thiết kế của bạn. Điều này lấy netlist cấp cổng từ bộ tổng hợp và biến nó thành một thiết kế vật lý. Lý tưởng nhất là tạo ra một bố trí pad-to-pad đã sẵn sàng để chế tạo. Thật dễ dàng để thiết lập phần mềm P & R của bạn để tự động tạo ra hàng ngàn lỗi DRC, do đó, không phải tất cả các trò chơi và trò chơi trong bước này cũng không phải là tất cả. Hầu hết các phần mềm sẽ quản lý các vấn đề về sức mạnh ổ đĩa và tạo cây đồng hồ theo chỉ dẫn. Một số gói phần mềm bao gồm Astro, IC Compiler, Silicon Enc GặpSilicon ráp. Kết quả cuối cùng từ địa điểm và tuyến đường là danh sách mạng cuối cùng, bố cục cuối cùng và ký sinh trùng bố cục được trích xuất.

  5. Phân tích thời gian tĩnh sau bố cục. Mục tiêu ở đây là để xác minh rằng thiết kế của bạn đáp ứng đặc điểm kỹ thuật thời gian của bạn và không có bất kỳ vấn đề thiết lập, giữ hoặc gating nào. Nếu yêu cầu thiết kế của bạn chặt chẽ, cuối cùng bạn có thể dành nhiều thời gian ở đây để sửa lỗi và cập nhật các bản sửa lỗi trong công cụ P & R của bạn. Công cụ STA cuối cùng chúng tôi sử dụng là PrimeTime .

  6. Xác minh vật lý của Bố cục. Khi công cụ P & R được tạo ra, bạn cần xác minh rằng thiết kế đáp ứng các quy tắc thiết kế quy trình (Kiểm tra quy tắc thiết kế / DRC) và bố cục phù hợp với sơ đồ (Bố cục so với sơ đồ / LVS). Các bước này phải được tuân theo để đảm bảo rằng bố cục được nối dây chính xác và có thể sản xuất được. Một lần nữa, một số công cụ xác minh vật lý là Assura , Diva hoặc Calibre .

  7. Mô phỏng thiết kế cuối cùng. Tùy thuộc vào độ phức tạp, bạn có thể thực hiện mô phỏng cấp độ bóng bán dẫn bằng Spectre hoặc HSPICE , mô phỏng "gia vị nhanh" bằng HSIM hoặc mô phỏng kỹ thuật số hoàn toàn bằng ModelSim hoặc VCS . Bạn sẽ có thể tạo một mô phỏng với độ trễ thực tế với sự trợ giúp của công cụ STA hoặc P & R của bạn.

Bắt đầu với một thư viện cổng hiện có là một trình tiết kiệm thời gian khổng lồ, cũng như sử dụng bất kỳ macro nào có lợi cho thiết kế của bạn, chẳng hạn như bộ nhớ, vi điều khiển hoặc các khối xử lý thay thế. Quản lý độ phức tạp của thiết kế cũng là một phần quan trọng - một thiết kế đồng hồ đơn lẻ sẽ dễ xác minh hơn so với mạch có nhiều miền đồng hồ.


2
Vì bạn đã đề cập đến Virtuoso, Cadence cung cấp một chuỗi công cụ hoàn chỉnh cho thiết kế (tôi nghĩ nó được gọi là Opus), nơi có thể bắt đầu từ sơ đồ, đặt một ô, đánh giá các hiệu ứng ký sinh, mô tả nó và sau đó xây dựng nó ở cấp trên .
clabacchio

1
Tôi nghĩ rằng mọi nhà cung cấp chính cung cấp một chuỗi công cụ hoàn chỉnh. Chúng tôi đã kết thúc việc sử dụng nhiều nhà cung cấp trong chuỗi công cụ của mình và theo cách đó chúng tôi có thể sử dụng các công cụ mà chúng tôi quen thuộc nhất hoặc có danh tiếng tốt nhất trong ngành.
W5VO

1
Chọn công cụ cho thư viện hoặc hỗ trợ bộ thiết kế thực tế là một yêu cầu. Nếu bạn không sử dụng phiên bản được hỗ trợ của một phần mềm cụ thể, một số sự không tương thích có thể giết chết thiết kế của bạn hoặc cung cấp cho bạn đọc sai. Điều đó đang được nói, phần lớn các công cụ EDA mà tôi đã thấy chạy trên các hệ thống Unix / Linux. Hầu hết có đường cong học tập dốc.
W5VO

1
@MartinThndry Hoàn toàn. Bạn càng đẩy các ranh giới của công nghệ của mình (ASIC / FPGA), các bước đó càng quan trọng. Điều đó đang được nói, các phiên bản ASIC của những công cụ đó cung cấp cho bạn nhiều dây hơn để bạn gặp rắc rối.
W5VO

1
Lưu ý rằng 1 và 2 không phải là một phần chung của thiết kế. Các bước này là một phần của cái gọi là "trình độ quy trình" và kết quả (thư viện được mô tả đầy đủ) được cung cấp bởi FAB Vendor. Nhưng một số công ty đang thực hiện "thiết kế tùy chỉnh đầy đủ" và phải tự mình hoàn thành 1 và 2.
Ale..chenski

7

Câu trả lời từ W5VO có xu hướng tập trung vào back-end và đây một sự khác biệt lớn giữa các luồng ASIC và FPGA; nhưng nó bỏ lỡ phần xác minh thiết kế kỹ thuật số.

Khi thiết kế trên silicon có thể tốn một triệu đô la và hơn thế nữa, và bạn có thể đóng gói nhiều cổng có thể sử dụng hơn trên ASIC so với một FPGA, sau đó bạn dành nhiều thời gian hơn từ phòng thí nghiệm và PCB trước các máy trạm chạy trang trại giả lập và trình giả lập và viết thử nghiệm để xác minh đầy đủ hơn một thiết kế ASIC trước khi bạn phát hành nó để sản xuất. Các nhà thiết kế đồ họa có xu hướng thực hiện một phần lớn thử nghiệm của họ bằng cách sử dụng FPGA trong hệ thống mà nó sẽ trở thành một phần của nó.


Tôi sẽ nói thêm rằng quy trình làm việc cơ bản cho một nhà thiết kế kỹ thuật số không khác nhiều giữa ASIC và FPGA, nhưng ASIC linh hoạt hơn nhiều về các yếu tố vĩ mô / vi mô có sẵn, đặt và định tuyến, trong khi đó, FPGA bị giới hạn trong các khối logic được chế tạo sẵn của họ và hạn chế trong cấu trúc liên kết. Do đó, FPGA không thể đạt đến mức hiệu suất của ASIC và có thể chỉ ra các giải pháp thiết kế hơi khác nhau.
Ale..chenski

Xin chào Ali Chen. Nếu thiết kế kỹ thuật số và xác minh kỹ thuật số được coi là riêng biệt thì dòng chảy cho thiết kế kỹ thuật số hoàn toàn gần hơn với FPGA so với ASIC, nhưng có sự tách biệt lớn trong xác minh như tôi đã đề cập. :-)
Paddy3118
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.