VHDL中的并发语句和顺序语句

VHDL中的并发语句和顺序语句,vhdl,Vhdl,我有一个关于VHDL的基本问题 考虑以下过程: process(Clk) begin if(rising_edge(Clk)) then a <= data_in; b <= a; c <= b; data_out <= c; end if; end process; 上述过程充当延迟寄存器,其中数据_in在4个时钟周期后输出到数据_out 根据我的理解,这是因为信号是并行分配的。但是,为什么在一个名为sequential的进程中这些语句会被忽略呢 例如

我有一个关于VHDL的基本问题

考虑以下过程:

process(Clk)
begin
if(rising_edge(Clk)) then
  a <= data_in;
  b <= a;
  c <= b;
  data_out <= c;
end if;
end process;
上述过程充当延迟寄存器,其中数据_in在4个时钟周期后输出到数据_out

根据我的理解,这是因为信号是并行分配的。但是,为什么在一个名为sequential的进程中这些语句会被忽略呢

例如:

process(Clk)
begin
if(rising_edge(Clk)) then
  a <= b or c;
  a <= b and c;
end if;
end process;
在上面的过程中,“a”从第2条语句中获取值,我理解它是如何以顺序方式工作的,与第一条过程不同


请提供帮助。

其实很简单:VHDL进程中的所有语句都是按顺序从上到下执行的,没有例外。但是,


信号赋值操作符的左边实际上非常简单:VHDL进程中的所有语句都是按顺序从上到下执行的,没有例外。但是,


信号分配运算符的左侧是。易于理解的非常感谢。请问,变量是如何更新的?它也是连续的,但不符合规则1。@vipin否。变量会立即更新。是。易于理解的非常感谢。请问,变量是如何更新的?它也是连续的,但不遵守规则1。@vipin No.变量会立即更新。IEEE Std 1076-2008 10。顺序语句10.1顺序语句用于定义子程序或过程执行的算法;它们按照出现的顺序执行。这是否回答了你的问题?IEEE标准1076-2008 10。顺序语句10.1顺序语句用于定义子程序或过程执行的算法;它们按照出现的顺序执行。这是否回答了你的问题?