首页 > 其他分享 >verilog基础语法

verilog基础语法

时间:2023-10-07 14:11:40浏览次数:40  
标签:addr cmd 基础 module 语法 width static verilog input

模块使用

模块定义加参数
module ctrl_5 #(parameter int addr_width=8, parameter int data_width=32)(
input [addr_width-1:0] cmd_addr_i
);

//模块例化时决定端口宽度
ctrl_5 #(.addr_width(16)) regs5_inst(...);
宏定义和模块定义
`define ADDR_WIDTH 6
`define DATA_WIDTH 32
module ctrl_regs6(
input ['ADDR_WIDTH-1:0] cmd_addr_i
)

接口使用

含参接口
interface name #(parameter int addr_width =6);
logic [addr_width-1:0] cmd_addr;
modport dut(
input cmd_addr
);
clocking cb@(posedge clk);
	default input #10ns output #2ns;
	input addr_width;
endclocking

covergroup cg @(posedge clk iff rstn);
	addr: coverpoint addr{
	bins addr = {1};
	}
endcovergroup

property name;
...
endproperty;
assert property() else `uvm_error()


endinterface: name
  • 建议将接口的信号的数据类型定义为logic。除非是多驱动情况,此时使用wire。如果用接口信号与DUT连接,那么应该是四值逻辑,logic/reg/wire,而不是二值逻辑byte/bit/int。
  • 使用modport后,信号连接通过modport连接。

数据限定参数

  • const限定ref声明的参数,可以保护数据对象只被读取而不会写入。
  • static变量在仿真开始的时候被创建,可以被多个进程/方法共享,直到仿真结束被销毁
  • automatic进入该进程/方法时,变量被创建,离开该进程和方法时被销毁。
    在module、program、interface、task、function之外声明的变量为static类型;在module、program、interface中定义的task和function默认是static类型的;在过程块中task、function和process中定义的变量的作用域跟随它的作用域,即过程块的类型;程序块默认的生命周期类型是static。

标签:addr,cmd,基础,module,语法,width,static,verilog,input
From: https://www.cnblogs.com/yoy116/p/17746155.html

相关文章

  • 密码协议学习笔记(1.4):密码学的一些数学基础
    数学基础:抽象代数:一个算符的代数结构:幺半群:数的集合和一个算符构成的代数结构$(G,+)$,且满足封闭性结合律存在恒等元(在群中我习惯这么叫,避免混淆)群:满足如下条件的代数结构$(G,+)$:封闭性结合律存在恒等元对于每个元素均存在逆元交换群/阿贝尔群:满足如......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第二周学习总结
    2023-2024-120231419《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标预习《计算机科学概......
  • Spark相关学习之基础认识
    1、Spark相关概念介绍是一个分布式计算框架;2、Spark的框架模块3、Spark运行模式Spark总结概述:4、Local模式......
  • TypeScript入门到精通——TypeScript类型系统基础——数组类型
    数组类型 数组是十分常用的数据结构,它表示一组有序元素的集合。在TypeScript中,数组值的数据类型为数组类型。一、数组类型定义 TypeScript提供了以下两种方式来定义数组类型:简单数组类型表示法泛型数组类型表示法1.1、简单数组类型表示法在TypeScript中,你可以使......
  • 函数的基础概念介绍
    函数是什么?简单来说,指一个实数映射到另一个实数的过程;详细来说,指用于描述两个数集之间的关系。一个函数通常由以下三个要素定义(缺一不可):定义域(Domain):函数的定义域是指函数接受输入的所有可能值构成的集合。也就是说,定义域确定了函数可以接受的自变量的范围。值域(Range):函数的......
  • 线性基基础
    launchedon2023.8.3011:20参考资料:Hypoc_:线性基详解OIwiki:线性基什么是线性基这里的线性基指的是OI中常用的异或线性基。个人认为有点类似于向量中的基底,异或线性基就是一组数的集合,每个序列至少有一个线性基,取线性基中的一些数异或起来可以得到原序列中的任意一个数......
  • AutoSAR基础_COM
    模块详解:COM: 从应用层传下来数据首先就进入这里,应用层无需关心收发的数据是通过什么总线传输的,应用只需要将它传输给COM即可。这些收发的数据是由用户的DBC文件或者ARXML文件已经定义好了的(这些文件一般OEM整车厂在整车设计的时候就做出来了,里面有总线的网络拓扑图,每个传输的数......
  • 2023-2024-1 20231409佟伟铭 《计算机基础与程序设计》第一周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第一周作业这个作业的目标<计算机基础与程序设计中的问题>作业正文https://www.cnblogs.com/twma......
  • 2023-2024-1学号20231407陈原《计算机基础与程序设计》第一周学习总结
    这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求是什么2023-2024-1计算机基础与程序设计第一周作业这个作业的目的是什么简单浏览《计算机概论》,提出疑问,并尝试解决问题    作业正文 https://www.cnblogs.com/CCCY12345/p/17744827.ht......
  • C基础-初始指针
    何为指针?可以通过指针找到以其为地址的内存单元。指针就是变量,只不过存放在指针的值被当做地址处理指针和指针类型根据下图我们可知不同指针类型的存储大小是一样的,并根据计算机位数决定的,64位一般是8个字节intmain(){ printf("%d\n",sizeof(char*)); printf("%d\n",sizeof(s......