引言 在學fpga之前,一定弄明白一件事情,就是,fpga到底是什麼?
好吧,這一節主要說一下這個問題,當然不止這乙個問題。
弄明白了這個問題,下一節開始說verilog語言的問題。
1.1fpga實現型別
眾所周知,fpga不同於asic的最要的特性就是,fpga是可重配置的。可重配置,就是這個晶元的功能是可重新定義的。配置什麼呢,配置邏輯,什麼是邏輯?邏輯由最小邏輯單元和連線兩部分內容組成。
1》如果配置內容的邏輯部分(真值表)是通過ram存放的,那麼這個fpga就是基於ram的。
2》如果配置內容的邏輯部分(真值表)是通過flash存放的,那麼這個fpga就是基於flash的。
3》如果配置內容的邏輯部分(真值表)是那都沒存,直接修改硬連線,那麼這個fpga就是基於熔絲/反熔絲的。這種只能配置一次,嚴格意義上說不算fpga。
4》由於存在flash或ram的內容在高輻射等影響下,容易發生變化,所以我猜,神九上面的fpga是基於熔絲/反熔絲的。
2,fpga最小單元
altera公司叫le。xilux有另外乙個名字。其實都一樣。
下面就親眼看一下le到底是什麼,怎麼看呢?
1》開啟quartusii,
2》找到chipplaner
3》你會看到好多小格仔
4》逐級放大,然後雙擊乙個小格仔,
5》你會看到幾個門,和很多線,
6》有的線是灰的,有的線是藍的。
7》有的門是灰的,有的門是藍的。
8》配置檔案就是描述哪些門是灰的,哪些是藍的,哪些線是灰的,哪些線是藍的。
9》再雙擊乙個小格仔,你會發現和剛才那個小格仔一樣,好了,有很多很多。晶元型號ep2c8q。。。其中『c』後面的『8』就是8k,就是le的數量。
10》fpga晶元有的是4線的,5線的,什麼意思呢,其實fpga的最小單元就是乙個多路選擇器。4線就是4選16路選擇器。
11》16路的內容存在的memery(可以是ram或flash)裡,內容就是真值表的輸出。
12》通過修改真值表,就可以實現不同的邏輯。
13》通過修改很多很多個le的真值表,就可以修改整個fpga晶元的邏輯,即,重配置。
3,fpga和asic的關係
如果把werilog語言描述的電路對映成fpga的單元(le),那麼就是fgpa。
如果把werilog語言描述的電路對映成製造ic的公司的元件,佈線,像製造pcb那樣,(只不過電阻和電容都很小)那麼就是asic。
在流片之前要用fpga驗證。
4,自己寫完verilog**,到底會生成什麼樣的電路呢?
開啟qartusii,找到rtl vewer,然後你就可以看到你的**生成什麼樣的電路了。
就像你畫完原理圖得到的結果。就像是乙個尺寸很小的pcb一樣。可以這樣認為,乙個小晶元,就是乙個濃縮版的pcb板子。
5,verilog**是如何生成asic的?
1》用notepad++等編輯器寫**
2》用modulesim等**工具進行rtl**:前**
3》用qartusii等軟體進行編譯,生成中間表示形式,然後進行邏輯優化,綜合,生成門級表示形式,和自帶的元件庫(也是用verilog寫的,只不過是開關級的)
4》用modulesim等**工具進行門級,開關級**:後**
5》將qartusii綜合後的配置檔案(sof,pof)燒到板子上,驗證
6》讓asic廠子造幾片,驗證
7》批量造
6,小結
這一節討論了很多問題,需要理解,其實fpga不是從天上掉下來的,有他一步步的發展過程。和傳統pcb製造,軟體編譯等領域有很多聯絡啊,對比一下,會比較容易理解。
深入淺出FPGA 1 Cyclone晶元內部
文章出處 引言在學fpga之前,一定弄明白一件事情,就是,fpga到底是什麼?好吧,這一節主要說一下這個問題,當然不止這乙個問題。弄明白了這個問題,下一節開始說verilog語言的問題。1.1fpga實現型別 眾所周知,fpga不同於asic的最要的特性就是,fpga是可重配置的。可重配置,就是這個...
深入淺出FPGA 3 verilog HDL
文章出處 引言fpga最初階段的學習可以分為兩部分。一是hdl的語法,二是相關工具的使用。這第一部分,就是verilog hdl或者vhdl,國內用verilog的佔得比例多一些。對於第二部分,這要看具體的fpga開發過程,一般過程如下 3.1 fpga開發flow 1 進行需求分析,演算法設計,模...
深入淺出玩轉FPGA閱讀筆記(1) 初識FPGA
簡單講就是可以反覆程式設計的邏輯器件。asic和assp功能固定,就好比印刷好的紙張,而fpga則是可以隨時擦寫的白紙一張。fpga arm dsp都或多或少整合了一些asic的功能。arm 廉價 功能多 功耗低,擅長控制與管理。dsp 有專用的指令系統,能進行高速 高吞吐量的數字訊號處理。fpga...