變量的賦值
在轉(zhuǎn)換中執(zhí)行賦值時(shí),所使用的值有明顯的區(qū)別。在下面的表達(dá)式中
藍(lán)色部分表示引發(fā)事件(也就是常說的e)時(shí)的值,綠色部分表示執(zhí)行所有激活鏈后將更新的值。對于以下狀態(tài)圖:
當(dāng)處于狀態(tài) 1 并引發(fā)事件 e 時(shí),執(zhí)行將按如下方式發(fā)生:
- 轉(zhuǎn)到狀態(tài) 2,更新 x 的未來值。
- 檢查優(yōu)先級(jí)為 1 的轉(zhuǎn)換,x 仍等于 0;無法進(jìn)行過渡。
- 檢查優(yōu)先級(jí)為 2 的轉(zhuǎn)換,該轉(zhuǎn)換為空且始終為 true;可以進(jìn)行轉(zhuǎn)換,轉(zhuǎn)到狀態(tài) 4。
- 激活鏈結(jié)束,x 的未來值成為它的實(shí)際值,所以 x 的值變成 1,我們停留在狀態(tài) 4。
感興趣的小伙伴可以思考一下為什么是狀態(tài)4而不是狀態(tài)3
賦值更新激活鏈末尾的變量或離散輸出的值。因此,當(dāng)相同的值被分配兩次時(shí),就會(huì)出現(xiàn)問題,我們應(yīng)該使用哪一個(gè)?
x 的值應(yīng)該是 1 還是值 18?為避免狀態(tài)圖執(zhí)行的歧義,禁止對激活鏈中的變量進(jìn)行多次更新。為了打破鏈條,您必須為其中一個(gè)轉(zhuǎn)換添加一個(gè)觸發(fā)器:
這樣,狀態(tài) 2 和狀態(tài) 3 之間的轉(zhuǎn)換就不會(huì)直接進(jìn)行;在重新更新變量 X 之前,必須在狀態(tài) 2 中引發(fā)事件 E。
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8887瀏覽量
150248 -
信號(hào)處理器
+關(guān)注
關(guān)注
1文章
255瀏覽量
25619 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2029瀏覽量
61774 -
有限狀態(tài)機(jī)
+關(guān)注
關(guān)注
0文章
52瀏覽量
10478 -
AMESIM
+關(guān)注
關(guān)注
1文章
15瀏覽量
11868
發(fā)布評(píng)論請先 登錄
有限狀態(tài)機(jī)有什么類型?
什么是有限狀態(tài)機(jī)呢
基于VHDL的MTM總線主模塊有限狀態(tài)機(jī)設(shè)計(jì)

有限狀態(tài)機(jī)_FSM_的實(shí)現(xiàn)
有限狀態(tài)機(jī)的建模與優(yōu)化設(shè)計(jì)
VHDL有限狀態(tài)機(jī)設(shè)計(jì)-ST
初學(xué)者對有限狀態(tài)機(jī)(FSM)的設(shè)計(jì)的認(rèn)識(shí)

如何使用FPGA實(shí)現(xiàn)序列檢測有限狀態(tài)機(jī)

有限狀態(tài)機(jī)設(shè)計(jì)是HDL Designer Series的關(guān)鍵應(yīng)用
基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹
如何以面向?qū)ο蟮乃枷朐O(shè)計(jì)有限狀態(tài)機(jī)

基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹
一個(gè)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)

評(píng)論