全部学习汇总: GreyZhang/c_basic: little bits of c. (github.com)
C语言中经常会有某段代码或者某个函数在特性的条件下执行的处理需求,在C语言中进行这样的描述也是比较简单的。不过,在模型中这也不是什么难事儿,尤其是考虑到使用使能子系统的时候。
常用的方式有Enable子系统以及Trigger子系统,一个是在满足某个条件为真的时候执行,还有一个是满足某种信号变化的时候执行。
Enable子系统:
搭建如下示例模型:
产生脉冲的占空比设置为50%,不采用任何继承算法,设置仿真时间为100,仿真结果如下:
从上面的波形图可以看出,使能的时候输出跟随输入,不使能的时候保持之前的状态。当然,使能子系统也有其他的行为算法可以设置。
Trigger子系统:
搭建示例模型如下:
设置仿真时间为100,以下为仿真结果:
可以看出,当产生上升沿的时候输出更新到那一时刻的输入值然后保持,直到下一次上升沿产生之后再进行下一次更新。
对于功能进程的调度实现来说,这两个子系统还是比较有用的。在嵌入式的开发实践中,这种方式使用的比较频繁。虽说写代码实现这样的功能也比较简单,但是能够保证可靠性的同时又给了我们一种可以随时进行仿真验证的方式,基于模型的开发有着很大的优势。