没有合适的资源?快使用搜索试试~ 我知道了~
system_verilog教程.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2022-06-20
07:28:25
上传
评论
收藏 106KB DOCX 举报
温馨提示
试读
16页
system_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docxsystem_verilog教程.docx
资源推荐
资源详情
资源评论
基于断言的验证技术
SystemVerilog Tutorials
下面的手册会帮助你了解一些 SystemVerilog 中最重要的新特点。手册还提供了一些代码样
本和例子使你可以对语言有更好"感觉"。这些辅导假设你们已经了解了一些 Verilog 语言。
如果没有,你可以先去看看 Verilog 设计者指南(Verilog Designer’s Guide)。
* Data types
* RTL design
* Interfaces
* Clocking
* Assertion-based
veri&cation
* Classes
* Testbench automation and
constraints
* The Direct Programming Interface
(DPI)
SystemVerilog 的数据类型
这个手册将描述 Systemverilog 新引进的数据类型。他们大多数都是可以综合的,并且可以
使 RTL 级描述更易于理解和书写。
整型和实型
SystemVerilog 引进了几种新的数据类型。C 语言程序员会熟悉其中的大多数。引进新的数
据类型构思是这样的,如果 C 语言和 SystemVerilog 有相同的数据类型可以使 C 语言算法模
型更容易的转化为 SystemVerilog 模型。
Verilog 的变量类型有四态:既是 0,1,X,Z。SystemVerilog 引进了新的两态数据类型,每
一位只可以是 0 或是 1。当你不需要使用的 X 和 Z 值时,譬如在写 Testbench 和做为 for 语
句的循环变量。使用两态变量的 RTL 级模型,可以使模拟器更有效率。并且使用得当的话
将不会对综合结果产生影响。
二态整型
类型 描述 例子
Bit user-de&ned
size
bit [3:0]
a_nibble;
Byte
Shortint 16 bits,
signed
Int 32 bits,
signed
Longint 64 bits,
signed
8 bits,
unsigned
byte a, b;
shortint c, d;
int i,j;
longint lword;
注意到和 C 语言不一样,SystemVerilog 指定了一些固定宽度的类型。
四态整型
类型
Reg
描述 例子
user-de&ned size
identical to reg in every
way
32 bits, signed
reg [7:0] a_byte;
logic [7:0]
a_byte;
integer i, j, k;
Logic
Integer
logic 是一种比 reg 型更好的类型,他更加的完善。我们将会看到你可以在过去 verilog hdl
中用 reg 型或是 wire 型的地方用 logic 型来代替。
非整数类型
类型 描述 例子
Time 64-bit unsigned
like <oat in C
like double in C
identical to real
time now;
shortreal f;
double g;
realtime now;
Shortreal
Real
Realtime
数组
在 Verilog-1995 中,你可以定义标量或是矢量类型的网线和变量。你也可以定义一维数组变
量类型的存储器数组。在 Verilog-2001 中允许多维的网线和变量数组存在,并且取消了一些
存储器数组用法的限制。
在 SystemVerilog 中数组有了新的发展,并对数组重新进行了重新定义,从而允许对数组进
行更多的操作。
在 SystemVerilog,中,数组可以具有压缩数组或是非压缩数组的属性,也可以同时具有两种
属性。考虑下面的例子:
reg [3:0][7:0] register [0:9];
压缩数组是[3:0]和[7:0],非压缩数组是[0:9] 。(只要你喜欢可以有同样多的压缩数组和非压
缩数组)
压缩数组
* 保证将在存储器中产生持续的数据
* 可以复制到任何其他的压缩对象中
* 可切片("部分选取")
* 仅限于"bit"类型(bit, logic, int 等),其中有些(如 int)有固定的尺寸
相比之下,非压缩数组可以放在模拟器选择的任何地方,可以可靠地复制到另一个相同数据
类型的数组中。对于不同数据类型的数组,你必须使用映射(有几个非压缩数组映射到压缩
数组的规则)。 非压缩数组可以是任何的类型,如实数数组。
SystemVerilog 允许对完整的非压缩数组和部分选取的非压缩数组进行一些操作。对与此,
部分选取的数组必须是相同的数据类型和大小。如非压缩数组必须要有相同的位数和长度。
而压缩数组不一样,只要选取的部分有相同数量的位数。
允许的操作有
* 读和写整个数组
* 读和写部分选取的数组
* 读和写数组中的位
* 在数组,部分选取的数组和数组的位有同样的优先级
SystemVerilog 也支持动态数组(在仿真中数组长度可以改变)和关联数组(数组中的数据
非连续排列)。
为了支持这些数组类型,SystemVerilog 中提供了一些数组查找的函数和方法。如你可
以使用$dimensions 函数查询一个数组变量的的维数。
Typedef
SystemVerilog 的数据类型系统允许定义复杂的数据类型。为了使代码看起来清晰,引
进了别名的方法。别名的方法允许使用者在他们的代码中用自己的名字来定义经常使用的数
据类型,当构造复杂的数组时用别名的方法是很方便的。
typedef reg [7:0]
octet;
octet b;
和 reg [7:0] b;的效果是一致的
typedef octet [3:0] ;
quadOctet;
剩余15页未读,继续阅读
资源评论
G11176593
- 粉丝: 6678
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功