home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s078 / 1.img / WAITGEN.PLD < prev    next >
Encoding:
CUPL PLD Program format  |  1991-12-08  |  2.0 KB  |  59 lines

  1. Name      Waitgen;
  2. Partno    P9000183;
  3. Date      03/14/85;
  4. Revision  02;
  5. Designer  Osann;
  6. Company   ATI;
  7. Assembly  PC Memory;
  8. Location  U106;
  9.  
  10. /********************************************************/
  11. /* This device generates chip select signals for one    */
  12. /* 8Kx8 ROM and two 2Kx8 static RAMs.  It also drives   */
  13. /* the system READY line to  insert a wait-state of at  */
  14. /* least one CPU clock for ROM accesses.                */
  15. /********************************************************/
  16. /** Allowable Target Device Types : PAL16R4, 82S155    **/
  17. /********************************************************/
  18. /**  Inputs  **/
  19.  
  20. PIN 1        = cpu_clk   ;    /* CPU clock              */
  21. PIN [2..6]   = [a15..11] ;    /* CPU Address Bus        */
  22. PIN [7,8]    = ![memw,memr] ; /* Memory Data Strobes    */
  23. PIN 9        = reset     ;    /* System Reset           */
  24. PIN 11       = !oe       ;    /* Output Enable          */
  25.  
  26. /**  Outputs  **/
  27.  
  28. PIN 19       = !rom_cs   ;     /* ROM Chip Select       */
  29. PIN 18       = ready     ;     /* CPU ready signal      */
  30. PIN 15       = wait1     ;     /* Start Wait State      */
  31. PIN 14       = wait2     ;     /* End Wait State        */
  32. PIN [13,12]  = ![ram_cs1..0] ; /* RAM Chip Selects      */
  33.  
  34. /** Declarations and Intermediate Variable Definitions **/
  35.  
  36. Field memadr = [a15..11] ; /* Give The Address Bus      */
  37.                            /* the Name "memadr"         */
  38.  
  39. memreq = memw # memr ; /* Create The Intermediate       */
  40.                        /* Variable "memreq"             */
  41.  
  42. select_rom = memr & memadr:[0000..1FFF] ;   /* = rom_cs */
  43.  
  44. /**  Logic Equations  **/
  45.  
  46. rom_cs = select_rom ;
  47.  
  48. ram_cs0 = memreq & memadr:[2000..27FF] ;
  49.  
  50. ram_cs1 = memreq & memadr:[2800..2FFF] ;
  51.  
  52. wait1.d = select_rom /* = rom_cs */ & !reset ;
  53.                                    /* Synchronous Reset */
  54. wait2.d = select_rom &  wait1 ;    /* wait1 delayed     */
  55.  
  56. ready.oe = select_rom ; /* Turn Buffer ON */
  57.  
  58. ready = wait2 ; /* End Wait */
  59.