在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

淺談fpga設計

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-09 15:48 ? 次閱讀

FPGA 的用處比我們平時想象的用處更廣泛,原因在于其中集成的模塊種類更多,而不僅僅是原來的簡單邏輯單元(LE)。

早期的 FPGA 相對比較簡單,所有的功能單元僅僅由管腳、內部 buffer、LE、RAM 構建而成,LE 由 LUT(查找表)和 D 觸發器構成,RAM 也往往容量非常小。

現在的 FPGA 不僅包含以前的 LE,RAM 也更大更快更靈活,管教 IOB 也更加的復雜,支持的 IO 類型也更多,而且內部還集成了一些特殊功能單元,包括:

DSP:實際上就是乘加器,FPGA 內部可以集成多個乘加器,而一般的 DSP 芯片往往每個 core 只有一個。換言之,FPGA 可以更容易實現多個 DSP core 功能。在某些需要大量乘加計算的場合,往往多個乘加器并行工作的速度可以遠遠超過一個高速乘加器。

SERDES:高速串行接口。將來 PCI-E、XAUI、HT、S-ATA 等高速串行接口會越來越多。有了 SERDES 模塊,FPGA 可以很容易將這些高速串行接口集成進來,無需再購買專門的接口芯片。

CPU core:分為 2 種,軟 core 和硬 core. 軟 core 是用邏輯代碼寫的 CPU 模塊,可以在任何資源足夠的 FPGA 中實現,使用非常靈活。而且在大容量的 FPGA 中還可以集成多個軟 core,實現多核并行處理。硬 core 是在特定的 FPGA 內部做好的 CPU core,優點是速度快、性能好,缺點是不夠靈活。

不過,FPGA 還是有缺點。對于某些高主頻的應用,FPGA 就無能為力了。現在雖然理論上 FPGA 可以支持的 500MHz,但在實際設計中,往往 200MHz 以上工作頻率就很難實現了。

FPGA 設計要點之一:時鐘
對于 FPGA 來說,要盡可能避免異步設計,盡可能采用同步設計。

同步設計的第一個關鍵,也是關鍵中的關鍵,就是時鐘樹。

一個糟糕的時鐘樹,對 FPGA 設計來說,是一場無法彌補的災難,是一個沒有打好地基的大樓,崩潰是必然的。

具體一些的設計細則:

1)盡可能采用單一時鐘;

2)如果有多個時鐘域,一定要仔細劃分,千萬小心;

3)跨時鐘域的信號一定要做同步處理。對于控制信號,可以采用雙采樣;對于數據信號,可以采用異步 fifo. 需要注意的是,異步 fifo 不是萬能的,一個異步 fifo 也只能解決一定范圍內的頻差問題。

4)盡可能將 FPGA 內部的 PLL、DLL 利用起來,這會給你的設計帶來大量的好處。

5)對于特殊的 IO 接口,需要仔細計算 Tsu、Tco、Th,并利用 PLL、DLL、DDIO、管腳可設置的 delay 等多種工具來實現。簡單對管腳進行 Tsu、Tco、Th 的約束往往是不行的。

可能說的不是很確切。這里的時鐘樹實際上泛指時鐘方案,主要是時鐘域和 PLL 等的規劃,一般情況下不牽扯到走線時延的詳細計算(一般都走全局時鐘網絡和局部時鐘網絡,時延固定),和 ASIC 中的時鐘樹不一樣。對于 ASIC,就必須對時鐘網絡的設計、布線、時延計算進行仔細的分析計算才行。

FPGA 設計要點之二:FSM
FSM:有限狀態機。這個可以說是邏輯設計的基礎。幾乎稍微大一點的邏輯設計,幾乎都能看得到 FSM.

FSM 分為 moore 型和 merly 型,moore 型的狀態遷移和變量無關,merly 型則有關。實際使用中大部分都采用 merly 型。

FSM 通常有 2 種寫法:單進程、雙進程。

初學者往往喜歡單進程寫法,格式如下:

always @( posedge clk or posedge rst )

begin

