VHDL,结构体中为并行语句,当没有进程块之类的时候,是不是当作顺序语句运行的?

architecture中如果没有process的时候是不是整个代码就是按顺序语句运行了?如

architecture rtl of process_test is
begin
c<='0';
end architecture rtl;

假如说结构体中有process的时候,整个代码就是按并行做了?如
architecture rtl of process_test is
begin
process (sel)
begin
if (sel = '1' ) then
c <= '1';
end if;
end process;
end architecture rtl;

所以下面的代码是不允许的
architecture rtl of process_test is
signal flag : integer := 0;
begin
c<='0';
process (sel)
begin
if (sel = '1' ) then
c <= '1';
end if;
end process;
end architecture rtl;

这个问题我还是自己解决了,其实我后来明白这个是信号量的赋值问题,总结下。
1.一个信号或端口只能在一个process或只能在architecture里面被赋值
2.在architecture里面被赋值的话,赋值语句只能有一句,在process里面可以有多句,但不会立刻赋值,而是在进程这一轮结束的时候选取最后一次赋值语句作赋值
3.如果有多个赋值语句,如s <= a + b;a <= y + 1;前面两句的执行顺序和书写顺序无关,和赋值依赖关系有关,AOE