第8章VHDL设计进阶.ppt

上传人:sccc 文档编号:5117298 上传时间:2023-06-05 格式:PPT 页数:42 大小:545.03KB
返回 下载 相关 举报
第8章VHDL设计进阶.ppt_第1页
第1页 / 共42页
第8章VHDL设计进阶.ppt_第2页
第2页 / 共42页
第8章VHDL设计进阶.ppt_第3页
第3页 / 共42页
第8章VHDL设计进阶.ppt_第4页
第4页 / 共42页
第8章VHDL设计进阶.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第8章VHDL设计进阶.ppt》由会员分享,可在线阅读,更多相关《第8章VHDL设计进阶.ppt(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 VHDL行为描述方式,例8.1 行为描述方式描述的1位全加器,LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY full_adder IS PORT

3、(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 ISBEGIN PROCESS(A,B,Cin)VARIABLE n: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 行为描述方

4、式描述的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 PROCESS;END behave;,8.1 VHDL行为描述方式,例8.2 行为描述方式描述的10位二进制全加器,LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;Use ieee.std_logic_unsigned.all;Entity adder1 isport(a,b:in std_l

5、ogic_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 VHDL行为描述方式,architecture behave of adder1 issignal 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);

6、beginprocess begin a_temp=0,8.1 VHDL行为描述方式,例8.2 行为描述方式描述的10位二进制全加器,所谓结构描述方式,就是指在多层次的设计中,通过调用库中的元件或是已设计好的模块来完成设计实体功能的描述。在结构体中,描述只表示元件(或模块)和元件(或模块)之间的互连,就像网表一样。当引用库中不存在的元件时,必须首先进行元件的创建,然后将其放在工作库中,这样才可以通过调用工作库来引用元件。在引用元件时,首先要在结构体说明部分进行元件的说明,然后才在使用元件时进行元件例化。,8.2 VHDL结构化描述方式,LIBRARY IEEE;USE IEEE.std_log

7、ic_1164.ALL;ENTITY h_adder IS PORT(A,B:IN std_logic;Co:OUT std_logic;S:OUT std_logic);END h_adder;ARCHITECTURE rtl OF h_adder ISSIGNAL 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、由一位半加器实现一位全加器的逻辑电路图如图所示。,8.2 VHDL结构化描述方式,library ieee;-或门逻辑表达use ieee.std_logic_1164.all;entity or2 is port(a,b:in std_logic;c:out std_logic);end entity or2;architecture one of or2 isbegin c=a or b;end architecture one;,8.2 VHDL结构化描述方式,例8.4 结构描述方式描述的1位全加器,architecture one of f_adder is-1位全加器 compone

9、nt h_adder port(a,b:in std_logic;co,so:out std_logic);end component;component or2 port(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 o

10、ne;,8.2 VHDL结构化描述方式,例8.4 结构描述方式描述的1位全加器,用行为描述方式编写的VHDL语言程序抽象程度很高,是很难直接映射到具体逻辑器件上的。所谓寄存器传输描述,就是指对设计实体的描述按照从信号到信号的寄存器传输的路径形式来进行。由于这种描述形式容易进行逻辑综合,因此成为设计人员经常采用的一种描述方式。有时候,这种描述方式也被称作数据流描述方式。,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_lo

11、gic;Co:OUT std_logic;S:OUT std_logic);END full_adder;ARCHITECTURE 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.

12、all;entity and_or isport(a,b,c,d:I n std_logic;f:out std_logic);end;architecture rtl of and_or isbeginprocess 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)是很相似的。它们的差别仅在于描述逻辑运算的逻辑符号及表达方式略有不同。数据流描述亦

13、表示行为,但含有结构信息,如进程间的通信等,通常用并行语句进行描述。2设计中只要有了布尔代数表达式就很容易将它转换为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型有限状态机?通常

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

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

17、的描述方式,下面我们以一个具体的Moore型有限状态机的设计为例,具体介绍采用不同描述方式来描述Moore型有限状态机功能的具体方法。现在要求设计一个存储控制器,它的具体要求为:1存储控制器能够根据微处理器的读周期或者写周期,分别对存储器输出写使能信号we和读使能信号oe;2存储控制器的输入信号有3个:微处理器的准备就绪信号ready、微处理器的读写信号read_write和时钟信号clk。,8.4.2 有限状态机的描述方式,存储控制器,根据控制器的工作过程给出有限状态机的状态转移图。完成了有限状态机的状态转移图后,还要给出这个有限状态机的输出逻辑。,8.4.2 有限状态机的描述方式,存储控制

18、器,有限状态机状态,有限状态机输出逻辑真值表,LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY store_controller IS PORT(ready:IN std_logic;clk:IN std_logic;read_write:IN std_logic;we,oe:OUT std_logic);END store_controller;ARCHITECTURE state_machine OF store_controller IS TYPE state_type IS(idle,decision,read,write);SIGNAL

19、present_state,next_state:state_type;BEGIN nextstate_logic:PROCESS(present_state,ready,read_write)BEGIN CASE present_state ISWHEN idle=IF(ready=1)THEN next_state=decision;ELSE,8.4.2 有限状态机的描述方式,例8.8 三进程描述方式对存储控制器有限状态机进行描述,next_stateIF(read_write=1)THEN next_stateIF(ready=1)THEN next_stateIF(ready=1)TH

20、EN next_state=idle;ELSE next_state=write;END IF;END CASE;END PROCESS;,8.4.2 有限状态机的描述方式,例8.8 三进程描述方式对存储控制器有限状态机进行描述,state_register:PROCESS(clk)BEGIN IF(clkevent AND clk=1)THEN present_statewewewewe=1;oe=0;END CASE;END PROCESS;END state_machine;,8.4.2 有限状态机的描述方式,例8.8 三进程描述方式对存储控制器有限状态机进行描述,根据上面的例子,可以得

21、出描述有限状态机的具体操作步骤:1用定义的状态类型去定义信号,状态类型为可枚举类型。2结构体中采用进程来描述有限状态机的状态转移。3结构体中采用进程来描述有限状态机中状态寄存器的逻辑,状态寄存器的功能是将次态转化为现态。4结构体中采用进程来描述有限状态机的输出逻辑。,8.4.2 有限状态机的描述方式,以上例子除了使用三进程描述方式外,还可以使用单进程描述方式和双进程描述方式。采用单进程描述方式的特点是使用一个进程来描述有限状态机中的次态逻辑、状态寄存器和输出逻辑。双进程描述方式具有3种形式,其中第3种形式最好,主要原因是这种方式采用两个进程将组合逻辑和时序逻辑分开。,8.4.2 有限状态机的描

22、述方式,从有限状态机的结构框图可以知道,时钟信号和复位信号对每一个有限状态机来说都是很重要的,特别使时钟信号更是不可缺少的。本节将重点讨论时钟信号的另一种应用和有复位信号的有限状态机的VHDL语言程序设计。,8.4.3 有限状态机的同步和复位,从有限状态机的结构框图可以知道,它们的输出信号都是经由组合逻辑电路输出的,因此输出信号会产生“毛刺”现象。在设计中消除“毛刺”现象的方法很多,图中为一种用时钟信号来同步输出信号以消除“毛刺”现象的方法。,8.4.3 有限状态机的同步和复位,一、输出信号的同步,同步复位信号在时钟的跳变沿到来时,将对有限状态机进行复位操作,同时把复位值赋给输出信号并使有限状

23、态机回到空闲状态。在描述带同步复位信号的有限状态机的过程中,当同步复位信号到来的时候,为了避免在状态转移进程中的每个状态分支中都指定到空闲状态的转移,可以在状态转移进程的开始部分加入一个对同步复位信号进行判断的IF语句:如果同步复位信号有效,则直接进入到空闲状态并将复位值赋给输出信号;如果复位信号无效,则执行接下来的正常状态转移进程。,8.4.3 有限状态机的同步和复位,二、有限状态机的同步复位,如果只需要在上电复位和系统错误时进行复位操作,那么采用异步复位方式要比同步复位方式好。这样做的主要原因是:同步复位方式占用较多的额外资源,而异步复位可以消除引入额外寄存器的可能性;而且带有异步复位信号

24、的VHDL语言描述十分简单,只需要在描述状态寄存器的进程中引入异步复位信号即可。在VHDL语言程序的进程中,对有限状态机进行复位的操作应该处于同步时钟信号之外。,8.4.3 有限状态机的同步和复位,三、有限状态机的异步复位,本节将从减小输出信号时延和消除“毛刺”现象的角度出发,对前面介绍的Moore型有限状态机进行改进。这里将介绍两种改进的Moore型有限状态机:一种是在Moore型有限状态机中直接把状态作为输出信号;另一种是在Moore型有限状态机中采用并行输出寄存器进行译码输出。,8.4.4 改进的Moore型有限状态机,在Moore型有限状态机中,如果把状态作为输出信号将会构成一种特殊类

25、型的有限状态机,这种改进的有限状态机实际上相当于去掉了一般有限状态机中的输出逻辑电路。在数字电路中,这种改进的Moore型有限状态机的结构框图如图所示。,8.4.4 改进的Moore型有限状态机,一、状态作为输出信号,采用VHDL语言描述这种改进的Moore型有限状态机之前,设计人员首先要对Moore型有限状态机的状态进行编码操作。主要包括以下几个步骤:1建立包括有限状态机各个状态和输出信号的表格;,8.4.4 改进的Moore型有限状态机,一、状态作为输出信号,2对建立的表格添加状态位;,8.4.4 改进的Moore型有限状态机,一、状态作为输出信号,3补全表格中的状态编码,8.4.4 改进

26、的Moore型有限状态机,一、状态作为输出信号,并行输出寄存器的译码输出同样也是为了减少输出信号的延时,从而提高Moore型有限状态机的速度。这种改进的Moore型有限状态机的结构框图如图所示。,8.4.4 改进的Moore型有限状态机,二、并行输出寄存器的译码输出,在数字电路系统中,有限状态机是指那些输出取决于过去输入部分和当前输入部分的时序逻辑电路。有限状态机是一种十分重要的时序逻辑电路模块,它对于数字系统的设计具有十分重要的作用。通常,设计人员将有限状态机划分为Moore型有限状态和Mealy型有限状态机。其中,Moore型有限状态机的输出信号仅与当前状态有关,即可以把它的输出看成是当前状态的函数;Mealy型有限状态机的输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把它的输出看成是当前状态和所有输入信号的函数。,8.4.5 小结,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号