I2C 发表于 2010-4-9 23:09:07

VHDL的If语句的优先级和并行问题

本帖最后由 fpgaw 于 2010-10-29 09:35 编辑

process(clk)
begin
    if rising_edge(clk) then

         if a='0' then            --第一个IF语句
               outa <= '1';
         end if;

         if b='1' then            --第二个IF语句
               outb <= '0';
         end if;
end if;
end process;

我像知道的是:在执行进程语句的时候,第一个和第二个是不是并发执行的,还是先执行完第一个IF语句再执行第二个IF语句

I2C 发表于 2010-4-9 23:09:26

执行时是串行的!

看你要实现什么功能,如果你要最终先执行第一个再第二个的话,还是要改改代码了

I2C 发表于 2010-4-9 23:09:37

在process中,语句是串行执行的,在process外,语句是并行执行。这个里面肯定是顺序执行的

I2C 发表于 2010-4-9 23:09:49

资料   短消息 编辑 删除 引用 第4楼


建议:在同一进程中最好只放入一个IF语句

TCL 发表于 2011-7-1 15:00:28

VHDL的If语句的优先级

蓝余 发表于 2011-7-5 18:39:50

这个问题看起来不怎么起眼,确实是需要注意的,一开始就保持良好的代码书写规范是很重要的。

honhu 发表于 2011-7-8 19:56:33

process内的语句是顺序执行。

liujilei311 发表于 2011-7-13 14:39:25

process内的语句是顺序执行的,process外边的语句是并行执行的,画程序流程图的时候一定要注意了!!!!!!!!
页: [1]
查看完整版本: VHDL的If语句的优先级和并行问题