2013-07-25 26 views
0
自定義計數器邏輯的實現

我想實現在那裏在SIMULINK

in1, in2 are inputs 

out1 is the output 

if in2 = 0, out1 = 0; 

if in2 = 1, out1 = 1 after x high edges of in1 

我一直在使用「檢測崛起正」塊試過,但慘敗在SIMULINK反邏輯,因爲我沒有足夠的經驗在SIMULINK中正確執行時序圖。任何人都可以點我指出正確的方向嗎?

更新

,因爲我張貼了這個問題就是「觸發並啓用子系統」我已經採取的一種方法。我試圖設置它以便:

in2 becomes the enable signal 
in1 becomes the trigger 
in2 becomes the intput to the subsystem 
Out1 becomes the output of the subsystem 

但是我認爲上面是垃圾。不幸的是,它不是VHDL,我可以使用4-5行硬件邏輯描述來實現它。 :(

+0

嘗試使用Stateflow的圖表 – P0W

+0

@ P0W這就是你看到的東西!我沒有Stateflow許可證。我只有MATLAB和SIMULINK :( – ha9u63ar

回答

0

使用觸發,並且啓用子系統是正確的做法,但需要修改你的輸入(毫無疑問有什麼子系統內)。

不要有任何輸入子系統(除其它觸發和使能信號)。

子系統內部,

  • 設置禁用時啓用塊屬性重置狀態。
  • 將禁用outport屬性設置爲重置,並將初始條件設置爲0.
  • 創建常數(值= 1),總和和單位延遲塊中的計數器。
  • 喂反成比較來設置你的問題的「X」值常量塊。
  • 將該塊餵給輸出。

啓用時,計數器應該在輸出變高之前計算所需的步數(當觸發時)。

0

計數器邏輯可以在Simulink非常容易地實現。拿一個開關,把控制輸入作爲int1。如果int1爲1,則輸出shuld爲0否則另一個開關將其控制輸入作爲int2。如果INT2爲1回合輸出shuld是1+反饋フニツ延遲塊給前值