猴歌回答得很对啊.
楼主并行没搞懂吧, 可以看看下面3个process, 功能完全一样.
用<=给信号赋值, 都是在时钟结束时同时赋值的. 跟process里面的并行语句顺序无关.
process (DOok_Buf,FCO)
begin
if (DOok_Buf='0') then
P_Count<=X"000";
elsif rising_edge(FCO) then
P_Count<=P_Count+1;
if(P_Count=X"001") then
LVAL<='0';
else
LVAL<='1';
end if;
end if;
end process;
process (DOok_Buf,FCO)
begin
if (DOok_Buf='0') then
P_Count<=X"000";
elsif rising_edge(FCO) then
if(P_Count=X"001") then
LVAL<='0';
else
LVAL<='1';
end if;
P_Count<=P_Count+1;
end if;
end process;
process (DOok_Buf,FCO)
begin
if (DOok_Buf='0') then
P_Count<=X"000";
elsif rising_edge(FCO) then
P_Count<=P_Count+1;
P_Count<=P_Count+1;
P_Count<=P_Count+1;
if(P_Count=X"001") then
LVAL<='0';
else
LVAL<='1';
end if;
end if;
end process;
|