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 CUPL(WM) 5.0a Serial# MW-10400000
Device g16v8ma Library DLIB-h-40-8 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 Name PicoPal
Partno U5 Partno U5
Revision 01 Revision 01
@@ -16,7 +16,7 @@ Location None
*F0 *F0
*L00256 11111111111111111111111111111111 *L00256 11111111111111111111111111111111
*L00288 11111111110111111111111111111111 *L00288 11111111110111111111111111111111
*L00320 11111111111111111111101111111111 *L00320 11111111111111111111111110111111
*L00512 11111111111111111111111111111111 *L00512 11111111111111111111111111111111
*L00544 11111101111111111111111111111111 *L00544 11111101111111111111111111111111
*L00576 10111111111111111111111111111111 *L00576 10111111111111111111111111111111
@@ -25,7 +25,7 @@ Location None
*L00768 11111111111111111111111111111111 *L00768 11111111111111111111111111111111
*L00800 11111111110111111111111111111011 *L00800 11111111110111111111111111111011
*L01024 11111111111111111111111111111111 *L01024 11111111111111111111111111111111
*L01056 11111111111111111111111011101010 *L01056 11111111111111111111110111011001
*L01792 11111111111111111111111111111111 *L01792 11111111111111111111111111111111
*L01824 11111111111111111111101111111111 *L01824 11111111111111111111101111111111
*L01856 11111111111111111111111110111111 *L01856 11111111111111111111111110111111
@@ -34,5 +34,5 @@ Location None
*L02112 00000000111111111111111111111111 *L02112 00000000111111111111111111111111
*L02144 11111111111111111111111111111111 *L02144 11111111111111111111111111111111
*L02176 111111111111111111 *L02176 111111111111111111
*C47DE *C4880
*EEF5 *EEDB

View File

