因此我遇到了一些舊代碼,我必須複製,但它不會用新的Xilinx編譯器編譯,所以我需要弄清楚它是什麼確實。我有這樣的事情:嵌套如果(rising_edge(clk))陳述在VHDL
if rising_edge(clk) then
—do some things
if rising_edge(clk) then
—do some other things
end if
end if
是否需要2個時鐘週期才能到達內部if語句,或者是第二個if語句是否簡單冗餘?
此外,賽靈思給出錯誤:「邏輯的信號是由一個時鐘控制的,但似乎不是有效的順序描述」
感謝,任何幫助表示讚賞。
感謝這麼好的答覆!我非常肯定,我能夠確定原作者的意圖來自其他代碼(沒有評論,關注你),我將嘗試並實現它,並看看會發生什麼。謝謝您的幫助! – Jamal 2011-06-17 15:37:51
我不太確定如果合成器會接受這個錯誤,那將會是一個錯誤。第二個if語句總是通過模擬(測試相同的條件)。雖然合成工具拒絕兩個嵌套邊緣條件是合理的,但忽略第二個條件也是有意義的。也就是說,代碼應該真正改變,以便它只有一個邊緣檢測。 – Philippe 2011-06-19 06:24:31