硬件描述语言及器件2(侯伯亨版).ppt

上传人:小飞机 文档编号:6595141 上传时间:2023-11-16 格式:PPT 页数:37 大小:292.50KB
返回 下载 相关 举报
硬件描述语言及器件2(侯伯亨版).ppt_第1页
第1页 / 共37页
硬件描述语言及器件2(侯伯亨版).ppt_第2页
第2页 / 共37页
硬件描述语言及器件2(侯伯亨版).ppt_第3页
第3页 / 共37页
硬件描述语言及器件2(侯伯亨版).ppt_第4页
第4页 / 共37页
硬件描述语言及器件2(侯伯亨版).ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《硬件描述语言及器件2(侯伯亨版).ppt》由会员分享,可在线阅读,更多相关《硬件描述语言及器件2(侯伯亨版).ppt(37页珍藏版)》请在三一办公上搜索。

1、适合班级:09060241 09060242 教学东区01107H,第二课VHDL语言程序基本结构,VHDL标识符(Identifiers),基本标识符由字母、数字和下划线组成第一个字符必须是字母最后一个字符不能是下划线不允许连续2个下划线保留字(关键字)不能用于标识符大小写是等效的,VHDL 大小写不敏感,eqcomp4.vhd,包,实体,构造体,文件名和实体名一致,每行;结尾,关键字begin,关键字end后跟实体名,关键字end后跟构造体名,库,-eqcomp4 is a four bit equality comparatorLibrary IEEE;use IEEE.std_logi

2、c_1164.all;entity eqcomp4 isport(a,b:in std_logic_vector(3 downto 0);equal:out std_logic);end eqcomp4;architecture dataflow of eqcomp4 isbegin equal=1 when a=b else 0;End dataflow;,VHDL语言的五个部分,实体(Entity):描述所设计的系统的外部接口信号;构造体或构造体(Architecture):描述系统内部的结构和行为;配置(Configuration):从库中选取所需单元组成系统设计的不同版本;包(Pack

3、age):存放各设计模块都能共享的数据类型、常数和子程序;库(Library):存放已经编译的实体、构造体、包、配置。,VHDL 程序的基本结构,实体:VHDL语言的硬件抽象。它表示具有明确的输入、输出的硬件设计的一部分。构造体:指定设计实体输入和输出之间的行为、逻辑关系或功能。,VHDL 程序的基本结构,多次使用低层次实体,多个顶层结构体使用同一个实体,实体(Entity),描述此设计功能输入输出端口(Port)在层次化设计时,Port为模块之间的接口在芯片级,则代表具体芯片的管脚,a,b,s,co,Entity addr1 isport(a,b:in bit;s,co:out bit);e

4、nd addr1;,实体说明的语法示格式,entity 实体名 is【generic(类型说明)】-定义端口大小,IO引脚分配port(信号名:模式信号类型;信号名:模式信号类型;信号名:模式信号类型);end 实体名;,实体端口的模式,输入(Input):clk、reset、en、addr等输出(Output):输出信号,不能内部引用双向(Inout):可代替所有其他模式,用于设计双向总线缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号不定(Linkage):不定方向,哪个方向都可连接,Out与Buffer的区别,Entity test1 is port(a:i

5、n std_logic;b,c:out std_logic);end test1;architecture a of test1 is begin b=not(a);c=b;-Error end a;,Entity test2 is port(a:in std_logic;b:buffer std_logic;c:out std_logic);end test2;architecture a of test2 is begin b=not(a);c=b;end a;,使用 out还是使用 buffer,out允许对应多个信号:addr:out std_logic_vector(3 downto

6、 0);,buffer只允许对应一个信号:addr(0):buffer std_logic;addr(1):buffer std_logic;addr(2):buffer std_logic;addr(3):buffer std_logic;,当一个构造体用buffer说明输出端口时,与其连接的另一个构造体端口也使用buffer;对于out,没有上述要求,信号数据类型,数据类型是内部的或用户定义的信号类型。常用数据类型:bit、bit_vector、boolean、integer、枚举型两类重要的数据类型(实际工程应用):std_logic、std_logic_vector。信号之间赋值,必须

