网站大量收购闲置独家精品文档,联系QQ:2885784924

第3章 FPGA模块的结构、数据类型、变量和基本运算符号.ppt

第3章 FPGA模块的结构、数据类型、变量和基本运算符号.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 FPGA模块的结构、数据类型、变量和基本运算符号

2.数据类型及其常量、变量 Verilog 中总共有十九种数据类型,数据类型是用来表示数字电路硬件中的数据储存和传送元素的。在本课程中我们只介绍四个最基本的数据类型,它们是 reg型、wire型、integer型、parameter型 其它数据类型同学们可以查阅Verilog HDL语法参考书的有关章节逐步掌握。其它的类型如下: large型、medium型、scalared型、time型、small型、tri型、trio型、tri1型、triand型、trior型、trireg型、vectored型、wand型、wor型。 这些数据类型除time型外都与基本逻辑单元建库有关,与系统设计没有很大的关系。在一般电路设计自动化的环境下,仿真用的基本部件库是由半导体厂家和EDA工具厂家共同提供的。系统设计工程师不必过多地关心门级和开关级的Verilog HDL语法现象。 1.常量 ?在程序运行过程中,其值不能被改变的量称为常量。 一.数字? 整数:在Verilog HDL中,整型常量即整常数有以下四种进制表示形式: 二进制整数(b或B) 十进制整数(d或D) 十六进制整数(h或H) 八进制整数(o或O) 数字表达方式有以下三种: 位宽进制数字这是一种全面的描述方式。 进制数字在这种描述方式中,数字的位宽采用缺省位宽(这由具体的机器系统决定,但至少32位)。 数字在这种描述方式中,采用缺省进制十进制。 在表达式中,位宽指明了数字的精确位数。例如:一个4位二进制数的数字的位宽为4,一个4位十六进制数的数字的位宽为16(因为每单个十六进制数就要用4位二进制数来表示)。见下例: 8 //位宽为8的数的二进制表示, b表示二进制 8ha2 //位宽为8的数的十六进制,h表示十六进制。 x和z值: 在数字电路中,x代表不定值,z代表高阻值。一个x可以用来定义十六进制数的四位二进制数的状态,八进制数的三位,二进制数的一位。z的表示方式同x类似。z还有一种表达方式是可以写作?。在使用case表达式时建议使用这种写法,以提高程序的可读性。见下例: 4b10x0//位宽为4的二进制数从低位数起第二位为不定值 4b101z//位宽为4的二进制数从低位数起第一位为高阻值 12dz//位宽为12的十进制数其值为高阻值(第一种表达方式) 12d?//位宽为12的十进制数其值为高阻值(第二种表达方式) 8h4x //位宽为8的十六进制数其低四位值为不定值 负数: 一个数字可以被定义为负数,只需在位宽表达式前加一个减号,减号必须写在数字定义表达式的最前面。注意减号不可以放在位宽和进制之间也不可以放在进制和具体的数之间。见下例: -8d5 //这个表达式代表5的补数(用八位二进制数表示) 8d-5 //非法格式 下划线: 下划线可以用来分隔开数的表达以提高程序可读性。但不可以用在位宽和进制处,只能用在具体的数字之间。见下例: 16b1010_1011_1111_1010 //合法格式 8b_0011_1010 //非法格式 当常量不说明位数时,默认值是32位。 例: 10=32’d10=32’b1010 1=32’d1=32’b1 -1=-32’d1=32’hFFFFFFFF ’bx= 32’bx=32’bxxxx…xxxx 二.参数型 在Verilog HDL中用parameter来定义常量,即用parameter来定义一个标识符代表一个常量,称为符号常量,即标识符形式的常量,采用标识符代表一个常量可提高程序的可读性和可维护性。parameter型数据是一种常数型的数据,其说明格式如下: ? parameter 参数名1=表达式,参数名2=表达式, … , 参数名n=表达式; ? parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句表。在每一个赋值语句的右边必须是一个常数表达式。也就是说,该表达式只能包含数字或先前已定义过的参数。见下列: parameter msb=7; //定义参数msb为常量7 parameter e=25, f=29; //定义二个常数参数 parameter r=5.7; //声明r为一个实型参数 parameter byte_size=8, byte_msb=byte_size-1; //用常数表达式赋值 parameter average_delay = (r+f)/2; //用常数表达式赋值 参数型常数经常用于定义延迟时间和变量宽度。在模块或实例引用时可通过参数传递改变在被引用模块或实例中已定义的参数。下面将通过一个例子

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档