Arun
MODULE cnt2400
interface(P,c15..c0, CLR, LOAD, clk -> hr7..hr0,
minten3..minten0,minunit3..minunit0);
TITLE '2400 counter'
"Inputs
c15..c0, CLR, LOAD, clk,P pin;
"Outputs
hr7..hr0,minten3..minten0,minunit3..minunit0 pin istype 'reg,buffer';
"Aliases
hr = [hr7..hr0];
minten = [minten3..minten0];
minunit = [minunit3..minunit0];
c = [c15..c0];
inithr = [c15,c14,c13,c12,c11,c10,c9,c8];
mten = [c7,c6,c5,c4];
munit = [c3,c2,c1,c0];
EQUATIONS
hr.clk = clk;
minten.clk = clk;
minunit.clk = clk;
WHEN (CLR == 0) THEN {
minunit := 0;
minten := 0; "mten
hr := 0;
} ELSE WHEN (LOAD == 1) THEN {
minunit := munit;
minten := mten;
hr := inithr;
} ELSE WHEN (P == 1) THEN{
WHEN (minunit == ^b0000) THEN {minunit := ^b0001; minten := minten; hr :=
hr}
ELSE WHEN (minunit == ^b0001) THEN {minunit := ^b0010; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0010) THEN {minunit := ^b0011; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0011) THEN {minunit := ^b0100; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0100) THEN {minunit := ^b0101; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0101) THEN {minunit := ^b0110; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0110) THEN {minunit := ^b0111; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b0111) THEN {minunit := ^b1000; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b1000) THEN {minunit := ^b1001; minten := minten;
hr := hr}
ELSE WHEN (minunit == ^b1001) THEN{
minunit := ^b0000;
WHEN (minten == ^b0000) THEN { minten := ^b0001; hr := hr; }
ELSE WHEN (minten == ^b0001) THEN { minten := ^b0010; hr := hr; }
ELSE WHEN (minten == ^b0010) THEN { minten := ^b0011; hr := hr; }
ELSE WHEN (minten == ^b0011) THEN { minten := ^b0100; hr := hr; }
ELSE WHEN (minten == ^b0100) THEN { minten := ^b0101; hr := hr; }
ELSE WHEN (minten == ^b0101) THEN {
minten := ^b0000;
WHEN (hr == ^b00000000) THEN hr := ^b00000001;
ELSE WHEN (hr == ^b00000001) THEN hr := ^b00000010;
ELSE WHEN (hr == ^b00000010) THEN hr := ^b00000011;
ELSE WHEN (hr == ^b00000011) THEN hr := ^b00000100;
ELSE WHEN (hr == ^b00000100) THEN hr := ^b00000101;
ELSE WHEN (hr == ^b00000101) THEN hr := ^b00000110;
ELSE WHEN (hr == ^b00000110) THEN hr := ^b00000111;
ELSE WHEN (hr == ^b00000111) THEN hr := ^b00001000;
ELSE WHEN (hr == ^b00001000) THEN hr := ^b00001001;
ELSE WHEN (hr == ^b00001001) THEN hr := ^b00010000;
ELSE WHEN (hr == ^b00010000) THEN hr := ^b00010001;
ELSE WHEN (hr == ^b00010001) THEN hr := ^b00010010;
ELSE WHEN (hr == ^b00010010) THEN hr := ^b00010011;
ELSE WHEN (hr == ^b00010011) THEN hr := ^b00010100;
ELSE WHEN (hr == ^b00010100) THEN hr := ^b00010101;
ELSE WHEN (hr == ^b00010101) THEN hr := ^b00010110;
ELSE WHEN (hr == ^b00010110) THEN hr := ^b00010111;
ELSE WHEN (hr == ^b00010111) THEN hr := ^b00011000;
ELSE WHEN (hr == ^b00011000) THEN hr := ^b00011001;
ELSE WHEN (hr == ^b00011001) THEN hr := ^b00100000;
ELSE WHEN (hr == ^b00100000) THEN hr := ^b00100001;
ELSE WHEN (hr == ^b00100001) THEN hr := ^b00100010;
ELSE WHEN (hr == ^b00100010) THEN hr := ^b00100011;
ELSE WHEN (hr == ^b00100011) THEN hr := ^b00000000;
ELSE hr := ^b00000000;
}
ELSE minten := ^b0000;
}
ELSE minunit := ^b0000;
}
END