if ( rst == 1'b1 )

FSM_status <= ……;

else

case( FSM_status )

……;

endcase

end

簡單的說,單進程 FSM 就是把所有的同步、異步處理都放入一個 always 中。

優點:

1)看起來比較簡單明了,寫起來也不用在每個 case 分支或者 if 分支中寫全對各個信號和狀態信號的處理。也可以簡單在其中加入一些計數器進行計數處理。

2)所有的輸出信號都已經是經過 D 觸發器鎖存了。

缺點:

1)優化效果不佳。由于同步、異步放在一起,編譯器一般對異步邏輯的優化效果最好。單進程 FSM 把同步、異步混雜在一起的結果就是導致編譯器優化效果差,往往導致邏輯速度慢、資源消耗多。

2)某些時候需要更快的信號輸出,不必經過 D 觸發器鎖存,這時單進程 FSM 的處理就比較麻煩了。

雙進程 FSM,格式如下:

always @( posedge clk or posedge rst )

begin

if ( rst == 1'b1 )

FSM_status_current <= …;

else

FSM_status_current <= FSM_status_next;

always @(*)

begin

case ( FSM_status_current )

FSM_status_next = ……;

endcase

end

從上面可以看到,同步處理和異步處理分別放到 2 個 always 中。其中 FSM 狀態變量也采用 2 個來進行控制。雙進程 FSM 的原理我這里就不多說了,在很多邏輯設計書中都有介紹。這里描述起來太費勁。

優點:

1)編譯器優化效果明顯,可以得到很理想的速度和資源占用率。

2)所有的輸出信號(除了 FSM_status_current)都是組合輸出的,比單進程 FSM 快。

缺點:

1)所有的輸出信號(除了 FSM_status_current)都是組合輸出的,在某些場合需要額外寫代碼來進行鎖存。

2)在異步處理的 always 中,所有的 if、case 分支必須把所有的輸出信號都賦值,而且不能出現在 FSM 中的輸出信號回送賦值給本 FSM 中的其他信號的情況,否則會出現 latch.

latch 會導致如下問題:

1)功能仿真結果和后仿不符;

2)出現無法測試的邏輯;

3)邏輯工作不穩定,特別是 latch 部分對毛刺異常敏感;

4)某些及其特殊的情況下,如果出現正反饋,可能會導致災難性的后果。

這不是恐嚇也不是開玩笑,我就親眼見過一個小伙把他做的邏輯加載上去后,整個 FPGA 給炸飛了。后來懷疑可能是出現正反饋導致高頻振蕩,最后導致芯片過熱炸掉(這個 FPGA 芯片沒有安裝散熱片)。

FPGA 設計要點之三:latch
首先回答一下:

1)stateCAD 沒有用過,不過我感覺用這個東東在構建大的系統的時候似乎不是很方便。也許用 systemC 或者 system Verilog 更好一些。

2)同步、異步的叫法是我所在公司的習慣叫法,不太對,不過已經習慣了,呵呵。


這次講一下 latch.


latch 的危害已經說過了,這里不再多說,關鍵講一下如何避免。

1)在組合邏輯進程中,if 語句一定要有 else!并且所有的信號都要在 if 的所有分支中被賦值。

always @( * ) begin


