I am hoping someone on the forum maybe familiar (perhaps distantly familiar) with GAL/PAL equations for a flip flop.
I have sought help on a couple of other forums but so far no help.
I am relatively new to GALS (and PALS) and just recently successfully flashed my first GAL16V8A (sourced from the collection of components at the space) using an old EEPROM burner and PALASM as the compiler.
I am using it to trigger a data bus read for a given set of addresses. I hacked the equations by looking at examples which seems to work well.
Now I am struggling to implement a flip flop which I think should be a trivial task.
The output (Z) is required to toggle every time there is an address match. i.e. every time X has a positive going edge.
So far I have this for the address matches
/X = /WE * /CS * J*/I*/H*/G*F*/E*/D*C*/B*A + ;Addr 225 [8A25]
/WE * /CS * J*/I*/H*/G*F*/E*/D*C*/B*/A +;Addr 224 [8A24]
/WE * /CS * J*/I*/H*/G*F*/E*/D*/C*B*A +;Addr 223 [8A23]
/WE * /CS * J*/I*/H*/G*F*/E*/D*/C*B*/A +;Addr 222 [8A22]
/WE * /CS * J*/I*/H*/G*F*/E*/D*/C*/B*A +;Addr 221 [8A21]
/WE * /CS * J*/I*/H*/G*F*/E*/D*/C*/B*/A ;Addr 220 [8A20]
y = /X;
which works well but the following fails to compile.
Z = /Z;
Z.clkf = X;
Hoping someone may be familiar and set me straight.
This is for a ESP8266 based project that captures the latest high score as it occurs from the data bus on an original 1980's galaga board set and update a webserver with date, high score and initials.
Initial results are promising.
More details are here
https://hackaday.io/project/17936-galaga-meets-iotPALASM Log below.
Justin
galaga.pds
PALASM4 PARSER - MARKET RELEASE 1.5 (7-10-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
***********************************
* PALASM PARSER LISTING *
***********************************
LINE # |----+----1----+----2----+----3----+----4----+----5----+----6----+
1 |;PALASM Design Description
2 |
3 |;---------------------------------- Declaration Segment ------------
4 |TITLE GALAGA.PDS
5 |PATTERN A
6 |REVISION 1.0
7 |AUTHOR J.RICHARDS
8 |COMPANY ORNEA
9 |DATE 3 Nov 2016
10 |
11 |CHIP DECODER PALCE16V8 ;really a GAL16V8A but PALASM does know GALS
12 |
13 |;---------------------------------- PIN Declarations ---------------
14 |PIN 2 A COMBINATORIAL ; INPUT
15 |PIN 3 B COMBINATORIAL ; INPUT
16 |PIN 4 C COMBINATORIAL ; INPUT
17 |PIN 5 D COMBINATORIAL ; INPUT
18 |PIN 6 E COMBINATORIAL ; INPUT
19 |PIN 7 F COMBINATORIAL ; INPUT
20 |PIN 8 G COMBINATORIAL ; INPUT
21 |PIN 9 H COMBINATORIAL ; INPUT
22 |PIN 10 GND ; INPUT
23 |PIN 12 I COMBINATORIAL ; INPUT
24 |PIN 13 J COMBINATORIAL ; INPUT
25 |PIN 14 X COMBINATORIAL ; OUTPUT
26 |PIN 15 WE COMBINATORIAL ; INPUT
27 |PIN 16 CS COMBINATORIAL ; INPUT
28 |PIN 17 Y COMBINATORIAL ; OUTPUT
29 |PIN 18 Z COMBINATORIAL ; OUTPUT
30 |PIN 19 CLK
31 |PIN 20 VCC ; INPUT
32 |
33 |;----------------------------------- Boolean Equation Segment ------
34 |EQUATIONS
35 |
36 |/X = /WE * /CS * J*/I*/H*/G*F*/E*/D*C*/B*A + ;Addr 225 [8A25]
37 | /WE * /CS * J*/I*/H*/G*F*/E*/D*C*/B*/A +;Addr 224 [8A24]
38 | /WE * /CS * J*/I*/H*/G*F*/E*/D*/C*B*A +;Addr 223 [8A23]
39 | /WE * /CS * J*/I*/H*/G*F*/E*/D*/C*B*/A +;Addr 222 [8A22]
40 | /WE * /CS * J*/I*/H*/G*F*/E*/D*/C*/B*A +;Addr 221 [8A21]
41 | /WE * /CS * J*/I*/H*/G*F*/E*/D*/C*/B*/A ;Addr 220 [8A20]
42 |
43 |Y = /X;
44 |
45 |Z = /Z;
46 |Z.clkf = X;
47 |
48 |
49 |;-------------------------------------------------------------------
%% PARSE %% No errors. No warnings.
%% PARSE %% File processed successfully. File: galaga.pds
PALASM4 BPP - MARKET RELEASE 1.5 (7-10-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
EQUATIONS SEGMENT
Processing equation for ====>/X
Processing equation for ====>Y
Processing equation for ====>Z
Processing equation for ====>Z.CLKF
%% BPP %% Maximum memory allocated was: 22214 bytes.
%% BPP %% File Processed Successfully. File: galaga.pds.
%% BPP %% ERROR count: 0 WARNING count: 0
PALASM4 EXPAND - MARKET RELEASE 1.5 (7-10-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
....
%% EXPAND %% Maximum memory allocated was: 12216 bytes.
%% EXPAND %% File Processed Successfully. File: galaga.pds.
%% EXPAND %% ERROR count: 0 WARNING count: 0
PALASM4 BPP - MARKET RELEASE 1.5 (7-10-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
EQUATIONS SEGMENT
Processing equation for ====>/X
Processing equation for ====>Y
Processing equation for ====>Z
Processing equation for ====>Z.CLKF
%% BPP %% Maximum memory allocated was: 22214 bytes.
%% BPP %% File Processed Successfully. File: galaga.pds.
%% BPP %% ERROR count: 0 WARNING count: 0
PALASM4 MINIMIZE - MARKET RELEASE 1.5 (7-10-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
....
|> WARNING L1810 Gate splitting not supported for device PAL16V8.
Ignoring -p option.
Processing equation ====> Z MINIMIZE_ON (1 pt ---> 1 pt)
Processing equation ====> Z.CLKF MINIMIZE_ON (1 pt ---> 1 pt)
|> WARNING L1810 Gate splitting not supported for device PAL16V8.
Ignoring -p option.
Processing equation ====> Y MINIMIZE_ON (1 pt ---> 1 pt)
|> WARNING L1810 Gate splitting not supported for device PAL16V8.
Ignoring -p option.
Processing equation ====> /X MINIMIZE_ON (4 pt ---> 2 pt)
%% MINIMIZE %% Maximum memory allocated was: 13266 bytes.
%% MINIMIZE %% File Processed Successfully. File: galaga.pds.
%% MINIMIZE %% ERROR count: 0 WARNING count: 3
PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
FILE galaga.pds
TITLE GALAGA.PDS
Equation being processed for output ==>> Z.CLKF
|> ERROR X3300
Wrong clock pin X was used for Z.CLKF.
Equation being processed for output ==>> /X
Equation being processed for output ==>> Y
Equation being processed for output ==>> Z
The fuse plot is stored in ===>galaga.XPT
Did not produce JEDEC output.
%% PAL ASSEMBLER %% Maximum memory allocated was: 12672 bytes.
%% PAL ASSEMBLER %% File Processing Terminated. File: galaga.pds.
%% PAL ASSEMBLER %% ERROR count: 1 WARNING count: 0