国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

5000字!FPGA開發必須知道的五件事

半導體技術研發 ? 來源:半導體技術研發 ? 作者:半導體技術研發 ? 2023-04-11 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

5000字!FPGA開發必須知道的五件事

FPGA(Field Programmable Gate Array 現場可編程門陣列)是一種可以重構電路的芯片,是一種硬件可重構的體系結構。它是在PAL(可編程陣列邏輯)、GAL(通用陣列邏輯)等可編程器件的基礎上進一步發展的產物,是作為專用集成電路ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。

鑒于其可編輯,更靈活;產品上市時間短,節省了ASIC流片周期;避免一次性工程費用,用量較小時具有成本優勢等特點,FPGA現已廣泛應用于原型驗證、通信汽車電子工業控制、航空航天、數據中心等領域。

一、FPGA的技術發展歷程

FPGA技術從發明到現在已經經歷了三十多年的發展歷程,其核心價值是可編程性和靈活性。隨著工藝技術、系統設計和應用創新的不斷進步,FPGA技術也在不斷創新和集成,實現了從邏輯器件到系統平臺的轉變。

在近十多年間,隨著5G人工智能云計算等新技術的快速發展和廣泛應用,對于FPGA等可編程邏輯器件的需求也越來越大。

為了解決系統設計問題,FPGA越來越多地整合系統模塊:高速收發器、存儲器、DSP處理單元和完整處理器。同時還進一步集成了重要控制功能:比特流加密與驗證、混合信號處理、電源與溫度監控以及電源管理等。這些特性在Xilinx的Zynq系列和Intel的Arria系列中得到了充分體現。同時,器件也推動了工具的發展。系統FPGA需要高效的系統編程語言,現可利用OpenCL和C語言以類似軟件的流程來編程。FPGA正在越來越多地取代傳統上ASIC,在小批量、個性化的產品市場方面具有明顯優勢。

二、FPGA的基本架構

自Xilinx公司于1984年發明了世界首款基于SRAM可編程技術的FPGA至今,FPGA的基本架構已經確定,主要包括以下幾個部分:

__可編程輸入輸出單元(IOB):__IOB是FPGA與外部設備進行信號交互的接口,可以支持多種電氣標準和協議,如LVCMOS、LVDS、PCIe等。IOB可以配置為輸入、輸出或雙向模式,可以實現信號緩沖、鎖存、延遲等功能。

__可配置邏輯塊(CLB):__CLB是FPGA實現邏輯功能的基本單元,每個CLB由兩個SLICE組成,每個SLICE包含4個LUT(查找表)、8個寄存器、3個MUX(多路選擇器)和一個CARRY4(進位鏈)。LUT可以實現任意6輸入1輸出的布爾函數,也可以用作分布式RAM或移位寄存器。寄存器可以實現數據鎖存和同步功能。MUX可以將LUT擴展為7輸入或8輸入的選擇器。CARRY4可以實現高速的加法、減法、比較等算術運算。

__嵌入式塊RAM(BRAM):__BRAM是FPGA內部提供的大容量存儲資源,可以用作數據緩存、隊列、FIFO等應用。BRAM有18K和36K兩種規格,可以配置為不同的位寬和深度,支持單口或雙口模式,也可以級聯成更大的存儲空間。

__布線資源:__布線資源是FPGA內部連接各種資源的網絡,包括水平布線、垂直布線、長線、超長線等不同類型和長度的布線。布線資源通過開關矩陣(switch matrix)進行連接和分配,開關矩陣由可編程的開關組成,可以實現靈活的布線方案。

__底層內嵌功能單元:__底層內嵌功能單元是FPGA內部提供的一些特殊功能模塊,如數字時鐘管理(DCM)、相位鎖定環(PLL)、延遲鎖定環(DLL)、全局時鐘網絡(GCLK)、全局置位網絡(GRST)等。這些功能單元可以實現時鐘生成、分頻、相位調整、延遲補償、時鐘分配、復位分配等功能,提高了FPGA的性能和穩定性。

