Verilog基础:简单标识符和转义标识符

相关阅读

Verilog基础icon-default.png?t=N7T8https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482


        标识符(identifier)是一个为了引用而给一个对象起的名字。一个标识符可以是一个简单标识符,也可以是一个转义标识符。本文将对两者进行详细阐述。

简单标识符

        简单标识符是一个有限制的字符序列,由字母,数字,美元符($),下划线(_)组成,区分字母大小写。下面给出了简单标识符的命名限制。

  • 序列的第一个字符不能是数字或美元符。
  • 序列不能和Verilog中的关键字同名,下表列出了Verilog中的关键字。

  • 简单标识符的最大长度至少为1024,取决于具体实现。

        下面给出了一些简单标识符的例子。 

test      \\ 正确
data_bus  \\ 正确
dollar$   \\ 正确
_bus3     \\ 正确
*****************************************
1data_bus \\ 以数字开头,错误
a signal  \\ 包含空格,错误
data@bus  \\ 包含特殊字符,错误
module    \\ 与关键词冲突,错误

转义标识符

        转义标识符也是一个序列,这个序列的开头字符必须是反斜杠(\),这个序列的最后一个字符是空白(空格、制表符或换行符)。序列中可以包含任何ASCII字符集中的除(space)外的可打印字符(以10进制说,即从33到126的字符)。

        尽管转义标识符的开始、结尾字符固定,但其实它们并不认为是转义标识符的一部分,只是为了标志着这是一个转义标识符。

        下面列出了一些转义标识符的例子。

[tab]表示制表符
\1test[tab]      \\ 正确
\te%st[tab]      \\ 正确
\module[tab]     \\ 正确
\test[tab]       \\ 正确,且与test等价,这出现在escaped identifier也是一个合法的simple identifier时
\a_reg[0][tab]   \\ 正确,注意:此时的[0]也是标识符的一部分,这和选中a_reg标识符的第0位是有区别的

        上面的最后一个例子可能用过DC的读者会遇到,因为默认情况下,DC在综合后可能会将向量信号(BUS)展开为单比特信号,此时这个信号由含有中括号的转义标识符表示,因此综合后的Verilog网表中,会出现反斜杠。这可以通过使用change_names命令,更改DC的命名规则,从而避免出现转义标识符。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日晨难再

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值