home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s079 / 1.img / V8SYNC.APL < prev   
Encoding:
Text File  |  1992-11-17  |  4.4 KB  |  120 lines

  1. TITLE 'APEEL FILE: PEEL18CV8 Synchronization Circuits
  2. DESIGNER: Robin Jigour and James Khong
  3. DATE: 9/13/88'
  4.  
  5. PEEL18CV8
  6.  
  7. "DESCRIPTION
  8. "                      PEEL18CV8
  9. "                     _____  _____
  10. "                    |     \/     |
  11. "               CLK  { 1       20 }  Vcc
  12. "                I1  { 2       19 }- SYNC1
  13. "                I2  { 3       18 }- SYNC2
  14. "                I3  { 4       17 }- SYNC3
  15. "                I4  { 5       16 }- SYNC4
  16. "                I5  { 6       15 }- SYNC5      { - = output}
  17. "                I6  { 7       14 }- SYNC6
  18. "                I7  { 8       13 }- SYNC7
  19. "                I8  { 9       12 }- SYNC8
  20. "               Gnd  {10       11 }  RESET
  21. "                    |____________|
  22. "
  23. "Quite often in synchronous systems, there is a need to synchronize an
  24. "asynchronous input in order to avoid potential metastability conditions
  25. "due to set-up time violations. A common method is to use two rippled D-type
  26. "flip-flops (i.e. 74LS74).
  27. "                                 ┌────┐       ┌────┐
  28. "   Asynchronous Input  ──────────┤D  Q├───────┤D  Q├─────»  Synchronized
  29. "         System Clock  ──┬──────o┤>   │   ┌───┤>   │        Input
  30. "                         │       └────┘   │   └────┘
  31. "                         └────────────────┘
  32. "
  33. "This APEEL application example uses the internal feedback capability
  34. "(configuration# 6) of the PEEL18CV8 macro cell to emulate the above
  35. "synchronization circuit.  The internal feedback is used to create an
  36. "asynchronous latch before the register. The asynchronous latch is clocked on
  37. "the falling edge of CLK, the register is clocked on the rising edge of CLK.
  38. "
  39. "PIN ASSIGNMENTS
  40. "---------------
  41. " CLK     - System Clock
  42. " I(n)    - Asynchronous Input data signals
  43. " SYNC(n) - Synchronized Output data signals
  44. " RESET   - Synchronous Reset
  45.  
  46. "Inputs
  47.   CLK         pin 1
  48.   I1          pin 2
  49.   I2          pin 3
  50.   I3          pin 4
  51.   I4          pin 5
  52.   I5          pin 6
  53.   I6          pin 7
  54.   I7          pin 8
  55.   I8          pin 9
  56.   RESET       pin 11
  57.  
  58. "Outputs and Macro cell configurations
  59.   SYNC1       pin 19 = pos reg feed_or
  60.   SYNC2       pin 18 = pos reg feed_or
  61.   SYNC3       pin 17 = pos reg feed_or
  62.   SYNC4       pin 16 = pos reg feed_or
  63.   SYNC5       pin 15 = pos reg feed_or
  64.   SYNC6       pin 14 = pos reg feed_or
  65.   SYNC7       pin 13 = pos reg feed_or
  66.   SYNC8       pin 12 = pos reg feed_or
  67.  
  68. "Internal Nodes
  69.  AC     node 21              "Asynchronous Clear - not used
  70.  SP     node 22              "Synchronous Preset - not used
  71.  
  72.  
  73. EQUATIONS
  74.  
  75. SYNC1 := !RESET &  CLK &    I1 #  "When CLK=1, latches SYNC1 at register.
  76.          !RESET & !CLK & SYNC1 #  "When CLK=0, latches SYNC1 internally.
  77.          !RESET &   I1 & SYNC1    "Prevents hazard condition.
  78.  
  79. SYNC2 := !RESET &  CLK &    I2 #
  80.          !RESET & !CLK & SYNC2 #
  81.          !RESET &   I2 & SYNC2
  82.  
  83. SYNC3 := !RESET &  CLK &    I3 #
  84.          !RESET & !CLK & SYNC3 #
  85.          !RESET &   I3 & SYNC3
  86.  
  87. SYNC4 := !RESET &  CLK &    I4 #
  88.          !RESET & !CLK & SYNC4 #
  89.          !RESET &   I4 & SYNC4
  90.  
  91. SYNC5 := !RESET &  CLK &    I5 #
  92.          !RESET & !CLK & SYNC5 #
  93.          !RESET &   I5 & SYNC5
  94.  
  95. SYNC6 := !RESET &  CLK &    I6 #
  96.          !RESET & !CLK & SYNC6 #
  97.          !RESET &   I6 & SYNC6
  98.  
  99. SYNC7 := !RESET &  CLK &    I7 #
  100.          !RESET & !CLK & SYNC7 #
  101.          !RESET &   I7 & SYNC7
  102.  
  103. SYNC8 := !RESET &  CLK &    I8 #
  104.          !RESET & !CLK & SYNC8 #
  105.          !RESET &   I8 & SYNC8
  106.  
  107.  
  108. TEST_VECTORS
  109.  
  110. (CLK RESET I1 I2 I3 I4 I5 I6 I7 I8 -> SYNC1 SYNC2 SYNC3 SYNC4 SYNC5 SYNC6 SYNC7 SYNC8)
  111.   C    1    0  0  0  0  0  0  0  0 ->   L      L     L     L     L     L     L     L
  112.   0    0    0  0  0  0  0  0  0  0 ->   L      L     L     L     L     L     L     L
  113.   1    0    0  0  0  0  0  0  0  0 ->   L      L     L     L     L     L     L     L
  114.   1    0    1  1  1  1  1  1  1  1 ->   L      L     L     L     L     L     L     L
  115.   0    0    1  1  1  1  1  1  1  1 ->   L      L     L     L     L     L     L     L
  116.   1    0    1  1  1  1  1  1  1  1 ->   H      H     H     H     H     H     H     H
  117.   1    0    0  0  0  0  0  0  0  0 ->   H      H     H     H     H     H     H     H
  118.   0    0    0  0  0  0  0  0  0  0 ->   H      H     H     H     H     H     H     H
  119.   0    0    0  0  0  0  0  0  0  0 ->   H      H     H     H     H     H     H     H
  120.   1    0    0  0  0  0  0  0  0  0 ->   L      L     L     L     L     L     L     L