Verilog 学习笔记(一)模块例化

    1.单个模块的例化

verilog中模块的例化有两种方式,一种是基于端口位置来例化模块,另一种则是根据端口名称来例化。首先介绍第一种基于端口位置来例化。在此之前,我们先给出一个简单的模块如下:

 上图中的mod_a模块声明如下:

module mod_a ( output, output, input, input, input, input );

为了在模块top_module例化上面的模块,我们首先声明top_module。

module top_module ( 
    input a, 
    input b, 
    input c,
    input d,
    output out1,
    output out2
);

      采用基于端口位置的例化方法,要注意例化时连接六个端口(out1,out2,a,b,c,d)与该模块声明时对应的位置顺序是一样的。比如上面mod_a模块端口声明 先是两个输出,再是四个输入,所以例化应该为,

module top_module (
    input a,
    input b,
    input c,
    input d,
    output out1,
    output out2
);
     mod_a inst(
         out1,out2,a,b,c,d);
endmodule

     上面第一种例化方式书写上较为简单,但在实际中我们往往用的是第二种基于端口名称的例化方式。

     module top_module (
    input a,
    input b,
    input c,
    input d,
    output out1,
    output out2
);
    mod_a inst(
        .in1(a),
        .in2(b),
        .in3(c),
        .in4(d),
        .out1(out1),
        .out2(out2)
    );
endmodule

例化格式是   

        模块名  例化名(

         .模块端口(连接到的端口名称)

);

在实际verilog编程中第二种应用最多。

2.多个模块的例化

在实际中往往会遇到多个模块的例化,下面我们以D触发器为例,在top_module中串联例化三个D触发器模块。

 首先给出D触发器模块my_dff的声明

module my_dff ( input clk, input d, output q );

理想的连接框图如下:

从图中看到,在top_module模块中要例化三个my_dff,所以模块的例化名不能相同,其次每个模块的输入输出都不一样,且中间还需要进行不同D触发器之间的连接,所以还需要先声明两根导线。剩下的连接具体看图连线就好了。具体代码如下:

module top_module ( input clk, input d, output q );
        wire q_d_1,q_d_2;
    my_dff inst0(
        .clk(clk),
        .d(d),
        .q(q_d_1)
    );
    my_dff inst1(
        .clk(clk),
        .d(q_d_1),
        .q(q_d_2)
    );
     my_dff inst2(
         .clk(clk),
         .d(q_d_2),
        .q(q)
    );
endmodule

例化补充:

如果例化的端口需要悬空、持续高或低电平、啥都不接,应该的例化格式为

module top_module ( input clk, input d, output q );
       
    my_dff inst0(
        .clk(clk),
        .d(1)//持续高电平,
        .q(),//悬空

       );

如果针对第一种严格按位置的例化,不需要的端口需要保留逗号

my_dff inst0(clk,d , );

       );

  • 16
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个很菜研究生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值