您的位置:首页 > 其它

使用verilog实现模块级联

2016-03-19 00:00 1521 查看
摘要: 本文介绍两个半加器级联成为一个全家器的过程,加深对模块级联的理解!

一个verilog程序可以包含多个模块,以满足一个复杂的程序设计。调用多个模块是通过端口关联来进行实现的,这种调用实际上是 一种硬件电路的嵌入,调用的方式是模块实例化,其中端口关联有两种方式:一种是位置关联,一种是名称关联,形式为“.端口名(变量名)“,实现端口与变量的关联。下面通过两个半加器来实现一个全加器来加以说明调用的方式:

moudle HalfAdd(X,Y,SUM,C_out);

input X,Y;

output SUM,C_out;

xor u_xor(SUM,X,Y);

and u_and(C_out,X,Y);

endmoudle

moudle FullAdd(X,Y,C_in,SUM,C_out);

input X,Y;

output C_in,Sum,C_out;

wire HalfAdd_A_SUM;

wire HalfAdd_A_COUT;

wire HalfAdd_B_COUT;

or u_or(C_out,HalfAdd_A_COUT,HalfAdd_B_COUT);

HalfAdd u_HalfAdd_A(.X(X),.Y(Y),.SUM(HalfAdd_A_SUM),.C_out(HalfAdd_A_COUT));

HalfAdd u_HalfAdd_B(.X(X),.Y(Half_A_SUM),.SUM(SUM),C_out(HalfAdd_B_COUT)));

endmoudle

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: