当前位置: 首页 > 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

http://www.dtcms.com/a/52307.html

相关文章:

  • 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 使用函数计算两点间的距离
  • 20250305随笔 HTML2Canvas 详解与使用指南
  • STM32单片机芯片与内部114 DSP-变换运算 实数 复数 FFT IFFT 不限制点数
  • linux进程通信之共享内存实例
  • 【Javascript网页设计】在线图片画板案例
  • BambuStudio学习笔记:FaceDetector类
  • 模块13.异常_Object
  • 服务器CPU微架构
  • LeetCode 解题思路 10(Hot 100)
  • XTDrone+Mavros+Gazebo仿真——配置与控制不同的无人机
  • DeepSeek赋能智慧工厂:推动制造业高效智能可持续,开启制造业转型升级