女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內(nèi)不再提示

如何采用FPGA更新傳統(tǒng)系統(tǒng)提升計算能力

電子設計 ? 來源:英特爾FPGA ? 作者:英特爾FPGA ? 2021-01-25 16:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA 技術更新傳統(tǒng)系統(tǒng)是許多嵌入式系統(tǒng)設計人員都知道的場景。但現(xiàn)有設計確實需要更新,這其中就包括連接互聯(lián)網(wǎng)、 IoT等。當然,我們也需要進一步增強安全性。尤其考慮到目前人們熱衷于人工智能,大家對深度學習推理或機器視覺又有了新的需求。

盡管現(xiàn)在已將系統(tǒng)整合至物聯(lián)網(wǎng),但仍然面臨一個迫在眉睫的問題——這些更改將對系統(tǒng)硬件造成影響。直接使用 CPU 可以緩解所有的問題(圖 1)。但對于小型嵌入式設計(一開始就只有一英寸的小外形)來說,由于存在成本、功耗和散熱方面的限制,這種蠻力法可能行不通。此時,必須采用 FPGA 方法。

圖1.更新傳統(tǒng)系統(tǒng)可能需要采用新的方法來提升計算能力

事實上,系統(tǒng)中通常有一個老舊的小型 FPGA 負責執(zhí)行實用工作:充當端口擴展器或設備控制器。然而,現(xiàn)在的低端 FPGA 可以充當硬件加速器,將新的計算要求拉回至現(xiàn)有系統(tǒng)處理器范圍之內(nèi)。

采取下一步行動

我們需要采取進一步行動,考慮將系統(tǒng)(或子系統(tǒng))的 CPU 或微控制器單元 (MCU) 也整合到 FPGA 中是否可行?顯而易見,答案是“當然不可行”。眾所周知,F(xiàn)PGA 中的軟 CPU 內(nèi)核尺寸大、速度慢、價格貴。除了對于重要的嵌入式系統(tǒng)來說,這些概括性說法都不對。

我們不是在討論擁有強大 CPU 性能的系統(tǒng)。(比如 Arm* Cortex*-A53 內(nèi)核集群。)在硬件中包含此類 CPU 集群的中端 FPGA,但該主題不在本文介紹范圍之內(nèi)。今天我們討論的是處理器適用范圍更廣的系統(tǒng)(或總體設計中的子系統(tǒng)):微控制器中的 Cortex-M 級內(nèi)核,或真正的傳統(tǒng) CPU,如 68000。通常情況下,這種老舊處理器不適用于系統(tǒng)設計,因為它們始終不愿意接觸古老、文檔不完整的代碼,直至最后生命周期結(jié)束被迫淘汰。我們要介紹的是,通常可以將這種小型或老舊 CPU 整合至低端 FPGA 中(圖 2)。

圖 2.小型現(xiàn)代 FPGA 可以吸收舊設計中所有的傳統(tǒng)處理器

“芯”起點在哪兒?

如果您有用 C 或 C++(最好是通過原始測試工作臺)編寫的文檔化源代碼,那么情況將對您非常有利。您可以從適用于在 FPGA 中進行軟實施的整個 CPU 內(nèi)核選項中進行選擇。然后,還可以針對所選的 CPU 重新編譯并測試代碼。

遺憾的是,測試結(jié)果并不總是樂觀的。過去,微處理器的編譯器并不總是適合嵌入式設計,尤其是對于存在實時限制的子系統(tǒng)。老代碼或保守型工程師編寫的代碼,可能完全是用匯編語言編寫的。現(xiàn)代代碼主要是用 C 語言編寫的,其中關鍵例程用匯編語言手動編寫。無論采用哪種語言編寫,都至少會有一部分代碼鎖定在特定的指令集架構中。

其次,需要謹慎考慮硬件獨立性程度,不是語言方面,而是編碼風格方面。在過去節(jié)省代碼空間和縮短延遲至關重要的時候,往應用代碼中嵌入中斷處理程序、驅(qū)動程序和物理 I/O 地址等不良實踐通常被認為是明智之舉,這些做法會加大移植到新硬件的難度。過去,一些極其糟糕的想法,比如編寫時序依賴型代碼,通常被認為更加明智。這種代碼可能需要重新編寫,才能在快速的現(xiàn)代硬件上運行。但即使存在匯編語言源代碼和不合時宜的編碼風格,我們?nèi)匀豢梢圆捎脤嶋H方法將傳統(tǒng)模塊整合到 FPGA 中。

