PicoPal logic fixes

Simulation revealed errors in the CUPL logic regarding the $C800 window selection.
This commit is contained in:
David Kuder 2023-01-08 03:47:59 -05:00
parent 1407b3a20f
commit 78f7389a88
7 changed files with 208 additions and 27 deletions

View File

@ -1,7 +1,7 @@

CUPL(WM) 5.0a Serial# MW-10400000
Device g16v8ma Library DLIB-h-40-8
Created Sat Jan 07 23:18:58 2023
Created Sun Jan 08 03:46:05 2023
Name PicoPal
Partno U5
Revision 01
@ -16,7 +16,7 @@ Location None
*F0
*L00256 11111111111111111111111111111111
*L00288 11111111110111111111111111111111
*L00320 11111111111111111111101111111111
*L00320 11111111111111111111111110111111
*L00512 11111111111111111111111111111111
*L00544 11111101111111111111111111111111
*L00576 10111111111111111111111111111111
@ -25,7 +25,7 @@ Location None
*L00768 11111111111111111111111111111111
*L00800 11111111110111111111111111111011
*L01024 11111111111111111111111111111111
*L01056 11111111111111111111111011101010
*L01056 11111111111111111111110111011001
*L01792 11111111111111111111111111111111
*L01824 11111111111111111111101111111111
*L01856 11111111111111111111111110111111
@ -34,5 +34,5 @@ Location None
*L02112 00000000111111111111111111111111
*L02144 11111111111111111111111111111111
*L02176 111111111111111111
*C47DE
*EEF5
*C4880
*EEDB

View File

@ -5,7 +5,7 @@
CUPL(WM) 5.0a Serial# MW-10400000
Device g16v8ma Library DLIB-h-40-8
Created Sat Jan 07 23:18:58 2023
Created Sun Jan 08 03:46:05 2023
Name PicoPal
Partno U5
Revision 01
@ -26,7 +26,7 @@ CARDSELECT =>
EXTDISABLE =>
EXTENABLE
# DEVSELECT
# IOSELECT
EXTENABLE =>
EXTDISABLE
@ -35,15 +35,15 @@ EXTENABLE =>
# BSEL0 & BSEL1 & BSEL2 & !BSEL3
EXTOFF =>
!A8 & !A9 & !A10 & IOSTROBE
A0 & A1 & A2 & IOSTROBE
EXTSELECT =>
EXTENABLE & IOSTROBE
A8.oe =>
A0.oe =>
0
A9.oe =>
A1.oe =>
0
CARDSELECT.oe =>
@ -70,14 +70,15 @@ Pin Variable Pterms Max Min
Pol Name Ext Pin Type Used Pterms Level
--- -------- --- --- ---- ------ ------ -----
A8 14 V - - -
A9 13 V - - -
A10 11 V - - -
A0 14 V - - -
A1 13 V - - -
A2 11 V - - -
BSEL0 6 V - - -
BSEL1 5 V - - -
BSEL2 4 V - - -
BSEL3 3 V - - -
! CARDSELECT 12 V 3 7 1
CLOCK 1 V - - -
! DEVSELECT 7 V - - -
EXTDISABLE 18 V 2 7 1
EXTENABLE 17 V 4 7 1
@ -86,9 +87,8 @@ Pol Name Ext Pin Type Used Pterms Level
! IOSELECT 8 V - - -
! IOSTROBE 9 V - - -
! RESET 2 V - - -
clock 1 V - - -
A8 oe 14 D 1 1 0
A9 oe 13 D 1 1 0
A0 oe 14 D 1 1 0
A1 oe 13 D 1 1 0
CARDSELECT oe 12 D 1 1 0
EXTDISABLE oe 18 D 1 1 0
EXTENABLE oe 17 D 1 1 0
@ -120,7 +120,7 @@ Pin #19 02048 Pol x 02120 Ac1 -
Pin #18 02049 Pol x 02121 Ac1 -
00256 --------------------------------
00288 ----------x---------------------
00320 ---------------------x----------
00320 -------------------------x------
00352 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00384 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00416 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@ -146,7 +146,7 @@ Pin #16 02051 Pol - 02123 Ac1 -
00992 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pin #15 02052 Pol - 02124 Ac1 -
01024 --------------------------------
01056 -----------------------x---x-x-x
01056 ----------------------x---x--xx-
01088 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01120 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01152 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@ -191,15 +191,15 @@ LEGEND X : fuse not blown
______________
| PicoPal |
clock x---|1 20|---x Vcc
CLOCK x---|1 20|---x Vcc
!RESET x---|2 19|---x
BSEL3 x---|3 18|---x EXTDISABLE
BSEL2 x---|4 17|---x EXTENABLE
BSEL1 x---|5 16|---x EXTSELECT
BSEL0 x---|6 15|---x EXTOFF
!DEVSELECT x---|7 14|---x A8
!IOSELECT x---|8 13|---x A9
!DEVSELECT x---|7 14|---x A0
!IOSELECT x---|8 13|---x A1
!IOSTROBE x---|9 12|---x !CARDSELECT
GND x---|10 11|---x A10
GND x---|10 11|---x A2
|______________|

