专栏首页Lauren的FPGA第1讲 软件工程师应如何理解FPGA

第1讲 软件工程师应如何理解FPGA

Vivado HLS是将基于C/C++描述的算法转化成相应的RTL代码,最终在FPGA上实现。这就要求软件工程师对FPGA的内部架构有一些基本的认识,目的在于保证生成的RTL代码在性能和资源上能够达到很好的平衡。实际上,C语言与FPGA是有一些对应关系的。比如:

  • C语言中的数组可对应于FPGA中的寄存器、分布式RAM、Block RAM或者UltraRAM
  • C语言中的乘加运算可对应于FPGA中的乘加运算单元(DSP48)

但不同于硬件工程师,对于FPGA内部其他资源比如高速收发器等,软件工程师可不必了解。

本讲从软件工程师的视角重点介绍FPGA内部常规逻辑单元,包括查找表(LUT)、乘加运算单元(DSP48)、存储单元(Block RAM)。这三类资源在算法开发中或多或少都会用到,在Vivado HLS的综合报告中也有所体现。

这里只介绍了这三类资源的基本架构,更为深入的介绍可阅读以下文档:

ug574: UltraScale Architecture ConfigurableLogic Block

ug573: UltraScale Architecture MemoryResources

ug579: UltraScale Architecture DSP Slice UserGuide

视频内容

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 猜一猜, for (;;) 与 while (true) 哪个更快?

    其次,for (;;) 在Java中的来源。个人看法是喜欢用这种写法的人,追根溯源是受到C语言里的写法的影响。这些人不一定是自己以前写C习惯了这样写,而可能是间...

    江南一点雨
  • c语言内嵌汇编代码相关文章列表

    最近为了了解一些操作系统的知识,学了下如何在c中写汇编代码,参考的gcc官方文档如下:

    wangyuntao
  • 聊聊 Python 字符串连接的七种方式

    我是狗哥,一名程序猿。做过 Android、撸过 Java、目前在自学 Python 。注册 「一个优秀的废人」这个公号已有些日子,真正有心将它运营起来是这两天...

    一个优秀的废人
  • Python入门你要懂哪些?这篇文章总算讲清楚了

    从今天开始学习Python,今后会不定期更新Python的相关文章。好了,言归正传,今天我们来看看对于Python初学者,你要知道了解Python的哪些基础知识...

    CDA数据分析师
  • C++语言的特点 【上】

    C++语言是在C语言的基础上发展而来,同时它又支持面向对象的程序设计,它主要具有以下特点:

    编程范 源代码公司
  • Libmicrohttpd嵌入式服务

    GNU Libmicrohttpd是一个用来在项目中内嵌http服务器的C语言库,它具有以下几个非常鲜明的特点:

    随心助手
  • 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第10章 使用Keras搭建人工神经网络

    下载本书代码和电子书:https://www.jianshu.com/p/4a94798f7dcc

    SeanCheney
  • NSObject头文件解析 / 消息机制 / Runtime解读 (一)

    上面是NSObject对象的头文件类部分, 可以看到还有一个NSObject protocol 我们也仔细看看都有什么协议方法@protocol NSObjec

    周希
  • 【Basic algorithm学习笔记】 排序

    原理: 其实原理很简单 大白话来讲 就是 先定义很多 容器 即这里形象的表达 为桶,之后每次输入的数字则为选择哪个桶,将对应的 桶中扔一个标志物表示有这个 桶...

    JAVAandPython君
  • Windows的APC机制

    前两篇漫谈中讲到,除ntdll.dll外,在启动一个新进程运行时,PE格式DLL映像的装入和动态连接是由ntdll.dll中的函数LdrInitializeTh...

    战神伽罗

扫码关注云+社区

领取腾讯云代金券