2012-11-07 20 views
1

有我的VHDL code,有BDF desing我的程序在ModelSim中工作,但在真實FPGA板上不起作用

當我在ModelSim中模擬我的VHDL代碼時,它工作正常,但是當我在Quartus中模擬它或上傳到FPGA Cyclone板時,LED沒有信號。 IDK,我想以什麼方式來看待。

+0

您是否嘗試將簡單VHDL代碼的完整性檢查上傳到您的主板? Cyclone板是否帶有測試比特流來驗證基本操作? –

+0

你的意思是說Cyclone不工作?它的大學課桌(> 10),我的程序也不適用於Quartus模擬。 – JohnDow

+0

您是否首次完成了閃爍一個LED的設計?這只是十幾行代碼,直到你有這樣的工作,並理解你是如何得到它的,從「它在仿真中起作用」到「它在芯片上起作用」有很大的提升 –

回答

5

我快速瀏覽了你的代碼,雖然看起來在語法上是正確的,但它看起來並不真實(儘管它可能是)。

例如:

led_size : process(clk, size) 
begin 
    if size = '1' then  
    led_size_f <= led_size_f +1; 
    end if; 
    if led_size_f > 4 then 
    led_size_f <=1; 
    end if; 
end process; 

,它甚至沒有使用clk,它也將產生一個鎖存器(通常是一件壞事,除非你是絕對肯定你在做什麼),這將當試圖在FPGA中運行時,很可能會給您帶來問題。

我可以發佈更多的例子,但如果我是你,我會嘗試查看你最可能從你的綜合工具獲得的警告列表。

此外,請查看您的IDE是否帶有一些用於同步設計的模板,然後嘗試遵守這些模板,以確保您確實推斷出您需要的硬件。

+0

因此,我刪除了不使用它的clk,並編譯了程序,並查看了'Warning:LATCH原語「knight_rider2:inst | led3」被永久禁用。也許這意味着,我在某處忘記了什麼? – JohnDow

+0

'信息:引腳「LEDR [0]」沒有指定的輸出引腳負載電容 - 假設默認的負載電容爲0 pF用於時序分析「 – JohnDow

+0

這不僅僅是將」clk「從不使用的位置移開 - 您在進行VHDL開發時需要「Think Hardware」(tm)。您的代碼需要綜合並映射到您的FPGA器件中可用的硬件,而使用您可以編寫的所有語法正確的VHDL,這是遠遠不可能的。如上所述,您需要遵循一些特定的模板,以使您的代碼正確映射到硬件。一本很好的VHDL書籍可以幫助你做到這一點 - 並且IDE中的幫助功能也可以。 – sonicwave

相關問題