liuiang的个人空间 https://blog.eetop.cn/liuiang [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SystemVerilog语言简介(四)

已有 3551 次阅读| 2006-7-26 13:28

天气: 阴雨
心情: 高兴

http://www.pld.com.cn/HDL/systemverilog/3.htm

 

13. 模块端口连接

Verilog中,可以连接到模块端口的数据类型被限制为线网类型以及变量类型中的regintegertime。而在SystemVerilog中则去除了这种限制,任何数据类型都可以通过端口传递,包括实数、数组和结构体。

 

14. 字母值

Verilog中,当指定或赋值字母值的时候存在一些限制。而SystemVerilog则为字母值如何指定作了下面的增强:

 

l         一个字母值的所有位均可以使用`0`1`z`x作相同的填充。这就允许填充一个任意宽度的向量,而无需显式地指定向量的宽度,例如:

 

bit [63:0] data;

 

data = `1; //data的所有位设置成1

 

l         一个字符串可以赋值成一个字符数组,象C语言一样加入一个空结束符。如果尺寸不同,它象C中一样进行左调整,例如:

 

char foo [0:12] = “hello worldn”;

 

l         加入了几个特殊的串字符:

 

v:垂直TAB

 

f:换页

 

a:响铃

 

x02:用十六进制数来表示一个ASCII字符

 

l         数组可以使用类似于C初始化的语法赋值成字符值,但它还允许复制操作符。括号的嵌套必须精确地匹配数组的维数(这一点与C不同),例如:

 

int n [1: 2] [1:3] = {{0, 1, 2}, {3{4}}};

 

 

15. 强制类型转换

Verilog不能将一个值强制转换成不同的数据类型。SystemVerilog通过使用'操作符提供了数据类型的强制转换功能。这种强制转换可以转换成任意类型,包括用户定义的类型。例如:

 

int' (2.0 * 3.0) // 将结果转换为int类型

mytype' (foo) // foo转换为mytype类型

 

 

一个值还可以通过在强制转换操作符前指定一个10进制数来转换成不同的向量宽度,例如:

17' (x - 2) // 将结果转换为17位宽度

 

 

也可以将结果转换成有符号值,例如:

 

signed' (x) // x转换为有符号值

 

16. 操作符

Verilog没有C语言的递增(++)和递减(--)操作符。而SystemVerilog加入了几个新的操作符:

l         ++--:递增和递减操作符;

l         +=-=*=/=%=&=^=|=<<=>>=<<<=>>>=赋值操作符;


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 1

    好友
  • 3

    获赞
  • 9

    评论
  • 1911

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-7 17:21 , Processed in 0.017107 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部