mirror of
https://github.com/Alex-2-Graf/ZX-EQ.git
synced 2026-06-15 04:01:36 +03:00
read
This commit is contained in:
parent
be9ab06ce2
commit
9681d14854
4717
Export/ZX-EQ.html
Normal file
4717
Export/ZX-EQ.html
Normal file
File diff suppressed because one or more lines are too long
BIN
Export/ZX-EQ.pdf
Normal file
BIN
Export/ZX-EQ.pdf
Normal file
Binary file not shown.
BIN
Firmware/ZX_EQ7160.pof
Normal file
BIN
Firmware/ZX_EQ7160.pof
Normal file
Binary file not shown.
BIN
Firmware/epm7160-leds-right__upper.pof
Normal file
BIN
Firmware/epm7160-leds-right__upper.pof
Normal file
Binary file not shown.
261
Firmware/epm7160-leds-right__upper.tdf
Normal file
261
Firmware/epm7160-leds-right__upper.tdf
Normal file
@ -0,0 +1,261 @@
|
||||
% ver 10.01.22%
|
||||
TITLE "MSX_EQ";
|
||||
-- Libs
|
||||
include "lpm_counter.inc";
|
||||
include "lpm_shiftreg.inc";
|
||||
|
||||
%-----------------------------%
|
||||
SUBDESIGN MSX_EQ
|
||||
(
|
||||
gclk : INPUT;
|
||||
a15, a14, a1 : INPUT;
|
||||
data[7..0] : INPUT;
|
||||
ioreq : INPUT;
|
||||
wr : INPUT;
|
||||
m1 : INPUT;
|
||||
led_plus[8..0] : OUTPUT;
|
||||
led_minus[2..0][9..0] : OUTPUT;
|
||||
|
||||
)
|
||||
VARIABLE
|
||||
--cnt_to_3 : lpm_counter with (LPM_WIDTH = 2, LPM_MODULUS = H"3"); -- refresh led
|
||||
cnt_div : lpm_counter with (LPM_WIDTH = 16); -- 3.7MHz
|
||||
spec[8..0] : lpm_counter with (LPM_WIDTH = 4, LPM_DIRECTION = "DOWN");
|
||||
RegAddr[3..0] : DFFE;
|
||||
--RegValue[7..0] : DFFE;
|
||||
FreqA[6..2], FreqB[6..2], FreqC[6..2] : DFFE;
|
||||
ValA[3..0], ValB[3..0], ValC[3..0] : DFFE;
|
||||
-- NODES
|
||||
cnt_to_3[1..0] : NODE;
|
||||
Val_ch[3..0] : NODE;
|
||||
wr_addr : NODE;
|
||||
wr_data : NODE;
|
||||
ssg : NODE;
|
||||
bc1 : NODE;
|
||||
bdir : NODE;
|
||||
-- clk20M, Clk40M, clk320M : NODE;
|
||||
-- Modules
|
||||
-- DFFE
|
||||
-- CommandPC[7..0], CommandNVI[7..0] : DFFE;
|
||||
-- Test and Led Signal
|
||||
|
||||
BEGIN
|
||||
ssg = not (a15 and (not (a1 or ioreq)));
|
||||
bc1 = not (ssg or (not (a14 and m1)));
|
||||
bdir = not (ssg or wr);
|
||||
|
||||
wr_addr = bdir and bc1;
|
||||
wr_data = bdir and (not bc1);
|
||||
|
||||
cnt_to_3[] = cnt_div.q[13..12];
|
||||
|
||||
(spec[8..0], cnt_div).clock = gclk;
|
||||
(RegAddr[], FreqA[], FreqB[], FreqC[], ValA[], ValB[], ValC[]).clk = gclk;
|
||||
|
||||
RegAddr[] = data[3..0];
|
||||
RegAddr[].ena = wr_addr;
|
||||
|
||||
(FreqA[3..2], FreqB[3..2], FreqC[3..2]) = data[7..6];
|
||||
(FreqA[6..4], FreqB[6..4], FreqC[6..4]) = data[2..0]#data[3];
|
||||
( ValA[3..0], ValB[3..0], ValC[3..0]) = data[3..0];
|
||||
FreqA[3..2].ena = wr_data&(RegAddr[]==H"00");
|
||||
FreqB[3..2].ena = wr_data&(RegAddr[]==H"02");
|
||||
FreqC[3..2].ena = wr_data&(RegAddr[]==H"04");
|
||||
FreqA[6..4].ena = wr_data&(RegAddr[]==H"01");
|
||||
FreqB[6..4].ena = wr_data&(RegAddr[]==H"03");
|
||||
FreqC[6..4].ena = wr_data&(RegAddr[]==H"05");
|
||||
ValA[].ena = wr_data&(RegAddr[]==H"08");
|
||||
ValB[].ena = wr_data&(RegAddr[]==H"09");
|
||||
ValC[].ena = wr_data&(RegAddr[]==H"0A");
|
||||
|
||||
-- spec[0].cnt_en = !spec[0].cout&cnt_div.cout;
|
||||
-- spec[1].cnt_en = !spec[1].cout&cnt_div.cout;
|
||||
-- spec[2].cnt_en = !spec[2].cout&cnt_div.cout;
|
||||
-- spec[3].cnt_en = !spec[3].cout&cnt_div.cout;
|
||||
-- spec[4].cnt_en = !spec[4].cout&cnt_div.cout;
|
||||
-- spec[5].cnt_en = !spec[5].cout&cnt_div.cout;
|
||||
-- spec[6].cnt_en = !spec[6].cout&cnt_div.cout;
|
||||
-- spec[7].cnt_en = !spec[7].cout&cnt_div.cout;
|
||||
-- spec[8].cnt_en = !spec[8].cout&cnt_div.cout;
|
||||
-- spec[6].cnt_en = !spec[6].cout&cnt_div.cout; -- (spec[6].q[]>0);
|
||||
spec[0].cnt_en = (spec[0].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[1].cnt_en = (spec[1].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[2].cnt_en = (spec[2].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[3].cnt_en = (spec[3].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[4].cnt_en = (spec[4].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[5].cnt_en = (spec[5].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[6].cnt_en = (spec[6].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[7].cnt_en = (spec[7].q[]>0)&cnt_div.cout; -- (spec[7].q[]>0);
|
||||
spec[8].cnt_en = (spec[8].q[]>0)&cnt_div.cout; -- (spec[8].q[]>0);
|
||||
|
||||
if wr_data then
|
||||
if (RegAddr[]==H"00")#(RegAddr[]==H"01")#(RegAddr[]==H"08") then
|
||||
Val_ch[] = ValA[];
|
||||
spec[8].sload = (FreqA[6..2] <H"02");
|
||||
spec[7].sload = (FreqA[6..2]>=H"02")&(FreqA[6..2] <H"03");
|
||||
spec[6].sload = (FreqA[6..2]>=H"03")&(FreqA[6..2] <H"05");
|
||||
spec[5].sload = (FreqA[6..2]>=H"05")&(FreqA[6..2] <H"07");
|
||||
spec[4].sload = (FreqA[6..2]>=H"07")&(FreqA[6..2] <H"0A");
|
||||
spec[3].sload = (FreqA[6..2]>=H"0A")&(FreqA[6..2] <H"0D");
|
||||
spec[2].sload = (FreqA[6..2]>=H"0D")&(FreqA[6..2] <H"10");
|
||||
spec[1].sload = (FreqA[6..2]>=H"10")&(FreqA[6..2] <H"17");
|
||||
spec[0].sload = (FreqA[6..2]>=H"17");
|
||||
end if;
|
||||
if (RegAddr[]==H"02")#(RegAddr[]==H"03")#(RegAddr[]==H"09") then
|
||||
Val_ch[] = ValB[];
|
||||
spec[8].sload = (FreqB[6..2] <H"02");
|
||||
spec[7].sload = (FreqB[6..2]>=H"02")&(FreqB[6..2] <H"03");
|
||||
spec[6].sload = (FreqB[6..2]>=H"03")&(FreqB[6..2] <H"05");
|
||||
spec[5].sload = (FreqB[6..2]>=H"05")&(FreqB[6..2] <H"07");
|
||||
spec[4].sload = (FreqB[6..2]>=H"07")&(FreqB[6..2] <H"0A");
|
||||
spec[3].sload = (FreqB[6..2]>=H"0A")&(FreqB[6..2] <H"0D");
|
||||
spec[2].sload = (FreqB[6..2]>=H"0D")&(FreqB[6..2] <H"10");
|
||||
spec[1].sload = (FreqB[6..2]>=H"10")&(FreqB[6..2] <H"17");
|
||||
spec[0].sload = (FreqB[6..2]>=H"17");
|
||||
end if;
|
||||
if (RegAddr[]==H"04")#(RegAddr[]==H"05")#(RegAddr[]==H"0A") then
|
||||
Val_ch[] = ValC[];
|
||||
spec[8].sload = (FreqC[6..2] <H"02");
|
||||
spec[7].sload = (FreqC[6..2]>=H"02")&(FreqC[6..2] <H"03");
|
||||
spec[6].sload = (FreqC[6..2]>=H"03")&(FreqC[6..2] <H"05");
|
||||
spec[5].sload = (FreqC[6..2]>=H"05")&(FreqC[6..2] <H"07");
|
||||
spec[4].sload = (FreqC[6..2]>=H"07")&(FreqC[6..2] <H"0A");
|
||||
spec[3].sload = (FreqC[6..2]>=H"0A")&(FreqC[6..2] <H"0D");
|
||||
spec[2].sload = (FreqC[6..2]>=H"0D")&(FreqC[6..2] <H"10");
|
||||
spec[1].sload = (FreqC[6..2]>=H"10")&(FreqC[6..2] <H"17");
|
||||
spec[0].sload = (FreqC[6..2]>=H"17");
|
||||
end if;
|
||||
end if;
|
||||
|
||||
spec[0].data[] = Val_ch[];
|
||||
spec[1].data[] = Val_ch[];
|
||||
spec[2].data[] = Val_ch[];
|
||||
spec[3].data[] = Val_ch[];
|
||||
spec[4].data[] = Val_ch[];
|
||||
spec[5].data[] = Val_ch[];
|
||||
spec[6].data[] = Val_ch[];
|
||||
spec[7].data[] = Val_ch[];
|
||||
spec[8].data[] = Val_ch[];
|
||||
|
||||
if cnt_to_3[] == H"00" then
|
||||
led_plus[0] = VCC; led_plus[1] = GND; led_plus[2] = GND;
|
||||
led_plus[3] = VCC; led_plus[4] = GND; led_plus[5] = GND;
|
||||
led_plus[6] = VCC; led_plus[7] = GND; led_plus[8] = GND;
|
||||
|
||||
led_minus[0][0] = !(spec[0].q[]> 0);
|
||||
led_minus[0][1] = !(spec[0].q[]> 2);
|
||||
led_minus[0][2] = !(spec[0].q[]> 4);
|
||||
led_minus[0][3] = !(spec[0].q[]> 5);
|
||||
led_minus[0][4] = !(spec[0].q[]> 6);
|
||||
led_minus[0][5] = !(spec[0].q[]> 7);
|
||||
led_minus[0][6] = !(spec[0].q[]> 8);
|
||||
led_minus[0][7] = !(spec[0].q[]> 9);
|
||||
led_minus[0][8] = !(spec[0].q[]>10);
|
||||
led_minus[0][9] = !(spec[0].q[]>11);
|
||||
|
||||
led_minus[1][0] = !(spec[3].q[]> 0);
|
||||
led_minus[1][1] = !(spec[3].q[]> 2);
|
||||
led_minus[1][2] = !(spec[3].q[]> 4);
|
||||
led_minus[1][3] = !(spec[3].q[]> 5);
|
||||
led_minus[1][4] = !(spec[3].q[]> 6);
|
||||
led_minus[1][5] = !(spec[3].q[]> 7);
|
||||
led_minus[1][6] = !(spec[3].q[]> 8);
|
||||
led_minus[1][7] = !(spec[3].q[]> 9);
|
||||
led_minus[1][8] = !(spec[3].q[]>10);
|
||||
led_minus[1][9] = !(spec[3].q[]>11);
|
||||
|
||||
led_minus[2][0] = !(spec[6].q[]> 0);
|
||||
led_minus[2][1] = !(spec[6].q[]> 2);
|
||||
led_minus[2][2] = !(spec[6].q[]> 4);
|
||||
led_minus[2][3] = !(spec[6].q[]> 5);
|
||||
led_minus[2][4] = !(spec[6].q[]> 6);
|
||||
led_minus[2][5] = !(spec[6].q[]> 7);
|
||||
led_minus[2][6] = !(spec[6].q[]> 8);
|
||||
led_minus[2][7] = !(spec[6].q[]> 9);
|
||||
led_minus[2][8] = !(spec[6].q[]>10);
|
||||
led_minus[2][9] = !(spec[6].q[]>11);
|
||||
|
||||
end if;
|
||||
|
||||
if cnt_to_3[] == H"01" then
|
||||
led_plus[1] = VCC; led_plus[0] = GND; led_plus[2] = GND;
|
||||
led_plus[4] = VCC; led_plus[3] = GND; led_plus[5] = GND;
|
||||
led_plus[7] = VCC; led_plus[6] = GND; led_plus[8] = GND;
|
||||
led_minus[0][0] = !(spec[1].q[]> 0);
|
||||
led_minus[0][1] = !(spec[1].q[]> 2);
|
||||
led_minus[0][2] = !(spec[1].q[]> 4);
|
||||
led_minus[0][3] = !(spec[1].q[]> 5);
|
||||
led_minus[0][4] = !(spec[1].q[]> 6);
|
||||
led_minus[0][5] = !(spec[1].q[]> 7);
|
||||
led_minus[0][6] = !(spec[1].q[]> 8);
|
||||
led_minus[0][7] = !(spec[1].q[]> 9);
|
||||
led_minus[0][8] = !(spec[1].q[]>10);
|
||||
led_minus[0][9] = !(spec[1].q[]>11);
|
||||
|
||||
led_minus[1][0] = !(spec[4].q[]> 0);
|
||||
led_minus[1][1] = !(spec[4].q[]> 2);
|
||||
led_minus[1][2] = !(spec[4].q[]> 4);
|
||||
led_minus[1][3] = !(spec[4].q[]> 5);
|
||||
led_minus[1][4] = !(spec[4].q[]> 6);
|
||||
led_minus[1][5] = !(spec[4].q[]> 7);
|
||||
led_minus[1][6] = !(spec[4].q[]> 8);
|
||||
led_minus[1][7] = !(spec[4].q[]> 9);
|
||||
led_minus[1][8] = !(spec[4].q[]>10);
|
||||
led_minus[1][9] = !(spec[4].q[]>11);
|
||||
|
||||
led_minus[2][0] = !(spec[7].q[]> 0);
|
||||
led_minus[2][1] = !(spec[7].q[]> 2);
|
||||
led_minus[2][2] = !(spec[7].q[]> 4);
|
||||
led_minus[2][3] = !(spec[7].q[]> 5);
|
||||
led_minus[2][4] = !(spec[7].q[]> 6);
|
||||
led_minus[2][5] = !(spec[7].q[]> 7);
|
||||
led_minus[2][6] = !(spec[7].q[]> 8);
|
||||
led_minus[2][7] = !(spec[7].q[]> 9);
|
||||
led_minus[2][8] = !(spec[7].q[]>10);
|
||||
led_minus[2][9] = !(spec[7].q[]>11);
|
||||
end if;
|
||||
|
||||
if cnt_to_3[] == H"02" then
|
||||
led_plus[2] = VCC; led_plus[0] = GND; led_plus[1] = GND;
|
||||
led_plus[5] = VCC; led_plus[3] = GND; led_plus[4] = GND;
|
||||
led_plus[8] = VCC; led_plus[6] = GND; led_plus[7] = GND;
|
||||
led_minus[0][0] = !(spec[2].q[]> 0);
|
||||
led_minus[0][1] = !(spec[2].q[]> 2);
|
||||
led_minus[0][2] = !(spec[2].q[]> 4);
|
||||
led_minus[0][3] = !(spec[2].q[]> 5);
|
||||
led_minus[0][4] = !(spec[2].q[]> 6);
|
||||
led_minus[0][5] = !(spec[2].q[]> 7);
|
||||
led_minus[0][6] = !(spec[2].q[]> 8);
|
||||
led_minus[0][7] = !(spec[2].q[]> 9);
|
||||
led_minus[0][8] = !(spec[2].q[]>10);
|
||||
led_minus[0][9] = !(spec[2].q[]>11);
|
||||
|
||||
led_minus[1][0] = !(spec[5].q[]> 0);
|
||||
led_minus[1][1] = !(spec[5].q[]> 2);
|
||||
led_minus[1][2] = !(spec[5].q[]> 4);
|
||||
led_minus[1][3] = !(spec[5].q[]> 5);
|
||||
led_minus[1][4] = !(spec[5].q[]> 6);
|
||||
led_minus[1][5] = !(spec[5].q[]> 7);
|
||||
led_minus[1][6] = !(spec[5].q[]> 8);
|
||||
led_minus[1][7] = !(spec[5].q[]> 9);
|
||||
led_minus[1][8] = !(spec[5].q[]>10);
|
||||
led_minus[1][9] = !(spec[5].q[]>11);
|
||||
|
||||
led_minus[2][0] = !(spec[8].q[]> 0);
|
||||
led_minus[2][1] = !(spec[8].q[]> 2);
|
||||
led_minus[2][2] = !(spec[8].q[]> 4);
|
||||
led_minus[2][3] = !(spec[8].q[]> 5);
|
||||
led_minus[2][4] = !(spec[8].q[]> 6);
|
||||
led_minus[2][5] = !(spec[8].q[]> 7);
|
||||
led_minus[2][6] = !(spec[8].q[]> 8);
|
||||
led_minus[2][7] = !(spec[8].q[]> 9);
|
||||
led_minus[2][8] = !(spec[8].q[]>10);
|
||||
led_minus[2][9] = !(spec[8].q[]>11);
|
||||
end if;
|
||||
if cnt_to_3[] == H"03" then
|
||||
led_plus[2] = GND; led_plus[0] = GND; led_plus[1] = GND;
|
||||
led_plus[5] = GND; led_plus[3] = GND; led_plus[4] = GND;
|
||||
led_plus[8] = GND; led_plus[6] = GND; led_plus[7] = GND;
|
||||
led_minus[][] = GND;
|
||||
end if;
|
||||
End;
|
||||
BIN
Firmware/zx_eq_10bit_neg.pof
Normal file
BIN
Firmware/zx_eq_10bit_neg.pof
Normal file
Binary file not shown.
BIN
Firmware/zx_eq_10bit_pos.pof
Normal file
BIN
Firmware/zx_eq_10bit_pos.pof
Normal file
Binary file not shown.
BIN
Firmware/zx_eq_8bit_neg.pof
Normal file
BIN
Firmware/zx_eq_8bit_neg.pof
Normal file
Binary file not shown.
BIN
Firmware/zx_eq_8bit_pos.pof
Normal file
BIN
Firmware/zx_eq_8bit_pos.pof
Normal file
Binary file not shown.
BIN
Foto/2026-05-20 22.11.42.jpg
Normal file
BIN
Foto/2026-05-20 22.11.42.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
BIN
Foto/2026-05-20 22.20.54.jpg
Normal file
BIN
Foto/2026-05-20 22.20.54.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 MiB |
BIN
Foto/2026-05-20 22.21.01.jpg
Normal file
BIN
Foto/2026-05-20 22.21.01.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 MiB |
BIN
Foto/2026-05-21 11.46.21.jpg
Normal file
BIN
Foto/2026-05-21 11.46.21.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
BIN
Foto/ZX-EQ_PCB.png
Normal file
BIN
Foto/ZX-EQ_PCB.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 183 KiB |
BIN
Gerber/ZX-EQ_Gerber.zip
Normal file
BIN
Gerber/ZX-EQ_Gerber.zip
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user