网上搜来的,保存下来
http://blog.163.com/xiada_action/blog/static/74234602201083111032903/
定义模块 :
module Design(端口1,端口2,端口3……);
1)引用时,严格按照模块定义的端口顺序来连接,不用标明原模块定义时规定的端口名。
Design u_1(u_1的端口1,u_1的端口2,u_1的端口3,u_1的端口……);//和Design对应
2)引用时用 “ . ” 符号,标明原模块定义时规定的端口名:
Design u_2( .(端口1(u_1的端口1),
.(端口2(u_1的端口2),
.(端口3(u_1的端口3),
……
);
//推荐这种引用法
引用模块时,注意对运用参数编写的模块的灵活引用。
module Decode(A,F);
parameter Width=1,Polarity=1;
……
endmodule
引用时:
module Top;
wire [3:0] A4;
wire [4:0] A5;
wire [15:0] F16;
wire [31:0] F32;
Decode
u_D1(A4,F16);
//u_D1使用默认参数,Width为1,Polarity为1
Decode #(4,0) u_D2(A4,F16);
//u_D2的Width为4,Polarity为0
Decode #(5)
u_D3(A5,F32);
//u_D3的Width为4,Polarity为0
endmodule
传递的方法:
#(4,0)这个参数改变方法是内容对应于被引用的module的,参数的改变还可以像module的引用一样使用 ” . “
1、module_name #( parameter1, parameter2) inst_name( port_map);
2、module_name #( .parameter_name(para_value), .parameter_name(para_value)) inst_name (port map); |