如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第6章VHDL程序设计6.1VHDL简介应用VHDL进行工程设计的优点是多方面的。1)与其他的硬件记述语言相比,VHDL具有更强的行为记述能力,从而决定了他成为系统设计领域最佳的硬件记述语言。强大的行为记述能力是避开具体的器件结构,从逻辑行为上记述和设计大规模电子系统的重要保证。2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。3)VHDL语句的行为记述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL记述设计转变成门级网表。5)VHDL对设计的记述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。6.2VHDL设计基础6.2.1RTL记述法6.2.2VHDL记述的基本构成图6.2全体构成图一般经常使用的标准格式如下所示必须的LibrarylibraryIEEE;useIEEE.std_logic_1164.all;--基本函数算术运算需要的LibraryuseIEEE.std_logic_unsigned.all;--无符号运算函数useIEEE.std_logic_arith.all;--算术运算函数在以上标准格式中,.all表示该Library内部所有函数使用可能。2.实体说明实体即为该CPLD与外部的输入输出端口的定义,也即为CPLD的端口引脚的信号的定义。实体说明主要记述的是一个设计的外貌。定义CPLD与外部的端口通常定义为Port,其标准格式如下所示。在最后行不需;,且最后由);结束。entity<entity名>isport(<信号名>{,<信号名>}:<方向><型>;<信号名>{,<信号名>}:<方向><型>;―――――――<信号名>{,<信号名>}:<方向><型>);end<entity名>;在VHDL的实体书写中,型的指定非常重要。在运算中如果型指定不一致会出现错误。在VHDL中,虽然型的指定类型非常多,但经常使用的有两种如下:std_logic:标准逻辑std_logic_vector(ndownto0):n+1位宽另外信号的输入输出方向有以下三种选择in:输入out:输出inout:双向例1:port(a,b,c:instd_logic;a,b和c为标准逻辑输入口y:outstd_logic);y为标准逻辑输出口例2:配列port(a,b:instd_logic_vector(2downto0);y:outstd_logic_vector(2downto0));另外在实体中还有属性定义(attribute),以下详细介绍。在XilinxProjectNavigator中能使用的属性有很多种,如下attributePIN_ASSIGNofobject:object_typeispin_name;attributeLOCofobject_list:object_typeisfunction_block_name;attributeKEEPofobject_list:object_typeisTRUE;attributeDONT_OPTIMIZEofobject_list:object_typeisTRUE;attributeFAST/SLOWofobject_list:object_typeisTRUE;attributeBUFGofobject_list:object_typeisCLK/OE/SR;attributeINITofobject_list:object_typeisS/R;attributePWR_MODEofobject_list:object_typeisLOW/STD;attributeREGofobject_list:object_typeisCE/TFF;attributeTNMofobject_list:object_typeisstring;在属性定义前还必须定义attributeattribute_name:string;关于对Pin端口的配置和其属性定义,可由下例详细说明。例3:A,B,Y端口分配至1,2,3Pin端口libraryieee;useieee。std_logic_1164.all;entityEx1isport(A:instd_logic;B:instd_logic;Y:outstd_logic);attributepin_assi