可编程ASIC应用技术(第三章)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《可编程ASIC应用技术(第三章)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 ASIC 应用技术 第三 课件
- 资源描述:
-
1、3.1 VHDL3.1 VHDL的基本语法规则的基本语法规则 3.2 3.2 顺序语句和并行语句的描述顺序语句和并行语句的描述 3.3 VHDL3.3 VHDL的属性描述的属性描述 第第3 3章章 VHDLVHDL的基本语法现象的基本语法现象 1超高速集成电路硬件描述语言超高速集成电路硬件描述语言(Very high speed Very high speed integrated circuit Hardware Description Languageintegrated circuit Hardware Description Language,VHDLVHDL)最先由美国国防部为实现自
2、己的超高速集成电路计划最先由美国国防部为实现自己的超高速集成电路计划而提出,目的是要开发一种不受各厂商专用集成电路而提出,目的是要开发一种不受各厂商专用集成电路特点限制的通用硬件设计方法,使不同厂商的硬件能特点限制的通用硬件设计方法,使不同厂商的硬件能用一种通用的标准化语言来描述和设计。用一种通用的标准化语言来描述和设计。什么是什么是VHDLVHDL?19811981年年6 6月月 19831983年年7 7月月 19851985年年8 8月月 19861986年年3 3月月 19871987年年1212月月 19931993年年9 9月月开始开始 共同开发共同开发 投入使用投入使用 标准化标
3、准化 定为标准定为标准 新版本新版本 219881988年年9 9月月3030日后,美国国防部就要求开发日后,美国国防部就要求开发ASICASIC设计设计的合同文件中一律采用的合同文件中一律采用VHDLVHDL文档,至此各文档,至此各EDAEDA公司相公司相继推出自己的继推出自己的VHDLVHDL设计环境,或宣布自己的设计工具设计环境,或宣布自己的设计工具可以和可以和VHDLVHDL接口,这样,接口,这样,VHDLVHDL逐步演变为工业标准。逐步演变为工业标准。特点?特点?VHDLVHDL具有与具体工艺和设计方法无关的特点,它不具有与具体工艺和设计方法无关的特点,它不属于某一特定的仿真工具和工
4、业部门,设计者在此语属于某一特定的仿真工具和工业部门,设计者在此语言范围内可自由地选择工艺和设计方法。言范围内可自由地选择工艺和设计方法。3设计方便设计方便VHDLVHDL可以支持自顶向下和基于库的设可以支持自顶向下和基于库的设计方法,支持同步、异步电路、计方法,支持同步、异步电路、FPGA/CPLDFPGA/CPLD及其它电及其它电路设计。路设计。硬件描述能力强硬件描述能力强VHDLVHDL具有通过多层次设计来具有通过多层次设计来描述系统功能的能力,可以进行从系统的数学模型直描述系统功能的能力,可以进行从系统的数学模型直至门级电路的描述。至门级电路的描述。VHDLVHDL能进行系统级的硬件描
5、述,能进行系统级的硬件描述,而一些而一些HDLHDL,如,如VerilogVerilog、UDL/IUDL/I等能进行等能进行ICIC级、级、PCBPCB级级描述,但对系统级的硬件进行描述的功能相对较差。描述,但对系统级的硬件进行描述的功能相对较差。VHDLVHDL用简洁明确的代码描述进行复杂控制逻辑的设计,用简洁明确的代码描述进行复杂控制逻辑的设计,它还支持设计库和可重复使用的元件生成,且提供模它还支持设计库和可重复使用的元件生成,且提供模块设计的创建。块设计的创建。4不依赖器件的设计不依赖器件的设计VHDLVHDL允许设计者生成一个设计允许设计者生成一个设计而并不需要首先选择一个用来实现设
6、计的器件,对于而并不需要首先选择一个用来实现设计的器件,对于同一个设计描述,可以采用多种不同器件结构来实现同一个设计描述,可以采用多种不同器件结构来实现其功能。其功能。性能评估能力性能评估能力非依赖器件的设计和可移植能力,非依赖器件的设计和可移植能力,允许设计者可采用不同的器件结构和不同的综合工具允许设计者可采用不同的器件结构和不同的综合工具来评估设计。来评估设计。ASICASIC移植方便移植方便如果将设计综合到如果将设计综合到CPLDCPLD或或FPGAFPGA,可,可使设计产品以最快速度上市。使设计产品以最快速度上市。采用采用VHDLVHDL存在的主要问题是:存在的主要问题是:电路采用高级
7、的简明结构的电路采用高级的简明结构的VHDLVHDL描述,意味着放弃了描述,意味着放弃了对电路门级实现定义的控制,由综合工具生成的逻辑对电路门级实现定义的控制,由综合工具生成的逻辑实现效果不好,而且工具不同将导致综合质量不一样,实现效果不好,而且工具不同将导致综合质量不一样,这些问题将会随着技术进步最终解决。这些问题将会随着技术进步最终解决。5619831983年,由年,由GDA(GateWayGDA(GateWay Design Automation)Design Automation)公司的公司的Phil MoorbyPhil Moorby首创。首创。19891989年年CadenceCa
8、dence公司收购了公司收购了GDAGDA公司。公司。19901990年年CadenceCadence公司公开发表公司公开发表VerilogVerilog HDL HDL。19951995年年IEEEIEEE制定并公开发表制定并公开发表VerilogVerilog HDL 1364-HDL 1364-19951995标准。标准。19991999年年VerilogVerilog标准公开发表。标准公开发表。由于由于VerilogVerilog HDL HDL简单易学,因行受到许多使用者的欢简单易学,因行受到许多使用者的欢迎。但由于迎。但由于VerilogVerilog HDL HDL在可靠性方面的
9、不足,在对可在可靠性方面的不足,在对可靠性要求较高的场合,大多采用靠性要求较高的场合,大多采用VHDLVHDL。VerilogVerilog HDL?HDL?6System CSystem C是由是由SynopsysSynopsys公司和公司和CoWareCoWare公司针对业界对公司针对业界对系统级设计语言的需求而合作开发的。系统级设计语言的需求而合作开发的。19991999年年9 9月月2727日,日,4040多家世界著名的多家世界著名的EDAEDA公司、公司、IPIP公司、公司、半导体公司和嵌入式软件公司宣布成立半导体公司和嵌入式软件公司宣布成立System C System C 联联盟
10、。盟。System C System C 从从19991999年年9 9月联盟建立初期的月联盟建立初期的0.90.9版本版本开始更新,开始更新,20012001年年1010月推出了月推出了2.02.0版本。版本。System CSystem C中的基本设计是模块单元,模块可以使得设中的基本设计是模块单元,模块可以使得设计者将一个复杂的系统分割为一些更小但易于管理的计者将一个复杂的系统分割为一些更小但易于管理的部分。模块的功能和作用与部分。模块的功能和作用与HDLHDL语言中的模块相类似,语言中的模块相类似,这使习惯于用这使习惯于用HDLHDL进行设计的设计人员可以很容易的进行设计的设计人员可以
11、很容易的转向用转向用System CSystem C进行设计。进行设计。System C?System C?7硬件语言软件语言的对应关系硬件语言软件语言的对应关系Verilog,SystemC C VHDL Ada语言种类语言种类面向对象面向对象强类型强类型可靠性可靠性灵活性灵活性适于军用适于军用Verilog/C是是否否略弱略弱强强略弱略弱VHDL/Ada是是是是高高略弱略弱是是语言的选择:在系统级采用语言的选择:在系统级采用VHDL,在软件级,在软件级采用采用C语言,在实现级采用语言,在实现级采用Verilog。8硬件描述语言与软件描述语言的区别硬件描述语言与软件描述语言的区别 软件语言软
12、件语言编写高级语言程序编写高级语言程序编译编译汇编语言程序汇编语言程序编译编译相对地址机器代码相对地址机器代码链接链接绝对地址机器代码绝对地址机器代码计算机逐行执行计算机逐行执行计算结果计算结果硬件语言硬件语言编写高级语言程序编写高级语言程序编译和综合编译和综合电路图电路图晶体管连接网表晶体管连接网表计算机串行执行仿真计算机串行执行仿真位流文件下载位流文件下载芯片芯片根据库编译根据库编译每个点每个时刻的状态值每个点每个时刻的状态值 93.1 VHDL3.1 VHDL的基本语法规则的基本语法规则 3.1.1 VHDL3.1.1 VHDL对标识符的规定对标识符的规定 3.1.2 VHDL3.1.2
13、 VHDL的数据类型的数据类型 3.1.3 VHDL3.1.3 VHDL的对象描述的对象描述 3.1.4 VHDL3.1.4 VHDL的运算操作符的运算操作符 103.1.1 VHDL3.1.1 VHDL对标识符的规定对标识符的规定 在在VHDLVHDL中所使用的中所使用的名字或名称叫标识符名字或名称叫标识符,如变量名、,如变量名、信号名、实体名、结构体名等都是通过标识符来定义信号名、实体名、结构体名等都是通过标识符来定义和区别的,在命名这些标识符时应遵守如下规则:和区别的,在命名这些标识符时应遵守如下规则:任何标识符的首字母必是英文字母;任何标识符的首字母必是英文字母;标识符的英文字母、小写
14、无区别;标识符的英文字母、小写无区别;标识符只能由英文字母、数字和下划线组成;标识符只能由英文字母、数字和下划线组成;使用下划线使用下划线_时,必须是单一的,且其前后都时,必须是单一的,且其前后都必须有英文字母或数字;必须有英文字母或数字;1 1标识符的命名规则标识符的命名规则11注释符用连续两个减号注释符用连续两个减号“”表示。表示。注注释从释从“”符号开始到该行末尾,以回车或符号开始到该行末尾,以回车或换行符结束,编译器不对注释符后面的文字进换行符结束,编译器不对注释符后面的文字进行处理。行处理。用单引号括起来的大写字母用单引号括起来的大写字母XX表示不表示不确定的位逻辑值,用双引号括起来
15、的大写字母确定的位逻辑值,用双引号括起来的大写字母X X串表示不确定的位矢量值,如串表示不确定的位矢量值,如“XXXXX”XXXXX”。不不确定值确定值XX不能用小写,也不能用其他字符代不能用小写,也不能用其他字符代替,否则为错。替,否则为错。在在VHDLVHDL中使用的保留字不能用作为用户命中使用的保留字不能用作为用户命名的标识符。名的标识符。1213判断下列信号命名的正确与否:判断下列信号命名的正确与否:signalsignal d_bus d_bus:std_logic_vectorstd_logic_vector(7 7 downtodownto 0 0););signalsignal
16、 8_bus 8_bus:std_logic_vectorstd_logic_vector(0 0 toto 7 7););signal signal c_busc_bus:std_logic_vectorstd_logic_vector(3 3downto downto 0 0););signal signal c_ _busc_ _bus:std_logic_vectorstd_logic_vector(0 0 toto 3 3););signal signal d_8_inputd_8_input:std_logicstd_logic;a=xa=x;a=Xa=X;b=“xxxxxxxxb
17、=“xxxxxxxx”;b=“XXXXXXXX”b=“XXXXXXXX”;-正确正确-错,用数字开头错,用数字开头-错,不能用错,不能用-错错,连续使用下划线连续使用下划线-正确正确-错错,不确定值用小写字母不确定值用小写字母-正确正确-错错,不确定值用小写字母不确定值用小写字母-正确正确13下标名用于指示数组型变量或信号的某一元素。下标名用于指示数组型变量或信号的某一元素。下标下标区间名则用于指示数组型变量或信号某一区间的元素。区间名则用于指示数组型变量或信号某一区间的元素。下标名的语句格式为:下标名的语句格式为:标识符(表达式)标识符(表达式)其中,其中,“标识符标识符”必须是数组型的变量
18、或信号的名字,必须是数组型的变量或信号的名字,“表达式表达式”所代表的值必须是数组下标范围中的一个所代表的值必须是数组下标范围中的一个或某一区间元素的位值。或某一区间元素的位值。signalsignal sg1 sg1:std_logic_vectorstd_logic_vector(0 to 50 to 5);signalsignal sg2 sg2:integer rangeinteger range 0 0 toto 3 3;y=y=sg1(4)sg1(4);w=w=sg2(3)sg2(3);2 2下标名的命名规则下标名的命名规则143.1.2 VHDL3.1.2 VHDL的数据类型的数
19、据类型 在在VHDLVHDL中,中,每一个对象都有一种类型且只能具有该类每一个对象都有一种类型且只能具有该类型的值,相同类型的对象之间才能进行所要求的操作,型的值,相同类型的对象之间才能进行所要求的操作,而且有的操作还要求位长相同。而且有的操作还要求位长相同。VHDLVHDL的数据类型分为标准的数据类型和用户定义的数的数据类型分为标准的数据类型和用户定义的数据类型及子类型,不同的数据类型之间若要进行运算、据类型及子类型,不同的数据类型之间若要进行运算、代入和赋值,必须进行数据类型的转换。代入和赋值,必须进行数据类型的转换。VHDLVHDL中的数据类型可以分为两大类。中的数据类型可以分为两大类。
20、第一类:标量型,包括整数类型、实数类型、枚举类第一类:标量型,包括整数类型、实数类型、枚举类型、时间类型。型、时间类型。第二类:复合类型,可以由小的数据类型复合而成,第二类:复合类型,可以由小的数据类型复合而成,如可由标量型复合而成。如可由标量型复合而成。15(1 1)整数类型)整数类型整数(整数(integerinteger)类型的范围为)类型的范围为-(2 23131-1-1)()(2 23131-1 1),所能表达的十进制数范围为),所能表达的十进制数范围为-2147483647-214748364721474836472147483647。整数类型数据的表达方式如下:整数类型数据的表达
21、方式如下:+112+112,+318000+318000,-777-777,012012,2E62E6其中,其中,012012相当于相当于1212;2E6=22E6=210106 6。此外,如用二进制、八进制、十六进制表示整数,需此外,如用二进制、八进制、十六进制表示整数,需将将2 2、8 8、1616放在数字前,用两个号将数字括起来,放在数字前,用两个号将数字括起来,如如2#1111-1111#2#1111-1111#、8#377#8#377#、16#FF#16#FF#。数字中间的。数字中间的“-”-”号不起作用,只是为了读数方便,故号不起作用,只是为了读数方便,故123-456123-45
22、6与与123456123456是同一个数。是同一个数。1.1.标准的数据类型标准的数据类型16(2 2)自然数类型和正整数类型)自然数类型和正整数类型自然数(自然数(naturalnatural)和正整数()和正整数(positivepositive)类型都是)类型都是整数类型的一个子类型,其取值范围都可取正整数,整数类型的一个子类型,其取值范围都可取正整数,区别在于区别在于自然数类型数据除可取正整数外还可取零值,自然数类型数据除可取正整数外还可取零值,而正整数则不能取零值。而正整数则不能取零值。(3 3)实数类型)实数类型实数(实数(realreal)类型是一种浮点数,其取值范围为)类型是一
23、种浮点数,其取值范围为-1.0E+381.0E+38+1.0E+38+1.0E+38,即,即-1.0-1.010103838+1.0+1.010103838。书。书写时一定要有小数点。写时一定要有小数点。实数的例子如下:实数的例子如下:-1.0-1.0,+2.7+2.7,2.52.5,-1.0E38-1.0E38有些数可以用整数表示也可以用实数表示。例如数字有些数可以用整数表示也可以用实数表示。例如数字1 1的整数表示为的整数表示为1 1,而用实数表示则为,而用实数表示则为1.01.0。两个数的。两个数的值是一样的,但数据类型却不一样。值是一样的,但数据类型却不一样。17(4 4)位类型)位类
24、型位(位(bitbit)数据类型用来表示数字系统中的一个位,)数据类型用来表示数字系统中的一个位,位的取值只能是位的取值只能是 00或或 11,将,将0 0或或1 1放在单引号放在单引号中。中。位与整数中的位与整数中的0 0或或1 1不同,它仅表示一个位的两种不同,它仅表示一个位的两种取值。有时也可以用显式说明位数据类型,如取值。有时也可以用显式说明位数据类型,如bitbit(11)。位数据与布尔量类型数据也是不同的。)。位数据与布尔量类型数据也是不同的。(5 5)位矢量型)位矢量型位矢量(位矢量(bit_vectorbit_vector)类型是用双引号括起来的一组)类型是用双引号括起来的一组
25、位数据类型,位数据类型,如如“110001”110001”,x“00ab”x“00ab”,o“456”o“456”。x x表示十六进制的位矢量,表示十六进制的位矢量,o o表示八进制的位矢量,常表示八进制的位矢量,常用于表示总线上各位的状态。用于表示总线上各位的状态。18(6 6)布尔量类型)布尔量类型一个布尔量(一个布尔量(booleanboolean)类型只有真()类型只有真(true=1true=1)和假(和假(false=0false=0)两种取值,只能用于关系运算)两种取值,只能用于关系运算中判断关系式是否成立,成立为真,反之为假。中判断关系式是否成立,成立为真,反之为假。(7 7)
展开阅读全文