第三章语法
作者:互联网
1.模块语句及表达
module name(a,b,c,d,e,f);//模块名(信号列表)
input a,b;
output c;
inout d;
input [4:1]e;
output [4:1]f;
endmodule
input:单向输入
output:单向输出
inout:双向(输入输出)端口
2 assign与wire语句
module name(a,b,c,d,e,f);
input a,b;
output c;
inout d;
input [4:1]e;
output [4:1]f;
assign c=a^b; //"^"异或
assign c=a&b; //"&"与
endmodule
assign触发的条件是:左侧的驱动表达式中的信号发生改变。故assign是并行触发的
assign语句的变量类型为 wire型
module name(a,b,c,d,e,f);
input a,b;
output c;
inout d;
input [4:1]e;
output [4:1]f;
wire S1=a^b; //"^"异或
wire S2=a&b; //"&"与
wire c=S1|S2;
endmodule
1.定义变量默认为wire型,assign与wire描述信号具有一致性,故可用wire代替assign
2.wire可定义信号表外的辅助信号
3 always过程语句与reg型变量
module name(a,b,c,d,e,f);
input a,b;
output c;
inout d;
input [4:1]e;
output [4:1]f;
reg c,[4:1]f;
int i;
always@(c,f)//(敏感信号列表)
begin
if(c==1&&f[1]==0)
i=i+1;
end
endmodule
1.在always语句中,被赋值的信号需定义为reg型
2.输入信号不能定义为reg型
4 case条件语句与并位操作、数字表达
module name(a,b,c,d,e,f);
input a,b;
output c;
inout d;
input [4:1]e;
output [4:1]f;
reg c,[4:1]f;
int i;
always@(f,e)//(敏感信号列表),并位操作{},四位的e和四位的f并成八位的{f,e}
begin
case({f,e})//条件表达式
8'b00000000: ;end
8'b00000001: ;end
8'b00000011: ;end
8'b00000111: ;end
default: ;end
endcase
end
endmodule
1.“8”表示位宽八位,b表示二进制,意义为最多表示八位二进制数,其后表示具体数值,另“o”八进制,“h”十六进制,“d”十进制
5 if_else条件语句与并位操作
略,参考C语言的 if_else
6 过程语句中的赋值符号“=”、“<=”
1.“=”阻塞式赋值,如语句 {y=b,x=y,a=x}顺序执行下来,并且被赋值对象立即改变值,即阻塞式赋值
2.“<=”非阻塞式赋值,如语句{y<=b,x<=y,a<=x},顺序执行下来,并且被赋值对象不会立即改变值,当全部执行完毕后一齐赋值。也就是说,y<=b,x<=y中,x<=y的y不等于b,而等于其上一个值。
7 例化语句及其用法
1. <模块元件名> <例化元件名> (.例化元件端口(例化元件外接端口名));//例化元件端口指代调用模块的元件端口名,例化元件外接端口名指代本程序中连接到该端口的端口名。未知端口顺序用该语句
2.<模块元件名> <例化元件名> (例化元件外接端口名1,例化元件外接端口名2...);//已知端口顺序用该语句
8 过程语句中的循环语句及其用法
1.for循环
...
integer i;
always@(a,b)
begin
r=0;
for(i=1;i<=s;i=i+1)
end
...
2.while循环
...
integer i;
always@(a,b)
begin
i=i+1;
while(i<10)
end
...
3.repeat循环
...
always@(a,b)
begin
repeat(10)//repeat语句进入循环前循环次数就已决定
end
...
6 parameter定义常数及参数传递
1.定义常数
module name (R,A,B);
parameter S=4;
2.底层模块设置参数传递
module name #(parameter S=4,C=5) (R,A,B);
或 module name #(parameter S,C) (R,A,B);
3.上层模块调用并设置参数
name #(.S(8),.C(2));
标签:语句,wire,第三章,name,端口,语法,input,output 来源: https://www.cnblogs.com/helloszy/p/16353167.html