您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页SV语言部分(1)

SV语言部分(1)

来源:叨叨游戏网


数据类型

一、内建数据类型

SV中相比于Verilog新引入了一个数据类型logic,是因为Verilog作为硬件描述语言,倾向于设计人员自身懂得所描述的电路中哪些变量应该被实现为寄存器,而哪些变量应该被实现为线网类型。这不但有利于后端综合工具,也更便于阅读和理解;;

SV作为侧重于验证的语言,并不是十分关心logic对应的逻辑应该被综合为寄存器还是线网,因为logic被使用的场景如果是验证环境,那么ta只会作为单纯的变量进行赋值操作,且这些变量也属于软件环境构建。logic被推出的另外一个原因也是为了方便验证人员驱动和连接硬件模块、而省去考虑究竟该使用reg还是wire的精力。这既节省了时间,也避免了出错的可能

除了多个驱动,logic任意用。若存在多个驱动,会编译报错。

至于有logic还要bit是因为在硬件里logic更多,在软件里bit更多。(下面第二张图也加以说明)

 

注意:

不同数据类型进行操作时应该注意变量的:逻辑数据类型、符号类型、矢量位宽。在变量的运算中,尽可能避免两种不一致的变量进行操作
1.对于有符号类型,例如:byte变量的最大值是127,而不是255(它的范围是-128–127)。
2.对于逻辑变量类型,四值逻辑类型默认值为X,二值逻辑类型的默认值为0

二、定宽数组

 

存储空间考量

 

 数组里面的索引

有for和foreach两种,但是我们最长用的是foreach。

 这里foreach就会自动给你把j从低到高排列,非常方便。

在foreach循环中只需要指定数组名并在其后方括号中给出索引变量,SV会自动数组中的元素。索引变量将会自动声明,并只在循环内收敛。

数组的复制和比较

 我们可以利用赋值符号“=”直接进行数组的复制。

 比较:在不适合循环的情况下,也可以利用“==”or“!=”来比较数组的内容,不过结果仅限于内容相同或者不同!&#

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务