设计中心 Active-HDL4.2 FPGA Express Foundation 设计中心 Active-HDL Design Entry Tools ? HDL Editor (HDE) ? State Diagram Editor (FSM) ? Block Diagram Editor (BDE) 设计中心 设计中心 Training Introduction ?一个简单频率计的设计(带BCD计数器、LED 七段码显示控制) ?频率计的基本原理:将输入信号频率与基准时钟 频率进行比较 ?频率计在测量输入频率时,即测量状态下 START信号为‘1’ ?该设计采用3三种描述模式:VHDL行为代码模 式(HDE)、状态图模式(FSM)、框图模式(BDE) ?顶层框图将所有模块拼接起来 设计中心 简单频率计框图 设计中心 频率计主要模块 ? The following blocks are used in the design: – HEX2LED -LED七段码显示转换模块(HDE) – CNT_BCD -4位十进制BCD计数器模块(BDE) (包含AND2和CNT_4b俩子模块) – CONTROL -频率计控制模块(FSM) – Top_frqm -顶层设计(BDE) 设计中心 BDE ? EDIF(Electronic Data Interchange Format) 设计中心 3.8 创建顶层框图Top_frqm ? The completed Top_frqm block diagram should look like this: ? Please save the diagram, close it, drag it to the Functional folder in the Design Browser and reopen it 设计中心 1. HEX2LED -LED七段码显示转换模(HDE) 2. CNT_BCD - 4位十进制BCD计数器模(BDE) (包含AND2和CNT_4b俩子模块) 3. Top_frqm -顶层设计(BDE) 4. CONTROL -频率计控制模块(选学) (FSM) 设计内容 设计中心 状态转移图 设计中心 FSM(Finite S tate Machine) ?状态机是一种记录下给定时刻状态的设备,并根 据输入,对每个给定的改变,改变其状态或引发 一个动作。 ?有限状态机是有有限个状态的机器 ?有限状态机由有限的状态和相互之间的转移构成, 在任何时候只能处于给定数目的状态中的一个。 当接收到一个输入事件时,状态机产生一个输出, 同时也可能伴随着状态的转移。 ?有限状态机适用于表示时序控制电路,它可以描述 出系统所处的状态、状态之间的转移以及引起状 态转移的原因;可以描述同步或异步状态机。 设计中心 FSM分类 FSM根据输入输出关系可分为两类: ?摩尔(Moore)型状态机 ?米利(Mealy)型状态机 设计中心 摩尔(Moore)型状态机 ?摩尔(Moore)型状态机的输出仅仅与 当前状态相关。 状态 寄存器 状态 逻辑 输出 逻辑 输出 当前 状态 次态 输入 复位信号 时钟信号 设计中心 摩尔( Moore )型状态图 11 1 00 0 0 S3/0 S0/0 S1/1 S2/0 1 设计中心 米利(Mealy)型状态机 ?米利(Mealy)型状态机的输出不仅与 当前状态相关,而且也与输入信号相关。 状态 寄存器 状态 逻辑 输出 逻辑 输出 当前 状态 次态 输入 复位信号 时钟信号 设计中心 米利( Mealy )型状态图 1/11/1 1/0 0/10/0 0/0 0/0 S3 S0 S1 S2 1/1 设计中心 状态机设计 ?状态机的设计方法总是先定义一个复位 状态,明确定义状态机的初始状态,并 使其可以从不定态中恢复,其次,在每 个状态下对每个输出信号赋予一个值。 ?至少存在一个时钟信号,实现状态翻转。 ?也可以存在复位信号,用于同步系统等 的运行。 设计中心 4.1 创建状态图CONTROL ?在顶层框图中右击 CONTROL fub, 选择Push ?选择State Diagram ?Click OK 设计中心 4.2创建状态图CONTROL ?右击F_PATTERN 端口的符号,选择 Properties ?端口属性选择Clock ?Click OK 该FSM Editor是为异步状态机行为描述而设计的,所以我们必 须将CONTROL diagram的一个输入设置为machine clock. 用Properties选项为END_RESET and GATE输出端口定义为Registered. 设计中心 4.3创建状态图CONTROL ?在状态机编辑框中右击, 选择Properties;在对 应的窗口General中为 Clock选择F_PATTERN 信号 ?用FSM | State选项,或 State button ( ) 在编辑 框中画三个状态,如图: 设计中心 4.4创建状态图CONTROL ?请更改状态名分别为 IDLE, OPEN_GATE and END_CYCLE, 如右图: ?状态圆圈可以随意拉大 右击状态,选择Properties可以更改状态名(General — State Properties window)。或则双击原状态名直接更改。 设计中心 4.5创建状态图CONTROL ?请画出右图所示的状态转 换连接线: ?状态转换连接线可以点中 拖动,随意改变形状。 画状态连接线请从菜单中选择FSM | Transition,或选择 Transition button ( ) ,从开始状态画线连接目标状态。 设计中心 4.6创建状态图CONTROL ?请画出reset符号,如右图: ?设置reset信号的参数:右击 FSM编辑框,选择Properties 调出Machine Properties窗口 定义FSM的复位状态:从菜单中选择FSM | RESET,或者点击 Reset button ( ),然后即可画出reset符号。 Right-click here 设计中心 4.7创建状态图CONTROL ?在Machine Properties窗口中点击Reset tab ,然后选择: - Name:RESET - Type:Asynchronous - Active Level:High 点击Advanced可以设置 更加复杂的RESET条件 ? Click OK 设计中心 4.8创建状态图CONTROL ?请加如下的条件: START=‘0’:IDLE状态的自 身循环转换线、 END_CYCLE状态到IDLE状 态的转换线; START=‘1’:END_CYCLE 状态自身循环转换线、 IDLE状态到OPEN_GATE状 态的转换线 状态转换条件的添加可以通过菜单选择FSM | Condition或者 选择Condition button ( ) ,然后点击转换线,输入表达式 设计中心 4.9创建状态图CONTROL ?请添加如下的状态动作: GATE<=‘0’; END_RESET<=‘1’; to the IDLE state GATE<=‘1’; END_RESET<=‘0’; to the OPEN_GATE state GATE<=‘0’; END_RESET<=‘0’; to the END_CYCLE state FSM的状态动作可从菜单中选择FSM | Action |Entry,接着点中 相应状态,输入动作表达式。(或) 设计中心 4.10创建状态图CONTROL ? Save 状态图(Ctrl+S),关闭,然后拖入Functional。 ?编译CONTROL.ASF(F11)。 ?编译顶层框图(Top_frqm.bde)。 ?选择Top_frqm(Top_frqm)的E/A设置为顶层(Set as Top-Level)。 Your design is ready for final testing.