我想了解一些VHDL代碼和我被困在理解這一部分:vhdl中pipeline和rising_edge的區別?
...
accumulated_x <= input_x;
...
if accumulated_x = '0' and input_x = '1' then
對我來說是一樣的:
if rising_edge(input_x) then
但是,當我更換這樣的,它不起作用,然後這意味着它不一樣,爲什麼?
我想了解一些VHDL代碼和我被困在理解這一部分:vhdl中pipeline和rising_edge的區別?
...
accumulated_x <= input_x;
...
if accumulated_x = '0' and input_x = '1' then
對我來說是一樣的:
if rising_edge(input_x) then
但是,當我更換這樣的,它不起作用,然後這意味着它不一樣,爲什麼?
rising_edge
對於只有一個無限短時間(正式,增量循環)是正確的。
瞎猜,你的兩行
accumulated_x <= input_x;
if accumulated_x = '0' and input_x = '1' then
是一個時鐘的過程中,(通過使用的標題是「管道」作爲暗示,那麼這if
條件將是真正爲整個時鐘週期。
這就是區別。有什麼區別意味着你的設計是不可能說給我們的資料。
您需要提供更多的背景。這可能是有關背後的'...'什麼隱藏。 – mkrieger1