|

楼主 |
发表于 2010-9-9 10:34:17
|
显示全部楼层
2# qlengyu
这是我写的一段内嵌式的代码:
------------------------- Main Part ------------------------------------
process (clk, rst)
begin
if (rst = '0') then
main_state <= MST0;
sub_state <= SST0;
cnt_clk <= 0;
flag <= 0;
elsif (rising_edge(clk)) then
case main_state is
when MST0 =>
if (cnt_clk < 2) then
main_state <= MST0;
cnt_clk <= cnt_clk + 1;
else
main_state <= MST1;
cnt_clk <= 0;
end if;
when MST1 =>
if (cnt_clk < 2) then
main_state <= MST1;
cnt_clk <= cnt_clk + 1;
else
main_state <= MST2;
cnt_clk <= 0;
end if;
when MST2 =>
case sub_state is
when SST0 =>
sub_state <= SST1;
when SST1 =>
sub_state <= SST2;
when SST2 =>
if (flag < 1) then
sub_state <= SST1;
flag <= flag + 1;
else
sub_state <= SST0;
main_state <= MST1;
flag <= 0;
end if;
end case;
end case;
end if;
end process;
process (rst, main_state, sub_state)
begin
if (rst = '0') then
sig1 <= '0';
sig2 <= '0';
else
case main_state is
when MST0 =>
sig1 <= '0';
sig2 <= '0';
when MST1 =>
sig1 <= '1';
sig2 <= '0';
when MST2 =>
sig1 <= '0';
case sub_state is
when SST0 =>
sig2 <= '0';
when SST1 =>
sig2 <= '1';
when SST2 =>
sig2 <= '0';
end case;
end case;
end if;
end process;
--------------------------------------------------------------------------
如果我想把 "case sub_state is" 单独拎出来,写在另外一个Process语块中,这样阅读就比较清晰。
请问如何实现?谢谢! |
|