第8章VHDL设计进阶培训讲学

上传人:yulij****0329 文档编号:138583576 上传时间:2020-07-16 格式:PPT 页数:42 大小:440.50KB
返回 下载 相关 举报
第8章VHDL设计进阶培训讲学_第1页
第1页 / 共42页
第8章VHDL设计进阶培训讲学_第2页
第2页 / 共42页
第8章VHDL设计进阶培训讲学_第3页
第3页 / 共42页
第8章VHDL设计进阶培训讲学_第4页
第4页 / 共42页
第8章VHDL设计进阶培训讲学_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第8章VHDL设计进阶培训讲学》由会员分享,可在线阅读,更多相关《第8章VHDL设计进阶培训讲学(42页珍藏版)》请在金锄头文库上搜索。

1、第8章 VHDL设计进阶,EDA技术与VHDL设计,VHDL设计进阶,VHDL语言允许设计人员采用不同的描述方式进行设计实体中结构体的书写。结构体的3种描述方式为:行为描述方式、寄存器传输描述方式和结构描述方式,分别对应的结构体名为behave、rtl和structure。这3种描述方式从不同角度对设计实体的行为和功能进行描述,具有各自的特点。,8.1,VHDL行为描述方式,VHDL结构化描述方式,VHDL RTL描述方式,有限状态机(FSM)设计,8.2,8.3,8.4,VHDL设计进阶,以一位全加器的VHDL语言描述为例,对结构体的这3种描述方式进行分别讨论。一位全加器的逻辑示意图和实现的

2、逻辑电路图如图所示。,8.1 VHDL行为描述方式,一位全加器的逻辑示意图和实现的逻辑电路图,例8.1 行为描述方式描述的1位全加器,LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY full_adder IS PORT(A,B: IN std_logic; Cin: IN std_logic; Co: OUT std_logic; S: OUT std_logic); END full_adder; ARCHITECTURE behave OF full_adder IS BEGIN PROCESS (A,B,Cin) VARIABLE n:

3、 integerRANGE0TO3; CONSTANT S_vector: std_logic_vector(0 TO 3):=”0101”; CONSTANT Co_vector: std _logic_vector(0 TO 3):=”0011”;,8.1 VHDL行为描述方式,例8.1 行为描述方式描述的1位全加器,BEGIN n:=0; IF(A=1)THEN n:=n+1; END IF; IF(B=1)THEN n:=n+1; END IF; IF(Cin=1)THEN n:=n+1; END IF; S=S_vector(n); Co=Co_vector(n); END PROC

