eda技术的基础知识

上传人:n**** 文档编号:89498671 上传时间:2019-05-25 格式:PPT 页数:93 大小:876KB
返回 下载 相关 举报
eda技术的基础知识_第1页
第1页 / 共93页
eda技术的基础知识_第2页
第2页 / 共93页
eda技术的基础知识_第3页
第3页 / 共93页
eda技术的基础知识_第4页
第4页 / 共93页
eda技术的基础知识_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《eda技术的基础知识》由会员分享,可在线阅读,更多相关《eda技术的基础知识(93页珍藏版)》请在金锄头文库上搜索。

1、一、VHDL的主要构件,VHDL 语言,参数部分程序包,接口部分设计实体,描述部分结构体,VHDL语言基础,EDA技术的基础知识,Example,entity name,VHDL 大小写不敏感,Library,Package,1.实体(Entity),描述此设计功能输入输出端口(Port) 在层次化设计时,Port为模块之间的接口 在芯片级,则代表具体芯片的管脚,A30,B30,equal,Entity eqcomp4 is port(a, b: in std_logic_vector(3 downto 0); equal:out std_logic ); end eqcomp4;,端口的模式

2、,输入(Input) 输出(Output) 双向(Inout):可代替所有其他模式,但降低了程序的可读性,一般用于与CPU的数据总线接口 缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号,可以返回到实体内部。,端口说明,PORT ( 端口名,端口名 : 方向 数据类型; : : 端口名,端口名 : 方向 数据类型 );,端口方向,实 体,IN,OUT,INOUT,BUFFER,LINKAGE,2.结构体(Architecture),描述实体硬件的互连关系、数据的传输和变换以及动态行为。 语法结构: ARCHITECTURE 结构体名 OF 实体名 IS 结构体说明

3、语句 BEGIN 功能描述语句 END 结构体名,结构体有三种描述方式 行为描述(behavioral) 数据流描述(dataflow) 结构化描述(structural),行为描述,Architecture behavioral of eqcomp4 is begin comp: process (a,b) begin if a=b then equal = 1; else equal =0; end if; end process comp; end behavioral ;,高层次的功能描述,不必考虑在电路中到底是怎样实现的。,数据流描述 描述输入信号经过怎样的变换得到输出信号,Arch

4、itecture dataflow1 of eqcomp4 is begin equal = 1 when a=b else 0; end dataflow1;,Architecture dataflow2 of eqcomp4 is begin equal = not(a(0) xor b(0) and not(a(1) xor b(1) and not(a(2) xor b(2) and not(a(3) xor b(3); end dataflow2;,当a和b的宽度发生变化时,需要修改设计,当宽度过大时,设计非常繁琐,结构描述,architecture struct of eqcomp

5、4 is begin U0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1); U2:xnor2 port map(a(2),b(2),x(2); U3:xnor2 port map(a(3),b(3),x(3); U4:and4 port map(x(0),x(1),x(2),x(3),equal); end struct;,类似于电路的网络表,将各个器件通过语言的形式进行连接,与电路有一一对应的关系。 一般用于大规模电路的层次化设计时。,三种描述方式的比较,3. 库、程序包和配置,设 计 库,IEEE库,预定义库

6、 (隐含打开),STD库,STANDARD(隐含说明) TEXTIO(用USE说明),WORK库,资 源 库 (用LIBRARY),其它库,STD_LOGIC_1164 STD_LOGIC_ARITH STD_LOGIC_UNSIGNED NUMERIC_STD NUMERIC_BIT MATH_REAL MATH_COMPLEX VITAL_TIMING VITAL_PRIMITIVE,(1)库、程序包,程序包放在库中,使用时用USE语句说明,库、程序包说明语句:,(2)配置,一个实体可以有多个结构体描述,但是在进 行仿真和综合时,只能一个实体对应一个确定的 结构体。配置语句用来确定结构体。

7、,语句格式:,CONFIGURATION 配置名 OF 实体名 IS,FOR 被选结构体名,END FOR ;,END 配置名;,二、VHDL的数据对象和数据类型,1.VHDL的数据对象,类似于一种容器,接受不同数据类型的赋值 -常数 信号 变量,数据对象常数(Constant),固定值,不能在程序中被改变 增强程序的可读性,便于修改程序 在综合后,连接到电源和地 可在Library、Entity、Architecture、Process中进行定义,其有效范围也相应限定 常数说明:Constant 常数名: 数据类型:=表达式 例:Constant data_bus_width: intege

8、r := 8; Constant ROM_Size: Integer := 16#FFFF#;,数据对象变量(Variable),临时数据,没有物理意义 只能在Process和Function中定义,必须在进程和子程序的说明性区域说明,并只在其内部有效 要使其全局有效,先转换为Signal。 用 := 进行赋值 变量说明: variable 变量名: 数据类型 例:variable In_fetch: Boolean; variable result : std_logic := 0;,变量赋值,整体赋值: temp := “10101010”; temp := x “ AA” ; 逐位赋值:

9、 temp(7) := 1; 多位赋值 temp (7 downto 4) := “1010”;,数据对象信号(Signals),代表连线,Port也是一种信号 在Entity中和Architecture中定义 用 = 进行赋值 保留字 SIGNAL 信号说明: signal 信号名: 数据类型; 例:signal count:bit_vector(3 downto 0):=“0011”; signal Enable: Bit; signal CLK, CLEAR: Bit:=1;,信号举例,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY s

10、imp IS PORT (a, b, c, d : IN Std_Logic; g : OUT Std_Logic); END simp; ARCHITECTURE logic OF simp IS SIGNAL e,f : Std_Logic; BEGIN e = a or b; f=not(c or d); g =e and f; END logic;,信号赋值,SIGNAL temp : Std_Logic_Vector (7 downto 0); 整体赋值: temp = “10101010”; temp = x“ AA” ; 逐位赋值: temp(7) = 1; 多位赋值: temp

11、 (7 downto 4) = “1010”;,信号和变量的作用范围,ARCHITECTURE,信号和变量的区别,2. VHDL的数据类型,(1) 标准数据类型(编程者可直接使用) 预定义类型在VHDL标准程序包STANDARD中定义,在应用中自动包含进VHDL的源文件,不需要USE语句显示调用。数据类型如下:,1)整数(INTEGER) 在VHDL语言中,整数的表示范围为21474836472147483647,即从(2311)到(2311)。,2)实数(REAL) 实数的定义值范围为1.0E+381.0E+38。实数有正负数,书写时一定要有小数点。例如:1.0,+2.5,1.0E+38,3

12、)位(BIT) 用来表示数字系统中的信号值。位值用字符0或者1(将值放在引号中)表示。与整数中的1和0不同,1和0仅仅表示一个位的两种取值。,4)位矢量(BIT_VECTOR) 位矢量是用双引号括起来的一组数据。例如:“001100”,X“00bb”。在这里位矢量前面的X表示是十六进制。使用位矢量时必须注明位宽,即数组中元素个数和排列,例如: SIGNAL s1:BIT_VECTOR(15 DOWNTO 0);,5)布尔量(BOOLEAN) 一个布尔量具有两种状态,“真”或者“假”。没有数值的含义,也不能进行算术运算。它能进行关系运算。例如,它可以在if语句中被测试,测试结果产生一个布尔量TR

