




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FPGA与硬件描述语言2016.41VHDL硬件描述语言硬件描述语言 基本电路的基本电路的VHDL模型模型3.5 基本电路的VHDL模型3.5.1 组合逻辑电路的设计3.5.2 时序逻辑电路的设计2VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 简单门电路1. 根据模块框图设计电路3VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 简单门电路2. 根据真值表设计电路4aby001011101110VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 编码器根据真值表设计优先编码器5eid0d1d2d3d4d5d6d7q0q1q2g
2、seo1XXXXXXXX11111011111111111100111111100000101111110X001010111110XX01001011110XXX0110101110XXXX100010110XXXXX10101010XXXXXX1100100XXXXXXX11101VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 选择器根据模块框图设计一个四选一选择器6VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 三态门1. 三态门共有三个端口,即数据输入、数据输出和输出使能2. 当输出使能有效时,数据输出端接收来自输入端的数据;反之,数据输
3、出端保持高阻态7VHDL硬件描述语言硬件描述语言 组合组合逻辑电路逻辑电路的设计的设计 三态门设计一个三态门8LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri_gate ISPORT(datain,en:IN STD_LOGIC; dataout:OUT STD_LOGIC);END tri_gate;ARCHITECTURE behavior OF tri_gate ISBEGINPROCESS(datain,en)BEGINIF en = 1 THENdataout = datain;ELSEdataout = Z;END IF;END
4、 PROCESS;END behavior;VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 时序电路都是以时钟信号为驱动信号,电路仅在时钟信号的边沿才发生改变 时钟信号是时序电路的执行条件,时序电路总是以时钟进程的方式进行描述9VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 时钟进程一般有两种描述方式:1. 将时钟信号放入进程敏感表中2. 使用WAIT语句等待时钟信号,使用WAIT语句时进程将不存在敏感表10VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 对时钟边沿进行描述1. 上升沿到来条件描述2. 下降沿到来条件描述1
5、1clkEVENT AND clk = 1 AND clkLAST_VALUE = 0clkEVENT AND clk = 1 -通常描述clkEVENT AND clk = 0 AND clkLAST_VALUE = 1clkEVENT AND clk = 0 -通常描述VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 对时钟信号描述的注意事项:1. 对时钟触发边沿一定要说明时钟是上升沿触发还是下降沿触发2. 时钟作为进程中的敏感量时,进程中的敏感量不能出现一个以上的时钟信号3. 如果使用WAIT语句,它只能放在进程的最前面或者最后面12VHDL硬件描述语言硬件描述语言
6、 时序时序逻辑电路逻辑电路的设计的设计 D触发器分别用两种描述方式设计一个D触发器13VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 触发器的同步复位和非同步复位1. 同步复位:当复位信号有效且在给定时钟边沿到来时,触发器才被复位2. 非同步复位:又称为异步复位,一旦有复位信号,触发器就被复位14VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 触发器的同步复位15PROCESS(clock)BEGINIF clock_condition THENIF reset_condition THENsignal_out = reset_value;ELS
7、Esignal_out = signal_in;END IF;END IF;END PROCESS;VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 触发器的异步复位16PROCESS(reset,clock)BEGINIF reset_condition THENsignal_out = reset_value;ELSIF clock_condition THENsignal_out = signal_in;END IF;END PROCESS;VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 计数器设计一个带异步置数、异步清零功能的8bit同步增
8、减计数器17VHDL硬件描述语言硬件描述语言 时序时序逻辑电路逻辑电路的设计的设计 用状态机方法设计一个四进制计数器,状态机的状态转移图如图1所示,计数器管脚图如图2所示,管脚说明:CLK为时钟信号(上升沿计数),Q为状态输出(2bit输出),CB为进位输出位(高电平有效)18图1 状态转移图图2 管脚图VHDL硬件描述语言硬件描述语言有限状态机有限状态机3.6 有限状态机3.6.1 有限状态机的基本模型3.6.2 状态机的状态编码3.6.3 状态机剩余状态处理19VHDL硬件描述语言硬件描述语言有限状态机有限状态机 数字系统的控制单元通常用传统的有限状态机(FSM)或者时钟模式时序电路来建模
9、 每个控制步骤可以看作一种状态,与每一控制步骤相关的转移条件指定了状态和输出 大部分数字电子系统由控制单元和数据单元组成,而控制单元的主体是有限状态机,它根据外部信号和数据单元产生的状态信息,产生各种控制信号来进行数据处理20VHDL硬件描述语言硬件描述语言有限状态机有限状态机 无论是与可完成相似功能的CPU/MCU相比,还是与其他设计方案相比,状态机都有其无可比拟的优越性,状态机的优势主要表现在以下方面:1. 状态机的结构模式相对简单,设计方案相对固定,使用VHDL设计时可以定义符号化枚举类型的状态2. 使用状态机可以很容易设计出性能良好的同步时序逻辑模块,因此很容易避免大规模逻辑电路设计中
10、经常出现的竞争冒险现象21VHDL硬件描述语言硬件描述语言有限状态机有限状态机3. 状态机的VHDL设计程序层次分明、结构清晰、易读易懂,初学者非常容易掌握,在排错、修改和模块移植方面优势明显4. 在高速运算和控制方面,状态机也有着巨大的优势22 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型状态机设计与分类的传统理论是根据状态机的输入输出的关系,分为两类状态机: Mealy型 Moore型23 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 Mealy型状态机Mealy型状态机的特点是输出信号是当前状态和输入信号的函数24 VHDL硬件
11、描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 Moore型状态机Moore型状态机的特点是输出信号仅与当前状态有关25 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的一般结构由以下部分组成:1. 说明部分2. 主控时序进程3. 主控组合进程4. 普通组合进程5. 普通时序进程26 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的说明部分说明部分1. 说明部分中有新数据类型TYPE的定义及其状态类型(状态名)以及在此新数据类型下定义的状态变量2. 状态类型一般用枚举类型,其中每
12、一个状态名可任意选取3. 状态变量应定义为信号,便于信息传递,说明部分一般放在ARCHITECTURE和BEGIN之间27 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的说明部分说明部分28ARCHITECTURE behavior OF example ISTYPE states IS (st0, st1, st2, st3);-定义新的数据类型和状态名SIGNAL current_state, next_state: states; -定义状态名变量BEGINEND behavior; VHDL硬件描述语言硬件描述语言 有限状态机的基本模
13、型有限状态机的基本模型 用VHDL设计状态机的主控时序进程主控时序进程1. 状态机是由外部时钟信号控制,以同步时序方式工作的,状态机中必须包含一个对工作时钟信号敏感的进程,作为状态机的“驱动泵”2. 主控时序进程不负责进入下一状态的具体状态取值3. 主控时序进程的设计比较固定和单一29 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的主控组合进程主控组合进程1. 主控组合进程的任务是根据外部输入的控制信号,或当前状态的状态值确定下一状态的取值,即next_state的内容,以及确定对外输出或对内部其他组合或时序进程输出控制信号的内容30 VHD
14、L硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的普通普通组合进程组合进程1. 用于配合状态机工作的其他组合进程,如为了完成某种算法的进程31 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 用VHDL设计状态机的普通时序进程普通时序进程1. 用于配合状态机工作的其他时序进程,如为了稳定输出设置的数据锁存器等32 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型 一个最简结构的状态机至少由两个进程构成,即一个主控时序进程和一个主控组合进程 主控时序进程作为“驱动泵”,描述时序逻辑,包括状态寄存器的工
15、作和寄存器状态的输出 主控组合进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转换值的输出33 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型34LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY state_machine ISPORT(clk,reset:IN STD_LOGIC; state_inputs:IN STD_LOGIC_VECTOR(0 TO 1); comb_outputs:OUT STD_LOGIC_VECTOR(0 TO 1);END state_machine;ARCHITECTURE beh
16、avior OF state_machine ISTYPE states IS (st0, st1, st2, st3);-定义states为枚举型数据类型SIGNAL current_state, next_state: states; -定义状态名变量 VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型35BEGINREG:PROCESS(reset,clk)BEGINIF reset = 1 THENcurrent_state = st0;ELSIF clkEVENT AND clk = 1 THENcurrent_state comb_outputs = “00
17、”;IF state_inputs = “00” THENnext_state = st0;ELSEnext_state comb_outputs = “01”;IF state_inputs = “00” THENnext_state = st1;ELSEnext_state comb_outputs = “10”;IF state_inputs = “00” THENnext_state = st2;ELSEnext_state comb_outputs = “11”;IF state_inputs = “11” THENnext_state = st3;ELSEnext_state =
18、st0;END IF;END CASE;END PROCESS;END behavior; VHDL硬件描述语言硬件描述语言 有限状态机的基本模型有限状态机的基本模型37VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码 状态机的状态编码方式是多种多样的,这要根据实际情况来决定,影响编码方式选择的因素主要有:1. 状态机的速度要求2. 逻辑资源利用率系统运行的可靠性3. 程序的可读性38VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码 状态机的状态编码方式主要有:1. 状态位直接输出型编码2. 顺序编码3. 格雷码编码4. 一位热码编码39VHDL硬件描述语言硬件
19、描述语言状态机的状态状态机的状态编码编码状态状态位直接输出型位直接输出型编码编码 这类编码方式最典型的应用实例就是计数器 计数器的输出就是各状态的状态码 将状态编码直接输出作为控制信号,要求对状态机各状态的编码作特殊的选择40VHDL硬件描述语言硬件描述语言状态机的状态编码状态机的状态编码状态位直接输出型编码状态位直接输出型编码这种状态位直接输出型编码方式状态机的优点是输出速度快、占用逻辑资源少;缺点是程序可读性差41ARCHITECTURE behavior OF state_machine ISSIGNAL current_state, next_state:STD_LOGIC_VECTO
20、R(6 DOWNTO 0);CONSTANT state0:STD_LOGIC_VECTOR(6 DOWNTO 0):=“1100100”;CONSTANT state1:STD_LOGIC_VECTOR(6 DOWNTO 0):=“0001110”;CONSTANT state2:STD_LOGIC_VECTOR(6 DOWNTO 0):=“0110010”;CONSTANT state3:STD_LOGIC_VECTOR(6 DOWNTO 0):=“0011010”;CONSTANT state4:STD_LOGIC_VECTOR(6 DOWNTO 0):=“0101010”;CONSTA
21、NT state5:STD_LOGIC_VECTOR(6 DOWNTO 0):=“1010000”;BEGINEND behavior;VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码顺序顺序编码编码 这种编码方式最为简单,且使用的触发器数量最少,剩余的非法状态最少,容错技术最为简单42VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码顺序编码顺序编码顺序编码的缺点是,尽管节省了触发器,却增加了从一种状态向另一种状态转换的译码组合逻辑,这对于FPGA器件来说不利实现43ARCHITECTURE behavior OF state_machine ISSIGNAL
22、current_state, next_state:STD_LOGIC_VECTOR(2 DOWNTO 0);CONSTANT state0:STD_LOGIC_VECTOR(2 DOWNTO 0):=“000”;CONSTANT state1:STD_LOGIC_VECTOR(2 DOWNTO 0):=“001”;CONSTANT state2:STD_LOGIC_VECTOR(2 DOWNTO 0):=“010”;CONSTANT state3:STD_LOGIC_VECTOR(2 DOWNTO 0):=“011”;CONSTANT state4:STD_LOGIC_VECTOR(2 DO
23、WNTO 0):=“100”;CONSTANT state5:STD_LOGIC_VECTOR(2 DOWNTO 0):=“101”;BEGINEND behavior;VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码格雷码格雷码编码编码 格雷码编码方式是对顺序编码方式的一种改进 格雷码编码的特点是任一的相邻状态的编码中只有一个二进制位发生变化 格雷码编码提高了目标器件的资源利用率和运行速度,同时避免了误码现象44VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码格雷码格雷码编码编码45ARCHITECTURE behavior OF state_machine
24、ISSIGNAL current_state, next_state:STD_LOGIC_VECTOR(1 DOWNTO 0);CONSTANT state0:STD_LOGIC_VECTOR(1 DOWNTO 0):=“00”;CONSTANT state1:STD_LOGIC_VECTOR(1 DOWNTO 0):=“01”;CONSTANT state2:STD_LOGIC_VECTOR(1 DOWNTO 0):=“11”;CONSTANT state3:STD_LOGIC_VECTOR(1 DOWNTO 0):=“10”;BEGINEND behavior;VHDL硬件描述语言硬件描述语言状态机的状态状态机的状态编码编码一一位热码位热码编码编码 一位热码编码方式就是用n个触发器来实现具有n个状态的状态机 状态机中的每一个状态都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗教育革新远程协作工具在医疗培训中的应用
- 医养结合服务模式的理论基础与实际应用
- 专科护士在医疗安全中的教育与培训
- 代工采购合同范例
- 利用商业智能和医疗大数据提升企业员工整体健康的策略与实践
- 小儿上肢肿块的临床护理
- 公司木材采购合同范例
- 以移动支付为驱动的电子商务平台创新研究-基于区块链技术分析
- 专利实施独占合同范例
- 住宅个人贷款合同范例
- 葡萄酒品尝学第八章-2013
- JJF 1793-2020海水营养盐测量仪校准规范
- GB/T 20080-2017液压滤芯技术条件
- 超音速流动与燃烧的大涡模拟基础课件
- 大班科学《神奇的洞洞》课件
- 季节性防雷防汛防台风安全检查表
- 归档文件目录
- 2022年四川省绵阳市中考英语试题及参考答案
- NYT 393-绿色食品 农药使用准则
- 偏心块振动式土壤夯实机的结构设计说明
- 主题班会《坚定信念--放飞理想》
评论
0/150
提交评论