目录
1、模块的基本架构
module 模块名(端口列表);
//端口声明可以再端口列表,也可以在模块内,input,output,inout
//参数定义(常量)
//内部信号声明,wire或reg
//模块内部可以包涵function、task,
//低层次的引用,
//连续赋值语句assign、过程块initial,always
endmodule
2、数据类型
2.1、数值
0:逻辑低电平
1:逻辑高电平
z:高组态,三态
x:未知逻辑电平
2.2、线网类型
wire [7:0] x; //x是8bit的wire型连线;
wire #(2,1) carry; //带上升、下降延迟的线网;
注意:verilog HDL程序模块中输入输出信号类型默认为wire类型。
2.3、变量声明/寄存器类型
reg [7:0] a [0:4]; //5个8bit符号变量,或称为5个8bit寄存器,或位宽为8深度为5的寄存器;
注意:变量是数据存储单元的抽象,常包含reg、time、integer类型,其初值是不定态“x”值,可以储存数据赋值给其它变量、线网。
3、连接方式
3.1、端口位置连接
//调用模块
modulenamel(...);
//端口定义
//端口描述
//mux u1(in1,in2,sel,out);
endmodule
//被调用模块
modulenamel(in1,in2,sel,out);
//端口定义
//端口描述
//具体代码
endmodule
3.2、端口命名连接
module same_port(.a(i),.b(j));
//.a,.b被调用模块端口
//i,j调用模块的端口名
举例:
module full(p,q,cin,sum,cout);
input p,q,cin;
output sum,cout;
wire s1,c1,c2;
//两个实例调用语句
half h1(p,q,s1,c1); //端口位置连接,第一个半加器四个端口的连接
half h2(.b(cin),.s(sum),.a(s1),.c(c2)); //端口命名连接,第二个半加器四个端口的连接
or h3(cout,c1,c2);
endmodule
module half(a,b,s,c) //被调用的半加器模块;
input a,b;
output s,c;
求和描述;
进位描述;
endmodule

4、 操作符



1787

被折叠的 条评论
为什么被折叠?



