verilog可综合语句

module:模块的端口定义。用法:module 模块名(输入和输出口名);
…………………
endmodule
parameter:用来定义一个标识符代表一个常数。用法:parameter 参数名=常量表达式;
作用:常用于定义延迟时间和变量宽度。

wire:表示单个门驱动或连续赋值语句驱动的网络型数据。用法:wire[n-1:0] 数据名1,数据名2,……数据名i;
reg:寄存器数据类型,常用来表示“always”模块内的指定信号,常代表触发器。用法:reg[n-1:0] 数据名1,数据名2,……数据名i;
注意:reg型信号一定是寄存器或触发器的输出。
if_else:用来判断所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
用法:① if (表达式) ②if(表达式) ③if(表达式1)
语句; 语句1; 语句1;
else else
语句2; if(表达式2)
注意:①else语句不能单独使用。 语句2;
②若if和else后面有多个操作语句 ………
则用begin_end封装。 else
③允许一定形式的简写。如: if(表达式 m)
if(!aa)等同于if(aa!=1)。 语句m;
else
语句n;
case:多分支选择语句。常用于微处理器的指令译码。
用法:case(表达式) endcase
分支项格式: 分支表达式: 语句;
default: 语句;(当将所有结果都列举出后,不用default)。
注意:①每个case分项的分支表达式的值必须互不相同。
②执行完case分项后的语句,则跳出case语句结构,终止case语句的执行。
③case语句的所有表达式值的位宽必须相等。
for: 循环语句。用法:for(表达式1(循环变量赋初值);表达式2(循环结束条件);表达式3(循环变量增值))
语句;

注释:①先求解表达式1。
②在求解表达式2的值,其值为真,则执行for语句指定的内嵌语句,然后执行下面的第③步;为假,则结束循环,转到第⑤步。
③若表达式2为真,在执行指定的语句后,求解表达式3。
④转回第二步继续执行。
⑤执行for下面的语句。
always:在仿真过程中是不断执行的。常用于描述时序行为。
用法:沿触发—— always @(posedge ×× or negedge××)
begin
………
end
电平触发—— always @(×or×or×)
begin
………
end
注意:一个模块中可有多个always块,并且每个always块是并行执行的。
function:一般用于定义一个函数(函数的目的是返回一个用于表达式的值)。
用法:function<返回值的类型或范围> (函数名);
<端口说明语句>
<变量类型说明

语句>
begin
<语句>
……
end
endfunction
函数的调用:通过将函数作为表达式中的操作数来实现的。
格式: <函数名> (传递给函数的输入参数列表(必须与函数定义时声明其输入的顺序相同))
and: 与门。
nand: 与非门。
or: 或门。
nor: 或非门。
xor: 异或门。
xnor: 异或非门。
buf: 缓冲器。
not: 非门。


相关文档
最新文档