verilog中在同一模块中调用其他多个模块,模块是顺序执行的吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog中在同一模块中调用其他多个模块,模块是顺序执行的吗相关的知识,希望对你有一定的参考价值。

参考技术A

是。

模块在语言形式上是以关键词module开始,以关键词endmodule结束的一段程序。在做模块划分时,通常会出现这种情形:某个大的模块中包含了一个或多个功能子模块。verilog是通过模块调用或称为模块实例化的方式来实现这些子模块与高层模块的连接的。

按照每个模块并行工作的思路来调整设计。这给软件开发人员入门带来了难度,但是同时也是FPGA的价值所在,正因为FPGA能够并行执行,所以很多算法和设计可以在低频时钟下高实时性,快速出结果。

扩展资料:

注意事项:

若一个模块temp需要调用adder模块时,temp中的与adder想连的端口需要与adder中声明的端口顺序一致。端口的介绍,可以参阅点击打开链接。 调用首先写被调用模块的名称(adder)  ,随后的是实例名(add,用户自行定义),然后按adder中端口的顺序写下实例的端口名即可。

一般设计中用到的触发器只有一个时钟,除非在工艺中有专门的器件,并且在设计中进行专门的指定,否则这种设计在综合的时候是通不过的。

参考资料来源:百度百科-Verilog

VerilogHDL学习

No.1 Verilog HDL程序结构

  1. Verilog 描述硬件的基本设计单元是模块 module

  2. 复杂的电子电路构建主要是通过模块之间的相互连接调用来实现的,在Verilog中将模块包含在关键字 module endmodule之间。

  3. Verilog中的模块类似于C语言中的函数,它可以提供输入、输出端口,并且可以通过例化调用其他模块(就这点而言可以理解成C++中的类实例化对象)


No.2 Verilog的程序结构

端口定义 数据类型说明 逻辑功能定义
input wire assign
output ... parameter ... function ...

No.3 模块声明与模块端口定义

module <module_name>(port_name1,...port_namen);
    .
    .
    .
endmodule

例子:

module test(a,b,c,d,e,f,g,h);
    input[7:0] a;       //没有明确的说明,网络是无符号的
    input[7:0] b;
    input signed[7:0] c; 
    input signed[7:0] d;//明确的网络说明,网络是有符号的
    output [7:0] e;
    output [7:0] f;
    output signed[7:0] g;
    output signed[7:0] h;
    wire signed[7:0] b; //从网络声明中端口b继承了有符号的属性
    wire [7:0] c;       //网络c继承了来自端口的有符号属性
    reg [7:0] g;        //从寄存器声明中端口f继承了有符号的属性
    reg signed[7:0] f;  //寄存器类型的g继承了...的有符号属性
endmodule
2019.7.7.21.08
Crf.Kevin

以上是关于verilog中在同一模块中调用其他多个模块,模块是顺序执行的吗的主要内容,如果未能解决你的问题,请参考以下文章

verilog 中顶层模块实例引用多个模块时端口怎么连接

verilog中,对一个模块的多次调用,比如前一个调用还没有结束的情况下,就再次调用,后者是不是会覆盖前者?

verilog中多次调用一个module实例

verilog模块例化

如何能将自己的verilog模块封装成像altera的IP核一样的呢?

如何将自己写的verilog模块封装成IP核