__內嵌專用硬核:__內嵌專用硬核是FPGA內部集成的一些專用功能模塊,如乘法器、除法器、DSP(數字信號處理器)、微處理器、PCIe控制器以太網控制器等。這些硬核可以提供高效的計算和通信能力,降低了FPGA的邏輯資源消耗和功耗。

三、FPGA開發流程

FPGA的開發流程是利用EDA(Electronic Design Automation)開發軟件和編程工具對FPGA芯片進行開發的過程,主要步驟如下:

__1)功能定義/器件選型:__這個步驟主要進行方案驗證、系統設計和FPGA芯片選型等準備工作。根據任務要求,評估系統的指標和復雜度,對工作速度和芯片本身的資源、成本等方面進行權衡,選擇合理的設計方案和合適的器件類型。這個階段往往會花費大量的時間,這個階段之后一般已經完成了系統建模,功能劃分,模塊劃分以及設計文檔的撰寫等工作。

__2)設計輸入:__這個步驟是將劃分好的各功能模塊用硬件描述語言(HDL)表達出來,常用的硬件描述語言有Verilog HDL和VHDL。以后的教程中我們主要講解如何使用Verilog HDL進行FPGA設計。設計輸入方式有三種形式:IP核、原理圖、HDL。IP核是實現一定功能的模塊,可以形成一個項目。原理圖是一種最直接的描述方式,在可編程芯片發展的早期應用比較廣泛,它將所需的器件從元件庫中調出來,畫出原理圖。HDL是利用文本描述設計,可以分為普通HDL和行為HDL。普通HDL有ABEL、CUR等 ,支持邏輯方程、真值表和狀態機等表達方式, 主要用于簡單的小型設計 。而在中大型工程中,主要使用行為HDL,其主流語言是Verilog HDL和VHDL 。這兩種語言都是美國電氣與電子工程師協會 (IEEE)的標準,其共同的突出特點有:語言與芯片工藝無關,利于自頂向下設計,便于模塊的劃分與移植,可移植性好,具有很強的邏輯描述和仿真功能,而且輸入效率很高。

__3)功能仿真:__這個步驟是在編譯之前對用戶所設計的電路進行邏輯功能驗證,此時的仿真沒有延遲信息,僅對初步的功能進行檢測。仿真前,要先利用波形編輯器和HDL等建立波形文件和測試向量 (即將所關心的輸入信號組合成序列),仿真結果將會生成報告文件和輸出信號波形,從中便可以觀察各個節點信號的變化。如果發現錯誤,則返回設計修改邏輯設計。

__4)邏輯綜合:__這個步驟是將高級抽象層次的語言描述轉化成較低層次的電路結構。也就是說將硬件描述語言描述的電路邏輯轉化成與門、或門、非門、觸發器等基本邏輯單元的互連關系,也就是我們常說的門級網表。綜合是創造性的轉化過程,它不但能翻譯我們的電路,還能夠優化我們的電路,比如去除電路描述中冗余的電路結構,或者復用功能相同的電路結構。綜合的目標和要求可以通過約束文件來指定,比如時序約束、面積約束、功耗約束等。

__5)前仿真:__這個步驟也叫做綜合后仿真,仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中去。因為綜合后只能體現基本的邏輯門之間的互連關系,并不是實物電路,沒有連線長度信息,所以前仿真只能評估門延時帶來的影響,不能估計路徑延時,前仿真結果和布線后實際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,一般的設計可以省略這一步。但如果布局布線后發現電路功能與設計意圖不符,就需要回溯到前仿真來確定問題所在。

__6)實現與布局布線:__這個步驟是將綜合生成的邏輯網表配置到具體的FPGA芯片上,布局布線是其中最重要的過程。布局將邏輯網表中的硬件原語和底層單元合理地配置到芯片內部的固有硬件結構上,并且往往需要在速度最優和面積最優之間作出選擇。布線根據布局的拓撲結構,利用芯片內部的各種連線資源,合理正確地連接各個元件。布局布線后就可以進行靜態時序分析了,靜態時序分析的方法是在布局布線后的實際電路中尋找寄存器和寄存器之間的最長路徑延遲,通過最大延遲可以得出系統最大時鐘速率。

