Giáo trình Ngôn ngữ mô tả phần cứng Verilog: Phần 2
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Giáo trình Ngôn ngữ mô tả phần cứng Verilog: Phần 2 Chương 5. Cấu trúc phân cấp và module Chương 5. Cấu trúc phân cấp và module 5.1 Cấu trúc phân cấp Ngôn ngữ mô tả phần cứng Verilog hỗ trợ cấu trúc phân cấp bằng cách cho phép modules được nhúng trong modules khác. Modules cấp độ cao hơn tạo thể hiện của module ở cấp độ thấp và giao tiếp với chúng thông qua các đầu vào, đầu ra và đầu vào ra 2 chiều. Các cổng vào ra có thể là vô hướng hoặc là vector. Cấu trúc phân cấp giúp người thiết kế chia một hệ thống thiết kế ra thành các module nhỏ hơn để dễ thiết kế và kiểm soát luồng dữ liệu trong quá trình thiết kế. Như một ví dụ cho hệ thống module phân cấp, hãy xem xét một hệ thống bao gồm các bảng mạch in (PCBs). 5.2 Module 5.2.1 Khai báo module Trong mục này cung cấp cú pháp thông thường cho một định nghĩa module và cú pháp cho việc cài đặt module, cùng với một ví dụ về định nghĩa module và cài đặt module. Một định nghĩa module được bao giữa bởi hai từ khóa module và endmodule. Các định danh kèm theo sau từ khóa module sẽ là tên định nghĩa của module. Danh sách các tùy chọn của tham số được định nghĩa sẽ chỉ rõ một danh sách theo thứ tự các tham số của module. Danh sách các tùy chọn của cổng hoặc khai báo cổng được định nghĩa sẽ chỉ rõ một danh sách theo thứ tự các cổng của module. Thứ tự được sử dụng trong định nghĩa danh sách các tham số trong module-parameter-port-list và trong 112 Chương 5. Cấu trúc phân cấp và module danh sách cổng có thể có ý nghĩa trong việc cài đặt các module. Các định danh trong danh sách này sẽ khai báo lại trong các câu lệnh input, output, và inout trong định nghĩa module. Khai báo cổng trong danh sách khai báo cổng sẽ không khai báo lại trong thân module. Các mục của module định nghĩa cái tạo thành module, và chúng bao gồm nhiều loại khai báo và định nghĩa khác nhau, nhiều trong số đó đã được giới thiệu. Từ khóa macromodule có thể dùng để thay thế từ khóa module để định nghĩa một module. Một quá trình thực thi có thể chọn để giải quyết module được định nghĩa bắt đầu với thừ khóa macromodule khác nhau. Cú pháp 5-1 module_declaration ::= {attribute_instance} module_keyword module_identifier [ module_parameter_port_list ] list_of_ports ; { module_item } endmodule |{ attribute_instance } module_keyword module_identifier [ module_parameter_port_list ] [ list_of_port_declarations ] ; { non_port_module_item } endmodule module_keyword ::= module | macromodule module_parameter_port_list ::= (From A.1.3 # ( parameter_declaration { , parameter_declaration } ) list_of_ports ::= ( port { , port } ) list_of_port_declarations ::= ( port_declaration { , port_declaration } ) | ( ) port ::= [ port_expression ] | . port_identifier ( [ port_expression ] ) port_expression ::= port_reference | { port_reference { , port_reference } } port_reference ::= port_identifier [ [ constant_range_expression ] ] port_declaration ::= {attribute_instance} inout_declaration | {attribute_instance} input_declaration | {attribute_instance} output_declaration module_item ::= (From A.1.4) port_declaration ; | non_port_module_item module_or_generate_item ::= { attribute_instance } module_or_generate_item_declaration | { attribute_instance } local_parameter_declaration ; 113 Chương 5. Cấu trúc phân cấp và module | { attribute_instance } parameter_override | { attribute_instance } continuous_assign | { attribute_instance } gate_instantiation | { attribute_instance } udp_instantiation | { attribute_instance } module_instantiation | { attribute_instance } initial_construct | { attribute_instance } always_construct | { attribute_instance } loop_generate_construct | { attribute_instance } conditional_generate_construct module_or_generate_item_declaration ::= net_declaration | reg_declaration | integer_declaration | real_declaration | time_declaration | realtime_declaration | event_declaration | genvar_declaration | task_declaration | function_declaration non_port_module_item ::= module_or_generate_item |generate_region | specify_block | { attribute_instance } parameter_declaration ; | { attribute_instance } specparam_declaration parameter_override ::= defparam list_of_defparam_assignments ; Ví dụ 5.1 Định dạng của một module chuẩn module tên_module (danh sách các cổng, nếu có); Khai báo port input, output, inout; Khai báo tham số Khai báo các loại dữ liệu (dữ liệu net, dữ liệu biến, ví dụ: wire, reg, integer) Gọi và gán đặc tính (instantiate) module con (sub-module) Phát biểu gán sử dụng mô hình RTL (assign) Phát biểu gán qui trình (always, initial) 114 Chương 5. Cấu trúc phân cấp và module Khai báo hàm và tác vụ Khai báo kết thúc module (endmodule) 5.2.2 Module mức cao nhất Module mức cao nhất (top-module) là module mà nó bao gồm trong văn bản gốc, nhưng nó hầu như không có một câu lệnh cài đặt nào trong bất kỳ một module nào khác. Điều này áp dụng cả khi module cài đặt tạo ra trong khối tạo mà không phải tự nó cài đặt. Một mô hình phải có ít nhất một module mức cao nhất. 5.2.3 Gọi và gán đặc tính một module (instantiate) Việc gọi và gán đặc tính module cho phép một module gọi và gán đặc tính một module khác ra để sử dụng. Các module không được định nghĩa lồng nhau. Nói cách khác, một module được định nghĩa sẽ không chứa mô tả thiết kế của một module khác trong cặp từ khóa module endmodule. Một module được định nghĩa lồng trong một module khác bằng cách gọi và gán đặc tính của module đó ra để sử dụng. Một câu lệnh gọi và gán đặc tính module sẽ tạo ra một hoặc nhiều bản sao của module được định nghĩa. Ví dụ, một module bộ đếm phải cài đặ ...
Tìm kiếm theo từ khóa liên quan:
Giáo trình Ngôn ngữ mô tả phần cứng Verilog Ngôn ngữ mô tả phần cứng Verilog Cấu trúc phân cấp Mô hình thiết kế cấu trúc Mô hình thiết kế hành viGợi ý tài liệu liên quan:
-
Đề thi giữa học kì 2 môn Tin học lớp 7 năm 2022-2023 có đáp án - Trường THCS Phan Bội Châu, Hiệp Đức
8 trang 197 0 0 -
Giáo trình Ngôn ngữ mô tả phần cứng Verilog: Phần 1
115 trang 26 0 0 -
Đề thi học kì 2 môn Tin học lớp 7 năm 2022-2023 có đáp án - Trường THCS Phan Bội Châu, Hiệp Đức
10 trang 25 0 0 -
Đề cương ôn tập học kì 2 môn Tin học lớp 7 năm 2022-2023 - Trường THCS Dương Nội
5 trang 18 0 0 -
Giáo án môn Tin học lớp 7 sách Kết nối tri thức: Bài 11
7 trang 17 0 0 -
Đề thi giữa học kì 2 môn Tin học lớp 7 năm 2023-2024 có đáp án - Trường THCS Huỳnh Thị Lựu, Hội An
8 trang 15 0 0 -
Đề thi học kì 2 môn Tin học lớp 7 năm 2023-2024 có đáp án - Trường THCS Nguyễn Duy Hiệu, Hội An
11 trang 15 0 0 -
Đề thi giữa học kì 2 môn Tin học lớp 7 năm 2023-2024 có đáp án - Trường THCS Chu Văn An, Hội An
10 trang 14 0 0 -
Luận văn: NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP PHÂN CỤM MỜ VÀ ỨNG DỤNG
90 trang 12 0 0 -
Đề thi giữa học kì 2 môn Tin học lớp 8 năm 2023-2024 - Trường THCS Lê Quý Đôn, Long Biên
3 trang 11 0 0