
相关阅读Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482标识符(identifier)是一个为了引用而给一个对象起的名字。一个标识符可以是一个简单标识符也可以是一个转义标识符。本文将对两者进行详细阐述。简单标识符简单标识符是一个有限制的字符序列由字母数字美元符($)下划线(_)组成区分字母大小写。下面给出了简单标识符的命名限制。序列的第一个字符不能是数字或美元符。序列不能和Verilog中的关键字同名下表列出了Verilog中的关键字。简单标识符的最大长度至少为1024取决于具体实现。下面给出了一些简单标识符的例子。test \\ 正确 data_bus \\ 正确 dollar$ \\ 正确 _bus3 \\ 正确 ***************************************** 1data_bus \\ 以数字开头错误 a signal \\ 包含空格错误 databus \\ 包含特殊字符错误 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的命名规则从而避免出现转义标识符。