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

Пример взаимодействующих автоматов

Материал из Wiki
Перейти к: навигация, поиск

[svg]

Содержание

Расширенный вариант графа переходов

[svg]

Очень Расширенный вариант графа переходов

[svg]

Pictures

Граф переходов для 3 потоков

[svg]

Подграф для LastThread

[svg]


Описание ПРАЛУ

TITLE fsm_multi
FORMAT  PRL
AUTHOR Bibilo
DATE 18/01/05
PROJECT LOCON_VHDL
DCL_PIN 
EXT
INP
req0 req1 req2 
OUT
ready0 ready1 ready2
INTER
cal_req0 cal_req1 cal_req2
cal_ready0 cal_ready1 cal_ready2
last_thread
END_PIN
BLOCK pott1main
 
1: > 
    ready0 *  ready1 * ready2
 
   > Thread0_00.Thread1_00.Thread2_00.CU_0001.last_thread1
 
Thread0_00: -req0           >  ^ready0 > Thread0_01
Thread0_01: -^cal_ready0    >  ^ready0 > Thread0_10
Thread0_10: -cal_ready0     >   ready0 > Thread0_00
 
Thread1_00: -req1           >  cal_req1 * ^ready1 > Thread1_01
Thread1_01: -^cal_ready1    >  cal_req1 * ^ready1 > Thread1_10
Thread1_10: -cal_ready1     > ^cal_req1 *  ready1 > Thread1_00
 
Thread2_00: - req2          >  cal_req2 * ^ready2 > Thread2_01
Thread2_01: -^cal_ready2    >  cal_req2 * ^ready2 > Thread2_10
Thread2_10: - cal_ready2    > ^cal_req2 *  ready2 > Thread2_00
 
Thread0_01.Thread1_00.Thread2_00 : - > > Thread0_10.Thread1_00.Thread2_00.CU_0010
last_thread1.Thread0_01.Thread1_01.Thread2_00 : - > > Thread0_10.Thread1_00.Thread2_00.CU_0010
last_thread2.Thread0_01 : - > > Thread0_10.Thread1_00.Thread2_00.CU_0010
 
Thread0_00.Thread1_01.Thread2_00 : - > > Thread0_00.Thread1_01.Thread2_00.CU_0010
last_thread2.Thread0_00.Thread1_01.Thread2_01 : - > > Thread0_00.Thread1_01.Thread2_00.CU_0010
last_thread0.Thread1_01 : - > > Thread0_00.Thread1_01.Thread2_00.CU_0010
 
 
Thread0_00.Thread1_00.Thread2_01 : - > > Thread0_00.Thread1_00.Thread2_01.CU_0010
last_thread0.Thread0_01.Thread1_00.Thread2_01 : - > > Thread0_00.Thread1_00.Thread2_01.CU_0010
last_thread1.Thread2_01  : - > > Thread0_00.Thread1_00.Thread2_01.CU_0010
 
CU_0001: - 
Thread0_00 * ^cal_req1 * ^cal_req2 +
last_thread=1 * cal_req0 * cal_req1 * ^cal_req2 +
           last_thread=2 * cal_req0
              > ^cal_ready0 *  cal_ready1 *  cal_ready2 > CU_0010
- ^cal_req0 * cal_req1 * ^cal_req2 +
           last_thread=2 * ^cal_req0 * cal_req1 * cal_req2 +
           last_thread=0 * cal_req1           
            >  cal_ready0 * ^cal_ready1 *  cal_ready2 > CU_0010
         - ^cal_req0 * ^cal_req1 * cal_req2 +
           last_thread=0 * cal_req0 * ^cal_req1 * cal_req2 +
           last_thread=1 * cal_req2 
            >  cal_ready0 *  cal_ready1 * ^cal_ready2 > CU_0010
CU_0010: CU_0100
CU_0100: CU_1000
CU_1000: - ^cal_req0 * ^cal_req1 * ^cal_req2 
            > cal_ready0 *  cal_ready1 * cal_ready2 > CU_0001
 
last_thread0:
last_thread1:
last_thread2:
 
END_BLOCK pott1main
END_pott1

NEW