关于Verilog的模块使用
FPGA的过程模块基本有如下四种说明语句:
1:initial说明语句
Initial语句只执行一次,initial语句的次数是不受限制的,他们都是同时开始执行的。而initial语句一般用于对存储器的初始化意思仿真时激励波形的产生。
2:always说明语句
Always语句不断的执行,直到仿真过程完成,always语句后面的过程块依据其后的判断条件来决定,always语句的次数是不受限制的,他们都是同时开始执行。在always块中,其触发条件可以时边沿触发,也可以是电平触发,也可以加上时间的控制作为激励信号的产生。在其触发条件里,可以有多个触发条件,可以使用or或者‘,’作为分开。也可以采用电平敏感时序控制,如‘wait’可以用来控制某个触发的条件。
3:task说明语句
Task用来定义任务,一个任务内可以调用任意此别的任务;任务调用传递的是任务名一个任务的端口,可以使用task进行类似C语言中函数的调用。
4:function说明语句
函数的调用是通过将函数作为表达式中的操作数来实现的,调用时使用函数名加上所操作的数据。在函数调用中不能出现含有时间的控制语句。函数至少有一个输入。
Function用来定义函数,
Task和function主要用来将一个很大的程序模块分解成许多较小的任务和函数便于理解和调试,task和function往往用于一个大的程序模块中在不同地点多次用到的相同的序段。以便简化程序的结构,是程序明白易懂。
函数和任务有四个不同点,如下:
1:函数和主模块共用一个仿真时间单位,而任务可以定义自己到时间单位。
2:函数不能启动任务,而任务能启动其他任务和函数。
3:函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量。
4:函数返回一个值,而任务则不返回值。