Để chạy mô phỏng với Verilog testbench, trong testbench sẽ gọi hệ thống thiết kế ra để kiểm tra, lúc này hệ thống thiết kế được xem như là một phần của testbench, testbench sẽ cung cấp dữ liệu kiểm tra đến ngõ vào của hệ thống thiết kế.
Kĩ thuật chèn kiểm tra (assertion)
Thay vì phải dị theo kết quả mô phỏng bằng mắt hay tạo những dữ liệu kiểm tra testbench phức tạp, kĩ thuật chèn thiết bị giám sát có thể được sử dụng để kiểm tra tuần tự những đặc tính của thiết kế trong suốt q trình mơ phỏng. Thiết bị giám sát được đặt bên trong hệ thống thiết kế được mô phỏng bởi người thiết kế. Người thiết kế sẽ quyết định xem chức năng của thiết kế đúng hay sai, những điều kiện nào thiết kế cần phải thỏa mãn. Những điều kiện này phải tuân theo những đặc tính thiết kế, và thiết bị giám sát được chèn vào hệ thống thiết kế để đảm bảo những đặc tính này khơng bị vi phạm. Chuỗi thiết bị giám sát này sẽ sai nếu một đặc tính nào đó được đặt vào bởi người thiết kế bị vi phạm. Nó sẽ cảnh báo người thiết kế rằng thiết kế đã không đúng chức năng như mong đợi. Thư viện OVL ( Open Verification Library) cung cấp một chuỗi những thiết bị giám sát để chèn vào hệ thống thiết kế để giám sát những đặc tính thơng thường của thiết kế. Người thiết kế có thể dùng những kĩ thuật giám sát của riêng mình để chèn vào thiết kế và dùng chúng kết hợp với testbench trong việc kiểm tra đánh giá thiết kế.
15
Kiểm tra thơng thường là q trình kiểm tra những đặc tính bất kì của thiết kế. Khi một thiết kế hoàn thành, người thiết kế sẽ xây dựng một chuỗi những đặc tính tương ứng với hành vi của thiết kế. Công cụ kiểm tra thông thường sẽ kiểm tra thiết kế để đảm bảo rằng những đặc tính được mô tả đáp ứng được tất cả những điều kiện. Nếu có một đặc tính được phát hiện là khơng đáp ứng đúng, đặc tính đó được xem như vi phạm. Đặc tính độ bao phủ (coverage) chỉ ra bao nhiêu phần trăm đặc tính của thiết kế đã được kiểm tra.
Biên dịch và tổng hợp thiết kế
Tổng hợp là quá trình tạo ra phần cứng tự động từ một mô tả thiết kế phần cứng tương ứng rõ ràng. Một mô tả phần cứng Verilog dùng để tổng hợp khơng thể bao gồm tín hiệu và mô tả định thời ở mức cổng, và những cấu trúc ngôn ngữ khác mà khơng dịch sang những phương trình logic tuần tự hoặc tổ hợp. Hơn thế nữa, những mô tả phân cứng Verilog dùng cho tổng hợp phải tuân theo những phong cách viết code một cách nhất định cho mạch tổ hợp cũng như mạch tuần tự. Những phong cách này và cấu trúc Verilog tương ứng của chúng được định nghĩa trong việc tổng hợp RTL.
Trong qui trình thiết kế, sau khi một thiết kế được mơ tả hồn thành và kết quả mô phỏng tiền tổng hợp của nó được kiểm tra bởi người thiết kế, nó phải được biên dịch để nó tiến gần hơn đến việc tạo thành phần cứng thực sự trên silicon. Bước thiết kế này địi hỏi việc mơ tả phần cứng của thiết kế phải được nhận ra. Ví dụ, chúng ta phải chỉ đến một ASIC cụ thể, hoặc một FPGA cụ thể như là thiết bị phần cứng mục đích của thiết kế. Khi thiết bị mục đích được chỉ ra, những tập tin mô tả về công nghệ (technology files) của phần cứng ( ASIC, FPGA, hoặc custom IC) sẽ cung cấp chi tiết những thông tin về định thời và mơ tả chức năng cho q trình biên dịch. Q trình biên dịch sẽ chuyển đổi những phần khác nhau của thiết kế ra một định dạng trung gian ( bước phân tích), kết nối tất cả các phần lại với nhau, tạo ra mức logic tương ứng ( bước tổng hợp), sắp xếp và kết nối ( place and route ) những linh kiện trong thiết bị phần cứng mục đích lại với nhau để thực hiên chức năng như thiết kế mong muốn và tạo ra thông tin chi tiết về định thời trong thiết kế.
Phân tích
Một thiết kế hồn chỉnh được mơ tả dùng Verilog có thể bao gồm mơ tả ở nhiều mức độ khác nhau như mức độ hành vi, hệ thống bus và dây kết nối với những linh kiện Verilog
16
khác. Trước khi một thiết kế hoàn chỉnh tạo ra phần cứng, thiết kế phải được phân tích và tạo ra một định dạng đồng nhất cho tất cả các phần trong thiết kế. Bước này cũng kiểm tra cú pháp và ngữ nghĩa của mã ngõ vào Verilog.
Tạo phần cứng
Sau khi tạo được một dữ liệu thiết kế có định dạng đồng nhất cho tất cả các linh kiện trong thiết kế, bước tổng hợp sẽ bắt đầu bằng chuyển đổi dữ liệu thiết kế trên sang những định dạng phần cứng thông thường như một chuỗi những biểu thức Boolean hay một netlist những cổng cơ bản.
Tối ưu logic
Bước kế tiếp của quá trình tổng hợp, sau khi một thiết kế được chuyển đổi sang một chuỗi những biểu thức Boolean, bước tối ưu logic được thức hiện. Bước này nhằm mục đích làm giảm những biểu thức với ngõ vào không đổi, loại bỏ những biểu thức lập lại, tối thiểu hai mức, tối thiểu nhiều mức.
Đây là q trình tính tốn rất hao tốn thời gian và công sức, một số công cụ cho phép người thiết kế quyết định mức độ tối ưu. Kết quả ngõ ra của bước này cũng dưới dạng những biểu thức Boolean, mô tả logic dưới dạng bảng, hoặc netlist gồm những cổng cơ bản.
Binding
Sau bước tối ưu logic, q trình tổng hợp sử dụng thơng tin từ thiết bị phần cứng mục đích để quyết định chính xác linh kiện logic nào và thiết bị nào cần để hiện thực mạch thiết kế. Quá trình này được gọi là binding và kết quả ngõ ra của nó được chỉ định cụ thể sử dụng cho FPLD, ASIC, hay custom IC.
Sắp xếp và đi dây liên kết
Bước sắp xếp và đi dây lien kết sẽ quyết định việc đặt vị trí của các linh kiện trên thiết bị phần cứng mục đích. Việc kết nối các ngõ vào và ngõ ra của những linh kiện này dùng hệ thống dây liên kết và vùng chuyển mạch trên thiết bị phần cứng mục đích được quyết định bởi bước sắp xếp và đi dây liên kết này. Kết quả ngõ ra của bước này được đưa tới thiết bị phần cứng mục đích, như nạp lên FPLD, hay dùng để sản xuất ASIC.
17