«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

Пример взаимодействующих автоматов — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
 
<graphviz>
 
<graphviz>
 
digraph G {
 
digraph G {
 +
 +
RST  [shape=none label=""]
 +
 
Free -> Wait [label="req = 1"]
 
Free -> Wait [label="req = 1"]
 
Free -> Free  
 
Free -> Free  
Строка 7: Строка 10:
 
Work -> Free [label="cal_ready = 0"]
 
Work -> Free [label="cal_ready = 0"]
 
Work -> Work  
 
Work -> Work  
 +
RST -> Free [label="reset"]
  
 
Wait [label="Thread[0|1]Wait: 01\n cal_req <= '1'\n ready <= '0'"]
 
Wait [label="Thread[0|1]Wait: 01\n cal_req <= '1'\n ready <= '0'"]
Строка 12: Строка 16:
 
Free [label="Thread[0|1]Free: 00\n cal_req <= '0'\n ready <= '1'"]
 
Free [label="Thread[0|1]Free: 00\n cal_req <= '0'\n ready <= '1'"]
  
 +
Cal_Free [label="CalFree: 0001\n cal_ready = 11"]
 +
Cal_RST [shape=none label=""]
 
Cal_Work3 [label="CalWork_3: 1000\n cal_ready = 01|10"]
 
Cal_Work3 [label="CalWork_3: 1000\n cal_ready = 01|10"]
 
Cal_Work2 [label="CalWork_2: 0100\n cal_ready = 01|10"]
 
Cal_Work2 [label="CalWork_2: 0100\n cal_ready = 01|10"]
 
Cal_Work1 [label="CalWork_1: 0010\n cal_ready = 01|10"]
 
Cal_Work1 [label="CalWork_1: 0010\n cal_ready = 01|10"]
Cal_Free [label="CalFree: 0001\n cal_ready = 11"]
 
  
Cal_Free -> Cal_Work1 [label="cal_req = 01|10|11"]
+
Cal_RST -> Cal_Free [label="reset"]
 +
 
 +
Cal_Free -> Cal_Work1 [label="cal_req = 01|10|11\nlast_thread = 0|1"]
 
Cal_Work1 -> Cal_Work2
 
Cal_Work1 -> Cal_Work2
 
Cal_Work2 -> Cal_Work3
 
Cal_Work2 -> Cal_Work3
Cal_Work3 -> Cal_Free  
+
Cal_Work3 -> Cal_Free [label="cal_req = 00"]
 
Cal_Free -> Cal_Free  
 
Cal_Free -> Cal_Free  
 +
Cal_Work3 -> Cal_Work1 [label="cal_req = 11\nlast_thread = 0|1"]
  
last_thread0 [label="last_thread: 0"]
+
last_thread_RST [shape=none label=""]
 
last_thread1 [label="last_thread: 1"]
 
last_thread1 [label="last_thread: 1"]
 +
last_thread0 [label="last_thread: 0"]
 +
 +
 +
last_thread_RST -> last_thread1 [label="reset"]
  
 
last_thread0 -> last_thread0 [label="cal_req = 01|00"]
 
last_thread0 -> last_thread0 [label="cal_req = 01|00"]

Версия 12:59, 21 сентября 2017

[svg]