3級調度 fpga_Vivado HLS學習筆記——1.了解FPGA架構

7c455888a9186a4c80077fd7a3e22e48.png

本篇文章為本人學習Xilinx的Vivado HLS教程記錄的學習筆記,僅供學習參考。

Vivado HLS官方視頻教程:

優酷視頻?v.youku.com

目錄:

  1. Vivado HLS課程簡介
  2. FPGA與CPU、GPU、DSP的區別
  3. FPGA的優勢
  4. Xilinx FPGA架構:邏輯單元、算術邏輯單元、存儲單元
  5. 使用C/C++ 來開發FPGA時需要關注的方面

1.Orientation and Overview of this Course(課程簡介):

設計流程、代碼風格、for循環和數組的優化方法、輸入輸出端口的實現方式

2e8bc90d91aa2ffeb116ab96b2b94977.png

2.FPGA架構(軟件工程師的角度):

2.1 FPGA與CPU、GPU、DSP的區別

4cbf443dfa94e59d18f632879cb2cb98.png
  • FPGA是硬件可編程,其他芯片為軟件可編程。
  • FPGA具有豐富的硬件計算單元(大量乘法器)以及分布式并行內存,其他芯片只有非常有限的計算資源,比如CPU只有幾個高性能ALU,另外其他芯片一般使用一個共享內存,在任何是有只能進行一次的讀或者寫操作。
  • FPGA靈活的硬件資源導致所使用的HDL語言抽象級別非常低,為RTL級,而其他芯片的編程語言都是在算法級或者系統級。
  • CPU適用于調度和管理的場景,比如文件管理,人機交互。
  • DSP適合數據處理,尤其是遞歸調用
  • GPU適合大容量數據流處理

來自 <https://blog.csdn.net/wangwenqing2018/article/details/77824785>

2.2 FPGA的優勢

8c7e0675b4e8d214a16037fd539a836d.png

2.3 Xilinx FPGA架構(軟件工程師角度)

bdc9781a76366d1cfff1746526fa21f0.png

邏輯單元、存儲單元、算術邏輯單元

1bebe91a5985892cadc16569ef57c77b.png

(1)邏輯單元:LUT查找表、MUX數據選擇器、carry chain進位鏈

  • LUT實現邏輯函數發生器:通過真值表的方式實現
  • 加法運算也屬于邏輯運算(異或、與等):可用LUT或DSP48實現

e9006a6aa5acd23cf44f82cecc774988.png

(2)ALU算術邏輯單元:DSP48

可實現加法、乘法、累加等,可應用于數字濾波、FFT等

925ee68c673b09ba875afa5b044fedca.png

(3)存儲單元:

  • Block RAM(塊隨機存儲器、2個18Kb的內存組成)
  • 分布式RAM(LUT in SLICEM)
  • 可多功能配置模式:單端/雙端、ROM/RAM、FIFO
  • C/C+數組會映射到RAM

軟件工程師關注:功能、操作與單元的對應關系、算法模型的資源利用率(綜合報告有)、優化方法

3.使用C/C++ 來開發FPGA時需要關注的方面:

  • 算法的不同部分的功能
  • FPGA底層單元的操作
  • 算法不同部分同FPGA底層單元的映射關系
  • 算法的FGPA資源使用率

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376205.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[LeetCode]Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 思考&#xff1a;DFS。 /*** Definition for binary tree* struct TreeNode {* int val;* Tree…

BZOJ2435 [Noi2011]道路修建

這是NOI11年題&#xff0c;你在逗我&#xff1f; 直接dfs就可以了&#xff0c;Linux下貌似不會爆棧。。。 1 /**************************************************************2 Problem: 24353 User: rausen4 Language: C5 Result: Accepted6 Time:5184 …

Qt異常結束程序無法重新運行

有時候代碼有問題會導致qt異常結束 修改完后重新運行又會出現 查看任務管理器又沒有這個進程 可以使用資源管理器打開看看 也可以考慮使用process explorer查看 發現程序掛起來&#xff0c;結束掉它就可以重新運行了

hadooppythonsql_半小時搞定Hadoop+Mysql+Hive+Python

1. 說明搭建過Hadoop集群的小伙伴一定知道&#xff0c;如果不用docker&#xff0c;半小時配好HadoopMysqlHive(后簡稱Hive)肯定是胡吹&#xff0c;有了Docker鏡像&#xff0c;沒有說明文檔&#xff0c;配好了也不一定會用。本文將介紹如何在半小時內&#xff0c;讓Hive在你的Li…

PHP 切割字符串 點號 不用雙斜杠

$name "tupian.png"; $nameArr explode(".", $name); 習慣了Java的程序員容易寫成 $nameArr explode("\\.", $name);//在PHP中是不正確的轉載于:https://www.cnblogs.com/wuyou/p/3463425.html

Qt新添加的類無法鏈接

通過這個方法給工程添加了個類&#xff1a; 編譯的時候就出現了這個問題&#xff1a; 執行一下qmake 然后再重新構建項目就可以了

URAL 1830 Help in the RNOS 思路,讀題 難度:1

