⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csma32.cta

📁 很好的一本书
💻 CTA
📖 第 1 页 / 共 3 页
字号:
/* * File: CTA-model of Carrier Sense Multiple Access Collision Detect *       Protocol (CSMA/CD). * modules: Sender, Medium * author:  Dirk Beyer, 2002 * last change: mvogel 2002-03-18 *  * Based on: "A case study: the CSMA/CD protocol", Sergio Yovine, *           VERIMAG-SPECTRE, November 18, 1994 */ // This module represents the template for one sender.MODULE Sender{  INPUT    propTime   : CONST; // time for signal propagation. (paper: Sigma)    transmTime : CONST; // time for data transmission. (paper: Lambda)    collDetect : SYNC;  // Collision detection by medium.  MULTREST    // Senders syncronisation events.    begin      : SYNC; // Begin of data transmitting    end        : SYNC; // End of data transmitting    busy       : SYNC; // Busy signaling by medium.  // Set initial state of automaton and clock values.  INITIAL STATE(Sender) = init AND x = transmTime + 1;  AUTOMATON Sender  {    STATE init         { TRANS { SYNC ?collDetect;                                 DO x' = x;                                 GOTO init;                               }                         TRANS { DO x' = x;                                 GOTO send;                               }                       }    STATE send         { INV FALSE;                         TRANS { SYNC #begin;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #busy;                                 DO x' = 0;                                 GOTO collDetected;                               }                         TRANS { SYNC ?collDetect;                                 DO x' = 0;                                 GOTO collDetected;                               }                       }    STATE collDetected { INV x <= propTime + propTime;                         TRANS { SYNC ?collDetect;                                 DO x' = x;                                 GOTO collDetected;                               }                         TRANS { DO x' = transmTime + 1;                                 GOTO send;                               }                       }    STATE transmit     { INV x <= transmTime;                         TRANS { SYNC ?collDetect;                                 DO x' = 0;                                 GOTO collDetected;                               }                         TRANS { GUARD x = transmTime;                                 SYNC #end;                                 DO x' = transmTime + 1;                                 GOTO init;                               }                       }  }  LOCAL    // A clock to measure the time in a state.    x:  CLOCK(5);  // transmTime + 1}// Module of the whole system.MODULE System{  LOCAL    // Constants for time bounds.    propTime = 1   : CONST; // time for signal propagation. (paper: Sigma)    transmTime = 4 : CONST; // time for data transmission. (paper: Lambda)    collDetect     : SYNC;  // Collision detect signal. (Same signal for all)    // Begin signals for every Sender.    begin1        : SYNC;    begin2        : SYNC;    begin3        : SYNC;    begin4        : SYNC;    begin5        : SYNC;    begin6        : SYNC;    begin7        : SYNC;    begin8        : SYNC;    begin9        : SYNC;    begin10        : SYNC;    begin11        : SYNC;    begin12        : SYNC;    begin13        : SYNC;    begin14        : SYNC;    begin15        : SYNC;    begin16        : SYNC;    begin17        : SYNC;    begin18        : SYNC;    begin19        : SYNC;    begin20        : SYNC;    begin21        : SYNC;    begin22        : SYNC;    begin23        : SYNC;    begin24        : SYNC;    begin25        : SYNC;    begin26        : SYNC;    begin27        : SYNC;    begin28        : SYNC;    begin29        : SYNC;    begin30        : SYNC;    begin31        : SYNC;    begin32        : SYNC;    // End signals fro every Sender.    end1          : SYNC;    end2          : SYNC;    end3          : SYNC;    end4          : SYNC;    end5          : SYNC;    end6          : SYNC;    end7          : SYNC;    end8          : SYNC;    end9          : SYNC;    end10          : SYNC;    end11          : SYNC;    end12          : SYNC;    end13          : SYNC;    end14          : SYNC;    end15          : SYNC;    end16          : SYNC;    end17          : SYNC;    end18          : SYNC;    end19          : SYNC;    end20          : SYNC;    end21          : SYNC;    end22          : SYNC;    end23          : SYNC;    end24          : SYNC;    end25          : SYNC;    end26          : SYNC;    end27          : SYNC;    end28          : SYNC;    end29          : SYNC;    end30          : SYNC;    end31          : SYNC;    end32          : SYNC;    // Busy signals for every Sender.    busy1         : SYNC;    busy2         : SYNC;    busy3         : SYNC;    busy4         : SYNC;    busy5         : SYNC;    busy6         : SYNC;    busy7         : SYNC;    busy8         : SYNC;    busy9         : SYNC;    busy10         : SYNC;    busy11         : SYNC;    busy12         : SYNC;    busy13         : SYNC;    busy14         : SYNC;    busy15         : SYNC;    busy16         : SYNC;    busy17         : SYNC;    busy18         : SYNC;    busy19         : SYNC;    busy20         : SYNC;    busy21         : SYNC;    busy22         : SYNC;    busy23         : SYNC;    busy24         : SYNC;    busy25         : SYNC;    busy26         : SYNC;    busy27         : SYNC;    busy28         : SYNC;    busy29         : SYNC;    busy30         : SYNC;    busy31         : SYNC;    busy32         : SYNC;  INITIAL STATE(Medium)= init AND x = propTime + 1;  AUTOMATON Medium  {    STATE init         { INV FALSE;                         TRANS { SYNC #begin1;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin2;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin3;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin4;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin5;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin6;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin7;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin8;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin9;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin10;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin11;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin12;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin13;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin14;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin15;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin16;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin17;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin18;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin19;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin20;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin21;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin22;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin23;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin24;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin25;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin26;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin27;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin28;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin29;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin30;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin31;                                 DO x' = 0;                                 GOTO transmit;                               }                         TRANS { SYNC #begin32;                                 DO x' = 0;                                 GOTO transmit;                               }                       }    STATE transmit     {                         TRANS { GUARD x >= propTime;                                 SYNC #busy1;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy2;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy3;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy4;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy5;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy6;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy7;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy8;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy9;                                 DO x' = propTime + 1;                                 GOTO transmit;                               }                         TRANS { GUARD x >= propTime;                                 SYNC #busy10;                                 DO x' = propTime + 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -