導讀:如果想快速學習,那么可以進入明德揚官網進行免費課程系列學習,這樣可以讓你的開發板盡快動起來,早點拿起開發板用起來,掌握的也快,但是后期沒有系統理論支持,以及企業級實操項目訓練,麻煩就比較大,只能自己摸索,花大量的時間。這樣你需要找專業的FPGA培訓機構來做系統的學習還有實操項目,FPGA學習最關鍵的就是項目的實操。理論學的再好要談實戰,否則你自學的再好還是個菜鳥,因為沒辦法應對實際工作中遇到的各種問題的。
一、FPGA學習重點是什么?
1、 看代碼,建模型(fpga邏輯模型)
只有在腦海中建立了一個個邏輯模型,理解FPGA內部邏輯結構實現的基礎,才能明白為什么寫Verilog和寫C整體思路是不一樣的,才能理解順序執行語言和并行執行語言的設計方法上的差異。在看到一段簡單程序的時候應該想到是什么樣的功能電路。
2、 用數學思維來簡化設計邏輯(FPGA設計技巧)
學習FPGA不僅邏輯思維很重要,好的數學思維也能讓你的設計化繁為簡,所以啊,那些看見高數就頭疼的童鞋需要重視一下這門課哦。舉個簡單的例子,比如有兩個32bit的數據X[31;0]與Y[31;0]相乘。當然,無論Altera還是Xilinx都有現成的乘法器IP核可以調用,這也是最簡單的方法,但是兩個32bit的乘法器將耗費大量的資源。那么有沒有節省資源,又不太復雜的方式來實現呢?我們可以稍做修改:
將X[31;0]拆成兩部分X1[15;0]和X2[15;0],令X1[15;0]=X[31;16],X2[15;0]=X[15;0],則X1左移16位后與X2相加可以得到X;同樣將Y[31;0]拆成兩部分Y1[15;0]和Y2[15;0],令Y1[15;0]=Y[31;16],Y2[15;0]=Y[15;0],則Y1左移16位后與Y2相加可以得到Y,則X與Y的相乘可以轉化為X1和X2分別與Y1和Y2相乘,這樣一個32bit*32bit的乘法運算轉換成了四個16bit*16bit的乘法運算和三個32bit的加法運算。轉換后的占用資源將會減少很多,有興趣的童鞋,不妨綜合一下看看,看看兩者差多少。
3、 時鐘與觸發器的關系(fpga時序應用)
“時鐘是時序電路的控制者”這句話太經典了,可以說是FPGA設計的圣言。FPGA的設計主要是以時序電路為主,因為組合邏輯電路再怎么復雜也變不出太多花樣,理解起來也不沒太多困難。但是時序電路就不同了,它的所有動作都是在時鐘一拍一拍的節奏下轉變觸發,可以說時鐘就是整個電路的控制者,控制不好,電路功能就會混亂。
打個比方,時鐘就相當于人體的心臟,它每一次的跳動就是觸發一個CLK,向身體的各個器官供血,維持著機體的正常運作,每一個器官體統正常工作少不了組織細胞的構成,那么觸發器就可以比作基本單元組織細胞。
時序邏輯電路的時鐘是控制時序邏輯電路狀態轉換的“發動機”,沒有它時序邏輯電路就不能正常工作。因為時序邏輯電路主要是利用觸發器存儲電路的狀態,而觸發器狀態變換需要時鐘的上升或下降沿,由此可見時鐘在時序電路中的核心作用。
最后簡單說一下體會吧,歸結起來就是多實踐、多思考、多問。實踐出真知,看100遍別人的方案不如自己去實踐一下。實踐的動力一方面來自興趣,一方面來自壓力。有需求會容易形成壓力,也就是說最好能在實際的項目開發中鍛煉,而不是為了學習而學習。
明德揚科教的教學以潘文明先生的《至簡設計法》為中心,其核心就是一個“簡”字。
除了在設計思路、過程、結果等方面實現了至簡化,學習方法也是最簡單,完全適合于0基礎的學員。正常情況下,完全沒有基礎的學員通過30天的學習,就能獨立完成FPGA項目的學習。