原创 uvm_event之wait_trigger和wait_trigger_data的用法

相信大家對uvm event一定不陌生,對我這種半路出家的人來說,uvm event簡直就是神器,好多需要進行時序控制,以及跳轉觸發的都可以通過uvm event實現。 uvm event 用法 1. 文件a: uvm_event eve

原创 ddr圖像存儲之時基矯正部分

又到了月更的時間了,翻了翻以前寫的博客,發下fpga之4k圖像處理中的時基矯正部分還沒有寫,本次就寫這不分了。 首先說說什麼叫時基矯正,爲什麼要進行時基矯正。 先來個簡圖吧,也好理解。 你可以把ddr想象成爲一個大的fifo,實質上就是

原创 如何將RTL kernel作爲library加入到Vitis中

最近的工作主要是圍繞vitis平臺,持續開發了將近半年多的時間,從sdx的2018.3到目前的vitis 2019.2. 中間也歷經了3個版本,從內部版本到最終的vitis面世,也看到了軟件的非常多的進步。 現在的工作是要將內部的RTL

原创 UVM對RTL kernel進行工程驗證

年前的時候被分配了一些以前從沒接觸過的工作,用UVM配合組內同事驗證本組內開發的RTL kernel。相信做IP驗證工作的人來說肯定不陌生。可是對於純在FPGA上做RTL的人,是第一次聽說。 接到這個任務的時候就瘋狂看了看相關的資料,先後

原创 census變換verilog實現

上一篇文件已經介紹過match cost的rtl計算方式,主要思路就是sad,具體算法內容可以去網上隨便找找,其實在算match cost時, 可以結合census變換,這樣可以很好的去除圖像中光線對結果的影響。 具體實現方式也比較簡單,

原创 一張圖看懂CNN運算

  不知道哪位大神做得這張圖,每每犯疑惑的時候都來看看這張圖,瞬間又踏實了 這張圖是一個典型的input channel =3,output channel=2的情況,其中對輸入的圖像又涉及到了pad=1的操作,pad的處理可以保留原始

原创 雙目測距match cost 之rtl實現

以後爭取能達到月更,這次把雙目測距的sad cost匹配代價求法詳細介紹 不廢話,直接上圖 實現原理比較簡單,主要是點減,具體rtl實現過程中會遇到兩數相減出現負值的情況,如果這樣直接求取絕對值即可,在rtl實現過程中可以按照如下操作:

原创 systemverilog中fork..join, join_any, join_none的用法和解析

相信所有用systemverilog的驗證人員都應該對這幾個不陌生,在進行驗證的過程中經常會用到fork,自己也踩了一些坑,下面對fork.. join, join_any以及join_none的用法進行總結,以及整理下可能遇到的坑。

原创 sdaccel 和 vitis 對rtl 的kernel的要求

本節文章參考的代買爲xilinx github上vitis 的事例工程,主要是講解如何寫用戶自己的rtl kernel,具體參考鏈接如下: https://github.com/Xilinx/Vitis_Accel_Examples/bl

原创 fpga實現cnn之脈動乘法理論篇

  本次文章分爲幾個部分,主要細緻介紹脈動, 何爲脈動,脈動的數據是什麼樣子的,下圖可以看做是簡單的脈動單元,共有P11到P33 9個計算單元,行列數據並不是同時刻到達計算單元,而是依次進入,說白了就是像FPGAer經常說的pipilin

原创 census變換之rtl實現

上一篇文件已經介紹過match cost的rtl計算方式,主要思路就是sad,具體算法內容可以去網上隨便找找,其實在算match cost時, 可以結合census變換,這樣可以很好的去除圖像中光線對結果的影響。 具體實現方式也比較簡單,

原创 fpga 之cnn高效實現方式

  在fpga實現cnn中最重要的模塊部分-conv計算部分,可以稱爲是用fpga加速的根本。而計算最重要的關鍵則是如何充分利用fpga內的DSP,目前本人用的主要是ultrascale+,對應的dsp爲DSP48e2。 實現conv的兩