home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / palsum5 / sync.pds < prev    next >
Text File  |  1987-08-26  |  5KB  |  239 lines

  1. TITLE SYNC_PAL
  2. PATTERN T1 FRAME SYNC PAL FOR T1 INTERFACE
  3. REVISION P1.05
  4. AUTHOR STEVE PATTERSON AND THERESA SHAFER
  5. COMPANY
  6. DATE 12/4/86
  7.  
  8. ;  This PAL decides whether the T1 Interface is in Frame Sync,
  9. ;  provisional Sync, or Out of Sync.  It controls the Frame Sync
  10. ;  process.
  11.  
  12. CHIP SYNC PAL20R4
  13.  
  14. ;PINS
  15. ;1         2        3          4          5         6        7       8
  16. T1_CKB     RSTB     NO_T1CB DATA     FPD1B     FPD2B     BC2     BC1
  17. ;9      10      11      12
  18. BC0     SOF     NC     GND
  19.  
  20. ;13    14    15    16    17    18    19    20
  21. OEB     NC     NO_FRM     SUNK     LDB     Q0     Q1     Q2
  22. ;21    22    23    24
  23. BYT_CK     BIT     NC     VCC
  24.   
  25. ;INPUTS:T1_CKB         ACTIVE LOW EXTERNAL T1 CLOCK
  26. ;    RSTB         ACTIVE LOW MASTER RESET    
  27. ;    NO_T1CB     NO T1 SIGNAL ACTIVE LOW INPUT
  28. ;    FPD(1-2)B     ACTIVE LOW FRAME PATTERN DETECT INPUTS
  29. ;    BC(2-0)        193 COUNTER 3 LSBs INPUTS USED FOR BYT_CK
  30. ;    SOF        LAST KNOWN START OF FRAME
  31. ;    DATA        INPUT DATA STREAM
  32. ;    OEB        ACTIVE LOW OUTPUT ENABLE INPUT
  33.  
  34. ;OUTPUTS:BIT        NEXT T1 BIT STREAM
  35. ;    LDB        ACTIVE LOW LOAD COUNTER SIGNAL
  36. ;    SUNK        IN SYNC STATE AND NO FRAME BIT ERROR
  37. ;    NO_FRM        FRAME LOST, IN SEARCH STATE
  38. ;    Q(2-0)        STATE VARIABLES
  39. ;          BYT_CK        8-BIT CHANNEL SAMPLE CLOCK
  40.  
  41. EQUATIONS
  42.  
  43. ;STATE MACHINE OUTPUTS AND STATE VARIABLES
  44.  
  45. /BIT     = DATA * /Q2 * /Q1 * Q0 * FPD1B * SOF
  46.     + DATA * /Q2 * /Q1 * Q0 * FPD2B * SOF
  47.     + /DATA * /SOF
  48.     + /DATA * /FPD1B * /FPD2B
  49.     + /DATA * Q2
  50.     + /DATA * Q1
  51.     + /DATA * /Q0
  52.  
  53. /LDB    := Q2 * Q1 * Q0 * /FPD1B * /FPD2B + SOF
  54.  
  55. /SUNK     = /Q2 * /Q1 * /Q0 + Q1 * Q0        ; IN FRAME SYNC
  56.  
  57. /NO_FRM    = /Q2 + /Q1 + /Q0            ; SEARCHING FOR FRAME SYNC
  58.  
  59. ; USING THE FOLLOWING STATE ASSIGNMENTS
  60. ;        A = 001     IN SYNC STATE
  61. ;    B = 010        SINGLE FRAME BIT ERROR STATE
  62. ;    C = 110     
  63. ;    D = 100
  64. ;    E = 101
  65. ;    F = 111        SEARCHING STATE
  66. ;    G = 011        SEARCHING STATE
  67. ;    H = 000        UNUSED STATE - GOES TO F
  68.  
  69. /Q2     := /FPD2B * /FPD1B * Q1 * Q0 * RSTB * NO_T1CB
  70.     + /Q2 * Q1 * /SOF * RSTB * NO_T1CB
  71.     + /Q2 * /Q1 * Q0 * RSTB * NO_T1CB
  72.     + /FPD2B * /FPD1B * Q0 * SOF * RSTB * NO_T1CB
  73.  
  74. /Q1     := /Q1 * Q0 * /SOF * RSTB * NO_T1CB
  75.     + Q2 * /Q1 * /SOF * RSTB * NO_T1CB
  76.     + /FPD2B * /FPD1B * Q2 * /Q0 * SOF * RSTB * NO_T1CB
  77.     + /FPD2B * /FPD1B * Q2 * /Q1 * RSTB * NO_T1CB
  78.     + /FPD2B * /FPD1B * /Q2 * Q0 * SOF * RSTB * NO_T1CB
  79.  
  80. /Q0     := Q1 * /Q0 * /SOF * RSTB * NO_T1CB
  81.     + Q2 * /Q0 * /SOF * RSTB * NO_T1CB
  82.     + FPD1B * /Q2 * /Q1 * Q0 * SOF  * RSTB * NO_T1CB
  83.     + FPD2B * /Q2 * /Q1 * Q0 * SOF  * RSTB * NO_T1CB
  84.     + /FPD2B * /FPD1B * Q1 * /Q0 * RSTB * NO_T1CB
  85.  
  86. ; BYTE CLOCK
  87.  
  88. /BYT_CK = BC2 + BC1 + BC0
  89.  
  90. ; ............................................................
  91. ; ............................................................
  92.  
  93. SIMULATION
  94.  
  95. TRACE_ON T1_CKB RSTB NO_T1CB DATA FPD1B FPD2B SOF
  96. Q2 Q1 Q0 BIT LDB SUNK NO_FRM
  97. BYT_CK BC2 BC1 BC0
  98.  
  99. SETF /OEB            ; ENABLE OUTPUT
  100.       /RSTB /NO_T1CB        ; RESET REGISTERS
  101. CLOCKF T1_CKB
  102.  
  103. SETF RSTB NO_T1CB    ; RESET REGISTERS
  104.      DATA
  105.      /BC2 /BC1 /BC0
  106.      FPD1B FPD2B SOF
  107. CLOCKF T1_CKB
  108.  
  109. SETF FPD1B /FPD2B SOF
  110. CLOCKF T1_CKB
  111.  
  112. SETF /FPD1B FPD2B SOF
  113. CLOCKF T1_CKB
  114.  
  115. SETF FPD1B /FPD2B /SOF
  116. CLOCKF T1_CKB
  117.  
  118. SETF /FPD1B FPD2B /SOF
  119. CLOCKF T1_CKB
  120.  
  121. SETF FPD1B FPD2B /SOF
  122. CLOCKF T1_CKB
  123.  
  124. SETF /FPD1B /FPD2B SOF
  125. CLOCKF T1_CKB
  126.  
  127. SETF FPD1B FPD2B SOF
  128.      /BC2 /BC1 BC0
  129. CLOCKF T1_CKB
  130.  
  131. SETF /FPD1B /FPD2B
  132.      /BC2 BC1 /BC0
  133. CLOCKF T1_CKB
  134.  
  135. SETF /SOF
  136.      /BC2 BC1 BC0
  137. CLOCKF T1_CKB
  138. SETF FPD1B /FPD2B SOF
  139.      BC2 /BC1 /BC0
  140. CLOCKF T1_CKB
  141.  
  142. SETF /FPD1B /FPD2B /SOF
  143.      BC2 /BC1 BC0
  144. CLOCKF T1_CKB
  145. SETF /FPD1B /FPD2B SOF
  146.      BC2 BC1 /BC0
  147. CLOCKF T1_CKB
  148.  
  149. SETF /SOF
  150.      BC2 BC1 BC0
  151. CLOCKF T1_CKB
  152. SETF /FPD1B /FPD2B SOF
  153.      /BC2 /BC1 /BC0
  154. CLOCKF T1_CKB
  155.  
  156. SETF /FPD1B FPD2B SOF
  157. CLOCKF T1_CKB
  158. SETF FPD1B FPD2B /SOF
  159.      /BC2 /BC1 BC0
  160. CLOCKF T1_CKB
  161. SETF /FPD1B /FPD2B SOF
  162. CLOCKF T1_CKB
  163.  
  164. SETF /SOF
  165. CLOCKF T1_CKB
  166. SETF /FPD1B /FPD2B SOF
  167. CLOCKF T1_CKB
  168.  
  169. SETF /SOF
  170. CLOCKF T1_CKB
  171. SETF /FPD1B /FPD2B SOF
  172. CLOCKF T1_CKB
  173.  
  174. SETF /SOF
  175. CLOCKF T1_CKB
  176. SETF /FPD1B /FPD2B SOF
  177. CLOCKF T1_CKB
  178.  
  179. SETF FPD1B /FPD2B SOF
  180. CLOCKF T1_CKB
  181. SETF FPD1B /FPD2B SOF
  182. CLOCKF T1_CKB
  183.  
  184. SETF /FPD1B /FPD2B /SOF
  185. CLOCKF T1_CKB
  186. SETF /FPD1B /FPD2B SOF
  187. CLOCKF T1_CKB
  188. SETF /FPD1B FPD2B SOF
  189. CLOCKF T1_CKB
  190. SETF /FPD1B /FPD2B SOF
  191. FOR I:=1 TO 1 DO BEGIN
  192.     CLOCKF T1_CKB
  193. END
  194. SETF FPD1B SOF
  195. CLOCKF
  196.  
  197. SETF /FPD1B /FPD2B /SOF
  198. CLOCKF T1_CKB
  199. SETF /FPD1B /FPD2B SOF
  200. CLOCKF T1_CKB
  201. SETF /FPD1B FPD2B SOF
  202. CLOCKF T1_CKB
  203. SETF /FPD1B /FPD2B SOF
  204. FOR I:=1 TO 2 DO BEGIN
  205.     CLOCKF T1_CKB
  206. END    
  207. SETF FPD1B /SOF
  208. CLOCKF
  209. SETF FPD1B SOF
  210. CLOCKF
  211.  
  212. SETF /FPD1B /FPD2B /SOF
  213. CLOCKF T1_CKB
  214. SETF /FPD1B /FPD2B SOF
  215. CLOCKF T1_CKB
  216. SETF /FPD1B FPD2B SOF
  217. CLOCKF T1_CKB
  218. SETF /FPD1B /FPD2B SOF
  219. FOR I:=1 TO 3 DO BEGIN
  220.     CLOCKF T1_CKB
  221. END    
  222. SETF FPD1B SOF
  223. CLOCKF
  224.  
  225. SETF /DATA                ; INVERT DATA
  226. SETF /FPD1B /FPD2B /SOF
  227. CLOCKF T1_CKB
  228. SETF /FPD1B /FPD2B SOF
  229. CLOCKF T1_CKB
  230. SETF /FPD1B FPD2B SOF
  231. CLOCKF T1_CKB
  232. SETF /FPD1B /FPD2B SOF
  233. FOR I:=1 TO 4 DO BEGIN
  234.     CLOCKF T1_CKB
  235. END    
  236. SETF FPD1B SOF
  237. CLOCKF
  238. TRACE_OFF
  239.