自我学习记录——SV环境的基础知识

本文记录了作者在系统验证(SV)环境下的自我学习过程,涵盖了数据类型、模块定义、接口(interface)、Program与module等内容,适合新手小白进行系统验证基础学习。
部署运行你感兴趣的模型镜像

自我学习记录——SV环境的基础知识

前言

记录秋招开始,自己的验证学习过程遇到的知识点,将每天的知识进行回顾,总结,本人现在所用教材是路桑的红宝书绿皮书,有着一颗想要学习验证的心,但是属于基础极其薄弱的新手小白。再次特意感谢路桑,感谢红宝书,绿皮书,感谢你们,此谨作为回顾每天学习内容的记录。
纵然缓慢,驰而不息!

一、数据类型基础知识
1.1数据类型按照二值逻辑与四值逻辑分类
二值逻辑:bit,int,longint,shortint,byte
四值逻辑:integer,reg,logic(only SV),net-type(wire,tri)
按照有无符号分类
有符号:byte,shortint,longint,int,integer
无符号:logic,bit,reg,net-type
1.2在有无符号方面,将有符号数转化为无符号数,需要类型转换操作unsigned’(signed_vec)
1.3转换分为显式转换与隐式转换
显式转换包括静态与动态转换
静态转换如上转换表达式前加上单引号;
动态转换需要引用对应函数等$cast(tgt,src)

二、模块定义
模块定义属于硬件的介绍,Verilog中在module中进行定义,input,output,inout(方向);端口名称的定义,两种方式,端口名与方向同时定义;先定义端口,再定义方向。

三、接口(interface)
接口属于接口与接口之间联系的桥梁
接口定义需要注意的地方:
(1)interface 可以定义input,output,inout端口
(2)建议使用logic,特殊情况(多驱动multi-drive的情况)除外,因为logic只允许单驱动
(3)interface与DUT连接时,注意收到的数据是四值逻辑的,simulator与DUT之间,硬件里面会出现X或Z的信号。
(4)接口里面可以出现过程语句(always,initial)和连续赋值语句(assign)
(5)注意接口信号的方向,使用modport进行声明,确定信号连接的方向,类似于插孔的作用
四、Program与module
(1)硬件放module,软件放program,软硬分开
program中不应该出现硬件行为相关的实例与语句,例如always,module,interface
(2)program语句由上而下,顺序执行
(3)program内部定义的内部定义的函数赋值方式:阻塞赋值;内部在外部接口的硬件信号使用非阻塞赋值
在此回顾阻塞赋值与非阻塞赋值的区别:

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值