Подскажите как записать на WinCupl следующее уравнение:
if(!A15 & !A8 & !A9 & !RD) then [Q3..Q1] = [D3..1];
т.е. что бы при лог. 0 на входах A15,A8,A9 и RD - сигналы [D3..1] передавались на выходы [Q3..Q1]
вопрос по WinCupl ...
ibiza11 писал(а):хорошо, что вы ответили на свой вопрос, возможно это кому нибудь пригодится. а не помогли, т.к. , скорее всего, не знакомы к Куплом. я лично тоже не знаю его.
Так там от винкапла только синтаксис логических функций. # - или &-и, !-не.
А вот пример листинга WCUPL:
LISTING FOR LOGIC DESCRIPTION FILE: G_661342.pld Page 1
CUPL(WM): Universal Compiler for Programmable Logic
Version 5.0a Serial# 60008009
Copyright (c) 1983, 1998 Logical Devices, Inc.
Created Mon Sep 01 15:44:18 2008
1:Name PAL22V10_661342;
2:Partno CA0010;
3:Revision 02;
4:Date 9/22/84;
5:Designer Rokl;
6:Company Metro;
7:Assembly DS Multi-Function;
8:Location U12;
9:Device G22V10;
10:
11:/** Inputs **/
12:
13:pin 1 = RES; /* system reset */
14:pin [2..9] = [a0..a7];
15:pin 10 = WRIN; /* write strobe */
16:pin 11 = IOSEL; /* memory write strobe */
17:pin 13 = ECLK; /* same signal as ioacc */
18:
19:/** Outputs **/
20:
21:pin 14 = !LATCH2;
22:pin 15 = !LATCH1;
23:pin 16 = RD244B;
24:pin 17 = RD244A;
25:pin 18 = DIS2; /* on-board I/O being accessed */
26:pin 19 = DIS1; /* parallel port chip select */
27:pin 20 = PIA; /* real-time clock chip select */
28:pin 21 = OE; /* serial port #2 chip select */
29:pin 22 = WR;
30:pin 23 = RD; /* serial port #1 chip select */
31:
32:/** Declarations and Intermediate Variable Definitions **/
33:
34:field address = [a0..a7];
35:
36:/** Logic Equations **/
37:
38:ADR_SEL00 = !(address:[00]);
39:ADR_SEL01 = !(address:[01]);
40:ADR_SEL02 = address:[02];
41:ADR_SEL03 = address:[03];
42:
43:PIA_SEL = address:[10..1F];
44:DIS1_SEL = address:[40..7F];
45:DIS2_SEL = address:[80..BF];
46:
47:OE = !ECLK # IOSEL;
48:RD224A = !ECLK # IOSEL # !RES # !WRIN # ADR_SEL01;
49:RD224B = !ECLK # IOSEL # !RES # !WRIN # ADR_SEL00;
50:LATCH1 = ECLK & !IOSEL & RES & !WRIN & ADR_SEL03;
51:LATCH2 = ECLK & !IOSEL & RES & !WRIN & ADR_SEL02;
52:PIA = !ECLK # IOSEL # !RES # !PIA_SEL;
53:DIS1 = !ECLK # IOSEL # !RES # !DIS1_SEL;
LISTING FOR LOGIC DESCRIPTION FILE: G_661342.pld Page 2
CUPL(WM): Universal Compiler for Programmable Logic
Version 5.0a Serial# 60008009
Copyright (c) 1983, 1998 Logical Devices, Inc.
Created Mon Sep 01 15:44:18 2008
54:DIS2 = !ECLK # IOSEL # !RES # !DIS2_SEL;
55:WR = !ECLK # IOSEL # WRIN;
56:RD = !ECLK # IOSEL # !WRIN;
57:
58:
59:
Jedec Fuse Checksum (c06b)
Jedec Transmit Checksum (1f1c)
Re: вопрос по WinCupl ...
помогите перевести в Wincupl - не силён я в этом - пожалуйста (22V10 PAL) !!!
U2 device 'p22v10';
" 32KB memory space
" Address space set up by JP1-2
"Inputs
AEN pin 1;
A19 pin 2;
A18 pin 3;
A17 pin 4;
A16 pin 5;
A15 pin 6;
A14 pin 7;
A13 pin 8;
JP1 pin 9;
JP2 pin 10;
JP3 pin 11;
JP4 pin 13;
"Outputs
CSDOC pin 23;
DA16 pin 22;
DA15 pin 21;
DA14 pin 20;
DA13 pin 19;
H,L,X = 1,0,.X.;
Addr = [A19,A18,A17,A16, A15,A14,A13,X, X,X,X,X, X,X,X,X];
MemWin = [JP1,JP2];
"MemWin options: 3: C000 2:C800 1:D000 0:D800
equations
" CSDOC is the CS signal to the DOC. It is generated
" from the address bus, AEN and Window location (32KB size).
!CSDOC =(((Addr >= ^hC000) & (Addr <= ^hc7ff) & !AEN &
(MemWin==3))
#((Addr >= ^hC800) & (Addr <= ^hcfff) & !AEN & (MemWin==2))
#((Addr >= ^hd000) & (Addr <= ^hd7ff) & !AEN & (MemWin==1))
#((Addr >= ^hd800) & (Addr <= ^hdfff) & !AEN & MemWin==0)));
"DA13-16 are the high address signals to the DOC.
DA16 = 0; "128KB is never used.
DA15 = 0; " 64K: is never used.
DA14 = A14; " 32K: Pass ISA A14.
DA13 = A13; " 32K: Pass ISA A13.
END
U2 device 'p22v10';
" 32KB memory space
" Address space set up by JP1-2
"Inputs
AEN pin 1;
A19 pin 2;
A18 pin 3;
A17 pin 4;
A16 pin 5;
A15 pin 6;
A14 pin 7;
A13 pin 8;
JP1 pin 9;
JP2 pin 10;
JP3 pin 11;
JP4 pin 13;
"Outputs
CSDOC pin 23;
DA16 pin 22;
DA15 pin 21;
DA14 pin 20;
DA13 pin 19;
H,L,X = 1,0,.X.;
Addr = [A19,A18,A17,A16, A15,A14,A13,X, X,X,X,X, X,X,X,X];
MemWin = [JP1,JP2];
"MemWin options: 3: C000 2:C800 1:D000 0:D800
equations
" CSDOC is the CS signal to the DOC. It is generated
" from the address bus, AEN and Window location (32KB size).
!CSDOC =(((Addr >= ^hC000) & (Addr <= ^hc7ff) & !AEN &
(MemWin==3))
#((Addr >= ^hC800) & (Addr <= ^hcfff) & !AEN & (MemWin==2))
#((Addr >= ^hd000) & (Addr <= ^hd7ff) & !AEN & (MemWin==1))
#((Addr >= ^hd800) & (Addr <= ^hdfff) & !AEN & MemWin==0)));
"DA13-16 are the high address signals to the DOC.
DA16 = 0; "128KB is never used.
DA15 = 0; " 64K: is never used.
DA14 = A14; " 32K: Pass ISA A14.
DA13 = A13; " 32K: Pass ISA A13.
END