spld、cpld及fpga等能實現任何邏輯的本質是,任何乙個邏輯都能由多項式表示(或逼近)。多項式無非就是乘運算和加運算。而正好,與門符合乘,或門符合加。
fpga擴充套件架構sopc,即片上可程式設計系統。分為兩種,一種是純fpga架構的sopc,稱sopc系統。一般內嵌乘法器、乘加器、吉位元傳輸模組等等,可以使原來利用邏輯實現的資源消耗多、速度慢的演算法得到很大的優化。另一種是圍繞fpga的多芯架構的sopc。包括fpga+處理器(cpu、arm……),fpga+dsp,fpna等等。
一般記憶體用的是dram,它與sram區別在於dram需要一段時間重新整理一次,需要額外的定時重新整理電路,因為硬體結構是電容充放電。這種小規模的dram來講,重新整理電路的消耗得不償失,對fpga而言太複雜。因此fpga用的是sram,不需要動態重新整理,一旦載入資料將保持不斷電。
基於lut(查詢表)技術的fpga實現機裡是事先通過綜合器將所有可能的輸入進行換算得到所有可能的結果(真值表),真值表的計算過程實際上是開發過程中的綜合過程。然後把這些結果載入lut(是sram)儲存單元,在通過不同輸入進行索引出相應結果。需要說明的是,lut硬體本身就存在二選一多路器結構,嘗試著理解一下。
對於乙個n輸入的查詢表來上,它能夠實現任何n輸入組合函式的功能。目前大多是基於4輸入lut的。為充分利用lut,如果lut是4輸入的,那麼邏輯訊號寬度最好用4的倍數。比如23位,那就用24位。一來不浪費資源,二來可以防止計數溢位。
熔絲和反熔絲的概念對比保險絲。
mux是指二選一多路選擇器,說基於mux實際上也是基於反熔絲技術的fpga。
嵌入式一般指嵌入處理器。所以我的理解是微控制器、fpga這些不算是很嚴格的嵌入式系統。
硬核,是直接將微處理器放到fpga晶元裡面。軟核則是將一組邏輯資源塊配置成乙個微處理器,速度慢一點,但簡單。在資源允許情況下,可以配置多個軟核。
top-down是指從整個系統按功能出發,按一定原則將系統分成若干子系統,再將子系統分成若干個功能模組,直至分成許多基本模組。模組例化便是起到層與層之間的連線作用。
在altera的開發流程中,將編譯、對映過程合成綜合。在xilinx開發流程中,由設計輸入得到門級王彪的過程叫做綜合,而對映過程歸結到某一稱作實現的子步驟中。
約束分為綜合約束和布局佈線約束,後者又可分為位置約束和時序約束。一般開發環境對約束有預設設定,也大部分情況是適用的。
綜合約束是在綜合過程中做的,不同的約束會導致生成效能不同的電路。電路實現的速度和消耗的面積是貫穿fpga開發過程中兩個矛盾的問題。綜合約束是小範圍內實現實現速度和面積平衡的一種方式。
位置約束又稱i/o約束。這個是必須的。還有增量編譯也會涉及到。關於i/o約束我曾在除錯ad9854的文章中講到,有些開發環境還預設設定了電平和限流的方面,有可能會導致現象出不來的情況,這個不同版本的開發環境也會有區別吧。
時序約束,這裡不展開了,最重要的是知道系統效能決定於最差路徑的延時。我現在一般還是忽略的。
三種**。第一種是rtl級**,又稱前**,功能**,僅僅驗證邏輯功能。第二種是門級**,又叫靜態**,它是綜合後lut門級網表的**。目的是驗證當工程到了用lut網表描述的時候,從功能上驗證工程的正確性。第三種是時序**,又叫後**,是在布局佈線後做的,在前面的基礎上新增了時延資訊,在分析邏輯功能是否滿足要求。
那些年的我們
1992年我小學畢業,小學的名稱叫四村小學,雖然曾經的四村小學已經不在了,但是他永遠在我們的心中。那個時代,我們沒有手機也沒有智慧型相機,拍照是一種奢侈的事情,只有畢業的時候才有機會拍照。2002年我初中畢業,初中的名稱叫四村中學,雖然曾經的四村中學已經改名了,但是留在四村中學的回憶還是那麼多。初中...
那些年我們office 那些年我們一起吃過的桑葉泡
五一放假,和弟弟一起回了老家,回家之後立馬拿著小籃子出門,去尋覓讓我心心念念的桑葉泡,這個季節正是它們成熟的時候。桑葉泡是我們家這邊的叫法,其實它還有很多的別稱,比如桑葚 桑椹 桑椹子 桑蔗 桑棗 桑果 桑泡兒,桑椹等其性味甘寒,具有補肝益腎 生津潤燥 烏髮明目 利尿保健 消暑等功效。但我們吃它並不...
那些年我們用過的SSD
具體資訊如下 從比較中刪除 essentials 狀態launched 順序讀取 500 mb s 順序寫入 315 mb s 隨機讀取 100 跨度 75000 iops 隨機寫入 100 跨度 9000 iops 延遲 讀取 50 s 延遲 寫入 65 s 電源 活動 3.5w 電源 閒置 0....