__7)后仿真:__這個步驟也稱為時序仿真,是將布局布線的延時信息反標注到設計網表中來檢測有無時序違規現象(即不滿足時序約束條件或者器件固有的時序規則,如建立時間、保持時間等)。經過布局布線后,門與門之間的連線長度也確定了,所以后仿真包含的延遲信息最全,也最精確,能更好地反映芯片的實際工作情況。

__8)板級仿真與驗證:__這個步驟主要應用于高速電路設計中,對高速系統的信號完整性、電磁干擾等特征進行分析。板級仿真需要利用專業的軟件工具和儀器設備來進行。

__9)芯片編程與調試:__這個步驟是設計的最后一步,將EDA軟件產生的數據文件(位數據流文件)下載到FPGA芯片中,進行實際的測試。芯片編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等方面。調試時,需要利用邏輯分析儀、示波器等儀器設備來觀察和分析芯片的工作狀態,檢查是否有功能錯誤或性能問題,如果有,就需要返回到前面的步驟進行修改和優化。

四、FPGA的設計方法和技巧

__FPGA的設計方法有兩種:自上而下和自下而上。__自上而下是指從整體功能出發,逐步細化到各個模塊,再實現每個模塊的細節。這種方法有利于保持設計的一致性和完整性,但可能導致資源浪費和性能降低。自下而上是指從最基本的模塊開始,逐步組合成復雜的功能,再整合到整體設計中。這種方法有利于優化資源和性能,但可能導致設計的復雜度和難度增加。無論采用哪種方法,都需要注意以下幾個技巧:

__1)遵循良好的編碼規范:__編碼規范是指一套約定俗成的編寫HDL代碼的規則和習慣,它可以提高代碼的可讀性、可維護性和可重用性,也可以避免一些常見的錯誤和問題。一些常用的編碼規范有:使用有意義的變量名、注釋和空格;使用一致的縮進和對齊方式;使用明確的賦值語句和運算符優先級;使用合理的信號類型和范圍;使用同步復位和時鐘邊沿觸發等。

__2)使用層次化和模塊化的結構:__層次化和模塊化是指將一個復雜的設計分解為若干個相對簡單的子模塊,然后將這些子模塊按照一定的邏輯關系連接起來,形成一個完整的設計。這樣做可以提高設計的清晰度和可管理性,也可以方便地進行測試、修改和重用。一些常用的層次化和模塊化的方法有:使用頂層模塊、中間層模塊和底層模塊;使用總線、接口和協議;使用庫、包和組件等。

__3)利用參數化和生成語句:__參數化和生成語句是指使用一些特殊的語法或關鍵字來定義一些可變的參數或條件,然后根據這些參數或條件來生成不同的代碼或結構。這樣做可以提高代碼的靈活性和通用性,也可以減少代碼的冗余和重復。一些常用的參數化和生成語句有:使用generic、parameter、define等定義參數;使用for loop、generate、case等生成結構等。

__4)避免時序冒險和組合邏輯回路:__時序冒險是指由于信號在不同路徑上傳輸延遲不同,導致輸出信號在一個時鐘周期內發生多次跳變或錯誤變化的現象。組合邏輯回路是指由于信號在多個組合邏輯門之間形成環路,導致輸出信號依賴于自身狀態而不穩定或振蕩的現象。這些現象都會影響FPGA的正確性和穩定性,甚至導致硬件損壞或故障。一些常用的避免時序冒險和組合邏輯回路的方法有:使用同步設計原則;使用觸發器、鎖存器、寄存器等存儲元件;使用延遲器、濾波器、去抖動器等處理元件;使用狀態機、計數器、定時器等控制元件等。

