ngôn ngữ mô tả phần cứng HDL

60 953 2
ngôn ngữ mô tả phần cứng HDL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo môn học Báo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn họcBáo cáo môn học

CHƯƠNG GIỚI THIỆU VERILOG HDL 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 trình thiết kế phần cứng Ở thời kỳ đầu công cụ hỗ trợ mô phỏng, thiết kế, kiểm tra, phân tích, tổng hợp tạo phần cứng phức tạp Nhưng nhờ phát triển không ngừng ngày mạnh ngôn ngữ mô tả phần cứng HDLs mà nhiều công cụ hỗ trợ thiết kế (CAD) thiết kế dựa loại ngôn ngữ kĩ sư thiết kế sử dụng rộng rãi Một ngôn ngữ ngôn ngữ mô tả phần cứng Verilog HDL Và người ta nghiên cứu tìm ngôn ngữ mô tả phần cứng tốt I GIỚI THIỆU SƠ LƯỢC VỀ VERILOG HDL Verilog ngôn ngữ mô tả phần cứng (HDL) dùng để viết ngôn ngữ để mô test phần cứng Verilog HDL hai ngôn ngữ mô phần cứng thông dụng nhất, dùng thiết kế IC, ngôn ngữ VHDL HDL cho phép mô thiết kế dễ dàng, sửa chữa lỗi, thực nghiệm cấu trúc khác Các thiết kế mô tả HDL kỹ thuật độc lập, dễ thiết kễ, dễ tháo gỡ, thường dễ đọc dạng biểu đồ, đặc biệt mạch điện lớn Verilog thường dùng để mô tả thiết kế bốn dạng: Thuật toán (một số lệnh giống ngôn ngữ C như: if, case, for,while…).Chuyển đổi ghi (kết nối biểu thức Boolean) Các cổng kết nối ( cổng: OR, AND, NOT…) Chuyển mạch (BJT, MOSFET) Ngôn ngữ rõ cách thức kết nối, điều khiển vào/ra mô Cấu trúc chương trình dùng ngôn ngữ Verilog: // Khai báo module Module t ê n c h n g t r ì n h ( t ê n b i ế n I / O ) ; / / t ê n c h n g t r ì n h trùng tên file.v Input [msb:lsb] biến; Output [msb:lsb] biến; Reg [msb:lsb] biến reg; Wire [msb: lsb] biến wire;// Khai báo khối always, khối initial.… lệnh … Endmodule II DẪN NHẬP THIẾT KẾ HỆ THỐNG SỐ VỚI VERILOG 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), chương trình cho thiết bị logic có khả lập trình (PLD) Hình 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 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 hay 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; Nếu custom IC, thiết kế sản xuất trực tiếp; Nếu FPLD, thiết kế nạp lên thiết bị lập trình Hình 1: Luồng thiết kế ASIC Sau bước tổng hợp trước 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) 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ế, 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ế hoà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, vậy, việc mô tả hệ thống thiết kế mức độ xem mức độ truyền liệu ghi (RTL - Register Transfer Level) 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 Một hệ thống linh kiện mô tả mức độ hành vi thường tương tự với mô tả phần mềm 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 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ữ dùng để mô tả linh kiện hệ thống theo phép gán ghi bus chúng a Testbench Verilog: Testbench trình dùng để kiểm tra lỗi thiết kế tương thích hay không tương thích hệ thống thiết kế Có thể quan sát, kiểm tra trình sau chạy mô phỏng, tạo liệu kiểm tra, quan sát đáp ứng ngõ ra, kết nối tín hiệu 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 b Đánh giá thiết kế: Dùng để kiểm tra sai sót trình mô thiết kế, chèn hay chỉnh sửa kỹ thuật kiểm tra, kiểm tra thông thường Mô phỏng: 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 soá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 thảo dạng sóng, testbench Hình 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) Hình 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ình 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 thời gian trì hoãn cổng trì hoã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 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ì hoãn cổng phát Điều biết Hình đế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 Hình 3: Mô tả đoạn code mạch flip-flop Kỹ thuật chèn kiểm tra: 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 cho 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ế Kiểm tra thông thường: Kiểm tra thông thường 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 - 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 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ả hoà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 ra, nghĩa 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 mô tả 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ả 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 Hình 4: Mô tả trình biên dịch mô tả hình ảnh kết ngõ - Phân tích: Trước thiết kế để tạo phần cứng hoàn chỉnh, phần thiết kế phải phân tích tạo dạng định dạng đồng kiểm tra cú pháp ngữ nghĩa mã ngõ vào Verilog Thiết kế hoàn chỉnh bao gồm 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 - - - - III 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 Tối ưu logic: Sau thiết kế chuyển đổi sang chuỗi biểu thức Boolean, bước tối ưu logic thự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 toá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 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 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 cell dây kết nối 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 CÁC QUY ƯỚC VỀ TỪ KHÓA Khoảng trắng Khoảng trắng Verilog kí tự đặc biệt gồm có: kí tự dấu cách (Space), kí tự tab (Tab) kí tự xuống dòng (Enter) Những kí tự bỏ qua bạn lập trình Tuy nhiên, kí tự khoảng trắng kí tự tab xâu không bị bỏ qua - Chú thích Ngôn ngữ Verilog HDL có hai cách để tạo thích: + Chú thích dòng: bắt đầu hai kí tự // cuối dòng + Chú thích khối (block comment): bắt đầu hai ký tự /* kết thúc hai ký tự */ Một thích khối chứa nhiều dòng không lồng khối thích vào với Ví dụ: Toán tử Toán tử bao gồm dạng: Toán tử quan hệ, so sánh, logic, bit wire, dịch, điều kiện, ghép nối Toán tử một, hai, ba kí tự dùng để thực toán hạng biến.Những toán tử đơn thường xuất bên trái toán hạng chúng ( i) Những toán tử kép thường xuất toán hạng chúng (a & b) Toán tử có điều kiện thường có hai toán tử kí tự phân biệt ba toán hạng ( (m>n)?m:n) Các toán tử bao gồm >, +, &, != - Danh sách toán tử Verilog: + Toán tử quan hệ: Dùng để so sánh biểu thức + Toán tử so sánh: Trong toán tử == !=, toán hạng không xác định (x) trở kháng cao (z) quan hệ không xác định, kết bit có giá trị không xác định (x) Trong toán tử === !==, so sánh câu lệnh case Bit x z toán hạng so sánh cho kết giống Kết toán tử giá trị xác định + Toán tử logic: Các toán tử logic sử dụng để liên kết biểu thức + Toán tử bit wire: So sánh bit hai toán toán hạng + Toán tử dịch: + Dịch trái: >, dịch toán hạng bên trái chúng sang phải số vị trí bit đưa toán hạng bên phải + Dịch phải logic >>: điền vào vị trí bit trống bit + Trong toán tử dịch phải toán học >>>: điền vào vị trí bit trống số kết loại không dấu, ngược lại, kết loại có dấu, điền vào vị trí bit trống, giá trị bit có ý nghĩa toán hạng bên trái + Toán tử điều kiện: + Giống C/C++ Chúng định giá hai biểu thức điều kiện Nó tổng hợp thành đa cộng (MUX) + Cú pháp Kết = (điều kiện) ? kết điều kiện : kết điều kiện sai + Toán tử ghép nối: Là kết việc nối bit từ hay nhiều biểu thức lại với Toán tử ghép nối sử dụng ký hiệu ngoặc nhọn ({}) dùng dấu phảy (,) để ngăn cách biểu thức Một số số không xác định kích thước, không phép sử dụng toán tử ghép nối Đó kích thước toán hạng toán tử ghép nối, cần phải tính toán cho phù hợp với kích thước kết toán tử ghép nối 10 Hình 4: Giao diện cài đặt Chọn “Next” để tiếp tục cài đặt Hình 5: Giao diện cài đặt 46 Chọn “Next” để tiếp tục cài đặt Hình 6: Giao diện cài đặt Chọn “Yes” muốn có đường dẫn Modulesim hình chính, không chọn “No” Hình 7: Giao diện cài đặt 47 Chọn “Yes” để tiếp tục Hình 8: Giao diện cài đặt Chọn “Finish” để hoàn thành cài đặt Hình 9: Giao diện cài đặt 48 Sau ấn lệnh “Finish” máy tính tụ động truy cập vào trang Web Trang web yêu cầu người dùng nhập đầy đủ thông tin cá nhân hệ thống tự động gửi file thư viện email Hình 10: Nhập thông tin yêu cầu gửi file thư viện Sau hoàn thành nhập thông tin, chọn “Request License” để yêu cầu nhận thư viện Trang web gửi đến Email thông tin hướng dẫn sử dụng file thư viện 49 Hình 10: File thư viện Copy file thư viện vào thư mục cài đặt chương trình, mặc định là: C:\Modeltech_pe_edu_10.4a Hình 11: Chép File thư viện vào thư mục C:\Modeltech_pe_edu_10.4a Hoàn thành cài đặt tiến hành chạy chương trình 50 Hình 12: Giao diện hình phần mêm ModelSim III VÍ DỤ CƠ BẢN TRÊN PHẦN MỀM MODELSIM Ví dụ 1: Thiết kế cổng NOT Bước 1: Mở chương trình tạo project Chương trình sau mở có giao diện hình 11, Chọn Jumpstart để tiến hành thiết lập chương trình Hình 13: Giao diện hình phần mềm ModelSim (cài đặt) Chọn “Create a Project” để tạo project 51 Hình 14: Tạo project Tiến hành đặt tên cho project, sau đặt tên chon “OK” để tiếp tục Hình 15: Đặt tên cho project 52 Chọn “Create New File” để đặt tên thiết lập cho file lưu trữ cho project, Chọn kiểu “Verilog” thư mục “Top level” Sau cài đặt nhấn “OK” “Close” để tiến hành viết code Hình 16: Tạo thư mục chon kiểu cho project Bước 2: Tiến hành viết code Sau tạo project chương trình có giao diện hình 16 Hình 17: Giao diện Project 53 Click chuột phải vào thư mục vừa tạo chọn “Edit” để tiến hành viết code Sau viết code dùng tổ hợp phím “Ctrl+S” để ấn vào biểu tượng save để save code tiến hành Compile code Hình 18: Giao diện code Bước 3: Chạy chương trình Click chuột phải vào NOT.v chọn “Compile” -> chọn “Compile Slected” để kiểm tra lỗi Hình 19: Compile Code 54 Chọn Library để tiến chọn file mô Mở thư mục Work, Click chuộc phải vào file NOT chọn “Simulate” Hình 20:Thao tác tiếng hành Simulate Click giữ file NOT kéo sang “Wave – Defaut” Hình 21: Wave – Defaut 55 Click chuột phải vào /NOT/MyInput chọn Force, để thay đổi trạng thái ngỏ vào cổng logic Hình 22: Xét trạng thái cho ngõ vào cổng Logic Sau thay đổi trạng thái ngõ vào chọn Run để xem kết Hình 23: Chạy mô 56 CHƯƠNG ỨNG DỤNG VÀO THIẾT KẾ HỆ THỐNG SỐ I - - - THIẾT KẾ TRÊN FPGA Chia làm phương pháp: + Dùng schematic (biểu đồ) + Dùng ngôn ngữ mô tả phần cứng (HDL) Thiết kế dùng schematic Với thiết kế dùng schematic, phác họa thiết kế gates wire nằm khối (block) máy tính Bản thiết kế có nhiều khối khối có nhiều cổng nối dây Một thiết kế FPGA nên có bảng schematic dễ đọc người xem hiểu Nhưng thiết kế lớn không dùng phức tạp dùng nhiều cổng wire, làm thiết kế nhiều rắc rối Vì nên ta dùng ngôn ngữ mô tả phần cứng (HDL) để thiết kế thiết kế lớn nêu Thiết kế dùng ngôn ngữ mô tả phần cứng (HDL) Thiết kế dùng ngôn ngữ phần cứng FPGA thông dụng với nhiều người Thông thường ta sử dụng ngôn ngữ VHDL Verilog để thiết kế Phương pháp sử dụng VHDL hay Verilog Sau ta quan sát cổng AND OR thực ngôn ngữ khác nhau: Code ngôn ngữ HDL sau: 57 D-FF: 58 - - - - D-FF thực behavio Có nhiều loại thiết kế ngôn ngữ mô tả phần cứng VHDL Verilog Behavio sử dụng nhiều dễ gọn VHDL hay Verilog ngôn ngữ mô tả phần cứng thông dụng Ta chọn hai để thiết kế FPGA Với Verilog dễ cho người vừa bắt đầu làm quen với FPGA ( gần giống với ngôn ngữ C ) Còn VHDL khó có nhiều quy ước, chặt chẽ so với Verilog Mô FPGA Khi thiết kế hoàn thành , chạy mô máy tính phần mềm trước đưa xuống FPGA Nó kiểm tra lỗi chương trình có thực yêu cầu giản đồ sóng hay không, trước mô phải khai báo giá trị ban đầu Testbench non-synthesizable HDL design để tạo mô cho thiết kế Ví dụ mô dùng testbench: module gates(a, b, q, r); input a, b; output q, r; assign q = a & b; // one AND gate assign r = a | b; // one OR gate endmodule - Một testbench hoàn chỉnh: module testbench_for_gates; // we create some stimulus by toggling the signals "a" and "b" every 50 time-units reg a, b; initial begin a = 0; b = 0; #50 a = 1; #50 a = 0; b = 1; #50 a = 1; #50 $finish; end // and we apply the stimulus to "gates" In response, "gates" drives "q" and "r" signals wire q, r; 59 gates my_gates(a, b, q, r); // and we can verify that "q" and "r" have the right values always @(a or b) if(q != (a & b)) $display("ERROR in signal q"); always @(a or b) if(r != (a | b)) $display("ERROR in signal r"); endmodule II PHẦN MỀM THỰC HIỆN (DEMO) VỚI MODELSIM Thực máy tính 60 [...]... định V 1 MÔ HÌNH THIẾT KẾ HÀNH VI (BEHAVIORAL MODEL) Khái quát Mô hình thiết kế ở mức độ hành vi sẽ mô tả hệ thống theo cách mà nó hành xử thay vì kết nối các linh kiện ở mức thấp lại với nhau Hay nói cách khác, mô hình thiết kế hành vi chỉ mô tả mối quan hệ giữa các tín hiệu ngõ ra với các tín hiệu ngõ vào mà không cần quan tâm đến cấu trúc phần cứng bên trong nó Mô hình hành vi có hai mức độ mô tả khác... triand tri0 wor trior tri1 Một mô tả độ mạnh điều khiển sẽ bao gồm một giá trị độ mạnh để mô tả cho một net được gán giá trị 1 và một giá trị độ mạnh để mô tả cho một net được gán giá trị 0 Những từ khóa sau sẽ mô tả độ mạnh của phép gán 1: supply1 strong1 pull1 weak1 highz1 Những từ khóa sau sẽ mô tả độ mạnh của phép gán 0: supply0 strong0 pull0 weak0 highz0 Thứ tự của sự mô tả hai độ mạnh trên là tùy... dưới dạng hằng cơ số, nó gồm ba thành phần: 11 - Thành phần đầu tiên: Độ rộng hằng số, mô tả độ rộng là số bit để chứa hằng số Nó được mô tả như là một số thập phân không dấu khác không Ví dụ: 20‘h 473FF // số thập lục phân có độ rộng 20 bit ‘o7439 // số bát phân Thành phần thứ hai: Định dạng cơ số, bao gồm một kí tự (có thể là kí tự thường hoặc kí tự hoa) để mô tả cơ số của số đó, ta có thể thêm vào... nhật sự thay đổi giá trị đó thì ta có thể mô tả độ trì hoãn đó ngay trên phép gán Nếu biểu thức bên tay trái là một net đơn (scalar) thì việc mô tả độ trì hoãn hoàn toàn giống như mô tả độ trì hoãn cho các cổng linh kiện, đó có thể là thời gian lên (rising), thời gian xuống (falling) hay thời gian để đạt trạng thái tổng trở cao (high impedance) cho net đó Việc mô tả độ trì hoãn trong một phép gán nối tiếp... hình hành vi có hai mức độ mô tả khác nhau, một là mô tả ở mức độ RTL hay còn gọi là phép gán nối tiếp hay cũng có thể gọi là phép gán liên tục, hai là mô tả ở mức độ giải thuật (algorithmic) 2 - Phép gán nối tiếp hay phép gán liên tục – Mô hình thiết kế RTL ( CONTINUOUS ASSIGNMENT) Giới thiệu Phép gán nối tiếp – mô hình thiết kế RTL, thông thường mô tả luồng dữ liệu bên trong những hệ thống giống như... nguyên tắc sau sẽ ràng buộc việc sử dụng sự mô tả độ mạnh điều khiển: + Những mô tả độ mạnh (highz1, highz0) và (highz0, highz1) sẽ được xem như là không hợp lệ 31 + Nếu độ mạnh điều khiển không được mô tả thì độ mạnh mặc định sẽ là (strong1, strong0) 3 Phép gán qui trình – Mô hình thiết kế ở mức độ thuật toán ( PROCEDURAL ASSIGNMENT) Phép gán qui trình - mô hình thiết kế ở mức độ thuật toán đa số được... thống thêm vào được định nghĩa bởi phần mềm thực thi Ví dụ: IV $$time – trả về thời gian chạy mô phỏng hiện tại $display – tương tự như hàm printf trong C $stop – ngừng chạy mô phỏng $finish 1 NHỮNG PHẦN TỬ TRONG – hoàn thành chạy mô phỏng VERILOG Hệ thống task và funtion Task và function cung cấp khả năng thực thi các thủ tục chung từ nhiều nơi khác nhau trong một mô tả thiết kế Task và function thường... // không hợp lệ (giữa ‘ và b có khoảng trắng), đúng là 4’b1001 4’b1011 // số nhị phân 4 bit Thành phần thứ ba, là một số không dấu, bao gồm những kí tự phù hợp với cơ số đã được mô tả trong thành phần thứ hai Thành phần số không dấu này có thể theo sau ngay thành phần cơ số hoặc có thể theo sau thành phần cơ số bởi một khoảng trắng Những kí tự từ a đến f của số thập lục phân có thể là kí tự thường... liệu thanh ghi (register) Phép gán này được thực hiện ngay khi có sự thay đổi giá trị ở bên phải của phép gán Phép gán nối tiếp – mô hình thiết kế RTL, cung cấp một phương pháp để mô hình mạch tổ hợp mà không cần mô tả sự kết nối giữa các cổng với nhau, mà thay vào đó nó mô tả biểu thức logic để điều khiển net Ví dụ: assign m = 1’b1; assign a = b & c; assign #10 a = 1’bz; - Phép gán nối tiếp khi khai... khai báo net sẽ được xử lí khác với việc mô tả độ trì hoãn của một net rồi sau đó mới thực hiện phép gán nối tiếp Một giá trị độ trì hoãn có thể được cung cấp cho một net trong khai bao net như trong ví dụ sau: wire #10 wireA; assign wireA = 1’bz; assign wireA = b; - Độ mạnh phép gán Độ mạnh điều khiển của phép gán có thể được mô tả bởi người sử dụng Việc mô tả độ mạnh này chỉ hợp lệ cho những phép

Ngày đăng: 19/08/2016, 12:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan