FPGA设计总结
拾贝壳的大男孩
进学致和,行方思远!
展开
-
高性能DMA设计
高性能DMA并没有一种统一的设计方法,根据不同的应用场景,大体上可以分为2种:用于传递报文的多通道DMA和用于块数据传输及运算。他们的主要区别其实是buffer descriptor的差别。 首先是用于传递报文的DMA。这种设计的典型代表是intel网卡的DMA实现方式,他的实现机制一般是这样:每个通道一般分为收和发两个方向独立的队列。队列中的报文描述符一般包含以下信息...原创 2018-05-12 10:48:49 · 2125 阅读 · 0 评论 -
Xilinx MPSoC调试经验二--datamovev地址非4字节对齐时的用法
Datamover的使用1)传输时如果需要支持地址非对齐,s2mm侧:地址非对齐时的命令设定assign s_axis_s2mm_cmd_tdata[22:0] = length;assign s_axis_s2mm_cmd_tdata[23] = 1; //type: 1-enable INCR 0- enable FIXED;assign s_axis_s...原创 2019-06-02 15:03:53 · 1483 阅读 · 0 评论 -
xilinx MPSoC的一些调试经验一(逻辑部份集成的一些小问题)
1.关于SDK下PS给PL的时钟输出ZCU在SDK下的调试需要在run Configuration中把PL powerup勾选。否则PS端不会送出PL端的Clock时钟。2. 自己写的代码集成到block design中右击模块代码,然后点击add module to block design。就可以加入到block中。如果代码模块里面例化了IP,并且从其他地方拷贝过来的...原创 2019-06-02 14:59:29 · 905 阅读 · 0 评论 -
FPGA开发技能清单
1. 需求核对阶段1)良好的沟通技能:需要与需求方核对需要的功能及性能,态度很重要,谦逊专业的沟通态度才能对需求理解无偏差,理解错误,后面就可能引起构架的修改。对外团队协作能力很大一部分体现在这里。2)行业背景知识:需要把需求翻译成FPGA的功能点以及逻辑上的处理流程(流程及需要的数据结构,用硬件的大白话就是大的pipeline流水线功能以及每个功能对应的表项及数据结构)。2. 总...原创 2018-07-15 10:34:00 · 1014 阅读 · 0 评论 -
modelsim仿真调用xilinx IP的一种方法
网上有一些文章描述modelsim与vivado的联合仿真方法,一般都是在vivado的tool工具中选择编译仿真模型,然后选择器件进行编译,最后用生成的modelsim.ini去替换modelsim目录下的相同文件,但这种方法有一个很大的缺点就是modelsim版本绑定,比如vivado2017.4就需要配合modelsim10.6b的版本,否则在编译过程会报错。其实有一种更简单的...原创 2018-06-17 19:34:38 · 7689 阅读 · 7 评论 -
FPGA总体设计的硬件考虑
FPGA总体设计—硬件相关 FPGA在项目开始阶段需要考虑的设计主要有3大方面:一个是硬件做板相关的FPGA升级电路的设计以及外围IO设计;一个是与软件配合相关的软硬件接口设计;一个是FPGA内部的逻辑功能规划。本文先针对硬件设计相关进行阐述: 升级电路的设计:FPGA的好处就是产品发布后还能进行功能升级以及功能修改,但在客户那里应该没有人会愿意打开机箱进行升级,这时就要...原创 2018-05-27 08:01:52 · 3832 阅读 · 0 评论 -
FPGA核心开发技能
从事FPGA工程开发及团队带领的工作差不多有13年左右的时间,其实在近1,2年才开始思考这个问题,有点后知后觉。从科学上说真理是有保质期的,因此以下的一些经验总结只是个人的一些看法。 第1个能力是做事的方法。首先是区分研究还是工程,这个其实针对做技术是通用的。如果是研究性的课题,首先设定目标就要考虑量级的进步,至少是10倍,比如FPGA用作加速,那相对CPU就需要达到...原创 2018-05-06 10:27:36 · 821 阅读 · 0 评论 -
CPU与加速芯片之间的通信总线
加速芯片与CPU之间的连接一般通过DMA进行。在进行DMA描述之前,我们先了解一下CPU与加速芯片的互联总线,加速芯片与主CPU间的通信总线,一般要求低延迟、高带宽。从这个看,加速芯片最好是挂在CPU的内部高速总线上,比方说intel的QPI总线,他不但高带宽、低延迟,而且FPGA加速芯片可以做到直接共享主CPU的内存,而不必像PCIE这样,较多数据的计算时基本上要进行因此内存拷贝。更牛逼的是in...原创 2018-05-06 10:15:18 · 2699 阅读 · 0 评论 -
异构加速在加速什么
目前市面上的加速芯片挺多的,比如GPU、FPGA、TPU,以及针对各种特殊应用所开发的加速芯片。自己一直想理清楚这些加速芯片到底在加速什么,一直没有确切答案。一般宽泛的说法是CPU处理效率较低的,我们就进行加速,但个人觉得应该有些更本质的东西。以下是最近个人的一些感悟。 加速其实都是针对CPU而言,而CPU中一般最消耗资源的部分可以认为是循环计算,因此加速是针对这些循环部分做加...原创 2018-05-06 10:14:08 · 3900 阅读 · 0 评论 -
Xilinx的Zynq系列,ARM和PL通过DMA通信时如何保证DDR数据的正确性。
使用ZYNQ或者MPSoC的好处是可以通过PL逻辑设计硬件加速器,对功能进行硬件加速。加速器和ARM之间的交互信息一般包含自定义加速指令传递、待计算数据以及计算结果。这三种交互信息为了实现高性能往往需要使用DMA进行通信。考虑两种场景,一种是ARM将运算数据的结果或者一些待处理数据发往PL侧加速,一种是PL处理结果DMA传输到DDR内存,ARM读取数据接着处理。当有操作系统管理内存时...原创 2019-08-17 16:11:53 · 8076 阅读 · 2 评论