http://acm.timus.ru/problem.aspx?space1&num1830 這道題需要理解題目操作的意思, 要更改第i位的狀態,第i-1位必須激活為1,0-i-2位必須為0,如果0-i-1位開始時全為0,那么從0位開始進行操作 一.首先考慮對于0-i-1位都是0,需要更改i位的情況,需要 1.更改i-1位,2.按一下打開下…

openssh升級sftp_OpenSSH 8.2 發布 包括 sftp 客戶端和服務器支持

OpenSSH 8.2 發布了。OpenSSH 是 100% 完整的 SSH 協議 2.0 版本的實現&#xff0c;并且包括 sftp 客戶端和服務器支持。此版本變化不少&#xff0c;其中有兩個地方值得特別關注。一個是新特性&#xff0c;此版本增加了對 FIDO/U2F 硬件身份驗證器的支持。FIDO/U2F 是廉價硬件雙…

任務隊列摘自新鋒

在開發C程序時&#xff0c;一般在吞吐量、并發、實時性上有較高的要求。設計C程序時&#xff0c;總結起來可以從如下幾點提高效率&#xff1a; l 并發l 異步l 緩存下面將我平常工作中遇到一些問題例舉一二&#xff0c;其設計思想無非以上三點。 1任務隊列 1.1 以生產者-消…

C++容器遍歷時刪除元素

vector 錯誤做法 這樣做會在遍歷過程中越界導致程序崩潰 std::vector<int> vecInt({ 1, 3, 2, 1, 4, 1 });for (auto i vecInt.begin(); i ! vecInt.end() ; i) {if (*i 1) {vecInt.erase(i);}}正確做法 std::vector<int> vecInt({ 1, 3, 2, 1, 4, 1 });for (a…

按鈕圖片拉伸_圖片墻有多香?高手都在用的PPT封面制作技巧!

大家好&#xff0c;我是李導~這次&#xff0c;冬天是真的來了&#xff0c;不知道大家有沒有感覺&#xff0c;每次冷空氣真正襲來之前我們都會以為今年是個暖冬&#xff0c;結果突然有一天氣溫從20度直降到個位數&#xff0c;我們都會認為今年比以往的冬天都冷。但是&#xff0c…

POJ 1745 Divisibility【DP】

題意&#xff1a;給出n,k,n個數&#xff0c;在這n個數之間任意放置,-號&#xff0c;稱得到的等式的值能夠整除k則為可劃分的&#xff0c;否則為不可劃分的。 自己想的是枚舉&#xff0c;將所有得到的等式的和算出來&#xff0c;再判斷它是否能夠整除k&#xff0c;可是有10000個…

三種root的修補方式

三種root的修補方式 system/core/adb/abd.c adbd漏洞&#xff0c;請看abd.c的第917行/* then switch user and group to "shell" */ if (setgid(AID_SHELL) ! 0) { exit(1); } if (setuid(AID_SHELL) ! 0) { exit(1); …

數據挖掘十大經典算法

國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 2006年12月評選出了數據挖掘領域的十大經典算法&#xff1a;C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不不過選中的十大算法&#xff0c;事實上參加評選…

windows dmp文件為0kb

列出一些遇到的情況提供參考&#xff1a; 1、棧溢出&#xff0c;多次調用T2A函數會出現程序崩潰但是dmp為0kb的問題。

dynamic與var

dynamic與var示例 var是一種語法省略寫法&#xff0c;編譯器會根據上下文推斷出正確的類型。 int[] scores new int[] { 1, 2, 7, 9, 8, 4, 6, 5 };foreach (var item in scores){Console.WriteLine(item);} 在大多數情況下&#xff0c;dynamic 類型與 object 類型的行…

線程間的消息(或數據)傳遞

使用“事件”可以實現線程間“消息/數據”的傳遞&#xff0c;非常棒的一種方法。轉載于:https://www.cnblogs.com/changbaishan/p/3471113.html

gt9xx linux 移植_GT9XX驅動移植說明書_for_Android_2014011401.pdf

GT9XXforAndroid驅動移植說明書一、驅動基本信息支持芯片型號 GT911 GT9110 GT9110P GT913 GT915 GT918 GT927 GT928 GT960GT968 GT910 GT912 GT960F GT950 GT968F GT9158 GT967 GT9150GT963GT9271GT917DI2C設備地址(7位) 0x5d、0x14I2C寄存器地址 16位APK工具/ADB工具 支持自動…

spring-session之一:簡介、使用及實現原理

一、背景 http session&#xff08;企業&#xff09;一直都是我們做集群時需要解決的一個難題&#xff0c;我們知道HttpSession是通過Servlet容器創建和管理的&#xff0c;像Tomcat/Jetty都是保存在內存中的。而如果我們把web服務器搭建成分布式的集群&#xff0c;然后利用LVS或…

How to check bad fix

最近做了一個backport的票&#xff0c;backport就是別人以前修復了這個bug&#xff0c;我只需要將fix移植到客戶的系統中。這是一 個沒有技術含量的票&#xff0c;遇到簡單的票&#xff0c;三下五除二就解決了。但是遇到目標版本與master差別大時&#xff0c;也許backport后不好…