返回介绍

A.1.3 模块和原语源文本

发布于 2020-09-09 22:56:05 字数 3171 浏览 1152 评论 0 收藏 0

source_text ::= [timeunits_declaration] {description}

description ::=
    module_declaration
  | udp_declaration
  | interface_declaration
  | program_declaration
  | package_declaration
  | {attribute_instance} package_item
  | {attribute_instance} bind_directive

module_nonansi_header ::=
    {attribute_instance} module_keyword [lifetime] module_identifier [parameter_port_list]
        list_of_ports;

module_ansi_header ::=
    {attribute_instance} module_keyword [lifetime] module_identifier [parameter_port_list]
        [list_of_port_declarations];

module_declaration ::=
    module_nonansi_header [timeunits_declaration] {module_item}
        endmodule[: module_identifier]
  | module_ansi_header [timeunits_declaration] {non_port_module_item}
        endmodule[: module_identifier]
  | {attribute_instance} module_keyword [lifetime] module_identifier(.*);
        [timeunits_declaration] {module_item} endmodule[: module_identifier]
  | extern module_nonansi_header
  | extern module_ansi_header

module_keyword ::= module | macromodule

interface_nonansi_header ::=
    {attribute_instance} interface [lifetime] interface_identifier
        [parameter_port_list] list_of_ports;

interface_ansi_header ::=
    {attribute_instance} interface [lifetime] interface_identifier
        [parameter_port_list] [list_of_port_declarations];

interface_declaration ::=
    interface_nonansi_header [timeunits_declaration] {interface_item}
        endinterface [: interface_identifier]
  | interface_ansi_header [timeunits_declaration] {non_port_interface_item}
        endinterface [: interface_identifier]
  | {attribute_instance} interface interface_identifier(.*);
        [timeunits_declaration] {interface_item}
        endinterface [: interface_identifier]
  | extern interface_nonansi_header
  | extern interface_ansi_header

program_nonansi_header ::=
    {attribute_instance} program [lifetime] program_identifier
        [parameter_port_list] list_of_ports;

program_ansi_header ::=
    {attribute_instance} program [lifetime] program_identifier
        [parameter_port_list] [list_of_port_declarations];

program_declaration ::=
    program_nonansi_header [timeunits_declaration] {program_item}
        endprogram [: program_identifier]
  | program_ansi_header [timeunits_declaration] {non_port_program_item}
        endprogram [: program_identifier]
  | {attribute_instance} program program_identifier (.*);
        [timeunits_declaration] {program_item}
    endprogram [: program_identifier]
  | extern program_nonansi_header
  | extern program_ansi_header

class_declaration ::=
    [virtual] class [lifetime] class_identifier [parameter_port_list]
        [extends class_type [(list_of_arguments)]];
        {class_item}
    endclass [: class_identifier]

package_declaration ::=
    {attribute_instance} package package_identifier;
        [timeunits_declaration] {{attribute_instance} package_item}
    endpackage [: package_identifier]

timeunits_declaration ::=
    timeunit time_literal;
  | timeprecision time_literal;
  | timeunit time_literal;
    timeprecision time_literal;
  | timeprecision time_literal;
    timeunit time_literal;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文