VHDL必须掌握的知识点和相关例题_第1页
VHDL必须掌握的知识点和相关例题_第2页
VHDL必须掌握的知识点和相关例题_第3页
VHDL必须掌握的知识点和相关例题_第4页
VHDL必须掌握的知识点和相关例题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VHDL总复习必须要掌握的知识点和相关例题1VHDL的全称以及利用VHDL设计硬件电路所具有的特点Very High Speed Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言)( 1) 设计文件齐全、方法灵活、支持广泛( 2) 系统硬件描述能力强( 3) VHDL语言可以与工艺无关编程( 4) VHDL 语言标准、规范、易于共享和复用2VHDL语言的基本设计实体和完整的VHDL语言程序的结构一个 VHDL语言的基本设计实体由实体说明和构造体两个部分构成;一个完整的语言程序包含5 个部分:实体、构造体、配置、包集合(

2、 程序包 ) 和库。3进程( PROCESS)语句的结构主要特点:并发语句,由敏感信号量启动;内部的语句顺序执行,进程不能嵌套。4 VHDL语言子程序的结构VHDLVHDL语言子程序有两种类型:过程、函数1)过程( Procedure )在程序包中定义的格式(用户自定义过程的设计方法)PACKAGE包集合名ISPROCEDURE过程名(参数1,参数 2, ):END包集合名;PACKAGE BODY包集合名ISPROCEDURE过程名(参数1,参数2, )IS定义语句BEGIN顺序处理语句END 过程名 ;END 包集合名 ;过程调用的方法:过程名(参数1,参数 2, );过程调用语句属于并发

3、语句。2)函数( Function )在程序包中定义的格式(用户自定义函数的设计方法):PACKAGE包集合名ISFUNCTION函数名(参数1,参数2, )RETURN数据类型名END包集合名 ;PACKAGE BODY包集合名ISFUNCTION函数名(参数1,参数2, )RETURN数据类型名( 变量 ) 定义语句 ISBEGIN顺序处理语句;RETURN 变量名;END 函数名 ;END 包集合名 ;函数调用的方法:出现于语句的表达式中。5过程与函数的主要区别函数只包含有输入参数,只有一个返回值;过程即包含有输入参数,也包含输出参数或输入输出参数,可以有多个返回值,这些返回值通过过程中

4、定义的输出参数带回。6进程和子程序中使用的语句进程中和子程序的所有语句按顺序执行,只能使用顺序描述语句。7 VHDL语言中客体的概念及使用范围VHDL语言中可以赋予一个值的对象称为客体;客体主要包括三种:信号、常数、变量;信号和常数为全局量,变量为局部量。8信号和变量的区别及作用范围信号和变量值的代入不仅形式不同,而且操作过程也不相同。变量的赋值使用赋值符“:= ” , 信号的代入使用代入符“ := ”。变量的赋值在赋值语句执行时立即生效,信号的代入在代入语句执行时并不立即发生,代入语句的处理和实际的代入过程是分开进行的。实际的代入过程在进程( PROCESS)或子程序( SUBPROGRAM

5、)语句执行完毕时发生,与代入语句的处理存在延时。变量是局部量,作用范围是进程和子程序;信号是全局量,作用范围是构造体、实体和程序包。例:ARCHITECTURE behave OF xinhao ISP1:PROCESS(A,B,C,D)BEGIND<=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);BEGIND:=A;X <= B+

6、D;D:=C;Y <= A+D;END PROCESS;P1的运行结果 : X <= B+C ,Y <= B+CP2的运行结果 : X <= B+A ,Y <= B+C9 VHDL语言的数据类型和运算操作1) VHDL语言具有十种标准的数据类型2)用户定义的数据类型包括枚举类型、数组类型、记录类型等枚举数据类型的定义方法:TYPE数据类型名IS(元素,元素, )3) VHDL语言共有4 类运算操作:逻辑运算 (Logical)关系运算 (Relational)算术运算 (Arithmetic)并置运算 (Concatenation)10 VHDL语言构造体的三种描

