- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在VHDL中,一个相对完整的VHDL程序称为设计实体。设计实体是VHDL程序的基本单元。它可以是一个复杂的系统,如cpu系统,也可以是一个芯片、逻辑器件或者一个最简单的门电路,一般来说,一个VHDL程序结构如下图: 3.1 组合电路的VHDL设计描述 这是一个完整的2选1多路选择器的VHDL程序,要注意: (1) VHDL不分大小写,但为了使程序阅读清楚,对保留字采用大写,自己定义的标识符用小写。 (2) _ _ :注释,增加程序可读性,如c中/* */ , / / 。 (3)文件的存盘:必须用实体名。 1、库说明 ⑴打开IEEE库 为了提高工作效率,把一些公有信息,如预先定义好的数据类型,或是各种预先设计好的设计实体(程序包)集中在一起,这样,使用者只要打开这个库就可以调用其中的东西。IEEE库是VHDL中最常用的库,它包含有IEEE标准的程序包和支持工业标准的程序包。只要是CPLD FPGA 等芯片公司,他们都会提供标准的定义库,使用时,用Library打开。 ⑵ USE :打开IEEE库中的STD_LOGIC_1164.ALL中的程序包,使程序包中的内容可以被访问或调用。 2 、实体说明 实体说明定义了硬件的输入输出端口。它是一个独立的语言模块,它描述了器件的接口信息。芯片俯视图是一个黑盒子,黑盒子上带有输入/出的端口说明。如用port定义a,b,s为输入in脚, y为输出out脚,std_logic是预先定义的一种数据类型,“1”表示高电平,“0”表示低电平,规定了八种。 3、结构体说明 结构体说明具体指明了该设计实体的行为,描述了设计实体的功能,在电路上相当于器件内部的电路结构。=表示信号赋值符号,用类似于C语言的表达方式描述了它的逻辑行为。对外而言,它是内部的。描述功能可以用几种方法实现:如行为描述法(按算法路径)、数据流描述法(数据流程运动路径、方向结果)、结构描述法(块方式)。 3.2 基本时序电路的VHDL设计 VHDL程序设计基本结构 库(LIBRARY) 存放已经编译的包集合、实体、结构体和配置等。其好处在于使设计者可共享已经编译过的设计结果。 程序包(PACKAGE) 声明在实体中将用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义。 实体(ENTITY) 对设计实体输入/输出的定义和说明,是可视部分。 结构体(ARCHITECTURE) 描述电路内部的结构和行为,建立输入和输出之间的关系,是不可视部分。在一个实体中,可以含有一个或一个以上的结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。一个实体可以对应多个结构体,但在同一时间,只有一个结构体被使用。 配置(CONFIGURATION) 主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体,以决定哪一个结构体被使用。 一般基于大规模可编程逻辑器件的数字系统设计,IEEE 库中的四个程序包: STD_LOGIC_1164、 STD_LOGIC_ARITH、 STD_LOGIC_SIGNED STD_LOGIC_UNSIGNED 已足够使用。但在使用VHDL设计实体的前面必须以显式表达出来。 (2) STD库。VHDL的标准库,定义了两个标准程序包,即STANDARD和TEXTIO程序包(文件输入/输出程序包)。只要在VHDL 应用环境中,即可随时调用这两个程序包中的所有内容。 由于“STANDARD”程序包(其中定义了多种常用的数据类型)符合VHDL语言标准,在使用时不必以显式表达出来,即不需要下面的库使用语句: LIBRARY STD; USE STD.STANDARD.ALL; 但在使用“TEXTIO”包集合中的数据时,应先说明库和包集合名,然后才可以使用该包集合中的数据。 LIBRARY IEEE; USE STD.TEXTIO.ALL; 该包集合在测试时使用。 (3) WORK库。 WORK库是用户的VHDL 设计的现行工作库,用于存放用户设计和定义的一些设计单元和程序包。设计者所描述的VHDL语句不需要任何说明,将都存放在WORK库中。WORK库对所有设计都是隐含可见的,因此在使用该库时无需进行任何说明。 (4)VITAL库。在VHDL语言中,为了进行门级仿真,各公司可提供面向ASIC的逻辑门库。在该库中存放着与逻辑门一一对应的实体。为了使用面向ASIC的库,对库进行说明是必要的。 库中包含时序程序包VITAL_TIMING和VITAL_P
文档评论(0)