第一種方法是,如果 CPU 的確非常老舊,則使用開源寄存器傳輸級 (RTL) 模型在 FPGA 中重新實施傳統(tǒng)微處理器或微控制器。Github 等資源擁有許多用于傳統(tǒng)處理器(包括 6502、Z80、6809、68000 和 8086)的 Verilog 模型。但在這些內(nèi)核中進行設計之前,必須考慮幾個問題。

第一個問題是合法性。因為 Verilog 可用并不意味著您擁有在商業(yè)產(chǎn)品中使用該設計的合法權利。有一些模型是研究人員和業(yè)余愛好者編寫的,沒有考慮到知識產(chǎn)權。因此,很久之前的一些架構可能實際上位于公共域中。

另一個問題是作者的意圖。例如:Verilog 是架構的近似功能描述。它的目的是僅在模擬中執(zhí)行代碼,還是封裝在用戶控件邏輯和 I/O 中?或者,該模型是否包含進入微處理器芯片的其他所有硬件?您必須匹配 Verilog 模型的特性和傳統(tǒng)系統(tǒng)的需求,否則將要花費大量的時間來了解舊芯片的劣勢。

接下來就是一些令人傷神的細節(jié)問題。SiFive 產(chǎn)品經(jīng)理 Jack Kang 指出,與現(xiàn)代 CPU 一樣,傳統(tǒng) CPU 也在整個產(chǎn)品生命周期中經(jīng)歷了多次修改,每次修改都會糾正一些錯誤或劣勢。Verilog 代表哪個版本?或者它是一個理想化版本,代表著作者假定芯片怎樣正常運行的方式?最后是設計師的謹慎程度。該模型是否按照實際傳統(tǒng)芯片一個循環(huán)接一個循環(huán)地運行?是否啟動了您需要使用的操作系統(tǒng)?是否成功合成過?

如果 Verilog 模型無法正常運行,還有另一個選擇。老舊的 CPU 速度非常慢,以致于在當前 FPGA 中的微小現(xiàn)代 RISC 內(nèi)核上運行的指令集模擬器都可以實時地遍歷傳統(tǒng)代碼,尤其是當麻煩序列卸載到 FPGA 中其他位置的狀態(tài)機上時。這種方法不能簡單地呈現(xiàn)周期精確或時序精確,但在功能上是正確的。而且它還可以將移植問題從硬件域轉(zhuǎn)換到軟件域,在軟件域,您可以訪問整個調(diào)試工作臺,這樣移植問題處理起來容易得多。

如何實施 CPU?

討論了將傳統(tǒng)代碼遷移至新系統(tǒng)的可行性和難度后,接下來的問題是如何在低端 FPGA 中實施 CPU 內(nèi)核。我們之前討論過復制傳統(tǒng) CPU 的情況,現(xiàn)在我們可以來了解下實施現(xiàn)代高性能 CPU 的選項。

主要問題是處理器內(nèi)核依賴部分硬件結(jié)構,這種結(jié)構在 ASIC 中以標準單元甚至是自定義邏輯的形式實施,無法在 FPGA 結(jié)構中輕松高效地復制。因此,我們必須了解三種不同情況(圖 3):

僅通過用于模擬或 ASIC 合成的 Verilog 模型進行合成的 CPU 內(nèi)核 — 即所謂的開箱即用場景。

擁有面向 FPGA 合成手動優(yōu)化的 RTL 的內(nèi)核。

從一開始就開發(fā)了架構以在 FPGA 中實施的內(nèi)核。每種方法的可用性、規(guī)模和性能都不相同。這些方法都適用于現(xiàn)代低端 FPGA。

圖3.CPU 內(nèi)核中的三種 FPGA 優(yōu)化級別。

開箱即用

盡管并不是每家 CPU 內(nèi)核知識產(chǎn)權 (IP) 廠商都專門針對 FPGA,但大多數(shù) IP 提供商都至少提供兩條遷移至 FPGA 內(nèi)核的路徑。最明顯的路徑是授權面向內(nèi)核的 RTL 源代碼,并通過 FPGA 廠商的工具鏈運行該代碼。實施這條路徑會遇到很多挑戰(zhàn),全都是因為該 RTL 用于 ASIC 合成,而非 FPGA 合成。

特別是首次在 FPGA 中嘗試運行該代碼,那么遇到第一個問題將是:源代碼中的有些東西是采用 FPGA 合成工具無法處理的。代碼可能與合成工具不兼容的方式被隱藏或加密,可能包含您的工具無法識別的編譯指示、信號命名,甚至是帶有破壞性的注釋約定。您可以編輯這些內(nèi)容,但會因此產(chǎn)生第二個問題:許可。

