EDA技术实用教程(潘松第5版)第3章VHDL设计初步研讨.ppt

EDA技术实用教程(潘松第5版)第3章VHDL设计初步研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术实用教程(潘松第5版)第3章VHDL设计初步研讨

第三章 VHDL设计初步 §3.1 VHDL程序基本结构 §3.2 VHDL文字规则 §3.3  VHDL的数据类型 §3.4  VHDL的数据对象 §3.5 VHDL的操作符 §3.6 设计实例 §3.1 VHDL程序基本结构 库(Library)、程序包(Package) 实体(Entity) 结构体(Architecture) 配置(Configuration) VHDL程序基本结构: 库    库、程序包是IEEE规定的语法标准。根据语法规则,在VHDL程序中使用的文字、数据对象、数据类型都需要预先定义。为方便用VHDL编程,IEEE将预定义的数据类型、元件调用声明及一些常用子程序收集在一起,形成程序包,供VHDL设计实体共享和调用。若干个程序包则形成库。    常用的库有IEEE库、STD库、WORK库及VITAL库。  (P64、P340第13章) 库—IEEE库    IEEE库是VHDL设计中最常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。IEEE库中的标准程序包主要有:STD_LOGIC_1164、NUMERIC_BIT和NUMERIC_STD程序包。其中STD_LOGIC_1164是最重要且最常用的程序包。    此外,还有些程序包虽非IEEE标准,但已成为工业标准,从而加入到IEEE库中。最常用的是Synopsys公司的STD_LOGIC_ARITH、STD_LOGIC_SIGNED、STD_LOGIC_UNSIGNED。     一般,基于FPGA/CPLD的开发,IEEE库中的四个程序包STD_LOGIC_1164、 STD_LOGIC_ARITH、STD_LOGIC_SIGNED和STD_LOGIC_UNSIGNED已经够用。 库—STD库    VHDL定义了两个标准程序包,即STANDARD和TEXTIO(文件输入/输出)程序包,它们都收入在STD库中,可随时调用。由于STD库符合VHDL语言标准,在应用中不必用打开库语句。即    LIBRARY STD;    USE STD.STANDARD.ALL    是不必要的。 库— WORK库    WORK库是用户的VHDL设计的现行工作库,用于存放用户设计和定义的一些设计单元和程序包。WORK库自动满足VHDL语言标准,在实际调用中,也不必显示预先说明,即不必在VHDL程序中明确打开并指定。    基于VHDL所要求的WORK库的基本概念,利用VHDL进行设计时,不允许在根目录下进行,而是必须为此设定一个文件夹,用于保存所有此项目的设计文件,VHDL综合器将此文件默认为WORK库。还要注意的是,工作库并不是这个文件夹的名字,而是一个逻辑名。综合器将指示器指向该文件夹的路径。 库—VITAL库    VITAL程序包也已成为IEEE标准。使用VITAL库,可以提高VHDL门级时序模拟精度,因而只在VHDL仿真器中使用。库中包含时序程序包VITAL_TIMIGN和VITAL_PRIMITIVES。但在实际中,由于各FPGA/CPLD的生产厂商的适配工具都能为各自的芯片生成带时序信息的VHDL门级网表,因而一般并不需要VITAL库中的程序包。 库的用法  在VHDL语言中,库的说明语句总是放在实体单元前面。   库语句一般与USE语句同用。库语句关键词LIBRARY指明所用的库名;USE语句指明库中的程序包。一旦说明了库和程序包,整个设计实体都可以进入访问和调用。    USE语句的使用有两种常用格式:    USE 库名.程序包名.项目;--向设计实体开放指定库中的特定程序包内所选定的项目    USE 库名.程序包名.ALL--表示向设计实体开放指定库中的特定程序包内所有内容。此处使用了关键词ALL,代表程序包中所有资源。 库的用法  例: LIBRARY IEEE;   USE IEEE.STD_LOGIC_1164.STD_ULOGIC;   USE IEEE. STD_LOGIC_1164.RISING_EDGE;    表示向当前设计实体开放了IEEE. STD_LOGIC_1164程序包中的RISING_EDGE函数,但由于此函数要用到IEEE. STD_ULOGIC,所以在其前面加了一条USE语句,开放同一程序包中的这一数据类型。 类型 操作符 功能 操作数数据类型 逻辑 操作符 AND 与 BIT、BOOLEAN、STD_LOGIC OR 或 BIT、BOOLEAN、STD_LOGIC NOT 非 BIT、BOOLEAN、STD_LOGIC NAND 与非 BIT、BOOLEAN、STD_LOGIC NOR 或非 BIT、BOOLEAN、STD_LOGIC XOR 异或 BIT、BOOLEAN、S

文档评论(0)

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

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

1亿VIP精品文档

相关文档