求状态机中关于实例化的解惑
时间:10-02
整理:3721RD
点击:
想问一下:
设计的一个状态机中含有四个状态,在Idle状态的时候我需要执行一个子模块的功能,这个时候在Idle状态里可以直接使用实例化吗?
不能的话,我怎么让这个实例化和Idle状态中的其他操作联系起来?
求解!举个例子吧
比如一个简单的闹钟设计,分Time和Alarm两个模块。Time模块实现时间和分别对小时、分钟进行设定,Time模块又分为两个模块,counter模块实现计数,state模块为状态机。在状态机中有三个状态:Idle、Set_Hour、Set_Minute,很显然当在Idle状态下的时候需要调用counter模块,也就是此时是正常工作,这个时候怎么调用?在其他的两个状态下,按说也应该调用counter模块,但此时我想的是当在设定时间的时候停止继续计数。
就是这么个情况,原例子太繁复了。
能给个;例子吗
这不是C语言。画个时序图想想你就明白了
学习一下
在状态机外面例化你的子模块,给子模块加一个全局的enable信号,用状态机去控制enable信号就可以了。
最好不要在IDLE态下进行任何动作,这个是留给初始化的空闲态,在某个状态下调用某个功能模块也应该没有问题,利用state来使能,然后在功能模块完成之后,给一个标志,返回状态机,让它往下跳变!
小编的C语言的函数写多了吧?写HDL时多想想电路的实现吧!
