diff --git a/tmlcode/scp.tarchi b/tmlcode/scp.tarchi new file mode 100644 index 0000000000000000000000000000000000000000..f7b68b4b1f5bd99c0cc9211416d3cec0b38f2065 --- /dev/null +++ b/tmlcode/scp.tarchi @@ -0,0 +1,60 @@ +// Master clock frequency - in MHz +MASTERCLOCKFREQUENCY 200 + +NODE MEMORY Memory0 +SET Memory0 byteDataSize 4 + +NODE BUS Bus0 +SET Bus0 byteDataSize 4 +SET Bus0 pipelineSize 1 +SET Bus0 arbitration 0 + +NODE CPU CPU1 +SET CPU1 nbOfCores 1 +SET CPU1 byteDataSize 4 +SET CPU1 pipelineSize 5 +SET CPU1 goIdleTime 10 +SET CPU1 maxConsecutiveIdleCycles 10 +SET CPU1 taskSwitchingTime 20 +SET CPU1 branchingPredictionPenalty 2 +SET CPU1 cacheMiss 5 +SET CPU1 schedulingPolicy 0 +SET CPU1 sliceTime 10000 +SET CPU1 execiTime 1 +SET CPU1 execcTime 1 + +NODE CPU CPU0 +SET CPU0 nbOfCores 1 +SET CPU0 byteDataSize 4 +SET CPU0 pipelineSize 5 +SET CPU0 goIdleTime 10 +SET CPU0 maxConsecutiveIdleCycles 10 +SET CPU0 taskSwitchingTime 20 +SET CPU0 branchingPredictionPenalty 2 +SET CPU0 cacheMiss 18 +SET CPU0 schedulingPolicy 0 +SET CPU0 sliceTime 10000 +SET CPU0 execiTime 1 +SET CPU0 execcTime 1 + +NODE HWA HWA0 +SET HWA0 byteDataSize 4 +SET HWA0 execiTime 1 +SET HWA0 execcTime 1 + +NODE LINK link_CPU0_to_Bus0 +SET link_CPU0_to_Bus0 node CPU0 +SET link_CPU0_to_Bus0 bus Bus0 +SET link_CPU0_to_Bus0 priority 0 +NODE LINK link_CPU1_to_Bus0 +SET link_CPU1_to_Bus0 node CPU1 +SET link_CPU1_to_Bus0 bus Bus0 +SET link_CPU1_to_Bus0 priority 0 +NODE LINK link_Memory0_to_Bus0 +SET link_Memory0_to_Bus0 node Memory0 +SET link_Memory0_to_Bus0 bus Bus0 +SET link_Memory0_to_Bus0 priority 0 +NODE LINK link_HWA0_to_Bus0 +SET link_HWA0_to_Bus0 node HWA0 +SET link_HWA0_to_Bus0 bus Bus0 +SET link_HWA0_to_Bus0 priority 0 diff --git a/tmlcode/scp.tmap b/tmlcode/scp.tmap new file mode 100644 index 0000000000000000000000000000000000000000..ec772cda577d39d1948bde20f6d31edb03e62456 --- /dev/null +++ b/tmlcode/scp.tmap @@ -0,0 +1,20 @@ +TMLSPEC + #include "spec.tml" +ENDTMLSPEC + +TMLARCHI + #include "spec.tarchi" +ENDTMLARCHI + +TMLMAPPING + MAP CPU1 AppC__InterfaceDevice + SET AppC__InterfaceDevice priority 0 + MAP CPU0 AppC__TCPIP + SET AppC__TCPIP priority 0 + MAP CPU0 AppC__Application + SET AppC__Application priority 0 + MAP CPU0 AppC__SmartCard + SET AppC__SmartCard priority 0 + MAP HWA0 AppC__Timer + SET AppC__Timer priority 0 +ENDTMLMAPPING diff --git a/tmlcode/scp.tml b/tmlcode/scp.tml new file mode 100644 index 0000000000000000000000000000000000000000..81b6d37b8e58e518975f4e9f19d25cbb8602a9f6 --- /dev/null +++ b/tmlcode/scp.tml @@ -0,0 +1,330 @@ +// TML Application - FORMAT 0.1 +// Application: /Users/ludovicapvrille/TTool/modeling/DIPLODOCUS/SmartCardProtocol.xml +// Generated: Tue Jun 25 14:16:04 CEST 2019 + +// Channels +CHANNEL AppC__fromAtoT BRNBW 4 OUT AppC__Application IN AppC__TCPIP +CHANNEL AppC__fromDtoSC BRNBW 40 OUT AppC__InterfaceDevice IN AppC__SmartCard +CHANNEL AppC__fromPtoT BRNBW 4 OUT AppC__SmartCard IN AppC__TCPIP +CHANNEL AppC__fromSCtoD BRNBW 40 OUT AppC__SmartCard IN AppC__InterfaceDevice +CHANNEL AppC__fromTtoA BRNBW 4 OUT AppC__TCPIP IN AppC__Application +CHANNEL AppC__fromTtoP BRNBW 4 OUT AppC__TCPIP IN AppC__SmartCard +CHANNEL AppC__temp NBRNBW 4 OUT AppC__TCPIP IN AppC__TCPIP + +// Events +EVENT AppC__abort__AppC__abort() NINB 1 AppC__Application AppC__TCPIP +EVENT AppC__answerToReset__AppC__answerToReset() NINB 1 AppC__SmartCard AppC__InterfaceDevice +EVENT AppC__close__AppC__close() NINB 1 AppC__Application AppC__TCPIP +EVENT AppC__connectionOpened__AppC__connectionOpened() NIB 8 AppC__Application AppC__SmartCard +EVENT AppC__data_Ready_SC__AppC__data_Ready_SC() INF AppC__SmartCard AppC__InterfaceDevice +EVENT AppC__data_Ready__AppC__data_Ready(int, bool) INF AppC__InterfaceDevice AppC__SmartCard +EVENT AppC__end__AppC__end() NINB 1 AppC__InterfaceDevice AppC__SmartCard +EVENT AppC__open__AppC__open() NINB 1 AppC__Application AppC__TCPIP +EVENT AppC__opened__AppC__opened() INF AppC__TCPIP AppC__Application +EVENT AppC__pTSConfirm__AppC__pTSConfirm() NINB 1 AppC__SmartCard AppC__InterfaceDevice +EVENT AppC__pTS__AppC__pTS() NINB 1 AppC__InterfaceDevice AppC__SmartCard +EVENT AppC__receive_Application__AppC__receive_Application() INF AppC__TCPIP AppC__Application +EVENT AppC__receive__AppC__receive() INF AppC__SmartCard AppC__TCPIP +EVENT AppC__reset__AppC__reset() NINB 1 AppC__InterfaceDevice AppC__SmartCard +EVENT AppC__send_TCP__AppC__send_TCP() INF AppC__Application AppC__TCPIP +EVENT AppC__send__AppC__send() INF AppC__TCPIP AppC__SmartCard +EVENT AppC__stop__AppC__stop() NINB 1 AppC__TCPIP AppC__Timer +EVENT AppC__timeOut__AppC__timeOut() NINB 1 AppC__Timer AppC__TCPIP + +// Requests +REQUEST AppC__activation() AppC__InterfaceDevice AppC__SmartCard +REQUEST AppC__req_Timer() AppC__TCPIP AppC__Timer +REQUEST AppC__start_Application() AppC__SmartCard AppC__Application +REQUEST AppC__start_TCP_IP() AppC__Application AppC__SmartCard AppC__TCPIP + +TASK AppC__Application + TASKOP + //Local variables + + //Behavior + NOTIFY AppC__open__AppC__open + WAIT AppC__opened__AppC__opened + NOTIFY AppC__connectionOpened__AppC__connectionOpened + EXECI 10 + WRITE AppC__fromAtoT 1 + NOTIFY AppC__send_TCP__AppC__send_TCP + RAND + CASERAND 50 + NOTIFY AppC__close__AppC__close + ENDCASERAND + CASERAND 50 + NOTIFY AppC__abort__AppC__abort + ENDCASERAND + ENDRAND +ENDTASK + +TASK AppC__InterfaceDevice + TASKOP + //Local variables + int resetType = 0 + int x = 0 + int i = 0 + int nbOfComputedPackets = 1 + bool b + + //Behavior + NOTIFYREQUEST AppC__activation + NOTIFY AppC__reset__AppC__reset + WAIT AppC__answerToReset__AppC__answerToReset + NOTIFY AppC__pTS__AppC__pTS + WAIT AppC__pTSConfirm__AppC__pTSConfirm + FOR(i=0; i<nbOfComputedPackets; i = i +1) + RAND + CASERAND 50 + WRITE AppC__fromDtoSC 1 + NOTIFY AppC__data_Ready__AppC__data_Ready x b + ENDCASERAND + CASERAND 50 + NOTIFIED AppC__data_Ready_SC__AppC__data_Ready_SC x + IF (x==0) + ORIF (x>0) + WAIT AppC__data_Ready_SC__AppC__data_Ready_SC + READ AppC__fromSCtoD 1 + ENDIF + ENDCASERAND + ENDRAND + ENDFOR + NOTIFY AppC__end__AppC__end +ENDTASK + +TASK AppC__SmartCard + TASKOP + //Local variables + int resetType = 0 + int a = 0 + bool b + int i = 0 + int j = 0 + int x = 0 + int tcpctrl__a + int tcpctrl__state + int t + + //Behavior + WAIT AppC__reset__AppC__reset + NOTIFY AppC__answerToReset__AppC__answerToReset + WAIT AppC__pTS__AppC__pTS + NOTIFY AppC__pTSConfirm__AppC__pTSConfirm + NOTIFYREQUEST AppC__start_TCP_IP + NOTIFYREQUEST AppC__start_Application + WAIT AppC__connectionOpened__AppC__connectionOpened + FOR(j=0; x==0; j = j) + SELECTEVT + CASE AppC__send__AppC__send + READ AppC__fromTtoP 1 + NOTIFY AppC__data_Ready_SC__AppC__data_Ready_SC + WRITE AppC__fromSCtoD 1 + ENDCASE + CASE AppC__data_Ready__AppC__data_Ready t b + READ AppC__fromDtoSC 1 + NOTIFY AppC__receive__AppC__receive + WRITE AppC__fromPtoT 1 + ENDCASE + CASE AppC__end__AppC__end + ENDCASE + ENDSELECTEVT + ENDFOR +ENDTASK + +TASK AppC__TCPIP + TASKOP + //Local variables + int wind = 64 + int seqNum = 0 + int i + int j + int a = 0 + int b = 0 + int tcpctrl__a + int tcpctrl__state + + //Behavior + FOR(i=0; (tcpctrl__a==0); i = i) + NOTIFIED AppC__abort__AppC__abort tcpctrl__a + IF (tcpctrl__a>0) + WAIT AppC__abort__AppC__abort + ORIF (tcpctrl__a==0) + SELECTEVT + CASE AppC__timeOut__AppC__timeOut + READ AppC__temp 1 + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + ENDCASE + CASE AppC__receive__AppC__receive + READ AppC__fromPtoT 1 + EXECI b b + RAND + CASERAND 33 + RAND + CASERAND 33 + NOTIFY AppC__stop__AppC__stop + READ AppC__temp 1 + RAND + CASERAND 50 + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + WRITE AppC__temp 1 + ENDCASERAND + CASERAND 50 + IF (tcpctrl__state==2) + tcpctrl__state=4 + ORIF (tcpctrl__state==4) + ELSE + IF (tcpctrl__state==5) + tcpctrl__state=6 + ORIF (tcpctrl__state==7) + tcpctrl__state=8 + tcpctrl__state=0 + ELSE + IF (tcpctrl__state==10) + tcpctrl__state=0 + ELSE + ENDIF + ENDIF + ENDIF + ENDCASERAND + ENDRAND + ENDCASERAND + CASERAND 33 + IF (tcpctrl__state==4) + EXECI b + WRITE AppC__fromTtoA 1 + NOTIFY AppC__receive_Application__AppC__receive_Application + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + ELSE + ENDIF + ENDCASERAND + CASERAND 33 + IF (tcpctrl__state==1) + EXECI b + seqNum=seqNum+wind + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + NOTIFYREQUEST AppC__req_Timer + WRITE AppC__temp 1 + tcpctrl__state=2 + ORIF (tcpctrl__state==3) + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=2 + ELSE + ENDIF + ENDCASERAND + ENDRAND + ENDCASERAND + CASERAND 33 + IF (tcpctrl__state==0) + tcpctrl__state=1 + ORIF (tcpctrl__state==0) + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=3 + ELSE + ENDIF + ENDCASERAND + CASERAND 33 + IF (tcpctrl__state==5) + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=7 + ORIF (tcpctrl__state==4) + EXECI b + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=9 + ELSE + IF (tcpctrl__state==6) + EXECI b + WRITE AppC__fromTtoP 1 + tcpctrl__state=8 + NOTIFY AppC__send__AppC__send + tcpctrl__state=0 + ELSE + ENDIF + ENDIF + ENDCASERAND + ENDRAND + ENDCASE + CASE AppC__close__AppC__close + IF ((tcpctrl__state==2)or(tcpctrl__state==4)) + EXECI b + seqNum=seqNum+wind + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=5 + NOTIFYREQUEST AppC__req_Timer + WRITE AppC__temp 1 + ORIF (tcpctrl__state==9) + EXECI b + seqNum=seqNum+wind + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=10 + NOTIFYREQUEST AppC__req_Timer + WRITE AppC__temp 1 + ELSE + IF (tcpctrl__state==1) + tcpctrl__state=0 + ELSE + ENDIF + ENDIF + ENDCASE + CASE AppC__send_TCP__AppC__send_TCP + IF (tcpctrl__state==4) + READ AppC__fromAtoT 1 + EXECI b + seqNum=seqNum+wind + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + NOTIFYREQUEST AppC__req_Timer + WRITE AppC__temp 1 + ORIF (tcpctrl__state==1) + EXECI b + seqNum=seqNum+wind + WRITE AppC__fromTtoP 1 + NOTIFY AppC__send__AppC__send + tcpctrl__state=3 + NOTIFYREQUEST AppC__req_Timer + WRITE AppC__temp 1 + ELSE + ENDIF + ENDCASE + CASE AppC__open__AppC__open + NOTIFY AppC__opened__AppC__opened + IF (tcpctrl__state==0) + tcpctrl__state=1 + ELSE + ENDIF + ENDCASE + ENDSELECTEVT + ENDIF + ENDFOR + tcpctrl__state=0 +ENDTASK + +TASK AppC__Timer + TASKOP + //Local variables + int x = 0 + + //Behavior + NOTIFIED AppC__stop__AppC__stop x + IF (x==0) + NOTIFY AppC__timeOut__AppC__timeOut + ORIF (x>0) + WAIT AppC__stop__AppC__stop + ENDIF +ENDTASK +