Verilog 模块2025年3月17日 | 阅读 3 分钟 一个模块是 Verilog 代码的一个块,它实现了某些功能。模块可以嵌入在其他模块中,并且一个更高级别的模块可以使用其输入和输出端口与其较低级别的模块通信。 语法 一个模块应该包含在 module 和 endmodule 关键字中。 模块的名称应在 module 关键字之后给出,并且也可以声明一个可选的端口列表。 注意:在端口声明列表中声明的端口不能在模块主体内重新声明。所有变量声明、函数、任务、数据流语句和较低级模块实例都必须在 module 和 endmodule 关键字内定义。 模块的目的一个模块代表一个设计单元,它实现特定的行为特征,并将在综合期间转换为数字电路。 可以为该模块提供任何输入组合,它将提供相应的输出。 它允许重复使用相同的 module 来形成实现更复杂硬件的更大模块。 硬件原理图 除了构建较小的块来形成更大的设计块之外,也可以进行相反的过程。 考虑将一个简单的 GPU 引擎分解成更小的组件,以便每个组件都可以表示为一个模块,该模块实现一个特定功能。 下面的 GPU 引擎被分成五个不同的子块,每个子块执行特定的功能。 总线接口单元将数据从外部获取到设计中,该数据由另一个单元处理,用于指令提取。 其他单元沿着线路处理前一个单元提供的数据。 ![]() 每个子块都可以表示为一个模块,该模块具有一组特定的输入和输出信号,用于与其他模块通信,并且每个子块可以根据需要进一步划分为更多子块。 顶层模块顶层模块是包含所有其他模块的模块。 顶层模块不在任何其他模块中实例化。 例如,设计模块通常在顶层测试平台模块中实例化,以便可以通过提供输入激励来运行仿真。 但是,测试平台不在任何其他模块中实例化,因为它是一个封装所有其他内容的块。 1. 设计顶层 下面显示的设计代码有一个名为 design 的顶层模块。 它包含完成设计所需的所有其他子模块。 子模块可以有更多嵌套的子模块,例如 mod3 在 mod1 内部,mod4 在 mod2 内部。 2. 测试平台顶层 测试平台模块包含一个刺激,用于检查设计的功能,主要用于通过使用仿真工具进行功能验证。 因此,设计在测试平台模块内部被实例化并被调用为 d0。 测试平台是模拟器角度的顶层模块。 层次名称当模块可以相互实例化时,将形成一个层次结构,因此顶层模块被称为 root(根)。 由于每个较低级模块都在给定的模块内实例化,因此这些模块应该具有不同的标识符名称,因此在访问信号时不会有任何歧义。 层次名称由一系列标识符构成,这些标识符由点(.)分隔,表示层次结构的每个级别。 可以在任何模块中使用到该特定信号的层次路径来访问任何信号。 下一话题RTL Verilog |
我们请求您订阅我们的新闻通讯以获取最新更新。