13、UE或者FALSE。,6)字符(CHARACTER) 用单引号括起来,如a。区分大小写。字符包括从a到z中的任一个字母,从0到9中的任一个数以及空格或者特殊字符,如$,%等等。包集合standard中给出了预定义的128个ASC码字符。,7)字符串(STRING) 由双引号括起来的一个字符序列,也称字符矢量或字符串组。字符串常用于程序的提示和说明。字符串举例如下: VATIABLE string_1 : STRING (0TO 3); string_1:= “a b c d”;,8)时间(TIME) 是一个物理量数据。包含整数和单位两部分,而且整数和单位之间至少应留一个空格的位置。例如55 s

14、ec,2 min等。在包集合STANDARD中给出了时间的预定义,其单位为fs,ps,ns,s,ms,sec,min和hr。例如:20 s,100 ns,3 sec。 在系统仿真时,时间数据特别有用,用它可以表示信号延时,从而使模型系统能更逼近实际系统的运行环境。,9)错误等级(SEVERITY LEVEL) 用来表征系统的状态,共有4种:note(注意),warning(警告),error(出错),failure(失败)。在系统仿真过程中可以用这4种状态来提示系统当前的工作情况,从而使设计人员随时了解当前系统工作的情况,并根据系统的不同状态采取相应的对策。,10)大于等于零的整数(自然数)(

15、NATURAL),正整数(POSITIVE) 这两种数据是整数的子类,NATURAL类数据为取0和0以上的正整数;而POSITIVE 则只能为正整数。,(2) 用户自定义数据类型 格式:,type 数据类型名 is 数据类型定义;,可以由用户定义的数据类型有: 枚举(ENUMERATED)类型; 整数(INTEGER)类型; 实数(REAL)、浮点数(FLOATING)类型; 数组(ARRAY)类型; 。,枚举类型:把数据类型中的各个元素都列举出来,方便、 直观,提高了程序可阅读性。书写格式为:,Type 数据类型名称 is (元素1,元素2,);,其中,数据类型名称和元素都是一个标识符,例如

16、:,Type color is(blue,green,yellow,red);,数据类型名称是color,(元素1,元素2,)是(blue, green,yellow,red)。,枚举类型中所列举的元素在程序编译过程中通常是自动编 码,编码顺序是默认的,左边第一个元素编码为0,以后 的依次加1。编码过程中自动将每一个元素转变成位矢量, 位矢量的长度由所列举元素个数决定。如上例四个元素, 位矢量的长度为2,编码默认值为:blue=“00”,green=“01”; Yellow=“10”;red=“11”。初始值默认为第一个值。,枚举类型应用举例:交通灯控制器,任务和要求:在十字路口的两个方向上各设一组红灯、 绿灯和黄灯,显示顺序为:其中一个方向绿灯、黄灯、 红灯,另一个方向是红灯、黄灯、绿灯。其中绿灯、黄 灯、红灯的持续时间分别是20S、5S、25S。程序如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号