@@ -5,7 +5,7 @@
CUPL(WM) 5.0a Serial# MW-10400000 CUPL(WM) 5.0a Serial# MW-10400000
Device g16v8ma Library DLIB-h-40-8 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 Name PicoPal
Partno U5 Partno U5
Revision 01 Revision 01
@@ -26,7 +26,7 @@ CARDSELECT =>
EXTDISABLE => EXTDISABLE =>
EXTENABLE EXTENABLE
# DEVSELECT # IOSELECT
EXTENABLE => EXTENABLE =>
EXTDISABLE EXTDISABLE
@@ -35,15 +35,15 @@ EXTENABLE =>
# BSEL0 & BSEL1 & BSEL2 & !BSEL3 # BSEL0 & BSEL1 & BSEL2 & !BSEL3
EXTOFF => EXTOFF =>
!A8 & !A9 & !A10 & IOSTROBE A0 & A1 & A2 & IOSTROBE
EXTSELECT => EXTSELECT =>
EXTENABLE & IOSTROBE EXTENABLE & IOSTROBE
A8.oe => A0.oe =>
0 0
A9.oe => A1.oe =>
0 0
CARDSELECT.oe => CARDSELECT.oe =>
@@ -70,14 +70,15 @@ Pin Variable Pterms Max Min
Pol Name Ext Pin Type Used Pterms Level Pol Name Ext Pin Type Used Pterms Level
--- -------- --- --- ---- ------ ------ ----- --- -------- --- --- ---- ------ ------ -----
A8 14 V - - - A0 14 V - - -
A9 13 V - - - A1 13 V - - -
A10 11 V - - - A2 11 V - - -
BSEL0 6 V - - - BSEL0 6 V - - -
BSEL1 5 V - - - BSEL1 5 V - - -
BSEL2 4 V - - - BSEL2 4 V - - -
BSEL3 3 V - - - BSEL3 3 V - - -
! CARDSELECT 12 V 3 7 1 ! CARDSELECT 12 V 3 7 1
CLOCK 1 V - - -
! DEVSELECT 7 V - - - ! DEVSELECT 7 V - - -
EXTDISABLE 18 V 2 7 1 EXTDISABLE 18 V 2 7 1
EXTENABLE 17 V 4 7 1 EXTENABLE 17 V 4 7 1
@@ -86,9 +87,8 @@ Pol Name Ext Pin Type Used Pterms Level
! IOSELECT 8 V - - - ! IOSELECT 8 V - - -
! IOSTROBE 9 V - - - ! IOSTROBE 9 V - - -
! RESET 2 V - - - ! RESET 2 V - - -
clock 1 V - - - A0 oe 14 D 1 1 0
A8 oe 14 D 1 1 0 A1 oe 13 D 1 1 0
A9 oe 13 D 1 1 0
CARDSELECT oe 12 D 1 1 0 CARDSELECT oe 12 D 1 1 0
EXTDISABLE oe 18 D 1 1 0 EXTDISABLE oe 18 D 1 1 0
EXTENABLE oe 17 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 - Pin #18 02049 Pol x 02121 Ac1 -
00256 -------------------------------- 00256 --------------------------------
00288 ----------x--------------------- 00288 ----------x---------------------
00320 ---------------------x---------- 00320 -------------------------x------
00352 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 00352 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00384 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 00384 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00416 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 00416 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -146,7 +146,7 @@ Pin #16 02051 Pol - 02123 Ac1 -
00992 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 00992 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pin #15 02052 Pol - 02124 Ac1 - Pin #15 02052 Pol - 02124 Ac1 -
01024 -------------------------------- 01024 --------------------------------
01056 -----------------------x---x-x-x 01056 ----------------------x---x--xx-
01088 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01088 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01120 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01120 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01152 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01152 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -191,15 +191,15 @@ LEGEND X : fuse not blown
______________ ______________
| PicoPal | | PicoPal |
clock x---|1 20|---x Vcc CLOCK x---|1 20|---x Vcc
!RESET x---|2 19|---x !RESET x---|2 19|---x
BSEL3 x---|3 18|---x EXTDISABLE BSEL3 x---|3 18|---x EXTDISABLE
BSEL2 x---|4 17|---x EXTENABLE BSEL2 x---|4 17|---x EXTENABLE
BSEL1 x---|5 16|---x EXTSELECT BSEL1 x---|5 16|---x EXTSELECT
BSEL0 x---|6 15|---x EXTOFF BSEL0 x---|6 15|---x EXTOFF
!DEVSELECT x---|7 14|---x A8 !DEVSELECT x---|7 14|---x A0
!IOSELECT x---|8 13|---x A9 !IOSELECT x---|8 13|---x A1
!IOSTROBE x---|9 12|---x !CARDSELECT !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 **/ /** Inputs **/
PIN 1 = clock; /* Register Clock */ PIN 1 = CLOCK; /* Unused Register Clock */
PIN 2 = !RESET; /* System Reset */ PIN 2 = !RESET; /* System Reset */
PIN [3..6] = [BSEL3..0]; /* Buffer Mode Select */ PIN [3..6] = [BSEL3..0]; /* Buffer Mode Select */
PIN 7 = !DEVSELECT; /* $C0nX Selected -> 16B I/O */ PIN 7 = !DEVSELECT; /* $C0nX Selected -> 16B I/O */
PIN 8 = !IOSELECT; /* $CnXX Selected -> Base ROM */ PIN 8 = !IOSELECT; /* $CnXX Selected -> Base ROM */
PIN 9 = !IOSTROBE; /* $C8XX Selected -> Extd ROM */ PIN 9 = !IOSTROBE; /* $C8XX Selected -> Extd ROM */
PIN 11 = A10; PIN 11 = A2;
PIN [13..14] = [A9..8]; PIN 13 = A1;
PIN 14 = A0;
/** Outputs **/ /** Outputs **/
@@ -41,10 +42,10 @@ PIN 18 = EXTDISABLE; /* Combinatorial */
/** Logic Equations **/ /** Logic Equations **/
/* $CFxx disables */ /* $CFxx disables */
EXTOFF = IOSTROBE & [A10..8]:'b'111; EXTOFF = IOSTROBE & [A2..0]:'b'111;
/* Implement an SR Latch */ /* Implement an SR Latch */
EXTDISABLE = !(EXTENABLE # DEVSELECT); EXTDISABLE = !(EXTENABLE # IOSELECT);
EXTENABLE = !(EXTDISABLE # RESET # EXTOFF # [BSEL3..0]:'b'0111); EXTENABLE = !(EXTDISABLE # RESET # EXTOFF # [BSEL3..0]:'b'0111);
/* $C8XX and extended rom is enabled */ /* $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