4、ESS; END behave;,8.1 VHDL行为描述方式,例8.2 行为描述方式描述的10位二进制全加器,LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; Use ieee.std_logic_unsigned.all; Entity adder1 is port(a,b: in std_logic_vector(9 downto 0); co: in std_logic_vector(9 downto 0); c1: out std_logic; sum: out std_logic_vector(10 downto 0); end;,8.1 VHD

5、L行为描述方式,architecture behave of adder1 is signal a_temp: std_logic_vector(10 downto 0); signal b_temp: std_logic_vector(10 downto 0); signal sum_temp: std_logic_vector(10 downto 0); begin process begin a_temp=0 ,8.1 VHDL行为描述方式,例8.2 行为描述方式描述的10位二进制全加器,所谓结构描述方式,就是指在多层次的设计中,通过调用库中的元件或是已设计好的模块来完成设计实体功能的描

6、述。在结构体中,描述只表示元件(或模块)和元件(或模块)之间的互连,就像网表一样。当引用库中不存在的元件时,必须首先进行元件的创建,然后将其放在工作库中,这样才可以通过调用工作库来引用元件。在引用元件时,首先要在结构体说明部分进行元件的说明,然后才在使用元件时进行元件例化。,8.2 VHDL结构化描述方式,LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY h_adder IS PORT(A,B: IN std_logic; Co: OUT std_logic; S: OUT std_logic); END h_adder; ARCHITECTU

7、RE rtl OF h_adder IS SIGNAL tmp1,tmp2: std_logic; BEGIN tmp1=A OR B; tmp2=A NAND B; Co =NOT tmp1; S =tmp1 AND tmp2; END rtl;,8.2 VHDL结构化描述方式,例8.3 寄存器传输方式描述的半加器,这里,定义了构成一位全加器的基本元件半加器,下面就 可以采用半加器来构成一位全加器。由一位半加器实现一位全加器的逻辑电路图如图所示。,8.2 VHDL结构化描述方式,library ieee;-或门逻辑表达 use ieee.std_logic_1164.all; entity

8、or2 is port(a,b:in std_logic; c:out std_logic); end entity or2; architecture one of or2 is begin c=a or b; end architecture one;,8.2 VHDL结构化描述方式,例8.4 结构描述方式描述的1位全加器,architecture one of f_adder is -1位全加器 component h_adder port(a,b:in std_logic; co,so:out std_logic); end component; component or2 port(

9、a,b:in std_logic; c:out std_logic); end component; signal d,e,f:std_logic; begin u1:h_adder port map(a=ain,b=bin,co=d,so=e); u2:h_adder port map(a=e,b=cin,co=f,so=sum); u3:or2 port map(a=d,b=f,c=cout); end architecture one;,8.2 VHDL结构化描述方式,例8.4 结构描述方式描述的1位全加器,用行为描述方式编写的VHDL语言程序抽象程度很高,是很 难直接映射到具体逻辑器件

10、上的。所谓寄存器传输描述,就是 指对设计实体的描述按照从信号到信号的寄存器传输的路径形 式来进行。由于这种描述形式容易进行逻辑综合,因此成为设 计人员经常采用的一种描述方式。有时候,这种描述方式也被 称作数据流描述方式。,8.3 VHDL RTL描述方式,LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY full_adder IS PORT(A,B: IN std_logic; Cin: IN std_logic; Co: OUT std_logic; S: OUT std_logic); END full_adder; ARCHITECTUR

11、E rtl OF full_adder IS SIGNAL tmp1,tmp2:std_logic; BEGIN tmp1=A XOR B; tmp2=tmp1 AND Cin; S=tmp1 XOR Cin; Co=tmp2 OR (A AND B); END rtl;,8.3 VHDL RTL描述方式,例8.6 寄存器传输方式描述的1位全加器,Library ieee; useieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entity and_or is port(a,b,c,d:I n std_logic; f: out

12、 std_logic); end; architecture rtl of and_or is begin process begin f=(a and b) or (c and d); end process; end;,8.3 VHDL RTL描述方式,例8.7寄存器传输方式描述的逻辑函数:f=ab+cd,1用数据流描述模式设计电路与用传统的逻辑方程设计电路很相似。显见,f=ab+cd和f=(aandb)or(candd)是很相似的。它们的差别仅在于描述逻辑运算的逻辑符号及表达方式略有不同。数据流描述亦表示行为,但含有结构信息,如进程间的通信等,通常用并行语句进行描述。 2设计中只要有了布

13、尔代数表达式就很容易将它转换为VHDL的数据流表达式。转换方法是用VHDL中的逻辑运算符号置换布尔逻辑运算符即可。例如,用or置换“+”;用“=”置换“=”。,8.3 VHDL RTL描述方式,例8.7寄存器传输方式描述的逻辑函数:f=ab+cd,在实际的应用中,根据有限状态机是否使用输入信号,设计人 员经常将其划分为Moore有限状态机和Mealy型有限状态机两种类型。 (1)Moore型有限状态机。这种有限状态机的输出仅与当前状态有 关,即可以把Moore型有限状态机的输出看成是当前状态的函数。 (2)Mealy型有限状态机。这种有限状态机的输出信号不仅与当前 状态有关,而且还与所有的输入

14、信号有关,即可以把Mealy有限状态 机的输出看成是当前状态和所有输入信号的函数。可见,Mealy有限 状态机要比Moore型有限状态机复杂一些。,8.4 有限状态机(FSM)设计,8.4.1 Moore和Mealy状态机的选择,Moore型和Mealy型有限状态机的结构框图如图所示。从中可以看 出两种有限状态机的区别。,8.4.1Moore和Mealy状态机的选择,Moore型有限状态机的结构框图,Mealy型有限状态机的结构框图,在设计过程中,设计人员具体选择使用Moore型有限状态机还是 使用Mealy型有限状态机?通常,设计过程中采用何种有限状态机主 要取决于以下几个方面: 1对于Mo

15、ore型有限状态机来说,输出信号将在时钟信号的触发 沿到来后的几个门时延后得到输出值,同时在该时钟周期的剩余时间 内保持不变,即使输入信号在该时钟周期内发生变化,输出信号的值 也不会改变。,8.4.1Moore和Mealy状态机的选择,有限状态机的选择,2对于Mealy型有限状态机来说,由于它的输出是输入信号的函 数,因此如果输入信号发生改变,那么输出可以在一个时钟周期的中 间发生改变。可见,与Moore型有限状态机相比,它对输入信号的变 化相应要早一个时钟周期。 3在实际的应用过程中,Moore型有限状态机可能要比相应的 Mealy型有限状态机需要更多的状态。,8.4.1Moore和Meal

16、y状态机的选择,有限状态机的选择,由于VHDL语言提供了异常丰富的语法,因此有限状态机的VHDL语 言描述可以具有多种不同的方式。一般来说,一个用来描述有限状态 机功能的VHDL语言程序中应该包含以下几个内容: 1至少包括一个状态信号,它们用来指定有限状态机的状态; 2状态转移指定和输出指定,它们对应于控制单元中与每个控制步 关的转移条件; 3时钟信号,它一般是用来进行同步的; 4同步或异步复位信号。,8.4.2 有限状态机的描述方式,通常,在描述有限状态机的过程中,常用的描述方式有3种:三 进程描述方式、双进程描述方式和单进程描述方式。,8.4.2 有限状态机的描述方式,下面我们以一个具体的Moore型有限状态机的设计为例,具体介 绍采用不同描述方式来描述Moore型有限状态机功能的具体方法。 现在要求设计一个存储控制器,它的具体要求为: 1存储控制器能够根据

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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