我就必須在CLK的每個上升沿被添加4程序計數器工作:信號變爲0X00從0100
代碼:
if_CounterSum <= MemAddr + 4;
process (Clk, Reset)
begin
if Reset = '1' then
MemAddr <= (OTHERS => '0');
elsif rising_edge(Clk) then
MemAddr <= if_CounterSum;
end if;
end process;
當ISIM模擬,
After Reset is set to 0:
Initial state:
MemAddr = 0 (0000)
if_CounterSum = 4 (0100)
First CLK rising_edge:
MemAddr = X (0X00)
if_CounterSum = X (XXXX)
我已經工作了一段時間這個「簡單」的事情,我曾嘗試:
- 也將+4行更改爲同步(進入進程),但問題仍然存在。
- 其他一些沒有奏效的東西。
我該如何解決X?我已經測試了其他數字而不是4,並且我猜測了if_CounterSim中的所有'1',其中在賦值後轉換爲'X'。
工程,有不止一個進程重置MemAddr,但作爲重置是0我認爲這不會有問題。感謝和解決:9 – 0Zero0
認爲硬件。每個進程都會生成一個單獨的硬件塊,如果多個驅動器MemAddr一起短路了它們的輸出,那麼'0x00'告訴你,這不是一件好事。 –