如果您使用用于 ASIC 開發(fā)的 Verilog 源代碼,可能需要進行編輯。這意味著您需要包含完整文檔的未隱藏的源代碼,以及/或 IP 廠商的大量支持。這些都是可用的,但它們都是針對財力雄厚、產(chǎn)量巨大、擁有大型法務部門的客戶所編寫和定價的。

還有另一條路徑:一些 IP 廠商提供評估或開發(fā)套件,您可以通過它們在 FPGA 中實施 CPU 內(nèi)核。該內(nèi)核可能沒有經(jīng)過高度優(yōu)化,但至少可以運行和驗證,而且其速度對軟件開發(fā)來說足夠快。

SiFive 產(chǎn)品經(jīng)理 Jack Kang 表示,他的一些客戶已經(jīng)采用了這種方法。該公司的 CoreDesigner 工具支持您從各種 RISC V 預配置內(nèi)核開始,根據(jù)您特定的需求調(diào)整配置,然后輸出 RTL。但該工具也會在 SiFive 的開發(fā)套件上輸出一個關于 FPGA 的編程文件。

Kang 還指出,“RISC V 的這種 FPGA 實施并未面向 FPGA 使用進行高度優(yōu)化,但仍然包含不到 20K 的查找表,而且速度可以達到 100 Mhz 左右,當然這很大程度上取決于配置。這種規(guī)模適合許多留有大量空間的低端 FPGA,支持您快速、輕松地將常用開源內(nèi)核整合到系統(tǒng)中。”

優(yōu)化方法

有一些方法可以改善這些數(shù)據(jù),但需要采取一些措施。之所以有這種改善機會,是因為 CPU 中有一些結(jié)構并不適合 FPGA 邏輯結(jié)構。

FPGA 使用大量相同邏輯元件陣列來實施邏輯,每個元件都包含一些查找表 (LUT) — 通常每個 LUT 包含 4 個輸入 — 以合成邏輯函數(shù),以及一個或多個觸發(fā)器。這種安排適用于大多數(shù)隨機邏輯、管道和簡單狀態(tài)機。對于高扇入邏輯,由于可能出現(xiàn)在算法硬件和地址解碼器中,因此合成往往會生成一長串窄邏輯元件,從而消耗互連并導致延遲。對于基于內(nèi)存的功能,比如寄存器文件、高速緩存和相聯(lián)內(nèi)存,一次將功能映射至邏輯元件的觸發(fā)器(一或二位)可能要消耗大量資源,即使廠商工具足夠智能,嘗試將邏輯元件的 LUT 和觸發(fā)器隔離,并單獨使用它們。

很久以前,當 FPGA 首次用于數(shù)據(jù)包切換、數(shù)字信號處理和類似應用時,這種不匹配就非常明顯。為了解決這個問題,F(xiàn)PGA 廠商在邏輯結(jié)構中嵌入了大型可分割 SRAM 模塊和硬件乘法累加模塊。通過使用這些資源,通常可以顯著改進 CPU 實施規(guī)模,有時還可以提高性能。但可能需要在 RTL 源代碼中或合成過程中運用一定的知識進行干預。如果熟練的 FPGA 用戶仔細檢查 RTL,并面向 FPGA 合成使用已知最佳 FPGA 編碼實踐對其進行調(diào)優(yōu),能夠進一步提升性能。

特定于 FPGA 的內(nèi)核

行業(yè)標準 CPU 內(nèi)核,比如 Cortex-M 家族或 RISC V,提供熟悉度、成熟的(或以 RISC 為例不斷壯大的)工具和軟件生態(tài)系統(tǒng),以及在 FPGA 廠商之間輕松遷移或遷移至 ASIC 實施的機會,甚至在某些情況下還可遷移至第三方現(xiàn)成的 SoC。但反過來要付出一定的代價:費用、規(guī)模,有時還有性能。

如果您想最大限度地優(yōu)化 FPGA,還需采取另一個步驟:不僅優(yōu)化實施過程,還要優(yōu)化 CPC 和指令集架構本身:從一張白紙開始,僅添加對 FPGA 友好的結(jié)構。很久以前,當 FPGA 首次變得足夠大,可容納 CPU 內(nèi)核時,主要 FPGA 廠商就已經(jīng)開始做出這樣的努力。他們始終在做出這樣的努力:在英特爾案例中為 Nios? II 處理器,其以發(fā)展演進為專有 CPU 架構,不斷壯大由工具、軟件和 FPGA 外設 IP 組成的生態(tài)系統(tǒng)。

