⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行剖析与规划,对状况机FSM进行剖析与建模。
文章和代码已归档至【Github仓库:hardware-tutorial】,需求的朋友们自取。或许关注大众号【AIShareLab】,回复 FPGA 也可获取。
状况机的概念与规划
状况机的根本结构及类型
有限状况机的规范模型如图所示,它主要由三部分组成:
- 下一状况的逻辑电路(组合电路);
- 存储状况机其时状况的时序逻辑电路(时序电路);
- 输出组合逻辑电路(组合电路)。
一般情况下,状况触发器的数量是有限的,其状况数也是有限的,故称为有限状况机(Finite State Machine,简称为FSM)。状况机中一切触发器的时钟输入端被连接到一个公共时钟脉冲源上,其状况的转化是在同一时钟源的同一脉冲边沿同步进行的,所以它也被称作时钟同步状况机。
一般来说,状况机的根本操作主要有以下两种:
- 状况机的内部状况转化。
- 发生输出信号序列。
依据电路的输出信号是否与电路的输入有关,能够将状况机分为两种类型:一类是米利型(Mealy)状况机,电路的输出信号不只与电路其时的状况有关,还与电路的输入有关;另一类是穆尔型(Moore)状况机,电路输出仅仅取决于各触发器的状况,而不受电路其时的输入信号影响或没有输入变量。
状况机的状况图表明法
Mealy型
上图是米利型状况图的一个比如。在状况图中,每个状况用一个圆圈表明,圆圈内有指示状况的符号。用带箭头的方向线指示状况转化的方向,当方向线的起点和终点都在同一个圆圈上时,则表明状况不变。
一般来说,状况机中的状况搬运有两种办法:无条件搬运和有条件搬运。在图中,从状况A搬运到状况B为无条件搬运,其它状况之间的搬运都是有条件要求的。
Moore型
需求强调指出,米利型状况图中,输出值的表明办法简单引起读者的误解。当状况机处于所在的状况,并且在所示的输入的作用下,就会发生输出值,并非在状况机搬运到下一状况时才出现输出。因为穆尔型电路的输出只依赖于状况机的其时状况,其状况图的表明办法略有不同,通常将输出变量写在表明状况的圆圈内部,图是穆尔型状况图表明的比如。
状况机的规划过程
一般来说,状况机的规划过程如下所示:
- 依据详细的规划准则,确认选用状况机类型:穆尔型状况机仍是米利型状况机。
- 剖析规划要求,列出状况机的一切状况,并对每一个状况进行状况编码。
- 依据状况搬运联系和输出函数,画出状况图(状况表)。
- 依据所画的状况图,选用硬件描绘语言对状况机进行描绘。
第3步是最困难也是最有创造性的一步。状况图直观地反映了状况机各个状况之间的转化联系以及转化条件,但要求规划的状况个数不能太多。状况个数较多,选用状况表的办法列出状况机的搬运条件。输出信号较多,可选用输出逻辑真值表进行表明。
参考文献:
- Verilog HDL与FPGA数字系统规划,罗杰,机械工业出版社,2015年04月
- Verilog HDL与CPLD/FPGA项目开发教程(第2版), 聂章龙, 机械工业出版社, 2015年12月
- Verilog HDL数字规划与综合(第2版), Samir Palnitkar著,夏宇闻等译, 电子工业出版社, 2015年08月
- Verilog HDL入门(第3版), J. BHASKER 著 夏宇闻甘伟 译, 北京航空航天大学出版社, 2019年03月
欢迎关注大众号【AIShareLab】,一起沟通更多相关知识,前沿算法,Paper解读,项目源码,面经总结。