Enable Subsystem

enable子系统,即使能子系统,里面包含一个enable组件,外面会冒出一个信号去读取外部的使能信号。

假如创建如下的一个使能子系统,我们可以点开子系统,设置一下enable和disable时候的动作:

点击enable可以设置使能时的动作,点击out可以设置disable时的动作。比如我将两个都设置成reset:

两个都设置成held:

enable动作设为held,disable动作设置为reset:

enable动作设为reset,disable动作设置为held:

 

通过组合不同的enable动作与disable动作,可以使使能子系统表现出多种不同的作用。

 

 

Triggered Subsystem

触发子系统,和使能很像,包含一个trigger组件。同样的建立下面的模型:

触发子系统的动作设定,点击trigger组件即可进行设置。如设置遇到信号上升沿(rising),则保持:

如设置遇到信号下降沿(falling),则保持:

如设置不管是遇到信号上升还是下降沿(either),都保持:

改变trigger的条件,可以看到trigger模块的样子很形象地也变了。

 

 

Function-Call Subsystem

Function-Call子系统使用特定函数作为触发信号,属于触发子系统的一种,通常配合stateflow去使用。如设置如下一个stateflow chart,配合模型可以很方便地实现调度系统的设计:

 

Enabled and Triggered Subsystem

 

同时在子系统内加入enable和trigger即可创建触发和使能子系统。

触发和使能子系统内的内容只在enable不为0且监测到一个触发信号(上升沿或下降沿)时执行。

 

 

 

Resettable subsystems

通过在子系统内放置一个reset组件即可创建一个reset子系统,作用是当收到触发信号时,就重置子系统内的行为,用如下的模型来看看它的效果:

可以看到每次下降沿,最下面的积分模块输出就会发生一次重置,重新开始积分。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