VHDL程序结构介绍

上传人:cel****460 文档编号:243707919 上传时间:2024-09-29 格式:PPTX 页数:26 大小:405.39KB
返回 下载 相关 举报
VHDL程序结构介绍_第1页
第1页 / 共26页
VHDL程序结构介绍_第2页
第2页 / 共26页
VHDL程序结构介绍_第3页
第3页 / 共26页
点击查看更多>>
资源描述
*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,VHDL程序结构介绍,VHDL简介,VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言,VHDL语言是一种用于电路设计的高级语言。最初是源于美国国防部1980年开场启动的超高速集成电路方案,在这一方案执行过程中,专家们认识到需要有一种标准的语言来描述集成电路的构造和功能,由此,美国国防部便开发出VHDL设计语言供美军用来提高设计的可靠性和缩减开发周期的设计语言。,2,VHDL设计概念,采用VHDL进展设计的方法为高层设计,即“概念驱动模式设计。设计人员无需通过门级原理图描述,而是针对设计目标进展功能描述。VHDL并不十分关心一个具体逻辑是靠何种方式实现的,而是把开发者的精力集中到逻辑所实现的功能上。由于高层设计只定义系统的行为特性,因此可以不涉及工艺。,采用VHDL进展设计的具体过程为:,1、以VHDL语言描述设计概念;,2、用VHDL仿真与调试工具分析此概念的“行为,检查是否满足初始要求。这一过程与普通的编程语言,如C语言的编译、运行、调试是类似的。,3、VHDL设计VHDL综合工具。利用集成电路厂商或EDA厂家提供的被充分验证过的工艺库,以面积、功耗、速度等为目标进展优化,将电路映射成网表,得到门级电路后,还要进展仿真来验证门电路的行为和时序特性。,4、物理设计。得到可供生产的文件,进展延时、故障、热分析等,保证系统的稳定工作,满足设计指标。,3,VHDL程序构造,实体和构造体 是VHDL设计文件的两个根本组成局部,实体说明 描述设计实体黑盒的外部接口信号即输入/输出信号;,构造体说明 用于描述设计实体黑盒的内部电路。,包集合 存放各设计模块能共享的数据类型、常数、子程序等;,库 用于存放已编译的实体、构造体、包集合和配置。,配置 用于从库中选取所需元件安装到设计单元的实体中。,4,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY mux21 IS,PORT( a , b:IN STD_LOGIC;,s:IN STD_LOGIC;,y:OUT STD_LOGIC );,END mux21;,ARCHITECTURE behavior OF mux21 IS,BEGIN,PROCESS(a,b,s),BEGIN,IF s = 0 THEN y=a;,ELSE,y=b;,END IF;,END PROCESS;,END one;,程序包,实体说明,构造体,5,实体,说明,的一般格式为:,ENTITY 实体名 IS,GENERIC,类属参数说明;,PORT,端口,说明,;,END;,a,y,and2,b,实体中的每一个I/O信号被称为端口,其功能对应于电路图符号的一个引脚。端口说明那么是对一个实体的一组端口的定义,即对根本设计实体与外部接口的描述。端口是设计实体和外部环境动态通信的通道。实体类似一个“黑盒,实体描述了“黑盒的输入输出口。,ENTITY、IS、GENERIC、PORT、END是VHDL的关键字保存字。,实体名、端口名端口说明等均应为符合VHDL命名规那么的标识符。,实体说明,6,类属信息,1、作用,为设计实体和其外部环境通信的静态信息提供通道,可以定义端口的大小、实体中元件的数目以及实体的定时特性等。,2、一般格式,GENERICCONSTANT 名字表:IN 子类型标识 := 静态表达式, ;,7,端口说明,端口说明的一般格式为:,PORT端口名,端口名:端口模式 数据类型;,端口名,端口名:端口模式 数据类型;,例如:,PORT (,a,b: IN STD_LOGIC;,y,: OUT STD_LOGIC);,端口名,端口模式,数据类型,8,端口模式,用来说明数据传输通过该端口的方向。,IN:数据只能从端口流入实体,OUT:数据只能从端口流出实体,INOUT:数据从端口流入或流出实体,BUFFER:数据从端口流出实体,同时可被内部反响。,构造体内部也要使用输出信号时,只能定义成“buffer。,9,端口数据类型,常用的有布尔型boolean、位型bit、位矢量型bit-vector、整数型integer、非标准逻辑和标准逻辑类型Std_ulogic和Std_logic。,1boolean:布尔型,可取值“TRUE(真)或“FALSE(假)。,2bit:为位逻辑数据类型,信号取值是逻辑值“1和“0。,3bit_vector:取值是一组二进制位的值。,如:8位数据总线数端口,Port(d0, d1, sel : in bit;,q : out bit;,bus : out bit_vector(7 downto 0),),;,10,4Integer:整数,用作循环技术或常数,通常不用于I/O信号。,5Std_ulogic和Std_logic:非标准逻辑和标准逻辑类型,由IEEE:Std_logic_1164支持,程序包中定义了有关的数据类型,访问该程序包中的工程需要使用LIBRARY子句和USE子句。,Library IEEE;,Use IEEE.STD_Logic_1164.all;,Entity mu is,Port(d0, d1, sel : in STD_Logic;,q : out STD_Logic;,bus : out STD_Logic_vector(7 downto 0),),;,END mu;,11,练习,编写包含以下内容的实体代码:,端口 D 为12位输入总线;,端口 OE 和CLK 都是1位输入 ;,端口 AD 为7位双向总线;,端口 A为7位输出总线;,端口 INT 是1位输出 ;,端口 AS 是一位输出同时被用作内部反响。,d11.0,clk,oe,ad,7,.0,a,7,.0,int,as,my_design,12,练习,答案,Library ieee;,Use ieee.std_logic_1164.ALL;,Entity my_design is,PORT ( d: in std_logic_vector(11 downto 0);,oe , clk: in: std_logic;,ad: inout std_logic_vector(,7,downto 0);,a: out std_logic_vector(7 downto 0);,int: out std_logic;,as: buffer std_logic);,End my_design;,d11.0,clk,oe,ad7.0,a7.0,int,as,my_design,13,构造体,构造体是用来描述一个设计的具体构造,建立一个设计中输入和输出之间的关系,即描述实体的功能,对黑盒子的内部进展具体描述。,VHDL允许采用三种描述格式来进展具体的设计构造,行为描述、数据流描述和构造描述。具体描述时,可以是以上三种中的一种或几种的任意组合。一个设计实体可以有多个构造体。,构造体一般格式为:,ARCHITECTURE 构造体名 OF 实体名 IS,定义语句: 内部信号,常数,数据类型,函数定义,BEGIN,并行处理语句;,进程语句;,END 构造体名;,ARCHITECTURE、OF、IS、BEGIN、END是VHDL的关键字保存字。,构造体名称由设计者自由命名,是构造体的唯一名称,该构造体名可反映构造体的特色。,14,例如:,architecture behavior of mux is 用构造体行为命名,architecture dataflow of mux is 用构造体的数据流命名,architecture structural of mux is 用构造体组织构造命名,architecture latch of mux is 用构造体的功能命名,以上命名举例说明,几个构造体都属于设计实体mux,构造体名由设计者自行定义,OF后面的实体名指明了该构造体所对应的是哪个实体。由于一个设计有行为描述、数据流描述和构造描述3种方式,一般建议用behave, dataflow, structure为构造体命名。,用于对构造体内部将要使用的信号、常数、数据类型、元件、函数和过程加以说明。最常见的是对内部流动的信号的定义。但不能定义变量。,实体说明中定义的信号是外部信号,而构造体定义的信号为该构造体的内部信号,它只能用于这个构造体中。,构造体中的信号定义和端口说明一样,应有信号名称和数据类型定义。因为它是内部连接用的信号,因此不需要方向说明。,15,构造体的三种描述形式:,1、行为描述,2、构造描述,3、数据流描述,16,1、行为描述,描述该设计单元的功能,即该硬件做什么,主要使用函数、过程和进程语句,以算法形式描述数据的变换和传送。即只描述所希望电路的功能或者电路行为输入输出间转换的行为,而没有指明或涉及实现这些行为的硬件构造。,ARCHITECTURE behavior OF mux21 IS,BEGIN,PROCESS(a,b,s),BEGIN,IF s = 0 THEN y=a;,ELSE,y=b;,END IF;,END PROCESS;,END one;,17,2、构造描述,描述该设计单元的硬件构造,即该硬件是如何构成的。主要使用配置指定语句及元件例化语句描述元件的类型及元件的互联关系。,3、数据流描述,也称为存放器传输描述形式。是对信号到信号的数据流的路径形式进展描述,因此要求设计者不但要对设计实体的功能实现有一定的了解,而且还需要对内部的逻辑电路构造有清楚的认识。,18,设计库,设计库Library,1、设计库是经编译后的数据的集合,存放包集合定义、实体定义、构造体定义和配置定义。,2、VHDL中,设计库的说明总放在设计单元的最前面。,3、设计库中的各个设计单元可以用作进展其他设计的资源,一个设计可以使用多个库中的设计单元。,19,设计库的使用,首先在设计的开头说明要引用的库,然后使用use子句指明要使用库中的哪一个设计单元,其书写格式为:,Library 库名;,Use 库名. 程序包名. all;,其中:程序包名就是实际设计要使用的库中的设计单元;all表示使用程序包中的所有工程。,20,常用设计库,1、STD库,2、WORK库,WORK库是VHDL语言工作库,用户在工程设计中设计成功、正在验证、和未仿真的中间件都放在WORK库中。,以上两个库对当前设计是永远可见的,不需在程序开头对它们进展说明。即下面的LIBRARY子句隐含存在于任何设计单元之前。,library std;,library work;,3、资源库,除STD和WORK库以外所有的库均为资源库。这些资源库的使用必须用LIBRARY显式的说明出来。如常用的资源库IEEE库Std_logic_1164和VITAL库。,21,程序包,在VHDL中,设计的实体和构造体中定义的数据类型、常量、子程序说明和元件说明等只能在该设计实体中使用,而对其他设计实体是不可见的。,程序包说明用来单纯地罗列VHDL中所要用到的信号定义、常量定义、数据类型、子程序说明和元件说明等,是一个可编译的设计单元。,要使用程序包中的某些说明和定义,要用use语句说明。各种VHDL编译系统都含有多个标准程序包,如Std_Logic_1164和Standard程序包。用户也可以自行设计程序包。,22,常用程序包,1、standard,预先在std库中编译,主要定义了布尔类型、bit类型、character类型、出错级别、实数类型、整数类型、时间类型、延迟长度子类型、自然数子类型、正整数子类型、string类型、bit_vector子类型、文件翻开方式类型和文件翻开状态类型。对所有设计模块可见。,2、textio,预先在std库中编译,定义了line类型、text类型、side类型、操作宽度width子类型、文件input、文件output、readline过程、对应于不同数据类型的read过程、writeline过程和对应于不同数据类型的write过程。对所有设计模块都不可见,使用时要进展说明。,use std.textio.all;,23,3、Std_logic_1164,预先在ieee库中编译,是使用最广泛的程序包,定义了设计人员长采用的一些数据类型和函数。,定义了std_ulogic类型、std_ulogic_vector类,型、,std_logic类型、std_logic_vector类型,等,。,4、Numeric_std,预先在ieee库中编译,已被定义为标准程序包,定义了用于综合的数据类型和算术函数。定义了两种数据类型:unsigned和signed,其中unsigned表示无符号的位矢量,signed表示带符号的位矢量,。,24,谢谢观看,25,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 药学课件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!