[an error occurred while processing this directive]
|
CONSTANT High = B"1";
CONSTANT Low = B"0";SUBDESIGN simple_da_5
(
rxd, clk, clear : INPUT;
load, q[7..0] : OUTPUT;
)
VARIABLE
ss : machine with states (s0, s1);
count [6..0] : DFFE;q[7..0] : DFFE;
BEGIN
count [].clrn = clear;
count [].clk = clk;q [].clk = clk;
ss.clk = clk;
ss.reset = !clear;
case ss is
when s0 =>
load = Low;
count [].d = 0;
if !rxd then ss = s1;
end if;
when s1 =>
case count [].q is
when 12 => q [0].ena = High; count [].d = count [].q + 1;
when 20 => q [1].ena = High; count [].d = count [].q + 1;
when 28 => q [2].ena = High; count [].d = count [].q + 1;
when 36 => q [3].ena = High; count [].d = count [].q + 1;
when 44 => q [4].ena = High; count [].d = count [].q + 1;
when 52 => q [5].ena = High; count [].d = count [].q + 1;
when 60 => q [6].ena = High; count [].d = count [].q + 1;
when 68 => q [7].ena = High; count [].d = count [].q + 1;
when 76 => load = High; ss = s0;
when others => count [].d = count [].q + 1;
end case;
end case;q [0].d = rxd;
q [1].d = rxd;
q [2].d = rxd;
q [3].d = rxd;
q [4].d = rxd;
q [5].d = rxd;
q [6].d = rxd;
q [7].d = rxd;END;
E-mail: info@telesys.ru