我不是少爷 发表于 2010-6-25 23:19:00

状态机的例子是分了三个process的那种 不同process之间是并行执行的

本帖最后由 fpgaw 于 2010-11-19 06:35 编辑

最近开始学vhdl 对并行语句不很了解 学状态机这块时遇到点问题求教一下

我学的状态机的例子是分了三个process的那种 不同process之间是并行执行的 问题如下:
architecture behave of FSM is
signal pres_state, next_state: std_logic_vector(2 downto 0) := "000";
begin

first:process
begin
...
pres_state <= next_state
...
end process first;

second : process
begin
...
case pres_state is
when "000" =>
...next_state <= "000";
...
end process second;

third process
begin
...
case pres_state is
when "000" =>
...
end process third;
end behave;

我想问 这三个process之间既然是并行执行的那么在执行完一次之后每个process里的pres_state的赋值是多少
我的想法是:在第一个process里pres_state是000,原因是第二个process里执行完之后的next_process的值为000 而next_state又赋给了pres_state

而在third里的process中判断process是以初值为准还是以第一个和第二个进程中process的最终赋值为准

出外的囝仔 发表于 2010-6-26 00:37:04

你用这个句子就说明你没有理解成并行“执行完之后,又……”

黑咖啡 发表于 2010-6-26 02:21:30

2#
chshk<br>
<br>
那是说并行的思想就是同时执行 在执行完之后再对其它语句产生影响么

沉醉夕阳下 发表于 2010-6-26 03:20:54

2# chshk&nbsp;&nbsp;<br>
<br>
那是说并行的思想就是同时执行 在执行完之后再对其它语句产生影响么<br>
owenbzf 发表于 2009-7-31 12:42
       
        http://edacn.net/bbs/images/common/back.gif

要是产生影响就是先后执行了

海龟 发表于 2010-6-26 03:53:59

硬件和软件有区别的。硬件是并发的!
页: [1]
查看完整版本: 状态机的例子是分了三个process的那种 不同process之间是并行执行的