home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
palsum5
/
portadpt.pds
< prev
next >
Wrap
Text File
|
1987-08-26
|
8KB
|
194 lines
TITLE UNIVERSAL PORT INTERFACE ADAPTOR
; FOR THE MC68020 32-Bit MICROPROCESSOR
PATTERN PORT INTERFACE.
REVISION 06.
AUTHOR VINCENT J. COLI.
COMPANY MONOLITHIC MEMORIES INC, SANTA CLARA, CA.
DATE 23 NOVEMBER 1985.
CHIP PORT_INTERFACE PAL20RA10
;PIN 1 2 3 4 5 6
/PL /CS CLK /ECS /AS SIZ1
;PIN 7 8 9 10 11 12
SIZ0 PS1 PS0 WS0 WS1 GND
;PIN 13 14 15 16 17 18
/OE /DSACK0 /DSACK1 /LLD /LMD /UMD
;PIN 19 20 21 22 23 24
/UUD Q0 Q1 A0 A1 VCC
;
;PIN DESCRIPTION
;
;PIN 1 : /PL..PRELOAD INPUT. /PL IS TAKEN INACTIVE HIGH
; : FOR NORMAL OPERATION. TO EFFECT A PRELOAD THE
; : THE OUTPUT BUFFERS ARE PUT INTO A 3 - STATE
; : CONDITION. DATA IS PLACED ON THE OUTPUT PINS
; : AND /PL IS TAKEN ACTIVE LOW. THE PRELOAD DATA
; : FALLS THROUGH INTO THE REGISTER ARRAY. THIS
; : PIN IS PULLED HIGH FOR NORMAL OPERATION.
;PIN 2 :/CS..EXTERNAL INPUT THAT IS DECODED FROM THE
; : MICROPROCESSORS HIGHER ORDER ADDRESS LINES WHICH
; : GOES ACTIVE LOW TO SELECT THE UNIVERSAL PORT
; : ADAPTOR. THIS IS AN ACTIVE LOW INPUT AND COULD
; : BE THE OUTPUT OF ANOTHER PAL DEVICE.
;PIN 3 : CLK..THE MICROPROCESSOR'S SYSTEM CLOCK DRIVES
; : THIS INPUT PIN TO SYNCHRONIZE EVENTS BETWEEN
; : THE 68020 AND THE PAL20RA10.
;PIN 4 : /ECS..INPUT FROM THE 68020 MICROPROCESSOR THAT
; : GOES LOW FOR ONE HALF OF A CLOCK CYCLE TO
; : INDICATE THAT THE MPU IS STARTING A BUS CYCLE.
;PIN 5 : /AS..ADDRESS STROBE FROM THE 68020 TO VALIDATE
; : THE MPU'S FUNCTION CODES, ADDRESS LINES, SIZE
; : OUTPUTS AND R/W CONTROL LINES.
;PIN 6 : SIZ1..SIZE OUTPUT USED WITH SIZ0 TO INDICATE
; : HOW MANY TRANSFERS REMAIN IN A GIVEN BUS CYCLE.
;PIN 7 : SIZ0..SIZE OUTPUT USED WITH SIZ1.
;
;PIN 8 - 9 : PS1,PS0..THESE TWO RESPECTIVE INPUTS TO
; : THE PAL20RA10 MAY BE HARDWIRED TO A ONE
; : OF FOUR DIGITAL CODE. THIS INDICATES WHETHER
; : THE PORT IS NOT PRESENT, BYTE WIDE, WORD WIDE
; : OR LONG WORD WIDE. SEE TRUTH TABLE FOR PORT
; : SIZE SELECTION.
;
;PIN 10 - 11 : WS1 AND WS0 RESPECTIVELY. THE ONE OF FOUR
; : CODES HARDWIRED TO THIS INPUT INDICATE
; : WHETHER ZERO, ONE, TWO OR THREE WAIT
; : STATES SHOULD BE INSERTED IN A GIVEN
; : CYCLE. SEE TRUTH TABLE FOR WAIT STATES.
;PIN 13 : ACTIVE LOW OUTPUT ENABLE FOR THE PAL20RA10.
;PIN 14 : /DSACK0..OUTPUT TO THE 68020, PART OF THE
; : ASYNCHRONOUS HANDSHAKE INDICATING, WITH /DSACK1
; : THE SIZE OF THE PORT, WHEN THE PORT IS READY FOR
; : ACCESS.
;PIN 15 : /DSACK1..OUTPUT TO THE 68020 USED WITH /DSACK0.
;PIN 16 : /LLD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
; : SELECT DATA BUS D0 - D7. ACTIVE LOW.
;PIN 17 : /LMD..A COMBINATIONSL ADDRESS DECODE OUTPUT TO
; : SELECT DATA BUS D8 - D15. ACTIVE LOW.
;PIN 18 : /UMD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
; : SELECT DATA BUS D16 - D23, FOR LONG WORD
; : TRANSFERS AND /LD FOR WORD TRANSFERS. ACTIVE LOW.
;PIN 19 : /UUD..A COMBINATIONAL ADDRESS DECODE OUTPUT TO
; : SELECT DATA BUS D24 - D31, FOR LONG WORD
; : TRANSFERS AND /UD FOR WORD TRANSFERS. AND /CS
; : BYTE TRANSFERS. ACTIVE LOW.
;PIN 20 : Q0..LEAST SIGNIFICANT BIT OUTPUT FROM A TWO
; : BIT COUNTER WHICH INCREMENTS ON EACH WAIT STATE
; : SAMPLE UNTIL THE COUNT IS EQUAL TO THE WS0, WS1
; : BINARY CODED INPUT.
;PIN 21 : Q1..MOST SIGNIFICANT BIT OUTPUT OF STATE COUNTER
; : USED WITH Q0.
;PIN 22 : A0..LEAST SIGNIFICANT ADDRESS INPUT FROM 68020.
;PIN 23 : A1..NEXT LEAST SIGNIFICANT ADDRESS INPUT FROM
; : 68020.
;
EQUATIONS
UUD = PS1*PS0*CS*AS*/A1*/A0 ;UPPER UPPER DATA BUS (D31-D24)
+ PS1*/PS0*CS*AS*/A0 ;UD FOR 16-BIT PORT
+ /PS1* PS0* CS*AS ;CS FOR 8 BIT PORT
;
/UMD = PS0*A1 ;UPPER MIDDLE DATA BUS (D23-D16)
+ /SIZ1*SIZ0*/A0 ;LD FOR 16-BIT PORT
+ /CS ;
+ /AS ;
;
LMD = PS1*PS0*CS*AS*A1*/A0 ;LOWER MIDDLE DATA BUS (D15-D8)
+ PS1*PS0*CS*AS*/SIZ1*/SIZ0*/A1 ;
+ PS1*PS0*CS*AS*SIZ1* SIZ0*/A1 ;
+ PS1*PS0*CS*AS*/SIZ0*/A1*A0 ;
;
LLD = PS1*PS0*CS*AS*SIZ1*SIZ0*A0 ;LOWER LOWER DATA BUS (D7-D0)
+ PS1*PS0*CS*AS*/SIZ1*/SIZ0 ;
+ PS1*PS0*CS*AS*A1*A0 ;
+ PS1*PS0*CS*AS*SIZ1*A1 ;
;
DSACK0 := PS0*/WS1*/WS0*/Q1*/Q0 ;NO WAIT STATES
+ PS0*/WS1* WS0*/Q1*Q0 ;ONE WAIT STATE
+ PS0* WS1*/WS0*Q1*/Q0 ;TWO WAIT STATES
+ PS0* WS1* WS0*Q1*Q0 ;THREE WAIT STATES
DSACK0.CLKF = CLK*/DSACK1*/DSACK0 ;CLOCK WHEN DSACK IS UNASSERTED
DSACK0.RSTF = /AS ;UNASSERTED ADDRESS STROBE RESETS
DSACK0.TRST = CS ;3-STATE WHEN PORT IS NOT SELECTED
;
DSACK1 := PS1*/WS1*/WS0*/Q1*/Q0 ;NO WAIT STATES
+ PS1*/WS1* WS0*/Q1*Q0 ;ONE WAIT STATE
+ PS1* WS1*/WS0* Q1*/Q0 ;TWO WAIT STATES
+ PS1* WS1* WS0*Q1*Q0 ;THREE WAIT STATES
DSACK1.CLKF = CLK*/DSACK1*/DSACK0 ;CLOCK WHEN DSACK IS UNASSERTED
DSACK1.RSTF = /AS ;
;
DSACK1.TRST = CS ;3-STATE WHEN PORT IS NOT SELECTED
;INTERNAL STATE COUNTER IS
Q0 := /Q0 + Q0*Q1 ;RESET FOR THE START OF EACH
Q0.CLKF = CLK ;MEMORY CYCLE. AND IS INCREMENTED
Q0.SETF = /AS ;BY THE SYSTEM CLOCK. THE COUNT
;SEQUENCE IS COMPARED WITH THE
Q1 := Q0*/Q1 + /Q0*Q1 + Q0*Q1 ;WAIT STATE INPUT. WHEN THE COUNT
;IS EQUAL TO NO OF WAIT STATES
Q1.CLKF = CLK ;DSACK IS ASSERTED. AT THE END
Q1.SETF = /AS ;EACH CYCLE THE COUNTER RESETS.
SIMULATION ;SIMULATION SECTION
;
TRACE_ON CLK /ECS /AS PS1 PS0 WS0 WS1 ;SET ZERO WAIT STATES FOR
/DSACK0 /DSACK1 Q0 Q1 ;FOR A 32 BIT PORT. SET
SETF /PL OE /CLK CS /AS ;INITIAL CONDITIONS. TO MARK
/ECS PS1 PS0 /WS1 /WS0 ;END OF PREVIOUS CYCLE.
FOR J := 0 TO 3 DO ;APPLY FOUR LOOPS TO TEST
BEGIN ;WAIT STATE GENERATION FIRST
IF J = 1 THEN ;FOR A 32 BIT PORT. PS0 AND
BEGIN SETF /PS0 PS1 /WS1 /WS0 ;PS1 HIGH. WITH PS0 LOW AND
END ;PS1 HIGH THE PORT IS 16
IF J = 2 THEN ;BITS WIDE. AND THE LOOP IS
BEGIN SETF PS0 /PS1 /WS1 /WS0 ;RE-RUN. WITH PS0 HIGH AND
END ;PS1 LOW THE PORT IS BYTE
IF J = 3 THEN ;WIDE. NO PORT IS PRESENT
BEGIN SETF /PS0 /PS1 /WS1 /WS0 ;WHEN PS0 AND PS1 ARE BOTH
END ;SET LOW.
SETF CLK ECS ;ECS GO INACTIVE. AT START
SETF /CLK /ECS ;OF CYCLE /ECS GOES ACTIVE
SETF AS ;FOLLOWD BY AS.
FOR I := 1 TO 2 DO ;SYSTEM CLOCK GENERATES
BEGIN ;TWO CLOCKS BEFOR THE
SETF CLK SETF /CLK ;END OF A CYCLE WITH
END ;ZERO WAIT STATES.
SETF /AS ;AT END OF CYCLE SET AS
SETF CLK ;INACTIVE THEN SET /ECS
SETF /CLK /AS /ECS /WS1 WS0 ;INACTIVE. SET WAIT STATE
SETF CLK ECS ;INPUT FOR ONE WAIT STATE
SETF /CLK /ECS ;/ECS GOES ACTIVE THEN
SETF AS ;INACTIVE TO MARK START
FOR I := 1 TO 3 DO ;OF CYCLE. FOLLOWED BY
BEGIN ;AS GOING ACTIVE. THREE
SETF CLK SETF /CLK ;SYSTEM CLOCKS ARE REQUIRED
END ;ON THE APPLICATION OF ONE
SETF /AS ;WAIT STATE. SET /AS INACTIVE
SETF CLK ;AT THE END OF CYCLE. SET
SETF /CLK /AS /ECS WS1 /WS0 ;ECS INACTIVE, AND APPLY
SETF CLK ECS ;A TWO WAIT STATE INPUT. AT
SETF /CLK /ECS ;START OF THE CYCLE ECS GOES
SETF AS ;ACTIVE THEN INACTIVE FOLLOWED
FOR I := 1 TO 4 DO ;BY THE ADDRESS STROBE. FOUR
BEGIN ;SYSTEM CLOCKS ARE REQUIRED
SETF CLK SETF /CLK ;WITH TWO WAIT STATES APPLIED.
END ;
SETF /CLK ;AT THE END OF THE CYCLE
SETF /AS ;AS GOES INACTIVE FOLLOWED
SETF CLK ;BY ECS. THE WAIT STATE
SETF /CLK /AS /ECS WS1 WS0 ;INPUT IS SET FOR THREE.
SETF CLK ECS ;AT START OF CYCLE ECS IS
SETF /CLK /ECS ;DRIVEN ACTIVE THEN INACTIVE
SETF AS ;AS GOES ACTIVE. WITH THE
FOR I := 1 TO 5 DO ;APPLICATION OF THREE WAIT
BEGIN ;STATES FIVE SYSTEM CLOCKS
SETF CLK SETF /CLK ;ARE REQUIRED.
END ;AT THE END OF THE THREE
SETF /AS ;WAIT STATE CYCLE /AS IS
SETF CLK ;DRIVEN INACTIVE.
SETF /CLK ;
END ;
TRACE_OFF ;