《ch3vhdl设计初步》ppt课件

上传人:tia****nde 文档编号:69552583 上传时间:2019-01-14 格式:PPT 页数:58 大小:887.82KB
返回 下载 相关 举报
《ch3vhdl设计初步》ppt课件_第1页
第1页 / 共58页
《ch3vhdl设计初步》ppt课件_第2页
第2页 / 共58页
《ch3vhdl设计初步》ppt课件_第3页
第3页 / 共58页
《ch3vhdl设计初步》ppt课件_第4页
第4页 / 共58页
《ch3vhdl设计初步》ppt课件_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《《ch3vhdl设计初步》ppt课件》由会员分享,可在线阅读,更多相关《《ch3vhdl设计初步》ppt课件(58页珍藏版)》请在金锄头文库上搜索。

1、第3章 VHDL设计初步,3.1 组合电路的VHDL描述 3.2 基本时序电路的VHDL描述 3.3 计数器的VHDL设计 3.4 实用计数器的VHDL设计,一、VHDL结构及相关语句说明,1、实体 是VHDL程序的基本单元,用于描述设计系统的端口结构。 一个电路系统的程序设计只有一个实体。 一般语句结构:,ENTITY 实体名 IS PORT (端口表); END ENTITY 实体名;,3.1 二选一多路选择器VHDL描述,用VHDL描术电路由两部分组成:实体和结构体,【例3-1】 ENTITY elector2_1 IS . END ENTITY elector2_1;,1)、实体名 实

2、体名设计者自己添加,最好根据相应电路的功能来确定; 不要用数字或中文定义实体名; 不要与EDA工具库中已定义好的元件同名;,2)、PORT语句和端口信号名 PORT说明语句是对一个设计实体与外部电路的接口通道的说明,其中包括对每一接口的输入输出模式和数据类型的定义。其格式如下:,PORT(端口名,端口名:端口模式 数据类型; 端口名,端口名:端口模式 数据类型);,A、端口模式: 端口模式用于定义端口上的数据的流动方向和方式,一般有四种模式: IN、OUT、INOUT、BUFFER,IN,OUT,INOUT,BUFFER,B、数据类型,1)意义和作用:数据类型是指端口上流动的数据的表达格式或取

3、值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互作用。 2)数据类型种类:INTEGER、BOOLEAN、 BIT和STD_LOGIC等。 BOOLEAN:FALSE,TRUE BIT : (0,1) STD_LOGIC: (U,X,0,1,Z,W,L,H,-) U表示未初始化的; X表示强未知的; 0表示强逻辑0; 1表示强逻辑1; Z表示高阻态; W 表示弱未知的; L表示弱逻辑0; H表示弱逻辑1; -表示忽略。,ENTITY mux21a IS PORT(a,b:IN BIT; s:IN BIT; y:OUT BIT) ; END ENTITY mux21a ;,3)、

4、2选1多路选择器的VHDL描述(实体),2、结构体表达 结构体是描述设计实体的内部结构和外部设计实体端口间的逻辑关系。结构体的一般结构为:,ARCHITECTURE 结构体名 OF 实体名 IS 说明语句; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,说明语句:包括对数据对象、数据类型、常数、信号、子程序和元件等元素的说明部分,可省略。 功能描述语句:描述实体逻辑行为,可以是并行、顺序语句或两者的混合,必须给出。 一个实体可以有多个结构体,每个结构体对应着实体不同的结构和算法实现方案,各个结构体的地位是同等的。,ARCHITECTURE one OF mux21a

