- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VerilogHDL语言要素
3. Integer寄存器类型 整数寄存器包含整数值。整数寄存器可以作为普通寄存器使用,典型应用为高层次行为建模。使用整数型说明形式如下: msb和lsb是定义整数数组界限的常量表达式,数组界限的定义是可选的。注意容许无位界限的情况。一个整数最少容纳32位。但是具体实现可提供更多的位。下面是整数说明的实例。 一个整数型寄存器可存储有符号数,并且算术操作符提供2的补码运算结果。 整数不能作为位向量访问。例如,对于上面的整数B的说明,B[6]和B[20:10]是非法的一种截取位值的方法是将整数赋值给一般的re g类型变量,然后从中选取相应的位,如下所示: 上例说明了如何通过简单的赋值将整数转换为位向量。类型转换自动完成,不必使用特定的函数。从位向量到整数的转换也可以通过赋值完成。例如: 注意赋值总是从最右端的位向最左边的位进行;任何多余的位被截断。 4. time类型 time类型的寄存器用于存储和处理时间。time类型的寄存器使用下述方式加以说明。 msb和lsb是表明范围界限的常量表达式。如果未定义界限,每个标识符存储一个至少64位的时间值。时间类型的寄存器只存储无符号数。例如: 5. real和realtime类型 实数寄存器(或实数时间寄存器)使用如下方式说明: real说明的变量的缺省值为0。不允许对real声明值域、位界限或字节界限。当将值x和z赋予real类型寄存器时,这些值作0处理。 RamCnt在赋值后的值为 b01010。 3.8 参数 参数是一个常量。参数经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下: 参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值。 the Most Significant Bit 第3章 Verilog的语言要素 本章介绍Verilog HDL的基本要素,包括标识符、注释、数值、编译程序指令、系统任务和系统函数。另外,本章还介绍了Verilog硬件描述语言中的两种数据类型。 3.1 标识符 Verilog HDL中的标识符(identifier)可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。以下是标识符的几个例子: 转义标识符(escaped identifier )可以在一条标识符中包含任何可打印字符。转义标识符以\(反斜线)符号开头,以空白结尾(空白可以是一个空格、一个制表字符或换行符)。下面例举了几个转义标识符: 反斜线和结束空格并不是转义标识符的一部分。 Verilog HDL定义了一系列保留字,叫做关键词,仅用于某些上下文中。注意只有小写的关键词才是保留字。例如,标识符always (这是个关键词)与标识符ALWAYS(非关键词)是不同的。另外,转义标识符与关键词并不完全相同。标识符\initial 与标识符initial(这是个关键词) 不同。 3.2 注释 在Verilog HDL中有两种形式的注释。 / *第一种形式:可以扩展至 多行* / / /第二种形式:在本行结束。 3.3 格式 Verilog HDL区分大小写。也就是说大小写不同的标识符是不同的。此外, Verilog HDL是自由格式的,即结构可以跨越多行编写,也可以在一行内编写。白空(新行、制表符和空格)没有特殊意义。下面通过实例解释说明。 3.4 系统任务和函数 以$字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回0个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在0时刻执行,即不允许延迟,而任务可以带有延迟。 3.5 编译指令 以`(反引号)开始的某些标识符是编译器指令。在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令。完整的标准编译器指令如下: 3.5.1 `define和`undef `define指令用于文本替换,它很像C语言中的#define 指令,如: 一旦`define 指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的`define指令,MAX_BUS_SIZE 能被多个文件使用。 `undef 指令取消前面定义的宏。 3.5.2 `ifdef、`els
您可能关注的文档
最近下载
- 造价咨询项目实施阶段全过程造价咨询服务方案造价咨询总体服务方案工作流程重难点分析造价偏差处理.doc VIP
- Three Times’ Beating Monster西游记三打白骨精英语剧本.doc VIP
- 2026国网山东省电力公司高校毕业生提前批招聘笔试模拟试题及答案解析.docx VIP
- 部编版小学四年级道德与法治上册第三单元测试卷(含答案).docx VIP
- 关爱留守儿童教案.pdf VIP
- 医院纪检干部培训课件.ppt VIP
- 教科版四年级上册科学第一单元测试卷(含答案).docx
- 北师大八年级上册生物全册新质教学课件(配2025年秋改版教材).pptx
- 学校传染病防控1案8制(疫情).doc VIP
- 电影剧本精选_灵魂拒葬.pdf VIP
文档评论(0)