新浪博客

使用Simulink构建一个可编程计数器Programmable Counter

2012-07-23 00:14阅读:
使用Simulink构建一个可编程计数器Programmable Counter

可编程计数器的功能是对输入脉冲进行计数,当发生溢出时输出加1。所谓可编程就是指计数溢出值可以自由设定。本例中的计数器时用作可编程分频器,所以要求溢出的同时给计数器清零。使用Simulink构建的Programmable Counter的连接图如下图所示。
使用Simulink构建一个可编程计数器Programmable Counter
从图中可以看出,我们需要以下几个模块:
1个Trigger :Ports & Subsystems|Trigger,Trigger的作用是上升沿触发计数,为了方便可以将Trigger属性中的Show Output Port选中,这样就可以自动加1了。
1个Discrete-Time Integrator:Discrete|Discrete-Time Integrator,其作用就是对输入进行积分,即计数。将其属性中的External reset选定为rising,即可以通过上升沿触发复位。同时由于复位需要一个周期,所以将Initial condition设定为1,以抵消这个复位周期。
1个Relational Operator:Logic and Bit Operations|Relational Opera
tor,其作用是将积分结果与输入溢出值进行比较,当积分结果达到溢出值是输出为1,否则为0。
2个Unit Delay:Discrete|Unit Delay,因为比较结果输出不能直接与积分器的复位输入形成环路,所以需要一个Delay。为了信号同步,在溢出值输入与比较器输入之间也需要一个Delay。
将所有模块连接好之后就可以进行封装,同时连接好测试需要的Pulse Generator,Constant和Scope,就可以进行测试了。测试连接图和测试结果如下图所示,需要注意的是由于Delay的存在,溢出值最小设定为2,否则会出现错误,好在可编程分频器的溢出值正常情况下都大于等于2。
使用Simulink构建一个可编程计数器Programmable Counter
使用Simulink构建一个可编程计数器Programmable Counter

我的更多文章

下载客户端阅读体验更佳

APP专享