Modelagem em CSP através da
Function: Single Left/Right
Consolidation
Aluno: Leandro Santana de Melo.
Professor: Dr. Alexandre Cabral Mota
Recife, Agosto de 2014
Agenda
O que é Function
Consolidation;
Single
Left/Rigth
Modelagem da Function Single Left/Rigth
Consolidation em CSP.
2
O que é Function Single Left/Rigth
Consolidation
Nada mais é do que um sistema onde
acontece uma consolidação de um
seletor para esquerda/direta.
3
O que é Function Single Left/Rigth
Consolidation
4
O que é Function Single Left/Rigth
Consolidation
Quando o Seletor estiver na posição
Esquerda/Direita,
acontece
uma
liberação de sinal para 3 canais.
Cada canal recebe um valor true/false
dependendo da sua condição: Ou seja,
se estiver na posição Esquerda é
liberado um sinal para o canal1,
canal2, canal3. E se ele estiver na
posição direita acontecera a mesma
coisa.
5
O que é Function Single Left/Rigth
Consolidation
Cada
um desses canais possuem um;
Validade
de confirmação;
Valor de confirmação;
Validade de direta;
Valor direita;
Validade esquerda;
Valor esquerda.
6
O que é Function Single Left/Rigth
Consolidation
Pois
bem, quando o seletor estiver na
posição mencionada anteriormente,
será emitido valores booleanos do tipo
true para:
Validade de Confirmação;
Valor de Confirmação;
Valor direito e validade direito.
Já para Valor e Validade esquerdo o
valor Booleano será false
A mesma coisa caso estever na
direita
7
O que é Function Single Left/Rigth
Consolidation
E o computador recebe os sinais do
canal 1, canal 2, canal 3.
8
Modelagem da Function Single
Left/Rigth Consolidation em
CSP.
channel left, right, confirmation: Bool
datatype CHType = CH1 | CH2 | CH3
datatype CommandType = LEFT | RIGHT | CONFIRMATION
datatype CommandValueType = VALUE | VALIDITY | CONSOLIDATED
channel ch_left_value, ch_left_validity, ch_left_conf, ch_right_value,
ch_right_validity, ch_right_conf: CHType.Bool
channel ch: CHType.CommandType.CommandValueType.Bool
-- ch_left_value.CH1.true -----> ch.CH1.LEFT.VALUE.true
channel validity_more_than1
channel decide : Bool
channel left_value, left_validity : Bool
9
Modelagem da Function Single
Left/Rigth Consolidation em
CSP.
CH(i) =
let
READ =
left?l -> right?r -> confirmation?c -> PROCESS_OUTPUT(l,r,c)
PROCESS_OUTPUT(l,r,c) =
decide?vld -> PROCESS_OUTPUT_CH(ch_left_value, ch_left_validity, l, vld);
decide?vld -> PROCESS_OUTPUT_CH(ch_right_value, ch_right_validity, r, vld)
PROCESS_OUTPUT_CH(ve, vy, vl, vld) =
if vld then
ve.i.vl -> PROCESS_OUTPUT_VLD(vy, vld)
else
ve.i?vl -> PROCESS_OUTPUT_VLD(vy, vld)
PROCESS_OUTPUT_VLD(vy, vld) =
vy.i.vld -> SKIP
within READ \ {|decide|}
CHS = ||| i : CHType @ CH(i)
10
Modelagem da Function Single
Left/Rigth Consolidation em
CSP.
COMPUTER =
let
cv(vl,vld) = if vld then vl else false
within
ch_left_value.CH1?vlch1 -> ch_left_validity.CH1?vldch1 ->
ch_left_value.CH2?vlch2 -> ch_left_validity.CH2?vldch2 ->
ch_left_value.CH3?vlch3 -> ch_left_validity.CH3?vldch3 ->SKIP
11