1. 程式人生 > >FPGA學習筆記

FPGA學習筆記

   FPGA中序列配置晶片(如EPCS128) 既要起到儲存 FPGA啟動配置資料的作用,又要擔負儲存 NIOS2處理器程式的作用。因此,EPCS控制器的作用有兩個:一是用來幫助 EDS工具把軟體程式下載到EPCS4 晶片中,二是在 FPGA配置完成後,引導EPCS4 中的程式到 SDRAM 中進行執行。
   
時序設計四部曲:即時序分析、時序約束、時序報告、時序收斂。 
分析時,要清楚與系統時鐘頻率有關的元件是哪些?與外設介面頻率有關的元件又是哪些呢?如果元件與外圍的時序基本沒有要求,要不要做管腳的時序約束無關緊要,對我們的設計照成不了任何影響。用前面說過的情況來處理它,就把它歸入false路徑。

建立時間:是指資料在被取樣時鐘邊沿取樣到之前,需保持穩定的最小時間。
維持時間:是指資料在被取樣時鐘邊沿取樣到之後,需保持穩定的最小時間。鎖存就是把訊號暫存,以維持某種電平狀態。

Altera共有四種工作模式:1.mormal模式:PLL的輸入引腳與I/O單元的輸入時鐘暫存器相關聯;2.zero delay buffer模式,PLL的輸入引腳和PLL的輸入引腳和PLL的輸出引腳的延時相關聯;3.external feedback模式:PLL的輸入引腳和PLL的反饋引腳延時相關聯;4.no compensation模式:不對PLL的輸入引腳進行延時補償。
always 塊內的語句是順序執行的,always塊之間、assign語句以及例項元件等語句都是並行執行的


網路型別的變數不能儲存值,而且必須受到驅動器的驅動。
wire型別的資料用來表示用以assign語句賦值的組合邏輯訊號,wire型別的訊號可以用作任何方程式的輸入和例項元件的輸出,但只能在assign語句中被賦值使用。
fpga中[n:1],”:“左邊的數字表示資料最高位標號,它右邊的數字表示資料最低位標號,例如:
wire[4:1] drain //drain[4]為最高位,drain[1]是最低位
wire[0:3] address //address[0]為最高位,address [3]是最低位
register型變數對應於具有狀態保持作用的電路元件,如觸發器,鎖存器等。register變數只有在被明確地賦值以後才能對其他變數進行賦值,重新賦值之前一直保持原值。在設計中,此類變數必須放在塊語句中,通過過程賦值語句賦值。同一個register型變數只能在一個語句塊中重複賦值,而不能同時在多個塊語句中賦值使用。
所謂同步是指訊號有效狀態地取樣必須與時鐘地有效沿同步,而非同步則與時鐘訊號無關,只要非同步訊號有效,就會發揮其作用。

    譯碼器,if-else語句是先從第一個條件分支開始判斷,因此使用if-else語句設計的譯碼器效率較低。而case語句的特點是,執行過程中語句根據計算的結果直接跳入相對應的條件分支。因此使用case語句設計譯碼器較為合適。