日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > ZYNQ
		


FPGA中的硬件邏輯與軟件程序的區(qū)別,相信大家在做除法運算時會有深入體會。若其中一個操作數(shù)為常數(shù),可通過簡單的移位與求和操作代替,但用硬件邏輯完成兩變量間除法運算會占用較多的資源,電路結構復雜,且通常無法在一個時鐘周期內完成。因此FPGA實現(xiàn)除法運算并不是一個“/”號可以解決的。

好在此類基本運算均有免費的IP核使用,本人使用的VIVADO 2016.4開發(fā)環(huán)境提供的divider gen IP核均采用AXI總線接口,已經(jīng)不再支持native接口。故做除法運算的重點從設計算法電路轉變成了調用AXI總線IP核以及HDL中有符號數(shù)的表示問題,極大降低了開發(fā)難度。以下就上述兩個方面進行探討。

VerilogHDL中默認數(shù)據(jù)類型為無符號數(shù),因此需要數(shù)學運算的場合必須要用“signed”聲明,如:

reg signed [8-1:0] signal_a; wire signed [32-1:0] signal_b;

需要注意一點,F(xiàn)PGA將所有有符號數(shù)視為二進制補碼形式,運算的結果同樣為補碼。再來看看除法器IP核配置界面。

總共就兩頁,非常簡單。需要重點關注的有三個地方:1 算法實現(xiàn)結構(algorithm type)2 被除數(shù)與除數(shù)的位寬 3 第二頁flow control模式?,F(xiàn)來一一說明:

就算法結構來說官方文檔pg151 LogiCORE IP Product Guide中說得很詳細:LUTMult結構操作數(shù)最好不要高于12bit,且充分利用DSP slice和BRAM以降低對FPGA 邏輯資源的消耗。Radix-2操作數(shù)不要超過16bit,且利用資源與LUTMulti相反,大量使用register和LUT從而將DSP slice和BRAM資源節(jié)省出來用在別的地方。最后一個High Radix結構支持超過16bit的大位寬操作數(shù),利用DSPslice等專用硬件資源。根據(jù)自己的需求選擇即可。

位寬問題沒什么好說的,需要特別注意保留位寬滿足計算范圍,也就是運算之前的“補碼符號位擴展”。至于flow control 模式與接口和AXI總線有關。

接口劃分得十分清晰,被除數(shù) 除數(shù)和商通道以及必要的時鐘和復位邏輯接口。每個AXI總線通道總是包括tdata tuser tlast 和握手信號tvalid tready,其中tuser為附加信息,tlast表示流模式下最后一個數(shù)據(jù),相當于數(shù)據(jù)包中的包尾處。數(shù)據(jù)傳輸僅在tvalid和tready同時拉高時有效并更新。

而Non Blocking Mode在除法運算時較常用,一句話概括:IP核接口不帶有FIFO緩存,輸出通道數(shù)據(jù)必須被下游模塊實時處理。上圖就明白了:

這一模式實際上是對AXI總線的簡化,很多場合下并不完全需要AXI總線強大的流控功能,特別是在AXI總線模塊的上下游均為可進行實時處理的FPGA邏輯電路的情況下。AXI總線的另一個特點就是data packing,需要將不是8bit倍數(shù)位寬的數(shù)據(jù)高位填充從而確保數(shù)據(jù)最小單位是1byte,具體填充方式有所不同。很容易想到,這樣的data packing 功能對SOC中PL與PS部分的交互是十分友好的。

總體來說,在FPGA中做基本的數(shù)學運算沒什么難度,即使是指數(shù) 對數(shù) 開根號之類的復雜運算也有浮點IP Core的支持。本人后續(xù)用到復雜算法時,會采用HLS方式開發(fā),僅用于算法驗證,歡迎關注。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