7、述方式行为描述方式寄存器传输(数据流)描述方式结构化描述方式11 COMPONENT(元件)语句和 COMPONENTINSTANT(元件例示)语句的功能和书写格式元件语句是最基本的描述语句,在构造体中用来(说明)调用已设计好的逻辑描述模块 即元件( COMPONENT) ;COMPONENT元件名GENERICPORT说明;说明;END COMPONENT;元件例示语句是在构造体的结构描述中不可缺少的一个基本语句,该语句将现成元件的端口信号映射成高层次设计电路中的信号,用来在构造体中产生一个现成元件的实例。标号名:元件名GENERIC MAP(参数,参数, )PORT MAP(信号,信号,

8、);12 VHDL语言的主要描述语句的功能、使用场合和语法格式( 1)主要的并发语句? 进程? 信号代入语句? 过程调用语句? 块语句? 元件例示语句 (Component Instant)? 生成语句 (Generate)( 2)主要的顺序语句? WAIT 语句? 信号代入语句? 变量赋值语句? IF 语句? CASE 语句? 循环语句( FOR 循环, WHILE循环) 注意: GENERATE(生成)语句和COMPONENTINSTANT(元件例示)语句是并发语句例:八位行波计数器的设计LIBRARY IEEE;ENTITY dffr ISPORT ( clk,clr,d: IN STD

9、_LOGIC;q,qb: OUT STD_LOGIC);END dffr;ARCHITECTURE one OF dffr ISSIGNAL qin: STD_LOGIC;BEGINq <= qin;qb <= NOT qin;PROCESS( clk,clr)BEGINIF clr='1'THENqin <= '0'ELSIF clk'EVENT AND clk='1'THENqin <= d;END IF;END PROCESS;END one;ENTITY rplcont ISPORT ( clk,clr:

10、IN STD_LOGIC;count : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END rplcont;ARCHITECTURE one OF rplcont ISSIGNAL cntints: STD_LOGIC_VECTOR(8 DOWNTO 0);COMPONENT dffr ISPORT ( clk,clr,d: IN STD_LOGIC;q,qb: OUT STD_LOGIC);END COMPONENT;BEGINcntints(0)<= clk;g1:FOR i IN 0 TO 7 GENERATEdffx: dffr PORT MAP(clk=

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

12、得到数值类或子类区间的低端值15 VHDL 语言的信号属性函数此类描述函数用于获得信号的行为信息。例:? s'EVENT如果事件发生,则返回“真”值,否则返回“假”值。? s'LAST_EVENT返回从前一个事件发生到现在所经历的时间值。? s'LAST_VALUE返回信号最后一次改变以前的值。16数值系统的定义方法,各种状态的含义例:九态数值系统由三种强度值和三种逻辑值组成:强度值: Z -高阻强度, R -电阻强度,逻辑值: 0 -逻辑“ 0”, 1 -逻辑“ 0”,F-X -强强度逻辑“ X”即:Z0 , Z1, ZX, R0, R1, RX, F0, F1, F

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

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

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

16、出进位(溢出)脉冲,重新计数。) 计数范围: 0-364, 或 1-365 均可 LIBRARY IEEE;ENTITY bcd365count ISPORT ( 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;ARCHITECTURE one OF bcd365cou

17、nt ISSIGNAL bcd1ns,bcd10ns,bcd100ns:STD_LOGIC_VECTOR(3 DOWNTO 0); gp:PROCESS(clk,clr)BEGINIF clr ='0' THENbcd1ns <= "0001"ELSIF (clk'EVENT AND clk='1')THENIF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5) THENbcd1ns <= "0001"ELSIF bcd1ns=9 THENbcd1ns <= &quo

18、t;0000"ELSEbcd1ns <= bcd1ns+1;END IF;END IF;END PROCESS;sp:PROCESS(clk,clr)BEGINIF clr ='0'THENbcd10ns <= "0000"ELSIF (clk'EVENT AND clk='1')THENIF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5)OR (bcd10ns=9 AND bcd1ns=9) THEN bcd10ns <= "0000"ELSIF bcd1ns=9 THENbcd10ns <= bcd10ns+1;END IF;END IF;END PROCESS;bp:PROCESS(clk,clr)BEGINIF clr ='0'THENbcd100ns <= "0000"ELSIF (clk'EVENT AND clk='1')THENIF (bcd100ns=3 AND bcd10ns=6 AND bcd1ns=5) THENbcd100ns <= "0000"ELSIF (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论