📄 roulette.pld
字号:
Name Roulette;
Partno XXXXX;
Date 03/26/96;
Revision 01;
Designer Chip Willman;
Company Logical Devices Inc;
Assembly XXXXX;
Location XXXXX;
Device F1500;
/******************************************************************/
/* This is an examples of a game roulette */
/* In this examples the ATF1500 Controls the Flashing lights of */
/* the balls spinning around. It also controls the PAYOFF */
/* Ammount (7 segment LED Numerial Display). To simulate the */
/* clock slowing down we implimented */
/* A non-linear clock with a reset button (start the game) and */
/* spins the wheel. It should look kinda cool. ;) */
/* */
/* */
/******************************************************************/
/* Allowable Target Device Types: ATMEL ATF1500 */
/******************************************************************/
/**
Inputs:
The following inputs are needed.
Clock
Start
Done
**/
Pin 43 = CLK ; /* Global Clock for all registers */
Pin 2 = DONE ; /* Signal to tell the Chip to stop
Spinning around */
Pin 1 = !START ; /* Start the Simulation */
Pin 44 = !DEMO ; /* Demo Option */
/**
Outputs:
The following outputs are needed.
7 bit segment LED display
0
-----
| |
1 | | 2
-----
| 3 |
4 | | 5
-----
6
20 bit wheel (20 LED displays)
1 2 3
* * *
20* * 4
19*
18* * 5
17* * 6
16* * 7
15 * * 8
* 9
14 * * 10
* * *
13 12 11
RUN
DEMOOUT
**/
Pin [12,40..36] = ![L0..5] ; /* LED's 1-6 */
Pin [34,33,5,13] = ![L6..9] ; /* LED's 7-10 */
Pin [14,32,31,29,28,27] = ![L10..15] ; /* LED's 11-16 */
Pin [26..24,16] = ![L16..19] ; /* LED's 17-20 */
Pin [41,21] = [P0..1] ; /* Segment Display */
Pin [20,19,18,11] = [P2..5] ; /* Segment Display */
Pin 17 = P6 ; /* Segment Display */
Pin 7 = !RUN ; /* Run Simulation */
Pin 6 = FLASH;
/** nodes **/
pinnode = DEMOOUT ; /* Flash everthing Cool like */
pinnode = roll;
/** Declarations and Intermediate Variable Definitions **/
FIELD Wheel = [L0..19];
FIELD Payoff = [P0..6];
/** Logic Equations **/
$DEFINE S0 'h'00001
$DEFINE S1 'h'00002
$DEFINE S2 'h'00004
$DEFINE S3 'h'00008
$DEFINE S4 'h'00010
$define S5 'h'00020
$define S6 'h'00040
$define S7 'h'00080
$define S8 'h'00100
$define S9 'h'00200
$define S10 'h'00400
$define S11 'h'00800
$define S12 'h'01000
$define S13 'h'02000
$define S14 'h'04000
$define S15 'h'08000
$define S16 'h'10000
$define S17 'h'20000
$define S18 'h'40000
$define S19 'h'80000
Sequence Wheel {
PRESENT 'h'00000
NEXT S1;
PRESENT S0
If roll NEXT S1;
IF !RUN & !DEMOOUT NEXT S0;
IF DEMOOUT & !roll NEXT S7;
Present S1
IF roll NEXT S2;
IF !roll & !DEMOOUT NEXT S1;
IF DEMOOUT & !roll NEXT S8;
Present S2
IF roll NEXT S3;
IF !roll & !DEMOOUT NEXT S2;
IF DEMOOUT & !roll NEXT S9;
Present S3
IF roll NEXT S4;
IF !roll & !DEMOOUT NEXT S3;
IF DEMOOUT & !roll NEXT S10;
Present S4
IF roll NEXT S5;
IF !roll & !DEMOOUT NEXT S4;
IF DEMOOUT & !roll NEXT S11;
Present S5
IF roll NEXT S6;
IF !roll & !DEMOOUT NEXT S5;
IF DEMOOUT & !roll NEXT S12;
Present S6
IF !roll & !DEMOOUT NEXT S6;
IF DEMOOUT & !roll NEXT S13;
IF roll NEXT S7;
Present S7
IF !roll & !DEMOOUT NEXT S7;
IF DEMOOUT & !roll NEXT S14;
IF roll NEXT S8;
Present S8
IF !roll & !DEMOOUT NEXT S8;
IF DEMOOUT & !roll NEXT S15;
IF roll NEXT S9;
Present S9
IF !roll & !DEMOOUT NEXT S9;
IF DEMOOUT & !roll NEXT S16;
IF roll NEXT S10;
Present S10
IF !roll & !DEMOOUT NEXT S10;
IF DEMOOUT & !roll NEXT S17;
IF roll NEXT S11;
Present S11
IF !roll & !DEMOOUT NEXT S12;
IF DEMOOUT & !roll NEXT S18;
IF roll NEXT S12;
Present S12
IF !roll & !DEMOOUT NEXT S12;
IF DEMOOUT & !roll NEXT S19;
IF roll NEXT S13;
Present S13
IF !roll & !DEMOOUT NEXT S13;
IF DEMOOUT & !roll NEXT S0;
IF roll NEXT S14;
Present S14
IF !roll & !DEMOOUT NEXT S14;
IF DEMOOUT & !roll NEXT S1;
IF roll NEXT S15;
Present S15
IF !roll & !DEMOOUT NEXT S15;
IF DEMOOUT & !roll NEXT S2;
IF roll NEXT S16;
Present S16
IF !roll & !DEMOOUT NEXT S16;
IF DEMOOUT & !roll NEXT S3;
IF roll NEXT S17;
Present S17
IF !roll & !DEMOOUT NEXT S17;
IF DEMOOUT & !roll NEXT S4;
IF roll NEXT S18;
Present S18
IF !roll & !DEMOOUT NEXT S18;
IF DEMOOUT & !roll NEXT S5;
IF roll NEXT S19;
Present S19
IF !roll & !DEMOOUT NEXT S19;
IF DEMOOUT & !roll NEXT S6;
IF roll NEXT S0;
}
P0 = (L2 # L8 # L12 # L16 # L6 # L18 # L4)&!DEMOOUT
# (DEMOOUT & L0)
# (DEMOOUT & L8);
P1 = (L0 # L10 # L14 # L6 # L18 # L4)&!DEMOOUT
# (DEMOOUT & L7);
P2 = (!L6 & !L18 & !DEMOOUT)
# (DEMOOUT & L1)
# (DEMOOUT & L9);
P3 = (L2 # L8 # L12 # L16 # L0 # L10 # L14 # L6 # L18 # L4)&!DEMOOUT
# (DEMOOUT & L2)
# (DEMOOUT & L6);
P4 = (L2 # L8 # L12 # L16 # L6 # L18)&!DEMOOUT
# (DEMOOUT & L3);
P5 = (!L2 & !L8 & !L12 & !L16 & !DEMOOUT)
# (DEMOOUT & L5);
P6 = (L2 # L8 # L12 # L16 # L6 # L18 # L4)& !DEMOOUT
# (DEMOOUT & L4);
roll = START # roll & !DONE;
Wheel.ck = CLK;
Payoff.ck = CLK;
DEMOOUT.ck = CLK;
DEMOOUT.d = DEMO # DEMOOUT & !START & !roll # Wheel:'h'00000;
RUN = !START & roll # RUN & !DONE;
FLASH.d = !FLASH & !DEMOOUT & !roll;
FLASH.ck = CLK;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -