多状态机的协同设计
next_readcounter0 <= readcounter0;next_readcounter1 <= readcounter1;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)));
readcounter <= (( std_logic_vector'(readcounter1, readcounter0)));
next_sreg<=m0full;
next_sreg1<=m0empty;
IF ( RESET='1' ) THEN
next_sreg<=STATE0;
BP_dcounter <= (std_logic_vector'("00"));
ELSE
CASE sreg IS
WHEN m0full =>
next_sreg<=m0writewait;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)));
WHEN m0writewait =>
IF ( (sreg1=m0empty)) THEN
next_sreg<=write0;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)) + std_logic_vector'("01"));
ELSE
next_sreg<=m0writewait;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)));
END IF;
&n
bsp; WHEN STATE0 =>
next_sreg<=write0;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)) +
std_logic_vector'("01"));
WHEN write0 =>
IF ( BP_dcounter0='1' AND BP_dcounter1='1' ) THEN
next_sreg<=m0full;
BP_dcounter <= (std_logic_vector'("00"));
ELSE
next_sreg<=write0;
BP_dcounter <= (( std_logic_vector'(BP_dcounter1, BP_dcounter0)) +
std_logic_vector'("01"));
END IF;
WHEN OTHERS =>
END CASE;
END IF;
IF ( RESET='1' ) THEN
next_sreg1<=STATE1;
readcounter <= (std_logic_vector'("00"));
ELSE
CASE sreg1 IS
WHEN m0empty =>
next_sreg1<=m0readwait;
readcounter <= (( std_logic_vector'(readcounter1, readcounter0)));
WHEN m0readwait =>
IF ( (sreg=m0full)) THEN
next_sreg1<=read0;
readcounter <= (( std_logic_vector'(readcounter1, readcounter0)) +
std_logic_vector'("01