not u1(nsl, sl);
and #1 u2(sela, a, nsl);
and #1 u3(selb, b, sl);
or #1 u4(out, sela, selb);
endmodule
/*一个名为adder的三位加法器的例子。*/
module adder ( count,sum,a,b,cin ); //模块定义开始
// 选择逻辑组合
2.2.2 模块的概念
一个设计是由一个个模块构成的。一个模块的设计如下:
1 模块内容是嵌套在module和endmodule两个语句之间。每个
模块实现特定的功能,模块是可以进行层次嵌套的。正因为
如此,才可以将大型的数字电路设计分割成不同的小模块来
实现特定的功能,最后通过顶层模块调用子模块来实现整体
endmodule
数据流语句
▪这个例子描述了一个三位的加法器。从例子中可以看出整个
Verilog HDL程序是嵌套在module和endmodule声明语句里
的,只出现了一个assign语句。
例SR触发器模块
S
Q
//SR 触发器
module SR_FF (Q, Q_n,S,R);
R
Q_n
output Q, Q_n; //端口声明
input S,R;
nand n1(Q, S,Q_n);
nand n2(Q_n,R,Q);
nand为verilog
中的与非门门级
原语部件
endmodule
模块中的5个部分并没全部出现,只出现在
低层次模块实例化
D触发器模块
//D 触发器
module D_FF (d, clk,clr,q,qb);