5、 IS BEGIN y = (a AND (NOT s) OR (b AND s) ; END ARCHITECTURE one ;,【例3-2】2选1多路选择器的VHDL描述(结构体),3、完整的2选1多路选择器的VHDL描述,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;,ENTITY mux21a IS PORT(a,b:IN bit; s:IN bit; y:OUT bit); END ENTITY mux21a ;,ARCHITECTURE one OF mux21a IS BEGIN y = (a AND (NOT s) OR (b AND s

6、) ; END ARCHITECTURE one ;,【例3-3】 ENTITY mux21a IS PORT(a,b:IN BIT; s:IN BIT; y:OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d = a AND (NOT S); e = b AND s; y = d OR e ; END ARCHITECTURE one ;,并行语句,4、不同方式2选1多路选择器的VHDL描述,1)、使用并行语句描述,【例3-4】 ENTITY mux21a IS PORT

7、( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS; END ARCHITECTURE one ;,顺序语句,2)、使用进程和顺序语句描述,【例3-5】 ENTITY mux21a IS PORT(a,b:IN BIT; s:IN BIT; y:OUT BIT) ; END ENTITY mux21a ;,ARCHIT

8、ECTURE one OF mux21a IS BEGIN y=a WHEN s = 0 ELSE b; END ARCHITECTURE one ;,是顺序语句还是并行语句?,二、信号传输(赋值)符号和数据比较符号,1、信号传输(赋值)符号 :“=” 例:y=a 表示信号a向信号y赋值,要求两边的信号数据类型必须一致。 赋值操作要经历一个模拟器的最小分辨时间后才完成, 可看成实际电路存在的固有延时量。 2、数据比较符号:“=” 例:s = 0 输出为布尔型,可能取值为1、0,分别表示true和false。 布尔型数据只能用于逻辑操作和条件判断。 用于条件语句的判断表达式可以是一个值,也可以是

9、复杂的逻辑或运算表达式。 IF (s1=0) AND (S2=1) OR (cb+1) THEN,4、 逻辑操作符,3、关系运算符,三、关系运算符、逻辑操作符,1、 IF_THEN条件语句,2、WHEN_ELSE条件信号赋值语句,赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE . 表达式;,IF s = 0 THEN y = a ; ELSE y = b ; END IF;,z = a WHEN p1=1 ELSE b WHEN p2=1 ELSE c ;,四、条件语句、条件信号赋值语句,A、格式:,并行信号赋值语句,赋值目标必须是信号,与其他并行语句

10、一样,在结构体内的执行是同时发生的。 根据指定条件对信号赋值,条件可以为任意表达式; 根据赋值条件出现的先后次序隐含优先权,赋值条件测试具有顺序性; 最后一个ELSE子句隐含了所有未列出的条件; 每一子句的结尾没有标点,只有最后一句有分号;,B、几点说明,x = a when (s = “00”) else b when (s = “01”) else c when (s = “10”) else d ;,C、实例1,j = w when (a = 1) else x when (b = 1) else y when (c = 1) else z when (d = 1) else 0 ;,实

11、例2,五、PROCESS进程语句和顺序语句,1、基本格式:,进程标号:PROCESS (信号敏感表) IS (P1:) 说明区; BEGIN 顺序语句; END PROCESS 进程标号; 进程标号: PROCESS (信号敏感表) IS (Pn:) 说明区; BEGIN 顺序语句; END PROCESS 进程标号;,2、进程语句的特点:,ARCHITECTURE,3、信号敏感表 PROCESS (a,b,s),敏感表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句; 执行完顺序语句后,进程进入等待状态,直到下一次敏感表中某一信号发生改变; 一些VHDL综合器,综合后,对应进程的

12、硬件系统对进程中的所有输入的信号都是敏感的,不论在源程序的进程中是否把所有的信号都列人敏感表中; 为了使软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输人信号都列入敏感表中。,entity terminal_count is port(clock,reset,enable :in bit; data: in std_logic_vector(7 downto 0); equals, term_cnt : inout std_logic_vector(7 downto 0); end terminal_count; architecture bhe of terminal_count i

13、s signal count: std_logic_vector(7 downto 0); begin P1:process(data) begin if data=count then equals=“11111111”; end if; end process P1; P2:process(clock) begin if reset=1 then count=“11111111“; elsif clockevent and clock=1 then count=count + 1; end if; end process P2; term_cnt =count when enable=1

14、else “ZZZZZZZZ“; end bhe;,【例3-6】,4、顺序语句,每一条顺序语句的执行顺序是与它们的书写顺序基本一致的; 顺序语句只能出现在进程(Process) 、函数(Funcation)和过程(Procedure)中; 顺序语句包括:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句,六 1位二进制全加器的VHDL设计,半加器h_adder电路图,1、半加器描述和CASE语句,【例1】-半加器描述(1) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT( a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder IS BEGIN so = NOT(a XOR (NOT b); co = a AND b; END ARCHITECTURE fh1,【例2】 -半加器描述(2) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b: IN

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

当前位置:首页 > 高等教育 > 大学课件

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