if ( sig_a == 1'b1 ) sig_b = sig_c;


end


這個是絕對會產生 latch 的。


正確的應該是


always @( * ) begin


if ( sig_a == 1'b1 ) sig_b = sig_c;


else sig_b = sig_d;

end

另外需要注意,下面也會產生 latch. 也就是說在組合邏輯進程中不能出現自己賦值給自己或者間接出現自己賦值給自己的情況。

always @( * ) begin

if ( rst == 1'b1 ) counter = 32'h00000000;

else counter = counter + 1;

end

但如果是時序邏輯進程,則不存在該問題。

2)case 語句的 default 一定不能少!

原因和 if 語句相同,這里不再多說了。

需要提醒的是,在時序邏輯進程中,default 語句也一定要加上,這是一個很好的習慣。

3)組合邏輯進程敏感變量不能少也不能多。

這個問題倒不是太大,verilog2001 語法中可以直接用 * 搞定了。

順便提一句,latch 有弊就一定有利。在 FPGA 的 LE 中,總存在一個 latch 和一個 D 觸發器,在支持 DDR 的 IOE(IOB)中也存在著一個 latch 來實現 DDIO. 不過在我們平時的設計中,對 latch 還是要盡可能的敬而遠之。

FPGA 設計要點之四:邏輯仿真
仿真是 FPGA 設計中必不可少的一步。沒有仿真,就沒有一切。

仿真是一個單調而繁瑣的工作,很容易讓人產生放棄或者偷工減料的念頭。這時一定要挺住!

仿真分為單元仿真、集成仿真、系統仿真。

單元仿真:針對每一個最小基本模塊的仿真。單元仿真要求代碼行覆蓋率、條件分支覆蓋率、表達式覆蓋率必須達到 100%!這三種覆蓋率都可以通過 MODELSIM 來查看,不過需要在編譯該模塊時要在 Compile option 中設置好。

集成仿真:將多個大模塊合在一起進行仿真。覆蓋率要求盡量高。

系統仿真:將整個硬件系統合在一起進行仿真。此時整個仿真平臺包含了邏輯周邊芯片接口的仿真模型,以及 BFM、Testbench 等。系統仿真需要根據被仿真邏輯的功能、性能需求仔細設計仿真測試例和仿真測試平臺。系統仿真是邏輯設計的一個大分支,是一門需要專門學習的學科。

審核編輯黃昊宇

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

    關注

    1643

    文章

    21985

    瀏覽量

    615090
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    FPGA與高速ADC接口簡介

    本文介紹FPGA與高速ADC接口方式和標準以及JESD204與FPGA高速串行接口。
    的頭像 發表于 06-12 14:18 ?513次閱讀
    <b class='flag-5'>FPGA</b>與高速ADC接口簡介

    智多晶FPGA設計工具HqFpga接入DeepSeek大模型

    在 AI 賦能工程設計的時代浪潮中,智多晶率先邁出關鍵一步——智多晶正式宣布旗下 FPGA 設計工具 HqFpga 接入 DeepSeek 大模型,并推出 FPGA 設計專屬 AI 助手——晶小助!這是
    的頭像 發表于 06-06 17:06 ?329次閱讀

    國產FPGA往事

    首先,這篇文章的后半部分,會有一個廣告:我去年和紫光同創原廠的技術專家寫了一本書——《國產FPGA權威開發指南》,我想送一些書給到熟悉的、曾經熟悉的、或者還未熟悉的FPGA開發者同行,請各位開發者
    的頭像 發表于 04-14 09:53 ?199次閱讀
    國產<b class='flag-5'>FPGA</b>往事

    淺談直流有刷電機驅動及調速技術

    ,圖1 為 H 橋電機驅動 電路示意圖 : 圖1 H橋電機驅動電路示意圖 點擊下方附件查看全文*附件:20250307_淺談直流有刷電機驅動及調速技術.docx
    發表于 03-07 15:24

    大多數FPGA的程序存儲器(FLASH)為什么都放在外面呢?FPGA的主要應用

    FPGA的主要應用:? FPGA由于其較高的價格和成本,決定了FPGA不能像單片機那樣被廣泛的使用,FPGA的針對于高端處理市場(類如:手機處理器,平板,工業控制系統)或許你會有些疑問
    的頭像 發表于 12-24 11:04 ?1155次閱讀
    大多數<b class='flag-5'>FPGA</b>的程序存儲器(FLASH)為什么都放在外面呢?<b class='flag-5'>FPGA</b>的主要應用

    FPGA與ASIC的區別 FPGA性能優化技巧

    FPGA與ASIC的區別 FPGA(現場可編程門陣列)和ASIC(專用集成電路)是兩種不同的集成電路技術,它們在多個方面存在顯著的區別: FPGA ASIC 基本定義 由通用的邏輯單元組成,可以通過
    的頭像 發表于 12-02 09:51 ?938次閱讀

    玩轉FPGA必備的基礎知識

    FPGA已成為現今的技術熱點之一,無論學生還是工程師都希望跨進FPGA的大門。那么我們要玩轉FPGA必須具備哪些基礎知識呢?下面我們慢慢道來。 (一) 要了解什么是FPGA 既 然要玩
    的頭像 發表于 11-28 10:24 ?776次閱讀

    Achronix Speedcore eFPGA的特性和功能

    Speedcore嵌入式FPGA(embedded FPGA,eFPGA)知識產權(IP)產品是Achronix公司于2016年推出的顛覆性技術,并于當年開始向最終客戶交付,目前出貨量已經超過2500萬。
    的頭像 發表于 11-15 14:28 ?966次閱讀
    Achronix Speedcore e<b class='flag-5'>FPGA</b>的特性和功能

    FPGA基礎知識及設計和執行FPGA應用所需的工具

    本文將首先介紹FPGA的基礎知識,包括FPGA的工作原理以及為什么要使用FPGA等,然后討論設計和執行FPGA應用所需的工具。
    的頭像 發表于 11-11 11:29 ?1716次閱讀
    <b class='flag-5'>FPGA</b>基礎知識及設計和執行<b class='flag-5'>FPGA</b>應用所需的工具

    詳解FPGA的基本結構

    ZYNQ PL 部分等價于 Xilinx 7 系列 FPGA,因此我們將首先介紹 FPGA 的架構。簡化的 FPGA 基本結構由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層
    的頭像 發表于 10-25 16:50 ?3143次閱讀
    詳解<b class='flag-5'>FPGA</b>的基本結構

    FPGA與ASIC的優缺點比較

    FPGA(現場可編程門陣列)與ASIC(專用集成電路)是兩種不同的硬件實現方式,各自具有獨特的優缺點。以下是對兩者優缺點的比較: FPGA的優點 可編程性強 :FPGA具有高度的可編程性,可以靈活
    的頭像 發表于 10-25 09:24 ?1604次閱讀

    淺談基于物聯網的智能路燈系統-盾華電子智慧路燈解決方案

    淺談基于物聯網的智能路燈系統-盾華電子智慧路燈解決方案
    的頭像 發表于 10-11 10:08 ?829次閱讀
    <b class='flag-5'>淺談</b>基于物聯網的智能路燈系統-盾華電子智慧路燈解決方案

    淺談國產異構雙核RISC-V+FPGA處理器AG32VF407的優勢和應用場景

    關于國產異構雙核RISC-V+FPGA處理器AG32VF407的具體優勢和應用場景淺談如下: 優勢 異構計算能力 : 異構雙核設計結合了RISC-V的高效指令集和FPGA的靈活可編程性,能夠針對特定
    發表于 08-31 08:32

    淺談如何克服FPGA I/O引腳分配挑戰

    前言 對于需要在PCB板上使用大規模FPGA器件的設計人員來說,I/O 引腳分配是必須面對的眾多挑戰之一。由于眾多原因,許多設計人員發表為大型FPGA 器件和高級BGA封裝確定I/O引腳配置或布局
    發表于 07-22 00:40

    FPGA時序課件下載

    方便FPGA愛好者學習
    發表于 07-12 11:45 ?3次下載
    主站蜘蛛池模板: 五月激情婷婷综合 | 高清国产一区二区三区 | 特黄特色网站 | 欧美一级黄色片在线观看 | 色花堂国产精品首页第一页 | 国产美女视频一区二区二三区 | 国产网站黄 | 在线视频黄色 | 男男小说高h | 香蕉视频久久久 | 久久久久久国产精品mv | 2021国产成人精品久久 | 天天干天天插天天射 | 久久视频精品线视频在线网站 | japanesexxx日本69| 狠狠草视频 | 色婷婷视频在线 | 亚洲福利视频一区二区三区 | 开心激情播播网 | 亚洲天堂社区 | 天天干天天玩 | 深夜视频在线免费观看 | 永久免费影视在线观看 | 伊人久久大香线蕉综合爱婷婷 | 失禁h啪肉尿出来高h男男 | 国产精品伦理久久久久 | 美女露出扒开尿口让男人桶 | 你懂的免费在线视频 | 午夜寂寞影 | 国产精品www夜色影视 | bt 另类 专区 欧美 制服 | 成人三级毛片 | 成人小视频在线 | 欧美一区福利 | jizz性欧美12 | 娇妻被黑人蹂躏 | h视频免费看 | 色拍拍视频 | 超大乳抖乳露双乳视频 | 夜福利视频 | 天天综合色天天综合色sb |