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ư.
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ư Spectre và HSPICE .
Đặ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 Smart và Liberty-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.
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.
Đặ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ặp và Silicon 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.
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 .
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 .
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ồ.