VHDL必须掌握的知识点和相关例题整理.doc

上传人:scccc 文档编号:12247221 上传时间:2021-12-02 格式:DOC 页数:10 大小:85.50KB
返回 下载 相关 举报
VHDL必须掌握的知识点和相关例题整理.doc_第1页
第1页 / 共10页
VHDL必须掌握的知识点和相关例题整理.doc_第2页
第2页 / 共10页
VHDL必须掌握的知识点和相关例题整理.doc_第3页
第3页 / 共10页
VHDL必须掌握的知识点和相关例题整理.doc_第4页
第4页 / 共10页
VHDL必须掌握的知识点和相关例题整理.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《VHDL必须掌握的知识点和相关例题整理.doc》由会员分享,可在线阅读,更多相关《VHDL必须掌握的知识点和相关例题整理.doc(10页珍藏版)》请在三一文库上搜索。

1、VHDL总复习之必须要掌握的知识点和相关例题目录VHDL总复习之 必须要掌握的知识点和相关例题11.VHDL语言的基本设计实体和完整的VHDL语言程序的结构22.进程(PROCESS)语句的结构23.VHDL语言子程序的结构2(1).过程(Procedure)2(2).函数(Function)24.过程与函数的主要区别35.进程和子程序中使用的语句36.VHDL语言中客体的概念及使用范围37.信号和变量的区别及作用范围38.VHDL语言的数据类型和运算操作49.VHDL语言构造体的三种描述方式410.COMPONENT(元件)语句和COMPONENTINSTANT(元件例示)语句的功能和书写格

2、式511.VHDL语言的主要描述语句的功能、使用场合和语法格式512.VHDL语言的命名规则613.VHDL语言的数值类属性描述614.VHDL语言的信号属性函数715.数值系统的定义方法,各种状态的含义716.采用有限状态机进行电路设计的基本方法717.仿真延时引入的原因和对并发语句仿真结果的影响818.逻辑综合的概念与主要步骤819.运用VHDL语言和FPGA进行电路设计的主要步骤8VHDL的全称以及利用VHDL设计硬件电路所具有的特点Very High Speed Integrated Circuit Hardware Description Language (超高速集成电路硬件描述语

3、言) (1) 设计文件齐全、方法灵活、支持广泛(2) 系统硬件描述能力强(3) VHDL语言可以与工艺无关编程(4) VHDL语言标准、规范、易于共享和复用1. VHDL语言的基本设计实体和完整的VHDL语言程序的结构一个VHDL语言的基本设计实体由实体说明和构造体两个部分构成;一个完整的VHDL语言程序包含5个部分:实体、构造体、配置、包集合(程序包)和库。2. 进程(PROCESS)语句的结构 主要特点:并发语句,由敏感信号量启动;内部的语句顺序执行,进程不能嵌套。3. VHDL语言子程序的结构 VHDL语言子程序有两种类型:过程、函数(1). 过程(Procedure

4、)在程序包中定义的格式(用户自定义过程的设计方法): PACKAGE 包集合名 ISPROCEDURE 过程名(参数1,参数2,) END 包集合名; PACKAGE BODY 包集合名 ISPROCEDURE 过程名(参数1,参数2,)IS定义语句 BEGIN 顺序处理语句; END 过程名;END 包集合名; 过程调用的方法:过程名(参数1,参数2,);过程调用语句属于并发语句。(2). 函数(Function) 在程序包中定义的格式(用户自定义函数的设计方法):PACKAGE 包集合名 ISFUNCTION 函数名(参数1,参数2,) RETURN 数据类型名 END 包集合名; PAC

5、KAGE BODY 包集合名 ISFUNCTION 函数名(参数1,参数2,) RETURN 数据类型名 IS(变量)定义语句 BEGIN 顺序处理语句; RETURN 变量名; END 函数名;END 包集合名; 函数调用的方法:出现于语句的表达式中。4. 过程与函数的主要区别函数只包含有输入参数,只有一个返回值;过程即包含有输入参数,也包含输出参数或输入输出参数,可以有多个返回值,这些返回值通过过程中定义的输出参数带回。5. 进程和子程序中使用的语句进程中和子程序的所有语句按顺序执行, 只能使用顺序描述语句。6. VHDL语言中客体的概念及使用范围VHDL语言中可以赋予一个值的对象称为客体