__5)使用有效的調試手段:__調試是指在設計過程中檢查和修正錯誤或問題的過程,它是保證FPGA正確工作的重要環節。調試可以分為軟件調試和硬件調試兩種。軟件調試是指在仿真環境中使用一些工具或方法來觀察和分析FPGA的運行情況,找出潛在的錯誤或問題。硬件調試是指在實際的硬件設備上使用一些工具或方法來觀察和分析FPGA的運行情況,找出實際的錯誤或問題。一些常用的調試手段有:使用斷點、單步執行、變量監視、波形顯示等軟件工具;使用示波器、邏輯分析儀、信號發生器等硬件工具;使用測試平臺、測試向量、測試套件等測試方法等。

五、FPGA技術研發趨勢

如今,FPGA技術依然在不斷演進,主要從以下四個維度在不斷突破研發瓶頸。首先,制程技術的進步:制程技術是影響FPGA性能、功耗、成本和可靠性的重要因素。隨著制程技術的不斷發展,FPGA可以采用更小的晶體管尺寸,從而提高集成度、降低功耗、縮小芯片面積、提高運行速度和信號完整性。目前,主流的FPGA廠商如賽靈思(Xilinx)和英特爾(Intel)已經推出了基于7nm和10nm工藝的FPGA產品,未來還有望進入5nm甚至3nm工藝。

第二,系統級集成的需求:隨著應用領域的不斷拓展,FPGA需要與其他類型的芯片進行系統級集成,以提供更強大和更靈活的功能。例如,在人工智能、云計算、邊緣計算等領域,FPGA需要與CPUGPU、DSP、ASIC等芯片進行協同計算,以提高性能和效率。為了實現系統級集成,FPGA需要采用更先進的封裝技術,如2.5D或3D堆疊技術,以實現高密度、高帶寬和低延遲的互連。

第三,平臺化和可編程性的提升:為了滿足不同應用場景和用戶需求,FPGA需要提供更高層次的抽象和可編程性,以降低開發門檻和時間。例如,賽靈思推出了ACAP(Adaptive Compute Acceleration Platform)平臺,它是一種新型的FPGA架構,可以通過軟件工具和庫來配置和優化不同類型的計算引擎,如邏輯、存儲、DSP、AI等。ACAP平臺可以實現更快速、更靈活、更智能的計算加速。

第四,新興應用領域的驅動:隨著科技的進步和社會的發展,FPGA面臨著新興應用領域的挑戰和機遇。例如,在5G通信、物聯網自動駕駛、醫療設備等領域,FPGA需要提供更高的帶寬、更低的延遲、更強的安全性和更好的適應性。為了適應這些應用領域,FPGA需要不斷創新和優化其架構、功能和接口。

