我需要一個計數器,可以在達到800時復位,或者當輸入中出現下降沿時,我會收到類似「不支持的時鐘語句」或「不能合成壞的同步描述」的錯誤VHDL,多個復位計數器
我tryied幾件事情,我需要像這樣
if rising_edge(clk) then
if Counter >= 800 OR rising_edge(X) then
Counter <= (others => '0');
else
Counter <= Counter + 1;
end if
x是復位計數器的輸入信號,計數器是STD_LOGIC_VECTOR
謝謝:)
WOA,我只是個菜鳥,謝謝您的答覆,我承認我寫的代碼不檢查它,對不起。此外,我不明白你是什麼意思的同步重置,我只是想計數器重置與下降/上升沿,並自動重置它去一個數字。是的,它是一個矢量im使用ARITH和UNSIGNED庫,如果我使用重置='0'計數器將不會得到「計數」直到重置到'1'再次,我想只是重置它,當它下降/上升,但繼續計數直到800或直到另一個下降/上升的邊緣,謝謝。 – user2982010
然後你必須自己同步重置信號,就像我發佈的最後一部分所說的那樣。但是,這種方法會導致1個時鐘週期的不確定性。 但我強烈建議您重新考慮您的設計並使用標準設計方法,即異步或同步重置。 – FRob