QUI TRÌNH THIẾT KẾ SoC

Một phần của tài liệu Tài liệu Tổng Quan Về Bộ Nhớ Bán Dẫn và Qui Trình Thiết Kế SoC doc (Trang 28 - 31)

Cũng giống như qui trình thiết kế ASIC, qui trình thiết kế SoC bao gồm 2

công đoạn: Front-end và Back-end; tương ứng với hai giai đoạn thiết kế: thiết kế

luận lý và thiết kế vật lý.

Hình 23: Qui trình thiết kế chung của SoC.

Trong hình trên, giai đoạn thiết kế luận lý bao gồm: System-level Specification, Behavior-level Description, RTL-level Description, Generic logic Description, Gate/Circuit Design. Mục đích cuối cùng trong giai đoạn này là tạo ra

được file netlist cho phần thiết kế vật lý. Phần còn lại thuộc giai đoạn thiết kế vật lý.

Giai đoạn thiết kế vật lý có đầu vào là file netlist từ giai đoạn trước và mục đích

7.1. Thiết kế luận lý (front-end):

Giai đoạn thiết kế luận lý được chia thành ba công đoạn nhở: thiết kế kiến trúc hệ thống, viết code RTL và mô phỏng và công đoạn tổng hợp netlist.

Hình 24: Qui trình thiết kế luận lý (Front-end)

Kiến trúc hệ thống (System architecture): Từ yêu cầu của người dùng, người thiết kế cần tạo ra một bảng mô tả chức chức năng theo yêu cầu (datasheet hay specification). Dựa trên bảng mô tả này, hệ thống được mô tả lại bằng ngôn ngữ HDL dưới dạng hành vi (behovior). Module này được dùng để kiểm tra với module

được viết bằng HDL dưới dạng RTL sau này. Module viết dưới dạng mô tả hành vi

được mô phỏng và chỉnh sửa cho đến khi đáp ứng được chức năng mà người dùng yêu cầu. Kếđến, người thiết kế cần xây dựng file mô tả kiến trúc cho hệ thống ở

mức logic. Lựa chọn các khối logic sẽ thực thi các chức năng. File này được dùng cho việt mô tả hệ thống bằng RTL ởgiai đoạn sau.

Viết code RTL: Dựa trên file mô tả hệ thống ở mức logic (architecture dạng text), hệ thống được mô tả lại bằng ngôn ngữ HDL mức RTL. Hai file này

(architecture và RTL code) được chỉnh sửa liên tục trên sơ sở mô phỏng RTL code. Hệ thống được viết bằng RTL code phải cho ra chức năng như khi được viết bằng HDL mức hành vi. Ởgiai đoạn này, có hai công đoạn cần kiểm tra: trước hết là

kiểm tra chức năng (so sánh với HDL mức hành vi), và định nghĩa một sốtrường hợp lỗi có thể xảy ra đểđảm bảo hệ thống chạy đúng. Các phần mềm có thểđược

dùng cho công đoạn này: NC-Verilog, NC-VHDL (của Cadence), ModelSim (của Mentor Graphics), VCS (của Synopsys).

Tổng hợp (Synthesis): Sau khi kiểm tra và đảm bảo hệ thống chạy đúng chức

năng, RTL code được dùng để tổng hợp tạo netlist. Ởcông đoạn này, người thiết kế

cần chuẩn bị thêm constraints (file mô tả các ràng buộc vềmôi trường và về timing

đểtương tác với phần mềm) và thư viện dùng để tổng hợp logic. Thư viện là nơi

chứa sẵn các mô tả chức năng cho các khối logic như: NAND, OR, MUX, ... và các thông tin về timing cho khối chức năng đó. Với sự hỗ trợ của các công cụ chuyên dụng như Design Compiler (Synopsys), Synplify (Synplicity), XST (Xilinx), hệ

thống từ chỗđược mô tả bằng RTL sẽđược chuyển sang mức cổng, mô tảdưới dạng text và được gọi là netlist. Kết quả này không phải là duy nhất vì nó phụ thuộc vào công cụ và thư viện.

Hình 25: Các file cần cho quá trình synthesis

Giả sử ta có một cấu trúc mạch được mô tảnhư hình sau:

Hình 26: Mô tả mạch bằng cổng logic

File này được đưa vào để tổng hợp ra netlist dựa trên một thư viện có sẵn. Công cụ tổng hợp sẽ tìm kiếm trong thư những tếbào được mô tả chính xác với mô

tả mạch để tạo netlist. Công việc có thểđược hình dung như sau:

Hình 27: Quá trình tạo netlist.

Một trường hợp khác: file mô tả hệ thống không gọi trực tiếp các cổng logic có sẵn để thực hiện mà chức năng đó được mô tảdưới dạng một cấu trúc khác. Ví dụtrường hợp của bộ MUX, có thể có nhiều cách mô tả chức năng cho loại này.

Những thiết kế ngày nay bao gồm cả thiết kế cho việc kiểm tra lỗi Silicon của quá trình sản xuất, kỹ thuật này gọi là Design For Test (DFT). Một trong những

phương pháp của kỹ thuật DFT là Scan Insertion, phương pháp này sẽ tạo nên trong thiết kế những cấu trúc dùng riêng cho việc kiểm tra lỗi Silicon.

Thiết kế sau khi được Synthesis phải đảm bảo đúng về mặt chức năng, thỏa

module foobar (q,clk,s,a,b); input clk, s, a, b; input clk, s, a, b;

Một phần của tài liệu Tài liệu Tổng Quan Về Bộ Nhớ Bán Dẫn và Qui Trình Thiết Kế SoC doc (Trang 28 - 31)