• 模块和端口


    学习目标

    1.说明Verilog模块定义中各个组成部分。

    2。理解如何定义模块的端口列表以及在Verilog中如何声明

    3.讲述模块实例的端口连接规则

    4.理解如何通过有序列表和名字将端口与外部信号相连

    5.解释对Verilog标识符的层次引用

     1.模块

    module模块名,

    端口列表,端口声明(如果有端口)

    参数声明(可选)

    wire,reg和

    其它类型的变量声明

    数据流语句

    (assign)

    低层模块实例

    always块和initial块,所有

    行为语句全都在这些块中

    任务和函数

    endmodule模块语句结束

     2.端口

    模块与外部环境交互的接口

    2.1端口列表

    在模块定义中包括一个可选的端口列表,但如果模块与外部环境没有交换任何信号,则可以没有端口列表。

    2.2端口声明

    Verilog关键字 端口类型
    input 输入端口
    output 输出端口
    inout 输入/输出端口

    在Verilog中,所有端口隐含地声明为wire类型,因此如果希望端口具有wire数据类型,将其声明为三种类型之一即可;如果输出类型的端口需要保存数据,则必须将其

    显示地声明为reg数据类型。不能将input和inout类型的端口声明为reg数据类型。

    2.3端口连接规则

    端口由模块外部和内部两部分相互连接构成

    端口 内部数据类型 外部数据类型
    输入端口 net net/reg
    输出端口 reg/net net
    输入/输出端口 net net

    位宽匹配

    允许内外不同位宽,但会有警告

    未连接端口

    允许模块实例的端口保持未连接状态

    2.4端口与外部信号的连接

    对模块调用(实例调用)的时候,有两种方法将模块定义的端口与外部环境中的信号连接起来:

    1.按顺序连接

    2.按名字链接

    顺序端口连接

    直观的方法,需要连接到模块实例的信号必须与模块声明时目标端口在端口列表中的位置保持一致。

    命名端口连接

    在这种方法中端口和相应的外部信号按照其名字进行连接。端口连接可以以任意顺序出现,只要保证端口和外部信号的正确匹配性

    在这种方法中,需要与外部信号连接的端口必须用名字进行说明,而不需要的端口只需要简单地忽略掉即可。

    命名端口连接的另一个优点是,只要端口的名字不变,即使模块端口列表中端口的顺序发生了变化,模块实例的端口也无需进行调整。

    3层次命名

    层次名由一连串使用“.”分隔的标识符组成,每一个标识符代表一个层次,这样设计者就可以在设计中的任何地方通过指定完整的层次名对每一个

    标识符进行访问。如果需要显示层次,用户可以在系统任务$display中使用特殊字符%m。

  • 相关阅读:
    Cocos2dx引擎10-事件派发
    IE无法打开internet网站已终止操作的解决的方法
    让程序在崩溃时体面的退出之Dump文件
    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能
    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
    cocos 3.0 一键打包android平台应该注意的细节
    Matlab画图-非常具体,非常全面
    linux和windows文件名称长度限制
    Javascript的DOM操作
    50个高端大气上档次的管理后台界面模板
  • 原文地址:https://www.cnblogs.com/fxygrzb/p/5920069.html
Copyright © 2020-2023  润新知