7、首先保证信号的数据类型相同。,例3-2 不同的数据类型说明library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity mu isport(d0,d1,sel:in std_logic;q:out std_logic;bus:out std_logic_vector(7 downto 0);end mu;,例3-1 较完整的端口说明port(d0,d1,sel:in bit;q:out bit;bus:out bit _vector(7 d

8、ownto 0);,构造体(Architecture),描述实体的行为或结构构造体有三种描述方式行为描述(behavioral)数据流描述或寄存器传输描述(dataflow)结构化描述(structural),构造体行为描述,Architecture behavioral of eqcomp4 is begincomp:process(a,b)beginif a=b then equal=1;else equal=0;end if;end process comp;end behavioral;,高层次的功能描述,不必考虑在电路中到底是怎样实现的。,构造体定义的语法格式,architectur

9、e 构造体名 of 实体名 is类型说明信号说明函数定义进程定义元件说明begin并行语句并行语句end 构造体名;,并发语句同时执行,构造体命名,任意命名对应三种描述风格可将构造体命名为behavioral,dataflow,structural三种方式。直接命名为a,简单明了。,构造体描述语句,块语句(Block)进程语句(Process)信号赋值语句(=)子程序调用语句(Subprogram)元件例示语句(Component),Blcok语句的使用,在进行电路原理图设计时,往往将一个大规模电路分割成多张子原理图,进行输入和存档。在VHDL语言中同样可使用Block语句对应电原理图。,Bl

10、ock语句,Block语句结构块结构名Block begin并行语句并行语句End Block 块结构名;,二选一电路Block语句示例,例3-4Entity mux isport(d0,d1,sel:in bit;q:out bit);end mux;architecture connect of mux is signal tmp1,tmp2,tmp3:bit;begin,cale:blockbegintmp1=d0 and sel;tmp2=d1 and(not sel)tmp3=tmp1 and tmp2;q=tmp3;end block cale;end connect;,卫式Blo

11、ck语句,Block语句并发执行,若想对其进行条件触发判断,则需使用卫式Block语句。例如:一个D触发器,具有一个数据输入端d,一个时钟输入端clk,一个输出端q和一个反向输出端qb。,例3-5Entity latch isport(d,clk:in bit;q:out bit);end latch;architecture latch_guard of latch isbegin g1:block(clk=1)beginq=guarded d after 5 ns;qb=guarded not(d)after 7 ns;end block g1;end latch_guard;,布尔表达式

12、,前卫关键词,只有在布尔表达式为真时,语句才被执行,进程(process)语句,进程语句在VHDL程序中用来描述硬件的行为,进程中的语句按顺序执行。一个构造体中可以有多个进程语句,各个进程是并发执行的。进程语句是设计人员描述构造体时使用最为频繁的语句。它有如下特点:(1)它可以与其它进程并发执行,并可存取构造体或实体中所定义的信号;(2)进程结构中的所有语句都是按顺序执行的;(3)为了启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句;(4)进程之间的通信是通过信号量的传递来实现的。,进程(process)语句的语法格式,【进程名:】process(敏感信号1,敏感信

13、号2)【说明区】begin顺序语句;顺序语句;end process【进程名】;,带清零端的D触发器的VHDL程序,敏感信号,顺序语句,进程中使用wait语句的VHDL程序,architecture a of waityuju issignal q:std_logic_vector(3 downto 0);beginprocessbeginwait until(clkevent and clk=1);q=q+1;end process;y=q;end a;,无敏感信号,使用wait语句,定义q为信号,库和程序包,库是经编译后的数据集合,它存放实体说明、构造体、程序包和配置说明等。包括用于分析、

14、仿真和综合的中间文件。程序包用来存放VHDL语言中所要用到的信号定义、常量定义、数据类型、元件语句等,它是一个可以编译的设计单元,也是库结构中的一个层次。,库和程序包语句格式,library 库名;use 库名.程序包名.all;-all指使用所有项目use 库名.程序包名.项目名;-只使用库中的 某个项目,library IEEE;-使用IEEE库use IEEE.std_logic_1164.all;-打开IEEE库中的程序包std_logic_ 1164.all的所有项目use IEEE.std_logic_1164.std_logic;-打开程序包std_logic_1164中的std

15、_ logic(标准逻辑)数据类型,库的类型,IEEE库std库work库ASIC库用户自定义的库,程序包,1.std_logic_1164程序包2.numeric_std程序包,库和程序包的常用写法,library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;,配置(configuration)语句,配置(configuration)语句描述层与层之间的连接关系以及实体与构造体之间的连接关系。在仿真时,可以利用配置来选择不同的构造体,进行对比验证以得到性能最佳的构造体。配置根据不同的使用情况,大体分为四种类型:默认配置、元件配置、块配置和构造体配置。,配置语句的语法格式,Configuration 配置名 of 实体名 is【语句说明】;end 配置名;,Configuration 配置名 of 实体名 isfor 选配构造体名end for;end 配置名;,默认配置语句,VHDL程序结构图,作业:,将例3-4画出时序仿真图,要求画出输入d0,d1,sel,输出tmp1,tmp2,tmp3,q,其中输入条件自己设置。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号