Created
September 15, 2014 04:36
-
-
Save elfmimi/4496cb199dc7fc0e3d95 to your computer and use it in GitHub Desktop.
CPLDでドットマトリクスLEDを駆動する実験
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MODULE DotMtx57 | |
CLK PIN 15; | |
A1..A5 PIN 7, 8, 9, 10, 11 istype 'reg'; | |
B1..B5 PIN 12, 13, 18, 19, 20 istype 'reg'; | |
R1..R7 PIN 32, 31, 27, 25, 24, 23, 22; " Row | |
T1..T24 node istype 'reg'; | |
ROW0..ROW2 node istype 'reg'; | |
NUM0..NUM7 node istype 'reg'; | |
HEX0..HEX3 node istype 'keep'; | |
FNT1..FNT5 node istype 'keep'; | |
A = [A1..A5]; | |
B = [B1..B5]; | |
FONT = [FNT1..FNT5]; | |
CNT = [T24..T1]; | |
ROW = [ROW2..ROW0]; | |
NUM = [NUM7..NUM0]; | |
HEX = [HEX3..HEX0]; | |
EQUATIONS | |
CNT := CNT + 1; | |
CNT.CLK = CLK; | |
NUM := NUM + 1; | |
NUM.CE = ([T20..T1] + 1) == 0; | |
NUM.CLK = CLK; | |
WHEN (ROW == 7) THEN { | |
ROW := 1; | |
} ELSE { | |
ROW := ROW + 1; | |
} | |
ROW.CE = [T11..T1] + 1 == 0; | |
ROW.CLK = CLK; | |
@IRPC R (1234567) { | |
WHEN ([T11..T1] < 3) THEN { | |
R?R = 0; | |
} ELSE { | |
R?R = ROW == ?R; | |
} | |
} | |
WHEN ([T11..T1] == 0) THEN { | |
HEX = NUM[7..4]; | |
} ELSE WHEN ([T11..T1] == 1) THEN { | |
HEX = NUM[3..0]; | |
} | |
A := FONT; | |
A.CE = [T11..T1] == 0; | |
A.CLK = CLK; | |
B := FONT; | |
B.CE = [T11..T1] == 1; | |
B.CLK = CLK; | |
@DCSET | |
TRUTH_TABLE ( [ HEX, ROW ] -> FONT ) | |
[ ^h0, 1 ] -> ^b01110; | |
[ ^h0, 2 ] -> ^b10001; | |
[ ^h0, 3 ] -> ^b10001; | |
[ ^h0, 4 ] -> ^b10001; | |
[ ^h0, 5 ] -> ^b10001; | |
[ ^h0, 6 ] -> ^b10001; | |
[ ^h0, 7 ] -> ^b01110; | |
[ ^h1, 1 ] -> ^b00100; | |
[ ^h1, 2 ] -> ^b01100; | |
[ ^h1, 3 ] -> ^b00100; | |
[ ^h1, 4 ] -> ^b00100; | |
[ ^h1, 5 ] -> ^b00100; | |
[ ^h1, 6 ] -> ^b00100; | |
[ ^h1, 7 ] -> ^b01110; | |
[ ^h2, 1 ] -> ^b01110; | |
[ ^h2, 2 ] -> ^b10001; | |
[ ^h2, 3 ] -> ^b00001; | |
[ ^h2, 4 ] -> ^b01110; | |
[ ^h2, 5 ] -> ^b10000; | |
[ ^h2, 6 ] -> ^b10000; | |
[ ^h2, 7 ] -> ^b11111; | |
[ ^h3, 1 ] -> ^b01110; | |
[ ^h3, 2 ] -> ^b10001; | |
[ ^h3, 3 ] -> ^b00001; | |
[ ^h3, 4 ] -> ^b01110; | |
[ ^h3, 5 ] -> ^b00001; | |
[ ^h3, 6 ] -> ^b10001; | |
[ ^h3, 7 ] -> ^b01110; | |
[ ^h4, 1 ] -> ^b00110; | |
[ ^h4, 2 ] -> ^b01010; | |
[ ^h4, 3 ] -> ^b01010; | |
[ ^h4, 4 ] -> ^b10010; | |
[ ^h4, 5 ] -> ^b11111; | |
[ ^h4, 6 ] -> ^b00010; | |
[ ^h4, 7 ] -> ^b00010; | |
[ ^h5, 1 ] -> ^b11111; | |
[ ^h5, 2 ] -> ^b10000; | |
[ ^h5, 3 ] -> ^b10000; | |
[ ^h5, 4 ] -> ^b11110; | |
[ ^h5, 5 ] -> ^b00001; | |
[ ^h5, 6 ] -> ^b10001; | |
[ ^h5, 7 ] -> ^b01110; | |
[ ^h6, 1 ] -> ^b01110; | |
[ ^h6, 2 ] -> ^b10001; | |
[ ^h6, 3 ] -> ^b10000; | |
[ ^h6, 4 ] -> ^b11110; | |
[ ^h6, 5 ] -> ^b10001; | |
[ ^h6, 6 ] -> ^b10001; | |
[ ^h6, 7 ] -> ^b01110; | |
[ ^h7, 1 ] -> ^b11111; | |
[ ^h7, 2 ] -> ^b10001; | |
[ ^h7, 3 ] -> ^b00001; | |
[ ^h7, 4 ] -> ^b00010; | |
[ ^h7, 5 ] -> ^b00010; | |
[ ^h7, 6 ] -> ^b00100; | |
[ ^h7, 7 ] -> ^b00100; | |
[ ^h8, 1 ] -> ^b01110; | |
[ ^h8, 2 ] -> ^b10001; | |
[ ^h8, 3 ] -> ^b10001; | |
[ ^h8, 4 ] -> ^b01110; | |
[ ^h8, 5 ] -> ^b10001; | |
[ ^h8, 6 ] -> ^b10001; | |
[ ^h8, 7 ] -> ^b01110; | |
[ ^h9, 1 ] -> ^b01110; | |
[ ^h9, 2 ] -> ^b10001; | |
[ ^h9, 3 ] -> ^b10001; | |
[ ^h9, 4 ] -> ^b01111; | |
[ ^h9, 5 ] -> ^b00001; | |
[ ^h9, 6 ] -> ^b10001; | |
[ ^h9, 7 ] -> ^b01110; | |
[ ^hA, 1 ] -> ^b01110; | |
[ ^hA, 2 ] -> ^b10001; | |
[ ^hA, 3 ] -> ^b10001; | |
[ ^hA, 4 ] -> ^b10001; | |
[ ^hA, 5 ] -> ^b11111; | |
[ ^hA, 6 ] -> ^b10001; | |
[ ^hA, 7 ] -> ^b10001; | |
[ ^hB, 1 ] -> ^b11110; | |
[ ^hB, 2 ] -> ^b10001; | |
[ ^hB, 3 ] -> ^b10001; | |
[ ^hB, 4 ] -> ^b11110; | |
[ ^hB, 5 ] -> ^b10001; | |
[ ^hB, 6 ] -> ^b10001; | |
[ ^hB, 7 ] -> ^b11110; | |
[ ^hC, 1 ] -> ^b01110; | |
[ ^hC, 2 ] -> ^b10001; | |
[ ^hC, 3 ] -> ^b10000; | |
[ ^hC, 4 ] -> ^b10000; | |
[ ^hC, 5 ] -> ^b10000; | |
[ ^hC, 6 ] -> ^b10001; | |
[ ^hC, 7 ] -> ^b01110; | |
[ ^hD, 1 ] -> ^b11110; | |
[ ^hD, 2 ] -> ^b10001; | |
[ ^hD, 3 ] -> ^b10001; | |
[ ^hD, 4 ] -> ^b10001; | |
[ ^hD, 5 ] -> ^b10001; | |
[ ^hD, 6 ] -> ^b10001; | |
[ ^hD, 7 ] -> ^b11110; | |
[ ^hE, 1 ] -> ^b11111; | |
[ ^hE, 2 ] -> ^b10000; | |
[ ^hE, 3 ] -> ^b10000; | |
[ ^hE, 4 ] -> ^b11110; | |
[ ^hE, 5 ] -> ^b10000; | |
[ ^hE, 6 ] -> ^b10000; | |
[ ^hE, 7 ] -> ^b11111; | |
[ ^hF, 1 ] -> ^b11111; | |
[ ^hF, 2 ] -> ^b10000; | |
[ ^hF, 3 ] -> ^b10000; | |
[ ^hF, 4 ] -> ^b11110; | |
[ ^hF, 5 ] -> ^b10000; | |
[ ^hF, 6 ] -> ^b10000; | |
[ ^hF, 7 ] -> ^b10000; | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment