home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s199 / 1.img / TRAFFIC.ABL < prev    next >
Encoding:
Text File  |  1986-02-04  |  4.6 KB  |  143 lines

  1. module traffic
  2. flag '-r2','-ky' "Use PRESTO and leave unused OR fuses connected"
  3. title 'Traffic Signal Controller   Data I/O Corp   29 Dec 1985'
  4.  
  5.     TSC    device 'F82S167';
  6.  
  7.     Clk,SenA,SenB    pin   1, 8, 7;
  8.     PR        pin  16;    "Preset control
  9.     F3,F2,F1,F0    pin  13,11,10,9; 
  10.     P1,P0        pin  15,14;
  11.  
  12.     P7,P6,P5,P4    node 31,32,33,34; " Internal state counter
  13.  
  14.     H,L,Ck,X    = 1, 0, .C., .X.;
  15.  
  16.     Count         = [P7,P6,P5,P4];
  17.  
  18. "Define Set and Reset inputs to traffic light flip flops
  19.     GreenA    = [P1,P1.R];
  20.     YellowA    = [P0,P0.R];
  21.     RedA    = [F3,F3.R];
  22.     GreenB    = [F2,F2.R];
  23.     YellowB    = [F1,F1.R];
  24.     RedB    = [F0,F0.R];
  25.     On    = [ 1,  0 ];
  26.     Off    = [ 0,  1 ];
  27.  
  28. equations
  29.     enable F0 = 1;    "always enabled, pin 16 is preset
  30.  
  31. @page 
  32. state_diagram Count
  33.  
  34.     State 0:    case     SenA & !SenB  : 0;
  35.                 !SenA &  SenB  : 4;
  36.                  (SenA == SenB) : 1;
  37.             endcase;
  38.  
  39.     State 1:    goto  2;
  40.     State 2:    goto  3;
  41.     State 3:    goto  4;
  42.  
  43.     State 4:    GreenA    := Off;
  44.             YellowA := On ;
  45.             goto  5;
  46.  
  47.     State 5:    YellowA := Off;
  48.             RedA    := On ;
  49.             RedB    := Off;
  50.             GreenB    := On ;
  51.             goto  8;
  52.  
  53.     State 6:    goto 15;    "Unused state
  54.     State 7:    goto 15;
  55.  
  56.     State 8:    case    !SenA &  SenB  : 8;
  57.                  SenA & !SenB  : 12;
  58.                  (SenA == SenB) : 9;
  59.             endcase;
  60.  
  61.     State 9:    goto  10;
  62.     State 10:    goto  11;
  63.     State 11:    goto  12;
  64.  
  65.     State 12:    GreenB    := Off;
  66.             YellowB := On ;
  67.             goto  13;
  68.  
  69.     State 13:    YellowB := Off;
  70.             RedB    := On ;
  71.             RedA    := Off;
  72.             GreenA    := On ;
  73.             goto  0;
  74.  
  75.     State 14:    goto 15;     "Unused state
  76.     State 15:    GreenA  := On ;    "Power on initilize state
  77.             YellowA := Off;
  78.             RedA    := Off;
  79.             GreenB    := Off;
  80.             YellowB := Off;
  81.             RedB    := On ;
  82.             goto  0;
  83. @page 
  84. "        State Graph for Traffic Signal Controller
  85. "
  86. "                            SenA&!SenB
  87. "
  88. "        ---------------------->S0  GrnA/RedB----! SenA==SenB
  89. "        !                      !                v
  90. "    S13  RedA/YelB          !               S1  GrnA/RedB
  91. "        ^ <-------------       !                !
  92. "        !              !       !                !
  93. "        !              !       !                v
  94. "    S12  RedA/GrnB  !       !               S2  GrnA/RedB
  95. "        ^              !       !                !
  96. "        !              !       !                !
  97. "        !              !       !                v
  98. "    S11  RedA/GrnB  !       !               S3  GrnA/RedB
  99. "        ^              !       !                !
  100. "        !              !       !                !
  101. "        !              !       !                v
  102. "    S10  RedA/GrnB  !       !               S4  GrnA/RedB
  103. "        ^              !       ! !SenA&SenB     !
  104. "        !              !       !                !
  105. "        !              !       !--------------> v
  106. "    S9   RedA/GrnB  !                       S5  YelA/RedB
  107. "        ^              ! SenA&!SenB             !
  108. "        ! SenA==SenB   !                        !
  109. "        !-------------    S8  RedA/GrnB <----------
  110. "                        
  111. "                   !SenA&SenB
  112. "
  113. "
  114.  
  115. test_vectors        "     GreenA,YellowA,RedA,GreenB,YellowB,RedB
  116. ([Clk,PR,SenA,SenB] -> [Count,  P1  ,  P0   , F3 ,  F2  ,   F1  , F0 ])
  117.  [ Ck, 0, 1  , 0  ] -> [  X  ,  X   ,   X   , X  ,  X   ,   X   , X  ];
  118.  [ Ck, 0, 1  , 0  ] -> [  0  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  119.  [ Ck, 0, 1  , 0  ] -> [  0  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  120.  [ Ck, 0, 1  , 1  ] -> [  1  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  121.  [ Ck, 0, 1  , 1  ] -> [  2  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  122.  [ Ck, 0, 1  , 1  ] -> [  3  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  123.  [ Ck, 0, 1  , 1  ] -> [  4  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  124.  [ Ck, 0, 1  , 1  ] -> [  5  ,  L   ,   H   , L  ,  L   ,   L   , H  ];
  125.  [ Ck, 0, 1  , 0  ] -> [  8  ,  L   ,   L   , H  ,  H   ,   L   , L  ];
  126.  [ Ck, 0, 1  , 0  ] -> [ 12  ,  L   ,   L   , H  ,  H   ,   L   , L  ];
  127.  [ Ck, 0, 1  , 0  ] -> [ 13  ,  L   ,   L   , H  ,  L   ,   H   , L  ];
  128.  [ Ck, 0, 1  , 0  ] -> [  0  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  129.  [ Ck, 0, 1  , 0  ] -> [  0  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  130.  [ Ck, 0, 1  , 1  ] -> [  1  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  131.  [ Ck, 0, 1  , 1  ] -> [  2  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  132.  [ Ck, 0, 1  , 1  ] -> [  3  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  133.  
  134. test_vectors    'This Preset method works with ABEL and LogicPak'
  135. "                  GreenA,YellowA,RedA,GreenB,YellowB,RedB
  136. ([Clk,PR,SenA,SenB] -> [Count,  P1  ,  P0   , F3 ,  F2  ,   F1  , F0 ])
  137.  [ 1 , 1, 1  , 1  ] -> [ 15  ,  X   ,   X   , X  ,  X   ,   X   , X  ];
  138.  [ 1 , 0, 1  , 1  ] -> [ 15  ,  X   ,   X   , X  ,  X   ,   X   , X  ];
  139.  [ Ck, 0, 1  , 0  ] -> [  0  ,  H   ,   L   , L  ,  L   ,   L   , H  ];
  140.  
  141. end traffic
  142.  
  143.