Vhdl 按顺序执行两段代码,但并行执行代码本身

Vhdl 按顺序执行两段代码,但并行执行代码本身,vhdl,fpga,Vhdl,Fpga,我有一段代码需要一段接一段地执行。例如,我有一个加法slv_reg2,它是并发的,不是并行的。只需使用中间信号 恐怕你对VHDL的思考过程并不完全正确。您承认第一个赋值是“并行”进行的,但您必须意识到该进程也与其余语句同时运行。只有在一个过程中发生的事情才被依次评估——每次灵敏度列表中的任何信号发生变化时 我需要对你需要什么做很多假设,但也许你只是追求这种风格: c <= a + b; e <= d - c; 谢谢你。我想要实现的是微处理器发送并填充一些寄存器。然后执行一些计算并更

我有一段代码需要一段接一段地执行。例如,我有一个加法
slv_reg2,它是并发的,不是并行的。只需使用中间信号

恐怕你对VHDL的思考过程并不完全正确。您承认第一个赋值是“并行”进行的,但您必须意识到该进程也与其余语句同时运行。只有在一个过程中发生的事情才被依次评估——每次灵敏度列表中的任何信号发生变化时

我需要对你需要什么做很多假设,但也许你只是追求这种风格:

c <= a + b;
e <= d - c;

谢谢你。我想要实现的是微处理器发送并填充一些寄存器。然后执行一些计算并更改指示计算完成的标志。我用一个代码块更新了我的原始帖子,我认为它非常接近我的需要(刚到家,我会尽快测试它)。处理器发送数据,并将标志寄存器标记为“1”,表示已发送所有数据。一旦计算完成,硬件就会将标志更改为“0”,以便cpu可以轮询它。我不确定
slv_regX是否能很好地控制操作员,cpu应该在读取
slv_regX
寄存器之前等待计算完成。我可以把计算放在流程之外,但我需要一个标志来投票。我再次更新了代码块。也许我可以使用
等待clk_时段
来确保进程外的并发语句是完整的。这通常是不可合成的。有一个计时流程更有意义吗?因为看起来您需要一个一位寄存器来跟踪标志。此类过程的示例:
begin
slv_regX <= (slv_reg0 - slv_reg1) + (slv_reg2 - slv_reg3) +(slv_reg4 - slv_reg5); --...etc
process(clk) -- Process for horizontal counter
begin
if(rising_edge(clk)) then
  if(flag = 1) then
    flag <= 0;
  end if;
end if;
end process; 
c <= a + b;
e <= d - c;