这些代码有什么区别吗?

时间:2019-04-26 05:02:35

标签: vhdl fpga

我正在尝试进行新设计。我用同步和异步两个过程来设计它。我通常在异步过程中进行重设,如第一个代码段所示。但是,有人刚刚告诉我,这是一个错误。据她所知,我应该在同步过程中给出reset语句。我还检查了第一个的原理图,发现它已正确连接到触发器的复位。

const appPath = process.cwd() + '/src/'; // if the script is always excuted in the src directory
// or
const appPath = 'YOUR/DATA/PATH'; // absolute path

fs.readFileSync(appPath + '/content/numbers.csv');
sync_proc : process(clk_i)
    begin
        if(rising_edge(clk_i)) then
            do smt..      
        end if;
    end process sync_proc;

上面是我的代码,下面是她的建议。

async_proc : process(some signals) 
    begin
       if(reset_i = '1') then
            reset smt..
        else
            do smt..
        end if;
    end process sync_proc;

我想知道,这些状态之间是否有区别?如果是这样,它们是什么?

1 个答案:

答案 0 :(得分:0)

将VHDL process看作是一些对硬件建模的软件。使用您的方法,您需要两个小的硬件来驱动相同的信号,即短路。采用她的方法(正确),您就可以用一点点硬件(触发器)来驱动一个信号。