身為FPGA開發大軍的一員,希望本文給你帶來了或多或少的幫助。FPGA作為一種靈活、高效的數字電路解決方案,在各個領域發揮著越來越重要的作用。未來,我們可以期待更多更先進的FPGA應用出現,為我們的生活帶來更多的改變和便利。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22411

    瀏覽量

    636271
  • 芯片
    +關注

    關注

    463

    文章

    54010

    瀏覽量

    465970
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1399

    瀏覽量

    120550
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    《當一個 MCU 原廠的型號超過 100 個,會發生什么?》

    當 MCU 型號只有幾十個時, 很多問題是感知不到的。 但一旦超過 100 個,變化會非常明顯。 第一件事:復制開始失效 簡單復制配置: 會帶來隱性差異 小問題逐漸累積 修一個型號,可能影響多個
    發表于 02-27 10:04

    搞懂MOS管,你必須知道的米勒效應

    一、認識米勒電容 如圖,MOS管內部有寄生電容Cgs,Cgd,Cds。因為寄生電容的存在,所以給柵極電壓的過程就是給電容充電的過程。 其中: 輸入電容Ciss=Cgs+Cgd, 輸出電容Coss=Cgd+Cds, 反向傳輸電容Crss=Cgd,也叫米勒電容。 然而,這三個等效電容是構成串并聯組合關系,它們并不是獨立的,而是相互影響,其中一個關鍵電容就是米勒電容Cgd。這個電容不是恒定的,它隨著柵極和漏極間電壓變化而迅速變化,同時會影響柵極和源極電容的充電。 二、理解米勒效應 米勒效應是指MOS管g、d的極間電容Crss在開關動作期間引起的瞬態效應。 可以看成是一個電容的負反饋。在驅動前,Crss上是高電壓,當驅動波形上升到閾值電壓時,MOS管導通,d極電壓急劇下降,通過Crss拉低g腳驅動電壓,如果驅動功率不足,將在驅動波形的上升沿閾值電壓附近留下一個階梯,如下圖。 有時甚至會有一個下降尖峰趨勢平臺,而這個平臺增加了MOS管的導通時間,造成了我們通常所說的導通損耗。 三、MOS管的開通過程 ①t0—t1階段 這個過程中,驅動電流ig為Cgs充電,Vgs上升,Vds和Id保持不變。一直到t1時刻,Vgs上升到閾值開啟電壓Vg(th)。在t1時刻以前,MOS處于截止區。 ②t1—t2階段 t1時刻,MOS管就要開始導通了,也就標志著Id要開始上升了。這個時間段內驅動電流仍然是為Cgs充電,Id逐漸上升,在上升的過程中Vds會稍微有一些下降,這是因為下降的di/dt在雜散電感上面形成一些壓降。 從t1時刻開始,MOS進入了飽和區。在飽和有轉移特性:Id=Vgs*Gm。其中Gm是跨導,只要Id不變Vgs就不變。Id在上升到最大值以后,而此時又處于飽和區,所以Vgs就會維持不變。 ③t2—t3階段 從t2時刻開始,進入米勒平臺時期,米勒平臺就是Vgs在一段時間幾乎維持不動的一個平臺。此時漏電流Id最大。且Vgs的驅動電流轉移給Cgd充電,Vgs出現了米勒平臺,Vgs電壓維持不變,然后Vds就開始下降了。 ④t3~t4階段 當米勒電容Cgd充滿電時,Vgs電壓繼續上升,直至MOS管完全導通。 以上是MOS管開通的四個過程。 所以在米勒平臺,是Cgd充電的過程,這時候Vgs變化很小,當Cgd和Cgs處在同等水平時,Vgs才開始繼續上升。 四、米勒效應能避免嗎? 由上面的分析可以看出米勒平臺是有害的,造成開啟延時,導致損耗嚴重。但因為MOS管的制造工藝,一定會產生Cgd,也就是米勒電容一定會存在,所以米勒效應不能避免。 目前減小 MOS 管米勒效應的措施如下: 1. 提高驅動電壓或者減小驅動電阻,目的是增大驅動電流,快速充電。但是可能因為寄生電感帶來震蕩問題; 2.ZVS 零電壓開關技術是可以消除米勒效應的,即在 Vds 為 0 時開啟溝道,在大功率應用時較多。
    發表于 01-19 07:55

    從零搭建嵌入式開發環境:C、Makefile、調試全流程

    很多人剛開始學嵌入式的時候,第一件事就被環境卡住。“Keil安裝不上、STM32CubeIDE卡死、make命令找不到、下載不進芯片”——這些問題往往比代碼更容易勸退人。實際上,搭建環境這件事看似
    的頭像 發表于 01-09 19:04 ?673次閱讀
    從零搭建嵌入式<b class='flag-5'>開發</b>環境:C、Makefile、調試全流程

    汽車電子EMC測試系統:車企必須要知道的電磁安全方案

    南柯電子|汽車電子EMC測試系統:車企必須要知道的電磁安全方案
    的頭像 發表于 01-08 11:00 ?407次閱讀

    智多晶正式發布Seal 5000系列新品SA5T-200 FPGA芯片

    2025 年12月16日,國產 FPGA 自主創新引領者智多晶正式發布Seal 5000系列新品 ——SA5T-200 FPGA 芯片。作為深耕 FPGA 領域十余年的實力企業,智多晶
    的頭像 發表于 12-24 17:37 ?2333次閱讀

    哪些場合會用到volatile關鍵?

    ,使用volatile關鍵也許能減少代碼bug率。 2.寄存器單片機開發,寄存器添加volatile關鍵應該是必須的,如果你平時有仔細觀察,正規一點的【庫】都會添加volatile
    發表于 11-25 08:19

    賦能伙伴,共贏市場:萬界星空MES開發平臺

    萬界星空科技有限公司,是一家專業的MES平臺底層提供商。我們不做終端客戶,只專注于一件事:為您這樣的行業伙伴,提供強大、靈活、可快速二次開發的MES平臺底座。
    的頭像 發表于 10-16 11:01 ?294次閱讀

    金清洗機能清洗哪些類型的五金件

    金清洗機能清洗哪些類型的五金件?隨著工業制造業的迅速發展,五金件在各種產品生產中扮演著至關重要的角色。五金件不僅廣泛用于電子、汽車、醫療器械等多個領域,同時也承載著重大的環境保護和質
    的頭像 發表于 09-03 17:15 ?1002次閱讀
    <b class='flag-5'>五</b>金清洗機能清洗哪些類型的<b class='flag-5'>五金件</b>?

    SMT焊接裂縫頻發?這5大成因和解決方案你必須知道

    我們的實戰經驗,深度解析焊接裂縫的形成機理,并提供可落地的解決方案。 SMT加工中焊接裂縫的成因及解決方案 一、焊接裂縫產生的大核心誘因 1. 熱應力沖擊(占比38%) - 回流焊溫度曲線設置不當導致的熱膨脹系數差異 - 雙面貼裝工藝中二次回流
    的頭像 發表于 08-13 09:25 ?1215次閱讀

    是否可以保持與 SOM 的數據連接并將連接到 CYPD3177 的 CC 線路同時設置 USB 電壓?

    的 CC 線路同時設置 USB 電壓? 另一件事是,我想減少我們花在編程上的時間,出于這個原因,我不想使用 i2c 線路,只想使用電阻來設定電壓(它將固定在 12V 或 15V),我應該讓 i2c 浮動還是連接上拉電阻?
    發表于 05-27 08:04

    如何將小于1024節的緩沖區從FPGA發送到PC?

    的 PC 請求讀取時出現錯誤,然后我嘗試從 FPGA 連續發送到 PC。 最后,我意識到 PC(主機)只能讀取 1024 個字節。 非常糟糕,如何將小于1024節的緩沖區從FPGA發送到PC?
    發表于 05-09 08:18

    在構建自動布線工具之前我會告訴自己的13件事

    在為 tscircuit(一款用TypeScript編寫的開源電子CAD內核)開發自動布線工具上耗費了約一年時間。如果我能回到一年前,以下是我會告訴自己的13件事: 一個鍵盤項目自動布線的中間階段 1. 像熟悉自己的手掌一樣掌握 A* 算法 如果我能當一天國王,我會把 A
    的頭像 發表于 05-08 11:20 ?1262次閱讀
    在構建自動布線工具之前我會告訴自己的13<b class='flag-5'>件事</b>

    勵手把手教你:交流恒流源接負載,千萬別踩這5個坑!

    大家好,我是吉勵的技術老張,干了十幾年電源行業,見過太多客戶因為“接負載”不當,把設備燒壞、測試出問題,甚至引發安全隱患。 今天就用大白話,給大家總結交流恒流源接負載時必須注意的5件事,看完直接
    的頭像 發表于 04-25 15:44 ?972次閱讀

    小程序開發必須知道的5個技巧:提升效率與用戶體驗的權威指南

    隨著小程序生態的蓬勃發展,開發者需要掌握核心技巧才能在競爭激烈的市場中脫穎而出。以下是基于行業實踐和權威經驗的大關鍵技巧,助你打造高性能、高用戶粘性的小程序。 一、 用戶體驗是小程序成功的關鍵
    發表于 03-14 14:51

    使用轉輪流量計必須要知道

    流量計
    華泰天科
    發布于 :2025年03月11日 17:46:47