如何在vhdl进程内部合成顺序语句?

问题描述 投票:0回答:1

我在理解vhdl进程内部的顺序语句是如何合成时有些困难。

IEEE标准参考手册Std 1076-2008声明:

顺序语句用于定义用于执行子程序或过程的算法;它们按照它们出现的顺序执行。

易于理解,因为仿真是由CPU完成的,而CPU是为顺序执行而构建的。在这种情况下,最困难的事情是模拟concurrent执行,这是通过delta delays技巧完成的。但是综合呢?我不明白在完全逻辑的体系结构中两个语句怎么可能是顺序的...

有帮助吗?

示例过程:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity example is
    Port (clk, rst, A : in STD_LOGIC; B : out STD_LOGIC);
end example;

architecture example_arch of example is
begin
    process(clk, rst)
        variable C : STD_LOGIC;
    begin
        if rst = '1' then
            C := '0';
            B <= '0';
        elsif rising_edge(clk) then
            if A = '1' then
                E := '1';
            else
                E := '0';
            end if;

            -- then sequentially ?
            if E = '1' then
                B <= '1';
            else
                B <= '0';
            end if;
        end if;
    end process;
end example_arch;
vhdl sequential
1个回答
0
投票

综合工具将分析该过程并将其转换为符合sequential(但也是“即时”)执行过程的方式的闸门和触发器。

例如,您的process(我假设您要分配给变量C,而不是E并检查其值)应转换为(合成)简单的DFF异步重置。

© www.soinside.com 2019 - 2024. All rights reserved.