6、;客体主要包括三种:信号、常数、变量;信号和常数为全局量,变量为局部量。7. 信号和变量的区别及作用范围信号和变量值的代入不仅形式不同,而且操作过程也不相同。变量的赋值使用赋值符“:=”,信号的代入使用代入符“:=”。变量的赋值在赋值语句执行时立即生效,信号的代入在代入语句执行时并不立即发生,代入语句的处理和实际的代入过程是分开进行的。实际的代入过程在进程(PROCESS)或子程序(SUBPROGRAM)语句执行完毕时发生,与代入语句的处理存在延时。变量是局部量,作用范围是进程和子程序;信号是全局量,作用范围是构造体、实体和程序包。例:ARCHITECTURE behave OF xinhao

7、 ISP1:PROCESS(A,B,C,D) BEGIN D<=A; X <= B+D; D<=C; Y <= B+D;END PROCESS ;-ARCHITECTURE behave OF xinhao_bianliang ISP2:PROCESS(A,B,C) VARIABLE D : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN D:=A; X <= B+D; D:=C; Y <= A+D; END PROCESS;P1的运行结果: X <= B+C , Y <= B+C P2的运行结果: X <= B+A

8、 , Y <= B+C 8. VHDL语言的数据类型和运算操作1)VHDL语言具有十种标准的数据类型2)用户定义的数据类型 包括枚举类型、 数组类型 、记录类型等枚举数据类型的定义方法: TYPE 数据类型名 IS (元素,元素,)3)VHDL语言共有4类运算操作:逻辑运算(Logical)关系运算(Relational)算术运算(Arithmetic)并置运算(Concatenation)9. VHDL语言构造体的三种描述方式 行为描述方式寄存器传输(数据流)描述方式结构化描述方式10. COMPONENT(元件)语句和COMPONENTINSTANT(元件例示)语句的功能和书写格式元

9、件语句是最基本的描述语句,在构造体中用来(说明)调用已设计好的逻辑描述模块 即元件(COMPONENT);COMPONENT 元件名 GENERIC 说明; PORT 说明; END COMPONENT;元件例示语句是在构造体的结构描述中不可缺少的一个基本语句,该语句将现成元件的端口信号映射成高层次设计电路中的信号,用来在构造体中产生一个现成元件的实例。标号名:元件名 GENERIC MAP(参数,参数,)PORT MAP(信号,信号,); 11. VHDL语言的主要描述语句的功能、使用场合和语法格式 (1)主要的并发语句 进程 信号代入语句 过程调用语句 块语句 元件例示语句(Compone

10、nt Instant) 生成语句(Generate)(2)主要的顺序语句 WAIT语句 信号代入语句 变量赋值语句 IF语句 CASE语句 循环语句(FOR 循环,WHILE循环)注意:GENERATE(生成)语句和COMPONENTINSTANT(元件例示)语句是并发语句例:八位行波计数器的设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dffr IS PORT ( clk,clr,d: IN STD_LOGIC; q,qb : OUT STD_LOGIC); END dffr; ARCHITECTURE one OF dffr IS

11、SIGNAL qin: STD_LOGIC; BEGIN q <= qin; qb <= NOT qin; PROCESS( clk,clr) BEGIN IF clr='1'THEN qin <= '0' ELSIF clk'EVENT AND clk='1'THEN qin <= d; END IF; END PROCESS; END one;ENTITY rplcont IS PORT ( clk,clr: IN STD_LOGIC; count : OUT STD_LOGIC_VECTOR(7 DOWNTO

