function函数的使用

function函数的使用

规则:

  1. 函数必须至少含有一个输入变量,不能有任何输出或输入/输出双向变量。
  2. 函数不能包含时钟控制语句(如延迟#、事件控制@或者等待wait)。
  3. 函数是通过对函数名赋值的途径返回其值的,就好比是一个寄存器。
  4. 函数不能启动任务。
  5. 函数不能被禁用。

注意:

  1. 函数的输入变量不能像模块的端口那样列在函数名后的括弧里;在声明输入时把这些输入端列出即可。
  2. 如果函数包含一条以上的语句,这些语句必须包含在begin-end或fork-join块中。

可综合性问题:

函数每一次调用都被综合为一个独立的组合逻辑电路块。

module tryfunct(clk,n,result,reset);
	output [31 : 0]  result;
	input [3 : 0] n;
	input reset,clk;
	reg [31 : 0] result;

always@(posedge clk)
begin
	if(!reset)
		result <= 0;
	else
	begin
		result <= n*factorial(n)/((n*2)+1);
	end     //verilog在整数除法运算结果中不考虑余数
end

function [31 : 0] factorial;//函数

你可能感兴趣的:(verilog,FPGA,fpga)