当前位置: 首页 > news >正文

模块和端口

1、模块

模块内部的5个组成是:变量声明  数据流语句  低层模块实例  函数和任务  行为语句

SR锁存器

`timescale 1ns / 1ps

module SR_latch
    (
        input   wire    Sbar        ,
        input   wire    Rbar        ,
        
        output  wire    Q           ,
        output  wire    Qbar
    );
    
    nand    n1(Q,Sbar,Qbar) ;
    nand    n2(Qbar,Rbar,Q) ;
    
endmodule

tb_sr

`timescale 1ns / 1ps



module tb();

    wire    Q,Qbar  ;
    reg     Sbar,Rbar   ;
    
    SR_latch    m1(Sbar,Rbar,Q,Qbar)    ;
    
    initial
    begin
        $monitor($time,"Sbar = %b   Rbar  =  %b   Q  =  %b",Sbar,Rbar,Q)    ;
        Sbar    =   1'b0    ;
        Rbar    =   1'b0    ;
        
        #5
            Rbar    =   1'b1    ;
        #5
            Rbar    =   1'b0    ;
        #5
            Sbar    =   1'b1    ;
    end

endmodule

2、端口 

 端口就是模块与外界环境交互的接口。

        2.1、        端口列表

有端口列表的模块

module    fulladd4
            (
                output        sum      ,
                output        c_out    ,

                input         a        ,
                input         b        ,
                input         c_in
            );

没有端口列表的仿真模块

module    tb    ;

        2.2、        端口申明

                

端口
verilog关键字端口类型
input输入
output输出
inout双向端

 

        2.3、        端口连接规则

        输入端口 必须为 线网数据类型。input可以外界 接  reg 或者 wire。

        输出端口 可以为reg或者wire。总体而言 ,输出必须接到线网,不能接到reg。

        inout端口 必须为 wire。

        verilog 运行位宽不同,但是会给出 warn。

        2.4、        端口 与 外部信号的连接

                顺序端口连接

                命名端口连接

        这两种方式不能混用。

3、层次命名

        如下,可以用  .   分隔。

stimulus.Qbar.Q

相关文章:

  • Linux设备驱动开发之摄像头驱动移植(OV5640)
  • DeepSeek 角色设定与风格控制
  • threejs:着色器onBeforeCompile给导入的模型添加光带扫描效果
  • 运维实战---多种方式在Linux中部署并初始化MySQL
  • Java面试常见问题总结
  • socket基础学习以及java搭建
  • GaussianCity:实时生成城市级数字孪生基底的技术突破
  • 小模型和小数据可以实现AGI吗
  • 黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • SpringBoot项目集成ElasticSearch
  • 粒子群优化算法(Particle Swarm Optimization, PSO)的详细讲解
  • 如何配置虚拟机连接finalshell并克隆
  • 确定 Flutter SDK 及其关联的 Gradle 版本与适配的 JDK 版本
  • 一文读懂Redis分布式锁
  • vue2实现组件库的自动按需引入,unplugin-auto-import,unplugin-vue-components
  • 开发环境搭建-03.后端环境搭建-使用Git进行版本控制
  • NO1.C++语言基础|四种智能指针|内存分配情况|指针传擦和引用传参|const和static|c和c++的区别
  • 最短路径问题——Dijkstra算法+Bellmanford算法+Floyd算法
  • 机器学习数学基础:40.结构方程模型(SEM)中卡方值与卡方自由度比
  • 2025-03-04 学习记录--C/C++-PTA 习题5-3 使用函数计算两点间的距离
  • 第32届梅花奖终评启幕,上海京剧院《智取威虎山》满堂彩
  • 上海优化营商环境十大攻坚突破任务中,为何第一项是实施世行对标改革?
  • 中国以“大幅开放市场”回应贸易保护主义
  • AMD:预计美国芯片出口管制将对全年营收造成15亿美元损失
  • 李云泽:再批复600亿元,进一步扩大保险资金长期投资试点范围
  • 吴清:全力支持中央汇金公司发挥好类“平准基金”作用