View File

@ -18,15 +18,16 @@ Device g16V8;
/** Inputs **/
PIN 1 = clock; /* Register Clock */
PIN 1 = CLOCK; /* Unused Register Clock */
PIN 2 = !RESET; /* System Reset */
PIN [3..6] = [BSEL3..0]; /* Buffer Mode Select */
PIN 7 = !DEVSELECT; /* $C0nX Selected -> 16B I/O */
PIN 8 = !IOSELECT; /* $CnXX Selected -> Base ROM */
PIN 9 = !IOSTROBE; /* $C8XX Selected -> Extd ROM */
PIN 11 = A10;
PIN [13..14] = [A9..8];
PIN 11 = A2;
PIN 13 = A1;
PIN 14 = A0;
/** Outputs **/
@ -41,10 +42,10 @@ PIN 18 = EXTDISABLE; /* Combinatorial */
/** Logic Equations **/
/* $CFxx disables */
EXTOFF = IOSTROBE & [A10..8]:'b'111;
EXTOFF = IOSTROBE & [A2..0]:'b'111;
/* Implement an SR Latch */
EXTDISABLE = !(EXTENABLE # DEVSELECT);
EXTDISABLE = !(EXTENABLE # IOSELECT);
EXTENABLE = !(EXTDISABLE # RESET # EXTOFF # [BSEL3..0]:'b'0111);
/* $C8XX and extended rom is enabled */

31
CUPL/picopal.si Normal file
View File

@ -0,0 +1,31 @@
Name PicoPal;
PartNo U5;
Date 27/11/22;
Revision 01;
Designer David Kuder;
Company Grizzly Adams;
Assembly None;
Location None;
Device g16V8;
ORDER: A0, A1, A2, BSEL0, BSEL1, BSEL2, BSEL3, !CARDSELECT, EXTDISABLE, EXTENABLE, EXTOFF, EXTSELECT, !DEVSELECT, !IOSELECT, !IOSTROBE, !RESET, clock;
VECTORS:
0000110*****11101
0000110*****11111
0000110*****01111
0000110*****11111
0000110*****11011
0000110*****11111
0000110*****10111
0000110*****11011
0001110*****11111
0000110*****11011
0000110*****10111
1100110*****11011
1110110*****11011
0000110*****11111
0000110*****11111
0000110*****11111

67
CUPL/picopal.sim Normal file
View File

@ -0,0 +1,67 @@
%SIGNAL
PIN 14 = A0
PIN 13 = A1
PIN 11 = A2
PIN 6 = BSEL0
PIN 5 = BSEL1
PIN 4 = BSEL2
PIN 3 = BSEL3
PIN 12 = !CARDSELECT
PIN 7 = !DEVSELECT
PIN 18 = EXTDISABLE
PIN 17 = EXTENABLE
PIN 15 = EXTOFF
PIN 16 = EXTSELECT
PIN 8 = !IOSELECT
PIN 9 = !IOSTROBE
PIN 2 = !RESET
PIN 1 = clock
%END
%FIELD
%END
%EQUATION
CARDSELECT =>
!DEVSELECT
# !IOSELECT
# EXTSELECT
EXTDISABLE =>
EXTENABLE
# !IOSELECT
EXTENABLE =>
EXTDISABLE
# !RESET
# EXTOFF
# BSEL0 & BSEL1 & BSEL2 & !BSEL3
EXTOFF =>
A0 & A1 & A2 & !IOSTROBE
EXTSELECT =>
EXTENABLE & !IOSTROBE
A0.oe =>
0
A1.oe =>
0
CARDSELECT.oe =>
1
EXTDISABLE.oe =>
1
EXTENABLE.oe =>
1
EXTOFF.oe =>
1
EXTSELECT.oe =>
1
%END

51
CUPL/picopal.so Normal file
View File

@ -0,0 +1,51 @@
CSIM(WM): CUPL Simulation Program
Version 5.0a Serial#
Copyright (c) 1983, 1998 Logical Devices, Inc.
CREATED Sun Jan 08 03:46:14 2023
LISTING FOR SIMULATION FILE: picopal.si
1: Name PicoPal;
2: PartNo U5;
3: Date 27/11/22;
4: Revision 01;
5: Designer David Kuder;
6: Company Grizzly Adams;
7: Assembly None;
8: Location None;
9: Device g16V8;
10:
11:
12: ORDER: A0, A1, A2, BSEL0, BSEL1, BSEL2, BSEL3, !CARDSELECT, EXTDISABLE, EXTENABLE, EXTOFF, EXTSELECT, !DEVSELECT, !IOSELECT, !IOSTROBE, !RESET, clock;
13:
14:
==========================
!
CE !
AXE ED!!
RTX XEII
DDT TVOO
SIEESSSS!
BBBBESNXEEETRc
SSSSLAATLLLREl
EEEEEBBOEEEOSo
AAALLLLCLLFCCCBEc
0120123TEEFTTTETk
==========================
0001: 0000110HHLLL11101
0002: 0000110HHLLL11111
0003: 0000110LHLLL01111
0004: 0000110HHLLL11111
0005: 0000110HHLLL11011
0006: 0000110HHLLL11111
0007: 0000110LLHLL10111
0008: 0000110LLHLH11011
0009: 0001110HHLLL11111
0010: 0000110HHLLL11011
0011: 0000110LLHLL10111
0012: 1100110LLHLH11011
0013: 1110110HHLHL11011
0014: 0000110HHLLL11111
0015: 0000110HHLLL11111
0016: 0000110HHLLL11111

31
CUPL/picopal.wo Normal file
View File

@ -0,0 +1,31 @@
#WAVEFORM
#H Name PicoPal;
#H PartNo U5;
#H Date 27/11/22;
#H Revision 01;
#H Designer David Kuder;
#H Company Grizzly Adams;
#H Assembly None;
#H Location None;
#H Device g16V8;
#H
#H
#H ORDER: A0, A1, A2, BSEL0, BSEL1, BSEL2, BSEL3, !CARDSELECT, EXTDISABLE, EXTENABLE, EXTOFF, EXTSELECT, !DEVSELECT, !IOSELECT, !IOSTROBE, !RESET, clock;
#H
#H
#V 0001 0000110HHLLL11101
#V 0002 0000110HHLLL11111
#V 0003 0000110LHLLL01111
#V 0004 0000110HHLLL11111
#V 0005 0000110HHLLL11011
#V 0006 0000110HHLLL11111
#V 0007 0000110LLHLL10111
#V 0008 0000110LLHLH11011
#V 0009 0001110HHLLL11111
#V 0010 0000110HHLLL11011
#V 0011 0000110LLHLL10111
#V 0012 1100110LLHLH11011
#V 0013 1110110HHLHL11011
#V 0014 0000110HHLLL11111
#V 0015 0000110HHLLL11111
#V 0016 0000110HHLLL11111