Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
155,12 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN oOo Giáo trình NGƠN NGỮ MƠ TẢ PHẦN CỨNG VERILOG Biên soạn: TS Vũ Đức Lung ThS Lâm Đức Khải Ks Phan Đình Duy 2012 Lời nói đầu Ngày nay, mạch thiết kế với hàng triệu cổng logic tích hợp Chip việc thiết kế mạch dây kết nối tay trở nên bất khả thi, từ lí khái niệm ngơn ngữ có mức độ trừu tượng cao dùng để mô tả thiết kế phần cứng đời, Verilog Cùng với đời ngôn ngữ mô tả phần cứng Verilog hàng loạt công cụ EDA (Electronic Design Automation) CAD (Computer Aided Design) giúp cho kĩ sư thiết kế phần cứng tạo nên Chip có độ tích hợp cao, tốc độ siêu việt chức đa dạng Giáo trình Ngơn ngữ mơ tả phần cứng Verilog nhằm giúp sinh viên trang bị kiến thức thiết kế vi mạch Giáo trình tập trung vào mảng thiết kế mạch số với mạch tổ hợp mạch Giáo trình giới thiệu bước cần thực trình thiết kế vi mạch từ việc mô tả thiết kế, kiểm tra, phân tích tổng hợp phần cứng thiết kế Giáo trình Ngơn ngữ mơ tả phần cứng Verilog dùng cho sinh viên chuyên ngành Kĩ thuật máy tính sinh viên khối điện tử Để tiếp nhận kiến thức dễ dàng, sinh viên cần trang bị trước kiến thức thiết kế số hệ thống số Giáo trình biên dịch tổng hợp từ kinh nghiệm nghiên cứu giảng dạy tác giả ba nguồn tài liệu chính: IEEE Standard for Verilog Hardware Description Language, 2006; Verilog Digital System Design, Second Edition, McGraw-Hill; The Complete Verilog Book, Vivek Sagdeo, Sun Micro System, Inc Nhằm cung cấp luồng kiến thức mạch lạc, giáo trình chia làm chương: Chương 1: Dẫn nhập thiết kế hệ thống số với Verilog Chương giới thiệu lịch sử phát triển ngôn ngữ mô tả phần cứng Verilog, bên cạnh qui trình thiết kế vi mạch sử dụng ngôn ngữ mô tả phần cứng Verilog trình bày cụ thể Chương 2: Trình bày từ khóa sử dụng môi trường mô tả thiết kế Verilog Chương 3: Trình bày loại liệu sử dụng thiết kế mạch Verilog, gồm hai loại liệu loại liệu net loại liệu biến Chương 4: Trình bày tốn tử dạng biểu thức hỗ trợ Verilog Chương 5: Giới thiệu cấu trúc thiết kế, phương thức sử dụng thiết kế Chương 6: Trình bày phương pháp thiết kế sử dụng mơ hình cấu trúc, phương thức này, module thiết kế xây dựng cách gọi module thiết kế nhỏ kết nối chúng lại Chương 7: Trình bày phương thức thiết kế sử dụng mơ hình RTL phép gán nối tiếp mơ hình hành vi sử dụng ngơn ngữ có tính trừu tượng cao tương tự ngơn ngữ lập trình Phần thiết kế máy trạng thái sử dụng mơ hình hành vi nêu chương Chương 8: Trình bày phương pháp thiết kế sử dụng tác vụ hàm Chương 9: Giới thiệu phương pháp kiểm tra chức thiết kế Do thời gian khối lượng trình bày giáo trình khơng cho phép tác giả sâu khía cạnh thiết kế vi mạch phân tích định thời, tổng hợp phần cứng Để có kiến thức độc giả tham khảo tài liệu tham khảo mà giáo trình cung cấp Mặc dù nhóm tác giả cố gắng biên soạn kỹ lưỡng nhiên khó tránh khỏi thiếu sót Nhóm tác giả mong nhận đóng góp mang tính xây dựng từ q độc giả nhằm chỉnh sửa giáo trình hoàn thiện Chương Dẫn nhập thiết kế hệ thống số với Verilog Chương Dẫn nhập thiết kế hệ thống số với Verilog Khi kích thước độ phức tạp hệ thống thiết kế ngày tăng, nhiều công cụ hỗ trợ thiết kế máy tính (CAD) sử dụng vào q trình thiết kế phần cứng Thời kì đầu, cơng cụ mơ tạo phần cứng đưa phương pháp thiết kế, kiểm tra, phân tích, tổng hợp tự động tạo phần cứng cách phức tạp Sự phát triển không ngừng công cụ thiết kế cách tự động phát triển ngôn ngữ mô tả phần cứng (HDLs) phương pháp thiết kế dựa ngôn ngữ Dựa ngôn ngữ mô tả phần cứng (HDLs), công cụ CAD thiết kế hệ thống số phát triển kĩ sư thiết kế phần cứng sử dụng rộng rãi Hiện tại, người ta tiếp tục nghiên cứu để tìm ngôn ngữ mô tả phần cứng tốt Một ngôn ngữ mô tả phần cứng sử dụng rộng rãi ngơn ngữ Verilog HDL Do chấp nhận rộng rãi ngành công nghiệp thiết kế số, Verilog trở thành kiến thức đòi hỏi phải biết kĩ sư sinh viên làm việc học tập lĩnh vực phần cứng máy tính Chương trình bày cơng cụ mơi trường làm việc có sẵn tương thích với ngơn ngữ Verilog mà kĩ sư thiết kế sử dụng qui trình thiết kế tự động để giúp đẩy nhanh tiến độ thiết kế Đầu tiên trình bày bước thiết kế phân cấp, thiết kế mức cao từ việc mô tả thiết kế ngôn ngữ Verilog đến việc tạo phần cứng thiết kế Những qui trình từ khóa chun mơn minh họa phần Kế tiếp thảo luận cơng cụ CAD có tương thích với Verilog chức mơi trường thiết kế tự động Phần cuối chương nói số đặc tính Chương Dẫn nhập thiết kế hệ thống số với Verilog Verilog khiến trở thành ngơn ngữ nhiều kĩ sư thiết kế phần cứng lựa chọn 1.1 Qui trình thiết kế số Trong thiết kế hệ thống số sử dụng mơi trường thiết kế tự động, qui trình thiết kế bắt đầu việc mô tả thiết kế nhiều mức độ trừu tượng khác kết thúc việc tạo danh sách linh kiện đường kết nối linh kiện với (netlist) cho mạch tích hợp với ứng dụng cụ thể (ASIC), mạch in (layout) cho mạch tích hợp theo yêu cầu khách hàng (custom IC), chương trình cho thiết bị logic có khả lập trình (PLD) Hình 1.1 mơ tả bước qui trình thiết kế Bước đầu thiết kế, thiết kế mô tả hỗn hợp mô tả mức độ hành vi (behavioural) Verilog, sử dụng gói (module) thiết kế Verilog thiết kế sẵn, việc gán hệ thống bus wire để liên kết gói thiết kế thành hệ thống hoàn chỉnh Kĩ sư thiết kế phải có trách nhiệm tạo liệu để kiểm tra (testbench) xem thiết kế chức hay chưa dùng để kiểm tra thiết kế sau tổng hợp Việc kiểm tra thiết kế thực việc mơ phỏng, chèn kĩ thuật kiểm tra, kiểm tra thông thường kết hợp ba phương pháp Sau bước kiểm tra đánh giá thiết kế (bước gọi kiểm tra tiền tổng hợp (presynthesis verification)), thiết kế tiếp tục việc tổng hợp để tạo phần cứng thực cho hệ thống thiết kế cuối (ASIC, custom IC or FPLD,…) Nếu hệ thống thiết kế ASIC, thiết kế sẽ sản xuất nhà sản xuất khác; custom IC, thiết kế sản xuất trực tiếp; FPLD, thiết kế nạp lên thiết bị lập trình Sau bước tổng hợp trước Chương Dẫn nhập thiết kế hệ thống số với Verilog phần cứng thực tạo ra, trình mơ khác (hậu tổng hợp (postsynthesis)) phải thực Việc mơ này, ta sử dụng testbench tương tự testbench sử dụng mô tiền tổng hợp (presynthesis) Bằng phương pháp này, mô hình thiết kế mức độ hành vi mơ hình phần cứng thiết kế kiểm tra với liệu ngõ vào Sự khác mô tiền tổng hợp hậu tổng hợp mức độ chi tiết đạt từ loại mô Mô tả thiết kế dùng Verilog module flipflop (q,d,clk); … always(posedge clk) … endmodule Mô tiền tổng hợp: dùng Testbench tạo dạng sóng - Kiểm tra chức - Kiểm tra định thời - Phân tích Tạo liệu trung gian in out Tổng hợp Đặt cell kết Đưa hàm Boole nối Rút gọn biểu thức - Tối ưu diện tích Tạo phần cứng - Tối ưu kết nối kết nối linh kiện 2.1ns Phân tích timing - Chỉ thời gian trì hỗn path mạch - Mô hậu tổng hợp: dùng Testbench tạo dạng sóng - Kiểm tra chức - Kiểm tra định thời in out Nạp thiết kế lên Tạo ASIC netlist tới mức Tạo layout để chế cổng transistor FPGA tạo Chip Hình 1.1 Luồng thiết kế ASIC Chương Dẫn nhập thiết kế hệ thống số với Verilog Những phần mơ tả tỉ mỉ khối Hình 1.1 1.1.1 Dẫn nhập thiết kế Bước thiết kế hệ thống số bước dẫn nhập thiết kế Trong bước này, thiết kế mô tả Verilog theo phong cách phân cấp từ cao xuống thấp (top-down) Một thiết kế hồn chỉnh bao gồm linh kiện mức cổng mức transistor, khối (module) phần cứng có chức phức tạp mô tả mức độ hành vi, linh kiện liệt kê cấu trúc bus Do thiết kế Verilog mức cao thường mô tả mức độ mà mơ tả hệ thống ghi truyền liệu ghi thông qua hệ thống bus, việc mô tả hệ thống thiết kế mức độ xem mức độ truyền liệu ghi (RTL) Một thiết kế hoàn chỉnh mô tả tạo phần cứng tương ứng thực rõ ràng Những cấu trúc thiết kế Verilog mức độ RTL sử dụng phát biểu qui trình (producedural statements), phép gán liên tục (continuous assignments), phát biểu gọi sử dụng khối (module) xây dựng sẵn Những phát biểu qui trình Verilog (procedural statements) dùng để mô tả mức độ hành vi mức cao Một hệ thống linh kiện mơ tả mức độ hành vi tương tự với việc mô tả ngôn ngữ phần mềm Ví dụ, mơ tả linh kiện việc kiểm tra điều kiện ngõ vào nó, bật cờ hiệu, chờ có kiện xảy ra, quan sát tín hiệu bắt tay tạo ngõ Mô tả hệ thống cách qui trình vậy, cấu trúc if-else, case Verilog ngôn ngữ phần mềm khác sử dụng Những phép gán liên tục (continuous assignment) Verilog phép gán cho việc thể chức khối logic, phép Chương Dẫn nhập thiết kế hệ thống số với Verilog gán bus, mô tả việc kết nối hệ thống bus chân ngõ vào ngõ Kết hợp với hàm Boolean biểu thức có điều kiện, cấu trúc ngơn ngữ để mơ tả linh kiện hệ thống theo phép gán ghi bus chúng Những phát biểu gọi sử dụng khối Verilog thiết kế sẵn (instantiantion statements) dùng cho linh kiện mức thấp thiết kế mức độ cao Thay mơ tả mức độ hành vi, chức năng, bus hệ thống, mơ tả hệ thống Verilog cách kết nối linh kiện mức độ thấp Những linh kiện nhỏ mức cổng hay transistor, lớn vi xử lí hoàn chỉnh 1.1.2 Testbench Verilog Một hệ thống thiết kế dùng Verilog phải mô kiểm tra xem thiết kế xem chức chưa trước tạo phần cứng Trong trình chạy mô này, lỗi thiết kế không tương thích linh kiện dùng thiết kế phát Chạy mơ thiết kế đòi hỏi việc tạo liệu ngõ vào kiểm tra trình quan sát kết sau chạy mô phỏng, liệu dùng để kiểm tra gọi testbench Một testbench sử dụng cấu trúc mức cao Verilog để tạo liệu kiểm tra, quan sát đáp ứng ngõ ra, việc bắt tay tín hiệu thiết kế Bên testbench, hệ thống thiết kế cần chạy mô gọi (instantiate) testbench Dữ liệu testbench với hệ thống thiết kế tạo mơ hình mơ mà sử dụng công cụ mô Verilog Chương Dẫn nhập thiết kế hệ thống số với Verilog 1.1.3 Đánh giá thiết kế Một nhiêm vụ quan trọng thiết kế số cần đánh giá thiết kế Đánh giá thiết kế trình mà người thiết kế kiểm tra thiết kế họ có sai sót xảy suốt q trình thiết kế hay khơng Một sai sót thiết kế xảy mơ tả thiết kế mơ hồ, sai sót người thiết kế, sử dụng khối thiết kế Đánh giá thiết kế thực mô phỏng, việc chèn kĩ thuật kiểm tra, kiểm tra thông thường 1.1.3.1 Mô Chạy mô dùng việc đánh giá thiết kế thực trước thiết kế tổng hợp Bước chạy mô hiểu mô mức độ hành vi, mức độ RTL hay tiền tổng hợp Ở mức độ RTL, thiết kế bao gồm xung thời gian clock khơng bao gồm trí hoãn thời gian cổng dây kết nối (wire) Chạy mơ mức độ xác theo xung clock Thời gian việc chạy mô mức độ RTL theo tín hiệu xung clock, không quan tâm đến vấn đề như: nguy hiểm tiềm ẩn khiến thiết kế bị lỗi (hazards, glitch), tượng chạy đua khơng kiểm sốt tín hiệu (race conditions), vi phạm thời gian setup hold tín hiệu ngõ vào, vấn đề liên quan đến định thời khác Ưu điểm việc mô tốc độ chạy mô nhanh so với chạy mô mức cổng mức transistor Chạy mô cho thiết kế địi hỏi liệu kiểm tra Thơng thường mơi trường mô Verilog cung cấp nhiều phương pháp khác để đưa liệu kiểm tra vào thiết kế để kiểm tra Dữ liệu kiểm tra tạo đồ họa sử dụng công cụ soạn Chương Dẫn nhập thiết kế hệ thống số với Verilog thảo dạng sóng, testbench Hình 1.2 mơ tả hai cách khác để định nghĩa liệu kiểm tra ngõ vào công cụ mô Những ngõ công cụ mơ dạng sóng ngõ (có thể quan sát trực quan) Mơ tả thiết kế Dạng sóng ngõ Verilog in Mơ hình linh kiện out Cơng cụ mơ Sóng tín hiệu ngõ vào Tạo cách - Vẽ sóng - Testbench Báo cáo kết dạng text PASS/FAIL in Hình 1.2 Hai cách khác để định nghĩa liệu kiểm tra ngõ vào Để chạy mô với Verilog testbench, testbench gọi hệ thống thiết kế để kiểm tra, lúc hệ thống thiết kế xem phần testbench, testbench cung cấp liệu kiểm tra đến ngõ vào hệ thống thiết kế Hình1.3 mô tả đoạn code mạch đếm, testbench nó, kết chạy mơ dạng sóng ngõ Quan sát hình ta thấy việc chạy mô đánh giá chức mạch đếm Với xung clock ngõ đếm tăng lên Chú ý rằng, theo biểu đồ thời gian ngõ đếm thay đổi cạnh lên xung clock khơng có thời gian trì hỗn cổng trì hỗn đường truyền Kết chạy mô cho thấy chức mạch đếm xác mà khơng cần quan tâm đến tần số xung clock Hiển nhiên, linh kiện phần cứng thực có đáp ứng khác Dựa định thời thời gian trì hoãn khối sử Chương Dẫn nhập thiết kế hệ thống số với Verilog dụng, thời gian từ cạnh lên xung clock đến ngõ đếm có độ trì hỗn khác khơng Hơn nữa, tần số xung clock cấp vào mạch thực nhanh so với tốc độ truyến tín hiệu bên cổng transistor thiết kế ngõ thiết kế khơng thể biết Việc mô không cung cấp chi tiết vấn đề định thời hệ thống thiết kế mơ Do đó, vấn đề tiềm ẩn định thời phần cứng trì hỗn cổng phát Đây vấn đề điển hình q trỉnh mơ tiền tổng hợp mô mức độ hành vi Điều biết Hình1.3 đếm ta đếm số nhị phân Thiết kế hoạt động nhanh chậm nào, hoạt đông tần số biết việc kiểm tra thiết kế sau tổng hợp Testbench Mô tả thiết kế `timescale 1ns/100ps module testbench(); reg clk; wire din, qout; always #10 clk = ~clk; DFF i1 (clk, din, qout); endmodule module DFF (clk, din, qout); input clk, din; output reg qout; always @(posedge clk) begin qout = din; end endmodule SIMULATOR 10ns clk din qout Hình1.3 Mơ tả đoạn code mạch flip-flop Chương Dẫn nhập thiết kế hệ thống số với Verilog 1.1.3.2 Kĩ thuật chèn kiểm tra (assertion) Thay phải dị theo kết mô mắt hay tạo liệu kiểm tra testbench phức tạp, kĩ thuật chèn thiết bị giám sát sử dụng để kiểm tra đặc tính thiết kế suốt trình mơ Thiết bị giám sát đặt bên hệ thống thiết kế mô người thiết kế Người thiết kế định xem chức thiết kế hay sai, điều kiện thiết kế cần phải thỏa mãn Những điều kiện phải tuân theo đặc tính thiết kế, thiết bị giám sát chèn vào hệ thống thiết kế để đảm bảo đặc tính khơng bị vi phạm Chuỗi thiết bị giám sát sai đặc tính đặt vào người thiết kế bị vi phạm Nó cảnh báo người thiết kế thiết kế không chức mong đợi Thư viện OVL (Open Verification Library) cung cấp chuỗi thiết bị giám sát để chèn vào hệ thống thiết kế để giám sát đặc tính thơng thường thiết kế Người thiết kế dùng kĩ thuật giám sát riêng để chèn vào thiết kế dùng chúng kết hợp với testbench việc kiểm tra đánh giá thiết kế 1.1.3.3 Kiểm tra thông thường Kiểm tra thông thường q trình kiểm tra đặc tính thiết kế Khi thiết kế hoàn thành, người thiết kế xây dựng chuỗi đặc tính tương ứng với hành vi thiết kế Công cụ kiểm tra thông thường kiểm tra thiết kế để đảm bảo đặc tính mơ tả đáp ứng tất điều kiện Nếu có đặc tính phát khơng đáp ứng đúng, đặc tính xem vi phạm Đặc tính độ bao phủ (coverage) phần trăm đặc tính thiết kế kiểm tra Chương Dẫn nhập thiết kế hệ thống số với Verilog 1.1.4 Biên dịch tổng hợp thiết kế Tổng hợp trình tạo phần cứng tự động 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 mơ tả định thời mức cổng, cấu trúc ngơn ngữ khác mà khơng dịch sang phương trình logic tổ hợp Hơn nữa, mô tả phần cứng Verilog dùng cho tổng hợp phải tuân theo phong cách viết code cách định cho mạch tổ hợp mạch Những phong cách cấu trúc Verilog tương ứng chúng định nghĩa việc tổng hợp RTL Trong qui trình thiết kế, sau thiết kế mơ tả hồn thành kết mơ tiền tổng hợp kiểm tra người thiết kế, phải biên dịch để tiến gần đến việc tạo thành phần cứng thực silicon Bước thiết kế địi hỏi việc mơ tả phần cứng thiết kế phải nhận Ví dụ, phải đến ASIC cụ thể, FPGA cụ thể thiết bị phần cứng mục đích thiết kế Khi thiết bị mục đích ra, tập tin mơ tả công nghệ (technology files) phần cứng (ASIC, FPGA, custom IC) cung cấp chi tiết thông tin định thời mô tả chức cho trình biên dịch Quá trình biên dịch chuyển đổi phần khác thiết kế định dạng trung gian (bước phân tích), kết nối tất phần lại với nhau, tạo mức logic tương ứng (bước tổng hợp), xếp kết nối (place and route) linh kiện thiết bị phần cứng mục đích lại với để thực hiên chức thiết kế mong muốn tạo thông tin chi tiết định thời thiết kế Hình 1.4 mơ tả q trình biên dịch mơ tả hình ảnh kết ngõ bước biên dịch Như hình, ngõ vào bước mô tả 10 Chương Dẫn nhập thiết kế hệ thống số với Verilog phần cứng bao gồm mức độ mô tả khác Verilog, kết ngõ phần cứng chi tiết cho thiết bị phần cứng mục đích FPLD hay để sản xuất chip ASIC Tổng hợp Phân tích Sắp xếp cell - Đưa biểu thức Boolean - Tạo dây kết nối - Tối ưu logic liệu thiết kế có định - Tối ưu diện tích -Tạo phần cứng kết dạng đồng - Tối ưu kết nối nối linh kiện 2.1ns Phân tích timing - Chỉ thời gian trì hỗn path mạch Nạp thiết kế lên FPGA Tạo ASIC netlist tới mức Tạo layout để cổng transistor chế tạo Chip Hình 1.4 Mơ tả q trình biên dịch mơ tả hình ảnh kết ngõ 1.1.4.1 Phân tích Một thiết kế hồn chỉnh mơ tả dùng Verilog bao gồm mô tả nhiều mức độ khác mức độ hành vi, hệ thống bus dây kết nối với linh kiện Verilog khác Trước thiết kế hoàn chỉnh tạo phần cứng, thiết kế phải phân tích tạo định dạng đồng cho tất phần thiết kế Bước kiểm tra cú pháp ngữ nghĩa mã ngõ vào Verilog 1.1.4.2 Tạo phần cứng Sau tạo liệu thiết kế có định dạng đồng cho tất linh kiện thiết kế, bước tổng hợp bắt đầu chuyển đổi liệu thiết kế sang định dạng phần cứng thông thường chuỗi biểu thức Boolean hay netlist cổng 11 Chương Dẫn nhập thiết kế hệ thống số với Verilog 1.1.4.3 Tối ưu logic Bước trình tổng hợp, sau thiết kế chuyển đổi sang chuỗi biểu thức Boolean, bước tối ưu logic thực Bước nhằm mục đích làm giảm biểu thức với ngõ vào khơng đổi, loại bỏ biểu thức lập lại, tối thiểu hai mức, tối thiểu nhiều mức Đây trình tính tốn hao tốn thời gian cơng sức, số công cụ cho phép người thiết kế định mức độ tối ưu Kết ngõ bước dạng biểu thức Boolean, mô tả logic dạng bảng, netlist gồm cổng 1.1.4.4 Binding Sau bước tối ưu logic, trình tổng hợp sử dụng thơng tin từ thiết bị phần cứng mục đích để định xác linh kiện logic thiết bị cần để thực mạch thiết kế Quá trình gọi binding kết ngõ định cụ thể sử dụng cho FPLD, ASIC, hay custom IC 1.1.4.5 Sắp xếp cell dây kết nối Bước xếp dây kết nối định việc đặt vị trí linh kiện thiết bị phần cứng mục đích Việc kết nối ngõ vào ngõ linh kiện dùng hệ thống dây liên kết vùng chuyển mạch thiết bị phần cứng mục đích định bước xếp dây liên kết Kết ngõ bước đưa tới thiết bị phần cứng mục đích, nạp lên FPLD, hay dùng để sản xuất ASIC Một ví dụ minh họa trình tổng hợp Hình 1.5 Trong hình này, mạch đếm dùng chạy mơ hình 1.3 12 Chương Dẫn nhập thiết kế hệ thống số với Verilog tổng hợp Ngồi việc mơ tả phần cứng thiết kế dùng Verilog, cơng cụ tổng hợp địi hỏi thơng tin mơ tả thiết bị phần cứng đích để tiến hành trình tổng hợp Kết ngõ công cụ tổng hợp danh sách cổng flip-flop có sẵn thiết bị phần cứng đích hệ thống dây kết nối chúng Hình 1.5 kết ngõ mang tính trực quan mà tạo tự động công cụ tổng hợp Altera Quartus II Mô tả thiết kế module DFF (clk, din, qout); input clk, din; output reg qout; always @(posedge clk) begin qout = din; end endmodule SYNTHESIS TOOL Linh kiện bản: - Inverter - Nand - Or, … Mô tả định thời din qout clk Hình 1.5 Minh họa trình tổng hợp 1.1.5 Mô sau tổng hợp thiết kế Sau q trình tổng hợp hồn thành, cơng cụ tổng hợp tạo netlist hoàn chỉnh chứa linh kiện thiết bị phần cứng đích giá trị định thời Những thơng tin chi tiết cổng dùng để thực thiết kế mô tả netlist Netlist 13 Chương Dẫn nhập thiết kế hệ thống số với Verilog bao gồm thông tin độ trì hỗn đường dây tác động tải lên cổng dùng trình hậu tổng hợp Có nhiều định dạng netlist ngõ tạo bao gồm định dạng Verilog Một netlist dùng để mơ phỏng, mô gọi mô hậu tổng hợp Những vấn đề định thời, tần số xung clock, tượng chạy đua không kiểm soát, nguy hiểm tiềm ẩn thiết kế kiểm tra mơ hậu tổng hợp thực sau thiết kế tổng hợp Như Hình 1.1, ta sử dụng liệu kiểm tra mà dùng cho q trình mơ tiền tổng hợp để dùng cho q trình mơ hậu tổng hợp Do độ trì hỗn đường dây cổng, đáp ứng thiết kế sau chạy mô hậu tổng hợp khác với đáp ứng thiết kế mà người thiết kế mong muốn Trong trường hợp này, người thiết kế phải sửa lại thiết kế cố gắng tránh sai sót định thời tượng chạy đua tín hiệu mà khơng thể kiểm sốt 1.1.6 Phân tích thời gian Quan sát Hình 1.1, bước phân tích thời gian phần trình biên dịch, số cơng cụ bước phân tích thời gian thực sau trình biên dịch Bước tạo khả xấu độ trì hỗn , tốc độ xung clock, độ trì hỗn từ cổng đến cổng khác, thời gian cho việc thiết lập giữ tín hiệu Kết bước phân tích thời gian thể dạng bảng biểu đồ Người thiết kế sử dụng thông tin để xác định tốc độ xung clock, hay nói cách khác xác định tốc độ hoạt động mạch thiết kế 14 Chương Dẫn nhập thiết kế hệ thống số với Verilog 1.1.7 Tạo linh kiện phần cứng Bước cuối qui trình thiết kế tự động dựa Verilog tạo phần cứng thực cho thiết kế Bước tạo netlist dùng để sản xuất ASIC, chương trình để nạp vào FPLD, hay mạch in cho mạch IC 1.2 Ngôn ngữ phần cứng Verilog (Verilog HDL) Trong phần trước, ta trình bày bước thiết kế mức độ RTL từ mô tả thiết kế Verilog việc thực phần cứng thực Qui trình thiết kế thực ngơn ngữ Verilog hiểu người thiết kế hệ thống, người thiết kế mức độ RTL, người kiểm tra, công cụ mô phỏng, công cụ tổng hợp, máy móc liên quan Bởi tầm quan trọng qui trình thiết kế, Verilog trở thành chuẩn quốc tế IEEE Chuẩn sử dụng người thiết kế người xây dựng cơng cụ thiết kế 1.2.1 Q trình phát triển Verilog Verilog đời vào đầu năm 1984 Gateway Design Automation Khởi đầu, ngôn ngữ dùng công cụ mô kiểm tra Sau thời gian đầu ngôn ngữ chấp nhận ngành công nghiệp điện tử, công cụ mơ phỏng, cơng cụ phân tích thời gian, sau vào năm 1987, công cụ tổng hợp xây dựng phát triển dựa vào ngôn ngữ Gateway Design Automation công cụ dựa Verilog hãng sau mua Cadence Design System Từ sau đó, Cadence đóng vai trị quan trọng việc phát triển phổ biến ngôn ngữ mô tả phần cứng Verilog 15 Chương Dẫn nhập thiết kế hệ thống số với Verilog Vào năm 1987, VHDL trở thành chuẩn ngôn ngữ mô tả phần cứng IEEE Bởi hỗ trợ Bộ quốc phòng (DoD), VHDL sử dụng nhiều dự án lớn phủ Mỹ Trong nỗ lực phổ biến Verilog, vào năm 1990, OVI (Open Verilog International) thành lập Verilog chiếm ưu lĩnh vực công nghiệp Điều tạo quan tâm lớn từ người dùng nhà cung cấp EDA (Electronic Design Automation) tới Verilog Vào năm 1993, nỗ lực nhằm chuẩn hóa ngôn ngữ Verilog bắt đầu Verilog trở thành chuẩn IEEE, IEEE Std 1364-1995, vào năm 1995 Với công cụ mô phỏng, công cụ tổng hợp, công cụ phân tích thời gian, cơng cụ thiết kế dựa Verilog có sẵn, chuẩn Verilog IEEE nhanh chóng chấp nhận sâu rộng cộng đồng thiết kế điện tử Một phiên Verilog chấp nhận IEEE vào năm 2001 Phiên xem chuẩn Verilog-2001 dùng hầu hết người sử dụng người phát triển công cụ Những đặc điểm phiên cho phép bên ngồi có khả đọc ghi liệu, quản lí thư viện, xây dựng cấu hình thiết kế, hỗ trợ cấu trúc có mức độ trừu tượng cao hơn, cấu trúc mô tả lặp lại, thêm số đặc tính vào phiên Q trình cải tiến chuẩn tiếp tục với tài trợ IEEE 1.2.2 Những đặc tính Verilog Verilog ngôn ngữ mô tả phần cứng dùng để đặc tả phần cứng từ mức transistor đến mức hành vi Ngôn ngữ hỗ trợ cấu trúc định thời cho việc mô định thời mức độ chuyển mạch tức thời, có khả mơ tả phần cứng mức độ thuật toán trừu tượng Một mơ tả thiết kế Verilog bao gồm trộn lẫn khối 16