FPGA軟硬協同設計學習筆記及基礎知識(一)

2022-07-26 03:18:15 字數 3097 閱讀 9795

一、fpga軟體硬體協同定義:

軟體:一般以軟體語言來描述,類似arm處理器的嵌入式設計。硬體定義如fpga,裡面資源有限但可重配置性有許多優點,新的有動態可充配置技術。

xilinx開發了部分動態可重配置技術,它可以只針對需要變化的fpga邏輯完成重配置而保持其他部分fpga正常工作。在汽車電子應用中,汽車安全輔助駕駛功能越來越被重視,其中高階倒車後視、自動泊車和行車時離道報警兩個功能都可以用攝像頭完成。這兩個功能的影象採集處理邏輯是一致的,但是其影象處理的演算法卻不同,如果專門設計乙個soc晶元的話,需要這兩部分獨立的ip核,或者為了降低成本盡量將演算法全部在處理器中實現。而用了zynq,因為兩部分的功能並不是同時需要的,我們可以保持處理器部分**執行不變,fpga中影象採集模組不變,在倒車時通過部分可重配置技術載入倒車時的影象處理演算法硬體,而在開車時,自動載入離道報警演算法硬體。這樣就可以利用同樣一塊邏輯單元實現兩部分的硬體功能。提高並加強了實時響應的速度。

二、「硬體加速」定義?

硬體加速(hardware acceleration)就是利用硬體模組來替代軟體演算法以充分利用硬體所固有的快速特性。硬體加速通常比軟體演算法的效率要高。

硬體加速時cpu排程gpu執行,記憶體佔用率也會公升高。

三、軟體與硬體協同除錯如何完成?

四、概括zynq-7000在soc嵌入式應用的優勢?

zynq-7000採用可擴充套件式處理平台架構(extensible processing platform、epp),是 xilinx 用28nm hkmg工藝製成的低功耗,高效能,高擴充套件性的新型晶元,這款新品裡面整合了arm cortex-a9 mpsoc硬核以及相應的soc系統。

ps: 處理系統(processing system),與fpga無關的arm的soc的部分。

pl: 可程式設計邏輯(progarmmable logic),fpga部分。

scu: snoop control unit,用來保持雙核之間的資料cache的一致性。也就是說,第乙個a9 處理器寫儲存時,只是寫在了快取裡,沒有進主存,如果第二個a9讀操作,涉及到第乙個寫髒了的資料段,scu要保證第二個a9的快取裡是最新的資料。如果第二個a9寫同樣資料段的資料,需要在第乙個中體現出寫的內容。scu的存在,才使得兩個核成互相聯絡的 「雙核」,才能成為mpsoc。

1、正確規劃單板上 fpga 的定向並將訊號分配給特定的引腳,這樣可以顯著改進系統整體效能、功耗設計週期。視覺化 fpga 器件與印刷電路板 (pcb) 之間的物理和邏輯互動方式,使您可以優化通過器件的資料流。未正確規劃 i/o 配置則可能導致系統效能下降和設計收斂時間延長。單板上 fpga 器件的布局與其它元件的互動會對 i/o 規劃產生巨大影響。

2、首先應確定fpga 器件在 pcb 上的定向。還要考慮固定 pcb 元件的位置,以及內部 fpga 資源。例如,使 fpga 封裝的 gt 介面盡量靠近在 pcb 上與其連線的元件,這樣可以縮短 pcb 走線長度,同時減少 pcb 過孔數量。

3、賽靈思建議您設計時首先選擇時鐘資源,然後再選擇管腳。您的時鐘選擇不僅可以確定特定的管腳,而且還可以支配邏輯布局。正確的時鐘選擇可以產生非常好的效果。

4、賽靈思 7 系列器件包含 32 個全域性時鐘緩衝器 (bufg)。其中 16 個全域性時鐘緩衝器位於 fpga 器件水平方向中心的上半部分,而另外 16 個則位於水平方向中心的下半部分。晶元上半部的pllmmcm只能連線到水平方向中心以上的 16 個 bufg 上。而晶元下半部的pll 和 mmcm 只能連線到水平方向中心以下的 16 個 bufg 上。選擇 pll 或 mmcm 時,請盡量使用 pll,因為其具有更嚴格的抖動控制。在如下情況下也可以使用 mmcm :(1) pll 已用盡 ; (2)mmcm 可提供所需的高階功能,但 pll 則不能。

bufg 元件可以滿足設計的大多數時鐘要求,但對以下要求不高 :

• 時鐘數量

• 設計效能

bufg 元件易於通過綜合呼叫,並且限制較少,支援大多數普通時鐘。

5、使用儲存器介面生成器 (mig)生成管腳。

千兆位收發器 (gt) 具有特定的管腳要求。假如 gt 採用相同或鄰近的 quads,則您可以在多個 gt之間共享參考時鐘。賽靈思建議您使用 gt 嚮導生成核心。有關管腳建議,敬請參閱產品指南。

hp(高效能)hr(大範圍)bank在收發訊號的速度上存在差異。根據所需的 i/o 速度,在 hp或 hr bank 間做出選擇。

6、從加電到斷電,fpga 器件要經過多個電源階段,並伴有不同的功率需求 :

• 加電功率

加電功率是 fpga 器件首次加電時發生的瞬時峰值電流。電壓不同時,該電流強度也會發生變化且電流強度取決於 fpga 器件的結構、電源上公升到額定電壓的能力,以及器件的工作條件(比如溫度以及不同電源之間的排序)。在新型 fpga 器件架構中,不用擔心峰值電流的問題,因為它遵循了適用的上電順序指南。

• 配置功率

配置功率是指在器件配置期間所需的功率。配置功率通常低於有效功率,因此,除非您的使用過程功耗極低,否則該瞬態不會影響供電需求

• 待機功率

待機功率(又稱「設計靜態功率」)是器件按設計配置後未對其施加任何外部活動或者未產生任何內部活動時提供的功率。待機功率是設計執行時電源應提供的最小連續功率。

• 有功功率

FPGA學習筆記(一) 初識FPGA

該隨筆中部分內容 自小梅哥 fpga field programmable gate array,現場可程式設計門陣列 正如其名,fpga內部有大量的可程式設計邏輯功能塊,使用verilog hdl 硬體描述語言 實現設計。玩過微控制器的小夥伴剛接觸fpga可能會有點困惑,其實fpga與微控制器最大...

FPGA學習筆記1

fp1 fopen c fc addr.coe wt fprintf fp1,memory initialization radix 10 n 進製數 fprintf fp1,memory initialization vector n for i 1 length fc addr fprintf ...

FPGA之axi iic ip學習筆記

今天有空來學習一下xilinx的axi iic ip。下面的鏈結是xilinx官網關於axi iic的資料手冊,大家點一下就可以看了 pg090 axi iic pdf 資料手冊先給我們這個ip的頂層框圖。這個看起來好像不是很複雜,下面咱們一起來學習學習這個ip。在這裡我還沒搞明白sda和scl的 ...