Skip to content

Instantly share code, notes, and snippets.

@elfmimi
Created September 15, 2014 04:36
Show Gist options
  • Save elfmimi/4496cb199dc7fc0e3d95 to your computer and use it in GitHub Desktop.
Save elfmimi/4496cb199dc7fc0e3d95 to your computer and use it in GitHub Desktop.
CPLDでドットマトリクスLEDを駆動する実験
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