Q:本期我们来开始介绍如何使用算法状态机(ASM)图在硬件开发板上实现算法。
A:算法状态机 (Algorithmic State Machine,ASM) 图是描述数字系统控制单元的工作流程图,主要用来描述控制单元的时序操作特性,说明控制条件及控制单元状态转换过程,其结构形式类似于计算机中的程序流程图。
我们要实现的第一个算法是对n位二进制数A (A = ) 中1的个数进行计数,ASM图为:
当系统处于状态S1即处于初始状态时,result被初始化为0,接着判断条件s,若s=0则将数据加载到寄存器A;否则跳转到状态S2。
当系统处于状态S2时,对寄存器A执行右移操作,接着判断条件A,若A不为0则继续判断条件,若为1,则result递增(实现为一个计数器),否则返回到状态S2;若A为0则跳转到状态S3。
当系统处于状态S3时,Done被置1,接着判断条件s,若s=0则跳转到状态S1;否则返回到状态S3。