很久沒更新了,今天不談fpga器件特性,出一篇對廣大初學者們友好點的入門指引。
首先強調一點,
初學fpga不需要買開發板!但必須要會**除錯!
初學fpga不需要買開發板!但必須要會**除錯!
初學fpga不需要買開發板!但必須要會**除錯!
重要的事情說三遍
首先國際慣例,先上一張fpga入門的思維導圖
fpga入門思維導圖
一、verilog
1.理解input、output、 wire、 reg、inout、parameter 這些宣告在**中的作用。
2.理解組合邏輯,時序邏輯
assign a = b & c ; //組合邏輯
/always@(posedge clk)
a_dly <= a ; //時序邏輯
always@(posedge clk)
a <= b & c ; //時序邏輯與組合邏輯混合 。
// b & c 是組合邏輯操作 ,
//將其得到得結果打一拍傳給a ,這就是時序邏輯操作。
3.理解generator , task , function。讓自己的**更簡潔 並且 更具有可移植性。
4.學習書上的模組**,多看多寫。只看不寫很多時候都是,噢~腦子會告訴你你學會了,但雙手一碰鍵盤,啥都寫不出來。 推薦大家在寫的過程中盡可能聯想到1 、2 、3點的內容。
二、**
**分為多個階段,不同階段所關注的事務也不同 。這裡我主要講的是行為級**,以及綜合後的**。
1.看波形,主要看關鍵輸出波形與自己的預期是否相符,在行為級**階段不符的化就要回去修改下**,修改到它與自己預期相符為止。
2.看日誌,調網表。看日誌主要是針對行為級**ok,但綜合後的**不ok的情況。這種情況主要是資源被eda軟體在綜合過程中優化掉所造成的,通常日誌和網表中就會指出哪些資源被優化掉。對於被優化掉的資源,我們可以通過keep 或者 修改綜合策略來將其保留。
3.寫測試用例,在關鍵訊號較多的情況下,單單看波形會讓你「眼花繚亂」。這時候我們就需要寫**,讓**軟體自己去比對輸出訊號與自己的預期是否相符,而不是人為的乙個個去看。當然,大公司裡一般都是對測試用例有嚴格要求~,個人玩家嘛,滿足自己需求就好。
三、協議(多看手冊!多看手冊!多看手冊!)
現在的模組,為了讓設計更加通用,讓更多的開發者快速上手呼叫。幾乎都是按照各種各樣的標準協議來做,所以協議的學習是fpga學習不可或缺的一部分。在協議學習過程中,我們要學會看時序圖,掌握各種協議間套路(找出不同的協議間都有哪些共性)。
1.對於uart i2c spi這些非常常用卻又很基礎的協議。初學者必須要做到不看參考**,只看時序圖和訊號介紹手敲一遍驅動**,****,這樣才能讓你快速吸收這些協議中的內容。
2.對於pll ram fifo這些基本的ip,我們需要熟練掌握其使用技巧。
3.學會使用apb、axi。很多fpga廠家的ip應用層都是將它封裝成axi這種形式,如果單純的應用開發的話,學會這axi幾乎可以做到一招鮮,吃遍天。
4.根據自己的需求
5.多看廠家example design,模仿廠家**的風格,讓自己的設計更加的通用。
四、後端
1.深入掌握eda軟體使用方法,懂的如何去選擇符合自己設計需求的綜合、實現策略。
2.學會看綜合 、實現後的schematic,chip view,utilization的結果,並根據結果去優化自己的設計。
寫這篇文章主要是針對偏向於應用的入門者!
jasper灬蘭:fpga從入門到精通(1) - 前序zhuanlan.zhihu.com
最近加班有點多,更的特別慢,各位客官大老爺抱歉啦~
FPGA 對FPGA的理解
該文章主要描述對fpga的理解及其在嵌入式開發中fpga的配合問題。1 fpga的設計流程 fpga field programmable gate array 是一種可程式設計的邏輯電路,可以通過硬體描述語言verilog或者vhdl實現邏輯電路的設計。其設計流程如下 其中,功能 又可以稱為前 主...
微控制器和FPGA的區別
採用fpga設計asic電路 專用積體電路 使用者不需要投片生產,就能得到合用的晶元。fpga可做其它全定製或半定製asic電路的中試樣片。fpga內部有豐富的觸發器和i o引腳。fpga是asic電路中設計週期最短 開發費用最低 風險最小的器件之一。fpga採用高速cmos工藝,功耗低,可以與cm...
FPGA與CPLD的區別
儘管fpga和cpld都是可程式設計asic器件,有很多共同特點,但由於cpld和fpga結構上的差異,具有各自的特點 cpld更適合完成各種演算法和組合邏輯,fp ga更適合於完成時序邏輯。換句話說,fpga更適合於觸發器豐富的結構,而cpld更適合於觸發器有限而乘積項豐富的結構。cpld的連續式...