home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
palsum3
/
8count.pds
< prev
next >
Wrap
Text File
|
1987-08-26
|
4KB
|
111 lines
Title 8Count
Pattern 8count.pds
Revision A
Author Mehrnaz Hada
Company Monolithic Memories Inc. Santa Clara, CA
Date 1/15/85
;This 8-bit up/down counter has the hold and load
;capabilities. It sets all the outputs high if SET=high.
;It loads new value when SET=low and LOAD=high. Else it
;counts up if UP=high and counts down if UP=low.
CHIP 8BitCounter PAL20X8
CLK UP D0 D1 D2 D3 D4 D5 D6 D7 LD GND
/OC SET Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 CIN VCC
EQUATIONS
/Q0 := /SET* LD*/D0 ;Load D0
+ /SET*/LD*/Q0 ;Hold
:+: /SET*/LD*CIN* UP ;Increment
+ /SET*/LD*CIN*/UP ;Decrement
/Q1 := /SET* LD*/D1 ;Load D1
+ /SET*/LD*/Q1 ;Hold
:+: /SET*/LD*CIN* UP* Q0 ;Increment
+ /SET*/LD*CIN*/UP*/Q0 ;Decrement
/Q2 := /SET* LD*/D2 ;Load D2
+ /SET*/LD*/Q2 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1 ;Decrement
/Q3 := /SET* LD*/D3 ;Load D3
+ /SET*/LD*/Q3 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1* Q2 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1*/Q2 ;Decrement
/Q4 := /SET* LD*/D4 ;Load D4
+ /SET*/LD*/Q4 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1* Q2* Q3 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1*/Q2*/Q3 ;Decrement
/Q5 := /SET* LD*/D5 ;Load D5
+ /SET*/LD*/Q5 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1* Q2* Q3
* Q4 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1*/Q2*/Q3
*/Q4 ;Decrement
/Q6 := /SET* LD*/D6 ;Load D6
+ /SET*/LD*/Q6 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1* Q2* Q3
* Q4* Q5 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1*/Q2*/Q3
*/Q4*/Q5 ;Decrement
/Q7 := /SET* LD*/D7 ;Load D7
+ /SET*/LD*/Q7 ;Hold
:+: /SET*/LD*CIN* UP* Q0* Q1* Q2* Q3
* Q4* Q5* Q6 ;Increment
+ /SET*/LD*CIN*/UP*/Q0*/Q1*/Q2*/Q3
*/Q4*/Q5*/Q6 ;Decrement
SIMULATION
TRACE_ON SET LD CIN UP
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
SETF OC SET
CLOCKF CLK
CHECK Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 ;All outputs high
SETF /SET UP CIN /LD ;Counting up
FOR I:=1 TO 9 DO
BEGIN
CLOCKF CLK
IF I=8 THEN ;Checking after 8
BEGIN ;clock pulses
CHECK /Q7 /Q6 /Q5 /Q4 /Q3 Q2 Q1 Q0
END
END
SETF /CIN ;Holding
CLOCKF CLK
CLOCKF CLK ;The outputs hold to
;their values
SETF /UP CIN ;Counting down
SETF LD /D7 D6 /D5 D4 /D3 D2 /D1 D0 ;Loading some data
CLOCKF CLK
CHECK /Q7 Q6 /Q5 Q4 /Q3 Q2 /Q1 Q0 ;Checking the output
;for the loaded data
SETF /LD UP ;Counting up after
FOR I:=1 TO 5 DO ;removing HOLD, count
BEGIN ;up 3 cycles, count
CLOCKF CLK ;down for 2 cycles.
IF I=3 THEN
BEGIN
SETF /UP
END
END
TRACE_OFF