home *** CD-ROM | disk | FTP | other *** search
CUPL PLD Program format | 1991-12-08 | 2.6 KB | 88 lines |
- Name Shftcnt;
- Partno CA0003;
- Date 6/15/84;
- Revision 01;
- Designer T. Kahl;
- Company Assisted Technology, Inc.;
- Assembly None;
- Location None;
-
- /****************************************************************/
- /* */
- /* This is a four-bit UP/DOWN counter with shifting capability */
- /* */
- /****************************************************************/
- /* Allowable Target Device Types: 82S105 */
- /****************************************************************/
-
- /** Input Group **/
-
- pin 1 = clk; /* Clock input for device */
- pin [6..9] = [I3..0]; /* Mode control inputs */
- pin 19 = !oe; /* Output enable for registers */
-
- /** Output Group **/
-
- pin [15..18] = [F3..0]; /* Function outputs */
-
- /** Internal Node Group **/
-
- node [P3..0]; /* Internal state bits declared as nodes*/
-
- /** Declarations and Intermediate Variable Definitions **/
-
- field mode = [I3..0]; /* Count/Shift Mode control field */
- field count = [P3..0]; /* State bit field */
- field output = [F3..0]; /* Output bit field */
- field Q0 = [F0,P0]; /* Output and State bit field 0 */
- field Q1 = [F1,P1]; /* Output and State bit field 1 */
- field Q2 = [F2,P2]; /* Output and State bit field 2 */
- field Q3 = [F3,P3]; /* Output and State bit field 3 */
-
- right = mode:2; /* Define Counter/Shift Modes */
- up = mode:3;
- left = mode:4;
- down = mode:5;
- clear = mode:[8..F];
-
- /** Logic Equations **/
-
- output.oe = oe;
-
- Q0.s = down & !P0
- # up & !P0
- # left & P3
- # right & P1;
- Q0.r = down & P0
- # up & P0
- # left & !P3
- # right & !P1
- # clear;
- Q1.s = down & !P1 & !P0
- # up & !P1 & P0
- # left & P0
- # right & P2;
- Q1.r = down & P1 & !P0
- # up & P1 & P0
- # left & !P0
- # right & !P2
- # clear;
- Q2.s = down & !P2 & !P1 & !P0
- # up & !P2 & P1 & P0
- # left & P1
- # right & P3;
- Q2.r = down & P2 & !P1 & !P0
- # up & P2 & P1 & P0
- # left & !P1
- # right & !P3
- # clear;
- Q3.s = down & !P3 & !P2 & !P1 & !P0
- # up & !P3 & P2 & P1 & P0
- # left & P2
- # right & P0;
- Q3.r = down & P3 & !P2 & !P1 & !P0
- # up & P3 & P2 & P1 & P0
- # left & !P2
- # right & !P0
- # clear;
-