设计中心
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.