verilog端口声明

一、模块

    
    模块定义以关键字module开始,模块名、端口列表、端口声明和可选的参数声明必须出现在其他部分的前面,endmodule语句必须为模块的最后一条语句。模块内部的5个组成部分是: 变量声明、数据流语句、低层模块实例、行为语句块以及任何和函数。在模块的组成部分中,只有module、模块名、endmodule必须出现,其他部分都是可选的,用户可以根据设计的需要随意选用。
    

二、端口

    1.端口列表

            如果模块和外部环境没有交换任何信号,则可以没有端口列表。
            
           模块Top是一个顶层模块,作为仿真中的顶层模块,调用设计模块,无需和周围环境交换信息,因此没有端口列表。
           而被调用的fulladd4模块,则由a, b, c_in端口读入数据,将结果从sum和c_cout端口送出。

    2.端口声明

          在verilog中端口具有以下三种类型:
         
          在verilog中,所有的端口隐含地声明wire类型;如果输出类型的端口需要保存数值,则必须将其显式地声明为reg数据类型。
          不能将input和inout类型的端口声明为reg数据类型,因为reg类型的变量是用于保存数值的,而输入端口只反映与其相连的外部信号的变化。
          在verilog中,有两种端口声明风格:
         

    3.端口连接规则

           
         
         位宽匹配
           在对模块进行调用的时候,verilog允许端口的内、外两个部分具有不同的位宽。在一般的情况下,verilog仿真器会对此给予警告。

    4.端口与外部信号的连接

          在对模块调用的时候,也已使用两种方法将模块定义的端口与外部环境连接起来。
          顺序端口连接
          按照顺序进行端口连接:
              
          命名端口连接
            fulladd4 fa_byname(.c_out(C_OUT), .sum(SUM), .b(B), .c_in(C_IN), .a(A));
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值