12、 0); END rplcont; ARCHITECTURE one OF rplcont IS SIGNAL cntints: STD_LOGIC_VECTOR(8 DOWNTO 0); COMPONENT dffr IS PORT ( clk,clr,d: IN STD_LOGIC; q,qb : OUT STD_LOGIC); END COMPONENT; BEGIN cntints(0)<= clk; g1:FOR i IN 0 TO 7 GENERATE dffx: dffr PORT MAP(clk=>cntints(i),clr=>clr, d=>cnti

13、nts(i+1),q=>count(i),qb=>cntints(i+1); END GENERATE; END one;12. VHDL语言的命名规则 注意:名字的最前面应该是英文字母,不能连续使用下划线_,名字的最后也不能使用_。13. VHDL语言的数值类属性描述 数值类属性用来得到数组、一般数据或程序块的有关值。例: T' LEFT 得到数值类或子类区间的最左端的值 T' RIGHT 得到数值类或子类区间的最右端的值 T' HIGH 得到数值类或子类区间的高端值 T' LOW 得到数值类或子类区间的低端值14. VHDL语言的信号属性函数 此

14、类描述函数用于获得信号的行为信息。 例: s'EVENT 如果事件发生,则返回“真”值,否则返回“假”值。 s'LAST_EVENT 返回从前一个事件发生到现在所经历的时间值。 s'LAST_VALUE 返回信号最后一次改变以前的值。 15. 数值系统的定义方法,各种状态的含义例:九态数值系统由三种强度值和三种逻辑值组成: 强度值:Z - 高阻强度,R - 电阻强度, F-强强度 逻辑值:0 - 逻辑“0”,1 - 逻辑“0”, X -逻辑“X” 即: Z0,Z1,ZX,R0,R1,RX,F0,F1,FX可用枚举数据类型加以定义:例:四态数值系统的定义TYPE four

15、state IS( X,0,1 ,Z );16. 采用有限状态机进行电路设计的基本方法有限状态机分为两类:Moore型-输出信号仅与当前状态有关Mealy型-输出信号不仅与当前状态有关,还与所有的输入信号有关为了使综合工具可以将一个完整的VHDL源代码识别为有限状态机,必须还要遵循一定的描述规则规定,一个有限状态机的描述应该包括以下内容:至少包括一个状态信号,它们用来指定有限状态机状态。状态转移指定和输出指定,它们对应于控制步的转移条件。时钟信号,它是用来进行同步的。同步或异步复位信号。描述方法: (1)三进程描述 1.状态逻辑描述;2.状态寄存器描述;3.输出逻辑描述。(2)双进程描述 1.

16、一个进程描述三个中的任何两个;2.另外一个用一个进程(3)单进程描述 状态逻辑,状态寄存器,输出逻辑描述合用一个进程。 状态机中的状态可用枚举数据类型数据进行定义。17. 仿真延时引入的原因和对并发语句仿真结果的影响用软件平台进行仿真,实际上对VHDL的“并发语句”也只能逐条地加以执行(处理),为了使语句的执行与硬件动作的结果一致,而与语句的顺序无关,就必须引入延时,这样,软件就可按照电路的实际结构确定仿真顺序,仿真也就真实地模拟了硬件的动作,并且其仿真结果与语句的顺序无关。因此,在进行VHDL程序设计时,对于构造体中的并发语句,设计者可以完全不考虑语句的顺序。18. 逻辑综合的概念与主要步骤

17、 逻辑综合就是将较高抽象层次的描述转换为较低抽象层次的描述一种方法(或者说过程)。就现有的逻辑综合工具而言,所谓就是将RTL级的描述转换为门级网表的过程。主要步骤如下:1. RTL描述转换为非优化的布尔等式描述2. 布尔等式优化3. 门级网表映射19. 运用VHDL语言和FPGA进行电路设计的主要步骤1 VHDL程序设计2 VHDL程序编译3 VHDL程序仿真4 生成网表文件(含器件选择、端口分配,第二次编译)5 下载FPGA器件例:1-365进制计数器(计数器结果由三个4位二进制数输出,且计数器由时钟的上升沿触发, 计数器满时输出进位(溢出)脉冲,重新计数。)计数范围:0-364,或1-36

18、5均可LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bcd365count IS PORT ( clk,clr:IN STD_LOGIC; bcd1n :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); bcd10n :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); bcd100n:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co :OUT STD_LOGIC:='0' );END bcd365count

19、;ARCHITECTURE one OF bcd365count ISSIGNAL bcd1ns,bcd10ns,bcd100ns:STD_LOGIC_VECTOR(3 DOWNTO 0);gp:PROCESS(clk,clr) BEGIN IF clr ='0' THEN bcd1ns <= "0001" ELSIF (clk'EVENT AND clk='1')THEN IF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5) THEN bcd1ns <= "0001"

20、ELSIF bcd1ns=9 THEN bcd1ns <= "0000" ELSE bcd1ns <= bcd1ns+1; END IF; END IF; END PROCESS;sp:PROCESS(clk,clr) BEGIN IF clr ='0'THEN bcd10ns <= "0000" ELSIF (clk'EVENT AND clk='1')THEN IF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5)OR (bcd10ns=9 AND bcd1ns=

21、9) THEN bcd10ns <= "0000" ELSIF bcd1ns=9 THEN bcd10ns <= bcd10ns+1; END IF; END IF; END PROCESS;bp:PROCESS(clk,clr) BEGIN IF clr ='0'THEN bcd100ns <= "0000" ELSIF (clk'EVENT AND clk='1')THEN IF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5) THEN bcd100ns <

22、;= "0000" ELSIF (bcd10ns=9 AND bcd1ns=9)THEN bcd100ns <= bcd100ns+1; END IF; END IF; END PROCESS;cp:PROCESS(bcd1ns,bcd10ns,bcd100ns) BEGIN IF(bcd100ns=3)AND(bcd10ns=6)AND(bcd1ns=5)THEN co <= '1' ELSE co <= '0' END IF; END PROCESS; bcd1n <= bcd1ns; bcd10n <= bcd10ns; bcd100n <= bcd100ns;END one;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1