CLK_GEN:PROCESS(clk)
BEGIN
IF clk’EVENT AND clk=’1’THEN
IF ncount=499 THEN
ncount<=0;sclsig<=NOT sclsig;
ELSE ncount<=ncount+l;
END IF:
END IF;
sel<=selsig;
END PROCESS;
2、状态转换进程,负责在适当的时机将状态机转入下一状态,代码如下:
STATE_TRANS:PROCESS(sclsig)
BEGIN
IF sclsig’EVENT AND sclsig=’0’THEN
curstate<=nextstate;
END IF;
END PROCESS
STATE_CTR:PROCESS(clk)
BEGIN
IF clk’EVENT AND clk=’1’THEN
CASE curstate IS
WHEN S0=>
IF rwf/="00"
THEN nextstate<=S1;
END IF;
......
WHEN S13=>
IF sclsig=O AND ncount=499
THEN sda<=’0’:
ELSIF sclsig=1 AND nclk=124
THEN sda<=’1’;nextstate<=sO;
END IF;
END CASE;
END IF;
END PROCESS;