module counter1
title 'digital tone sequencer'
counter1 device 'P26V12';
" Inputs: clk - 1.3824MHz from external prescaler
" sa0, sa1, sb0, sb1, sc0, sc1, sr - tone selects / ring enable
clk pin 1;
sa0 pin 2;
sa1 pin 3;
sb0 pin 4;
sb1 pin 5;
sc0 pin 6;
sc1 pin 8;
sr pin 9;
p0 pin 15 istype 'buffer,reg_d';
p1 pin 16 istype 'buffer,reg_d';
a0 pin 17 istype 'buffer,reg_d';
a1 pin 18 istype 'buffer,reg_d';
a2 pin 19 istype 'buffer,reg_d';
a3 pin 20 istype 'buffer,reg_d';
a4 pin 22 istype 'buffer,reg_d';
a5 pin 23 istype 'buffer,reg_d';
lc pin 24 istype 'buffer,reg_d';
lb pin 25 istype 'buffer,reg_d';
la pin 26 istype 'buffer,reg_d';
lr pin 27 istype 'buffer,reg_d';
"
" definitions
"
c,z,x = .c.,.z.,.x. ;
h,l = 1,0 ;
equations
p0.clk = clk;
p1.clk = clk;
a0.clk = clk;
a1.clk = clk;
a2.clk = clk;
a3.clk = clk;
a4.clk = clk;
a5.clk = clk;
la.clk = clk;
lb.clk = clk;
lc.clk = clk;
lr.clk = clk;
p0.d = !p0;
p1.d = p0 & !p1
# !p0 & p1;
a0.d = p0 & p1 & !a0
# !p1 & a0
# !p0 & a0;
a1.d = p0 & p1 & a0 & !a1
# !a0 & a1
# !p1 & a1
# !p0 & a1;
a2.d = p0 & p1 & a0 & a1 & !a2
# !a1 & a2
# !a0 & a2
# !p1 & a2
# !p0 & a2;
a3.d = p0 & p1 & a0 & a1 & a2 & !a3
# !a2 & a3
# !a1 & a3
# !a0 & a3
# !p1 & a3
# !p0 & a3;
a4.d = p0 & p1 & a0 & a1 & a2 & a3 & !a4
# !a3 & a4
# !a2 & a4
# !a1 & a4
# !a0 & a4
# !p1 & a4
# !p0 & a4;
a5.d = p0 & p1 & a0 & a1 & a2 & a3 & a4 & !a5
# !a4 & a5
# !a3 & a5
# !a2 & a5
# !a1 & a5
# !a0 & a5
# !p1 & a5
# !p0 & a5;
la.d = !sa0 & !a0 & sa1 & a1 & !p1 & p0
# sa0 & a0 & !sa1 & !a1 & !p1 & p0
# sa0 & a0 & sa1 & a1 & !p1 & p0;
lb.d = !sb0 & !a0 & sb1 & a1 & !p1 & p0
# sb0 & a0 & !sb1 & !a1 & !p1 & p0
# sb0 & a0 & sb1 & a1 & !p1 & p0;
lc.d = !sc0 & !a0 & sc1 & a1 & !p1 & p0
# sc0 & a0 & !sc1 & !a1 & !p1 & p0
# sc0 & a0 & sc1 & a1 & !p1 & p0;
lr.d = !a0 & !a1 & sr & !p1 & p0;
end counter1
Back