目前,這些內(nèi)核家族提供多種類型的產(chǎn)品,從具備最少特性的小型微內(nèi)核 (和 Arm 的 Cortex M0 沒什么不同)到全功能、支持 Linux 的 CPU。其中許多型號都適用于廠商的低端 FPGA。例如,緊湊型 Nios Iie 內(nèi)核只需大約 1000 個邏輯元件,但速度可達到或超過 75 MHz。在另一個極端,具備高速緩存和內(nèi)存管理功能,且能夠運行 Linux* 操作系統(tǒng)的內(nèi)核大約需要 5000 個元件。在這兩者之間還有許多選擇來滿足特定需求。甚至這種全功能配置也足夠小,不但可以將多核 CPU 集群放在一臺低端英特爾? MAX? 10 設備中,還仍然擁有足夠的空間。

因此,有許多方法可以將傳統(tǒng) CPU 功能遷移至低端 FPGA,同時仍然擁有豐富的資源來支持傳統(tǒng)接口或控制器功能、IoT 連接、安全性,或機器學習加速。古老的機器代碼可在 FPGA 上運行,以向老舊 CPU 致敬,也可在現(xiàn)代內(nèi)核的指令集模擬器上運行。

高級語言代碼可面向現(xiàn)代代碼進行編譯。極具挑戰(zhàn)性的代碼模塊可以卸載到 FPGA 中的加速塊中,然后通過多種優(yōu)化程度各不相同的方法,得到許可并在 FPGA 中實施現(xiàn)代 CPU 內(nèi)核的某個版本。為了最大限度地提高資源效率,廠商專有 CPU 內(nèi)核可在各種性能和功能點中實現(xiàn)最佳的緊湊性,且?guī)缀踹m合所有的設計場景。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7948

    瀏覽量

    154900
  • FPGA
    +關注

    關注

    1645

    文章

    22040

    瀏覽量

    618171
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3681

    瀏覽量

    131347
  • 機器視覺
    +關注

    關注

    163

    文章

    4594

    瀏覽量

    122867
  • 深度學習
    +關注

    關注

    73

    文章

    5561

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    交流充電樁負載能效提升技術

    功率器件與拓撲優(yōu)化 寬禁帶半導體器件應用 傳統(tǒng)硅基IGBT/MOSFET因開關損耗高,限制了系統(tǒng)效率。采用碳化硅(SiC)或氮化鎵(GaN)器件可顯著降低損耗: SiC MOSFET導通電阻低(僅為硅
    發(fā)表于 05-21 14:38

    DevEco Studio AI輔助開發(fā)工具兩大升級功能 鴻蒙應用開發(fā)效率再提升

    帶來了前所未有的智能問答體驗。 RAG增強型與傳統(tǒng)生成式AI的關鍵差異: 圖2:DeepSeek模型增強RAG能力前后效果對比圖 升級點2:新增代碼解釋功能,提升初學者開發(fā)效率 針對
    發(fā)表于 04-18 14:43

    RK3588核心板在邊緣AI計算中的顛覆性優(yōu)勢與場景落地

    與低功耗。相比傳統(tǒng)四核A72方案(如RK3399),單線程性能提升80%,多線程任務處理能力翻倍。 6TOPS獨立NPU: 支持INT8/INT16混合精度計算,可直接部署YOLOv
    發(fā)表于 04-15 10:48

    FPGA+AI王炸組合如何重塑未來世界:看看DeepSeek東方神秘力量如何預測......

    ),設計定制化的FPGA架構,以優(yōu)化性能和功耗。 2.提升跨領域技能? AI知識儲備:掌握深度學習算法、模型量化和優(yōu)化技術,以便更好地將AI模型與FPGA硬件結(jié)合。? 系統(tǒng)集成
    發(fā)表于 03-03 11:21

    國產(chǎn)FPGA SOC 雙目視覺處理系統(tǒng)開發(fā)實例

    AXI4-Stream總線構建的高速數(shù)據(jù)通道(峰值帶寬可達12.8GB/s),實現(xiàn)ARM與FPGA間的納秒級(ns)延遲交互,較傳統(tǒng)方案提升了3倍的傳輸效率,極大地提升
    的頭像 發(fā)表于 02-20 08:05 ?1440次閱讀
    國產(chǎn)<b class='flag-5'>FPGA</b> SOC 雙目視覺處理<b class='flag-5'>系統(tǒng)</b>開發(fā)實例

    當我問DeepSeek AI爆發(fā)時代的FPGA是否重要?答案是......

    的安全性。例如,在數(shù)據(jù)溯源系統(tǒng)中,FPGA可以實時標記和加密數(shù)據(jù),確保數(shù)據(jù)的完整性和可靠性。 ? 適應未來加密需求:隨著量子計算的發(fā)展,傳統(tǒng)的加密算法面臨威脅。
    發(fā)表于 02-19 13:55

    通過邊緣計算網(wǎng)關輕松實現(xiàn)plc的程序更新

    ,從而制約了生產(chǎn)效率和智能化水平的提升。天拓四方TDE邊緣計算網(wǎng)關作為一種高性能的邊緣計算設備,為PLC程序的更新提供了一種高效、可靠的解決方案。 它能夠?qū)崿F(xiàn)對工業(yè)數(shù)據(jù)的實時采集、處理
    的頭像 發(fā)表于 11-20 09:53 ?510次閱讀

    計算傳統(tǒng)計算的區(qū)別

    根據(jù)實際需求動態(tài)獲取資源,無需進行大量的預先投資。 管理方式:云計算平臺負責資源的分配、管理和維護,用戶無需關心底層硬件和軟件的細節(jié)。 傳統(tǒng)計算 : 資源獲取:用戶需要自行購買和部署硬件設備,以及安裝和維護軟件系統(tǒng)
    的頭像 發(fā)表于 10-24 09:13 ?2172次閱讀

    FPGA在圖像處理領域的優(yōu)勢有哪些?

    。這種并行處理能力使得FPGA在處理大規(guī)模圖像數(shù)據(jù)時表現(xiàn)出色,能夠?qū)崟r完成復雜的圖像處理算法。 二、高靈活性 FPGA具有很高的靈活性,可以根據(jù)需要實時調(diào)整硬件架構。這意味著當圖像處理算法需要
    發(fā)表于 10-09 14:36

    Allegro X 23.11 版本更新 I PCB 設計:梯形布線的分析性能提升

    的新功能及用法,助力您提升設計質(zhì)量和設計效率。點擊文末閱讀原文,收藏版本更新亮點詳解匯總頁面,持續(xù)關注版本更新!AllegroXPCBDesigner系統(tǒng)級PCB設計
    的頭像 發(fā)表于 08-10 08:12 ?1464次閱讀
    Allegro X 23.11 版本<b class='flag-5'>更新</b> I PCB 設計:梯形布線的分析性能<b class='flag-5'>提升</b>

    智慧水利山洪災害防御能力提升系統(tǒng)

    一、背景隨著科技的快速發(fā)展,智慧水利技術逐漸成為解決水資源管理、水環(huán)境保護以及水災防治等問題的關鍵手段。其中,智慧水利山洪災害防御能力提升系統(tǒng),作為智慧水利的重要組成部分,其在保障人民生命財產(chǎn)安全
    的頭像 發(fā)表于 08-05 14:42 ?523次閱讀
    智慧水利山洪災害防御<b class='flag-5'>能力</b><b class='flag-5'>提升</b><b class='flag-5'>系統(tǒng)</b>

    基于 FPGA 的會議系統(tǒng)設計

    固定,當會議一端有多人參與時,就需要每人都單獨開一個窗口才能有較好的效果,較為不便。基于此,我們設計了一個新的會議系統(tǒng),以更好地適應多人會議的需求。 本系統(tǒng)以 Xilinx PYNQ-Z2 FPGA
    發(fā)表于 08-01 18:40

    談一談FPGA設計中的功率計算

    隨著工藝技術的越來越前沿化, FPGA器件擁有更多的邏輯、存儲器和特殊功能,如存儲器接口、 DSP塊和多種高速SERDES信道,這些發(fā)展不斷地對系統(tǒng)功率要求提出挑戰(zhàn)。 功率計算的關鍵是兩方面:靜態(tài)
    發(fā)表于 07-31 22:37

    FPGA在自動駕駛領域有哪些優(yōu)勢?

    領域的主要優(yōu)勢: 高性能與并行處理能力FPGA內(nèi)部包含大量的邏輯門和可配置的連接,能夠同時處理多個數(shù)據(jù)流和計算任務。這種并行處理能力使得FPG
    發(fā)表于 07-29 17:11

    FPGA與MCU的應用場景

    錯誤還請指正。 首先,FPGA(現(xiàn)場可編程門陣列)和MCU(微控制器)都是兩種常見的集成電路。盡管它們都可以被視為“小型計算機”,但它們在可編程性和處理能力方面存在顯著差異。但是FPGA
    發(fā)表于 07-29 15:45