FPGA开发
文章平均质量分 64
长弓的坚持
这个作者很懒,什么都没留下…
展开
-
Verilog中Dump函数及用法
Verilog提供一系列系统任务用于记录信号值变化,常见的格式有vcd,fsdb等。1,Dump VCD格式$dumpfile("file. dump"); 打开一个VCD数据库用于记录$dumpvars(level,start_module); 要记录的信号,level=0表示记录所有$dumpflush; 将VCD数据保存到磁盘 不明白$dumpoff; 停止记录$dumpon; 重新开始记录$dumplimit(); 限制VCD文件的大小(以字节为单位)$dumpall; 记录所转载 2021-01-09 12:15:19 · 7940 阅读 · 0 评论 -
并行计算实战-双调排序
1.双调序列假设序列A是一个单调递增序列,B是一个单调di'j递减序列,那么由A与B拼接而成的序列C就是一个双调序列。如图1:接下来我们要介绍的一个概念是双调分裂操作:1)将数列的前半部分的各个元素(i值从0到N/2-1)和对应的后半部分的各个元素(i+N/2到N-1)做一一比较;2)如果前半部分的元素大于后半部分的元素,则交换。如果对C进行分裂操作则可以得到D,如法炮制可以再对D进行分裂操作...依此类推,最终可以得到排好序的序列。也就是说,如果有一个双调序列,那么我们就可以非常f转载 2021-01-09 12:09:21 · 602 阅读 · 0 评论 -
三十分钟理解:双调排序Bitonic Sort,适合并行计算的排序算法
双调排序是data-independent的排序, 即比较顺序与数据无关的排序方法, 特别适合做并行计算,例如用GPU、fpga来计算。1、双调序列在了解双调排序算法之前,我们先来看看什么是双调序列。 双调序列是一个先单调递增后单调递减(或者先单调递减后单调递增)的序列。2、Batcher定理将任意一个长为2n的双调序列A分为等长的两半X和Y,将X中的元素与Y中的元素一一按原序比较,即a[i]与a[i+n] (i < n)比较,将较大者放入MAX序列,较小者放入MIN序列。则得到的MA转载 2021-01-09 12:08:38 · 1266 阅读 · 0 评论 -
基于 FPGA 的并行全比较排序算法,topK
以空间换时间的并行排序算法。https://blog.csdn.net/Reborn_Lee/article/details/80469391并行全比较排序算法介绍排序是一种重要的数据运算,传统的排序方法主要靠软件串行方式实现,包括冒泡法、选择法、计数法等,这些算法大多采用循环比较,运算费时,实时性差。不能满足工程上越来越高的实时性要求。实时性排序在工程计算中的要求越来越迫切。本文基于FPGA的硬件特点,提出了一种全新的并行全比较排序算法,又可被称为“以空间换时间”并行排序算法,可大幅提高数据处理转载 2021-01-09 11:27:22 · 1216 阅读 · 1 评论 -
基于FPGA的几种排序算法总结
目录1冒泡法和比较排序法1.1算法原理1.2仿真结果1.3算法优缺点2并行全比较排序法2.1算法原理及Verilog实现2.2仿真结果2.3算法优缺点3串行全比较排序法3.1算法原理及Verilog实现3.2仿真结果3.3算法优缺点2总结最近笔者在项目中正好遇到需要排序...转载 2021-01-09 11:19:44 · 4748 阅读 · 1 评论 -
modelsim 自动化 独立仿真vivado ip核工程
1.简述自动化的独立仿真提高FPGA的仿真效率,加快FPGA开发。初学时使用Altera的FPGA,独立仿真带ip核的工程时,还能自己添加IP核的仿真文件实现。但是后来转到xilinx,好像没有办法独立仿真,只能和vivado联合仿真,这效率太低,特别是仿真复杂的图像算法时,人都要都疯了。不过。我细致研究下了,可以实现自动化仿真,还是独立仿,真香!2.准备下面只是参考,实际按自己实际来做。1)vivado2019.1+modelsim2019.2。想要安装包 :xilinx vivado转载 2020-11-28 20:07:14 · 1224 阅读 · 0 评论 -
Xilinx FPGA 芯片命名规则与查询方法
Xilinx 公司的芯片有一整套命名规则,可以通过相关文档查阅。Xilinx 提供了很多关于 Device 的用户手册,很多会在文档的开始部分对命名规则及其含义进行讲解,如UG-112:Device Package User GuideUG-116:Device Reliability Report外,针对某指定芯片,可查找所属系列的 DataSheet例如,针对 Xilinx Artix-7 系列的XC7A100T-2FGG484l 芯片,可以查看概括性讲解 7-系列 FPGA .转载 2020-09-13 14:12:03 · 11183 阅读 · 1 评论 -
关于xilinx fir use reloadable coefficient的用法
最近用到系数可以重新配置的fir滤波器,调用xilinx提供的ip core,使用了use reloadable coefficient功能,但有以下几点疑问,哪位有用过的大虾能否指点迷津下 1、使用use coefficients reloadable之后,仍需导入.coe文件,这个文件的作用是什么,此时滤波器系数不是由coe_din输入了吗? 2、number of coefficient sets的作用是什么,与导入的.coe系数个数有关系。 3、_reload_order.txt中的系数顺序是说co转载 2020-08-16 16:35:40 · 1679 阅读 · 0 评论 -
Vivado Fir Ip核动态更改滤波器系数的两种方法
有时在设计过程中,可能需要不同的滤波效果,如果采样率一样的情况下,我们有两种方式进行切换系数。第一种就是真正意义上的动态切换,如下图:这种方式适合真正意义上的系数从新加载,但是配置相对复杂,但是省资源。第二种动态更改滤波器系数的方法:如果只是少数的几种参数切换,我们可以换种方式,就是通过不同的参数都加载在coe中,最好每种系数个数是一样的,例如我这选取了3种:**我这里设计了3个99阶的FIR滤波器,我们只需要将系数叠加再一起就行,例如:radix = 16;coefdata =f转载 2020-08-16 16:26:22 · 3973 阅读 · 2 评论 -
Modelsim仿真时不能编译`include文件解决办法
问题描述: 只要用到include,编译就出错,抱怨Cannot open `include file "params.v",但是在使用params.v文件中定义的参数时,已经在调用文件中使用了“`include params.v”命令,如果在其他文件夹中进行编译,仿真器就会报出“cannot open。。。”或者找不到params.v中定义相应的参数。解决办法:将所有要编译文件放在同一个文件夹中,且编译时在该文件夹中进行编译;使用include命令时,使用绝对路径对文件进行引用;今天...转载 2020-05-31 12:08:24 · 6089 阅读 · 0 评论 -
Quartus和Modelsim中使用`include包含头文件的对比
在Quartus建立的工程中包含有头文件,而该工程在Modelsim仿真时有时会报错。Quartus版本是Quartus Prime 17.1 Lite Edition;Modelsim版本是Modelsim SE 10.2。1、Quartus工程中`include包含的是“***.vh”(或者“***.h”)文件,在Quartus中对工程编译时,“***.vh”文件一定要保存在Quartus工程目录下,或者在包含该头文件模块的文件目录下,如果该文件在其他文件目录会报错如下:Error (100转载 2020-05-31 12:01:16 · 2973 阅读 · 0 评论 -
ISE14.7无法生成DDS IP核的解决办法
"E:/*/ipcore_dir/tmp/./_cg/_dbg/./dds_compiler_v4_0/sin_cos.vhd" line 228: Real operand is not supported in this context.ERROR:sim -ERROR:sim - Process will terminate. For technical support on this issue, please open a WebCase with this project attached .转载 2020-05-31 11:59:29 · 2981 阅读 · 0 评论 -
ISE include 头文件错误的解决办法
在ISE 14.7里面,如果hdl的头文件和verilog文件不在同一个文件夹下,直接添加文件就会i包含失败,而且无法实现综合。错误代码是ERROR:HDLCompiler:281 :ERROR:HDLCompiler:281 - "C:/Users/lingking/Desktop/my_cpu_az/bus/src/bus_arbiter.v" Line 22: Cannot open include file "nettype.h".ERROR:HDLCompiler:281 - "C:/...转载 2020-05-31 11:55:17 · 2705 阅读 · 0 评论 -
FPGA中的Logic Cells, Logic Slices, Configurable Logic Blocks and Gates 的定义
一个逻辑单元(logic cell)包含了一个查找表,一个触发器和与附近单元的连接电路。查找表使用组合逻辑实现了一个4输入的逻辑表达式(与,或,与非,加等)。一个逻辑片(logic slice)包含了2个逻辑单元。Xilinx公司的计算结果接近每个逻辑片中包含2.25个逻辑单元,因为它们比其它的构架能配置更多的可配置逻辑模块(CLB)。一个可配置逻辑模块(configurable logi...转载 2020-03-13 22:41:34 · 7065 阅读 · 1 评论 -
Xilinx 在文档中所用的 LC(logic cells) 与 LUT之间的换算关系
在Xilinx的选型手册中,描述其硬件资源的时候,经常会看到 LC(Logic cells)的概念,如下图所示:但是在各种数据手册中,我并没有找到关于Logic cells的定义,最后在下面这个网址中找到了比较靠谱的回答。https://forums.xilinx.com/t5/Virtex-Family-FPGAs/logic-cell-vs-CLB/td-p/743699引用如下:...转载 2020-03-13 22:39:05 · 3916 阅读 · 0 评论 -
Vivado清理和压缩工程的方法
前言vivado和ISE的使用差别很大,Vivado是专门针对7系列和以后系列的FPGA/AP SOC进行高效设计的工具,特别是最近提出的UltraFast设计方法,能够极大地提高开发效率。ISE在支持老版本器件的基础上,目前也支持7系列/ZYNQ的设计,但是效率不能和Vivado相比。关于vivado的基本使用这里不多说,主要把一些问题点整理成“错题集”,把一些小技巧进行归纳。清理/压缩工...转载 2020-02-11 16:37:54 · 8768 阅读 · 0 评论 -
Vivado中两种RTL原理图的查看方法和区别
当你完成了一个设计之后,查看原理图,可以了解工具如何将你的代码转换成了电路。方便你铆足了劲死磕一个小小的加法器来优化 200ps 的关键路径。当你要查看一个开源设计,查看原理图,可以快速掌握项目设计的架构图。方便你用轮子或者,恩,造个更好的。那么如何在 Vivado 中查看原理图?答案是通过 Vivado 左侧的 Flow 栏。在 Flow 栏中可以查看综合或者布局布线后的原理图...转载 2020-02-11 16:36:44 · 40832 阅读 · 8 评论 -
介绍SLICEM里的LUT如何形成RAM资源
LUT的原理,实现逻辑函数时,相当于一个ROM将结果预存,然后把通过输入信号当作地址对预存的结果进行寻址。因此同样借助LUT加几个端口,就可以实现RAM。SLICEM里面的LUT就可以用来实现RAM资源。二. 原理介绍SLICEM里面的LUT跟SLICEL里面的LUT相比多了DI2,WA[6:1],CLK,WE这几个端口。做RAM用的时候,其中DI1,DI2是写数据输入端口,O5,O6同样...转载 2020-01-04 22:20:03 · 2738 阅读 · 0 评论 -
初识FPGA CLB之LUT实现逻辑函数
一、概述LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift Register,以及Multiplexers。这篇文章我们一起来学习LUT如何构成组合逻辑。二、LUT实现原理LUT,中文名字叫做查找表,其原理其实也就是一个一个查找表,根据输入去找到相应位置的信号...转载 2020-01-04 22:19:02 · 3700 阅读 · 0 评论 -
XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))
浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))一、概述CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元。在Xilinx FPGA中,每个可配置逻辑块包含2个Slice。每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。而Slice...转载 2020-01-04 22:12:48 · 7517 阅读 · 1 评论 -
7系列FPGA逻辑单元理解
7series 逻辑单元理解ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析。1、IOBUF单元 (1)真值表 (2)用途 the design element is a bidirectional single-ended I/O Buffer used to con...转载 2020-01-04 21:45:19 · 2949 阅读 · 0 评论 -
脉动阵列在二维矩阵乘法及卷积运算中的应用
脉动阵列(Systolic Array)本身是一个“古老”的概念,在1982年就已经提出了,可是,最近由于Google的TPU采用了这个结构作为计算的核心结构,脉动阵列又一次地火了起来。我也是因为关注TPU才开始去了解脉动阵列的,但是由于目前脉动的阵列比较零散,在搞明白脉动阵列以及TPU怎么使用脉动阵列进行卷积的过程中走了很多“弯路”,所以就用这篇文章作为我学习脉动阵列的笔记,也记录一下我自己对脉...转载 2019-12-14 12:58:36 · 12400 阅读 · 0 评论 -
FPGA 脉动阵列的设计
一:定义脉动阵列:数据流同步流过相邻的二维阵列单元的处理器结构,一般不同方向流过不同数据。如下图:二维不同数据在同一时钟下依次输入每个处理单元,而后完成乘法并存在其寄存器中。二:举例三:设计结构:单个PE的代码module pe(clk, reset, coeff, in_x, in_y, out_x, out_y);...转载 2019-12-14 12:49:53 · 5907 阅读 · 3 评论 -
FPGA实现多个数的加法运算
问题:y=x0+X1+...+x1024其中每个x的位宽都不大,3~5比特,请教最优化等等实现方法回答:直接一个assign的话。这种方法占用资源太多了,assignout=x0+...+x3071;其中xi为3bit,一共使用了13000多个lut,有没有什么办法能使用最少的资源?吞吐率个延迟都不打紧 不在乎吞吐率和延迟的话,一个DSPslice加一...转载 2019-12-14 12:45:25 · 8383 阅读 · 1 评论 -
Vivado IP的两种综合方式:Global 和 Out-Of-Context
在最新的Vivado的版本中,定制IP的时候,会有一个综合方式的选择,如下图所示。可以看到一种叫做”Global”,一种叫”Out-Of-Context (OOC)”。从字面意思上来理解,”Out-Of-Context”是“脱离上下文”的意思。”Global”即全局。Global synthesis如果选择的是全局综合选项,那IP生成的文件将会和其他的用户文件一起进行综合,这也就...转载 2019-11-16 10:27:25 · 1164 阅读 · 0 评论 -
Xilinx FPGA开发工具总结
在xilinx下每种操作其实都对应着一种工具,逻辑综合,网表与constraint fie的合并,布局布线等等。下面就对各个工具做一个总结。 1,XST(Xilinx Synthesis Technology)是xilinx退出的逻辑语言综合工具,它所做的就是把HDL语言表述的逻辑综合成特定的网表文件(netlist file),即NGC文件。NGC包含着电路的逻辑设计。转载 2016-11-03 12:44:59 · 9448 阅读 · 1 评论 -
Xilinx FPGA的配置
0 参考资料(1) Xilinx: Development System Reference Guide. dev.pdf, v10.1在Xilinx的doc目录下有。(2) Xilinx: Virtex FPGA Series Configuration and Readback. XAPP138 (v2.8) March 11, 2005在Xilinx网站上有,链接http:/转载 2016-10-29 00:45:02 · 5584 阅读 · 0 评论 -
XILINX资源获取
俗话说,好的开始是成功的一半。在这个信息爆炸的时代,好的资料就是成功学习的一半。时常看到有人在论坛上跪求资料,也有人在论坛上灌水换积分排队下资料。如果这篇文章能帮助大家花更少的时间找到更有价值的资料,那么我花时间维护这篇文章也就值了。好,废话不多说,我们言归正传。写这篇文章主要想介绍Xilinx各种资料的找法、分类方法和什么问题该看哪些资料。限于经验,难免有错漏,希望大家指出错误并转载 2016-10-23 18:07:55 · 17000 阅读 · 0 评论 -
Xilinx网站资源导读
一、软件Xilinx的软件主要是ISE, EDK, ChipScope Pro, System Generator, PlanAhead, ModelSim,如果要算上AccelDSP也凑合,不过相信国内没多少人用。ISE是主要的逻辑设计软件,其他软件的具体实现功能都依附于ISE。ISE有Foundation版和WebPack版。WebPack版免费,Foundation版收费。两转载 2016-10-23 23:49:46 · 863 阅读 · 0 评论 -
Xilinx的FPGA命名规则
1.xilinx的FPGA命名规则Xilinx的ug112第一章中介绍了Xilinx公司的FPGA命名规则。一般而言,大的FPGA的上表面是这个样子的。譬如,对于编号为XC4VLX60-10FFG668CS2的FPGA,器件类型是XC4VLX60-10,封装是FFG668CS2。具体而言XC4VLX代表FPGA的家族,这里是VIRTEX 4LX60代转载 2016-10-23 23:56:01 · 12110 阅读 · 0 评论 -
Xilinx & Altera FPGA中的逻辑资源(Slices VS LE)比较
前言经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的产品对成本不敏感。不过,在此还是比较一下两家的产品,简单写写一些自己的想法,供大家参考,如有不对的地方,还请指正!进入正题要比较Xilinx和Altera的FPGA,就要清楚两个大厂FPGA转载 2016-11-04 12:49:20 · 6862 阅读 · 0 评论 -
Xilinx FFT IP core V9.0的介绍和使用
参考: http://blog.csdn.net/yijingjijng/article/details/48137897http://xilinx.eetop.cn/viewnews-1262http://blog.csdn.net/u011746496/article/details/44761865http://xilinx.eetrend.com/article/614转载 2016-10-13 23:43:19 · 9118 阅读 · 9 评论 -
FPGA内部电源管理详解
做了这么长时间的FPGA的设计,也看了很多这方面的书籍资料,不管是编程还是调试,一直都只在关心有没有实现功能,没有去深入理解FFPGA的内部结构,接下来这几篇文章将着重分析FPGA设计的各个部分细节。 现场可编程门阵列(FPGA)是可以包括数千个典型的、可编程逻辑单元。一个由线和可编程开关的矩阵与单独的逻辑单元互连。典型的设计包括指定每个单元的简单逻辑功能和选择性地关闭互连转载 2016-10-14 00:04:52 · 7803 阅读 · 0 评论 -
FPGA管脚分配需要考虑的因数
在芯片的研发环节,FPGA验证是其中的重要的组成部分,如何有效的利用FPGA的资源,管脚分配也是必须考虑的一个重要问题。一般较好的方法是在综合过程中通过时序的一些约束让对应的工具自动分配,但是从研发的时间段上来考虑这种方法往往是不可取的,RTL验证与验证板设计必须是同步进行的,在验证代码出来时验证的单板也必须设计完毕,也就是管脚的分配也必须在设计代码出来之前完成。所以,管脚的分配更转载 2016-10-14 00:05:27 · 4231 阅读 · 0 评论 -
FPGA SelectMap接口配置设计
http://xilinx.eetop.cn/viewnews-682-page-2摘要:与通常采用外围的CPLD器件和CPU来产生配置接口控制逻辑的方法不同,本文设计了采用嵌入到FPGA的Leon3开源CPU软核来控制实现Virtex系列FPGA的SelectMap接口配置的方法,可将其应用于对FPGA芯片的在线配置。该方法设计成本低,不局限于某一类型的FPGA芯片,减少了外围分立元转载 2016-11-04 23:42:42 · 16308 阅读 · 2 评论 -
Xilinx FPGA的配置
http://blog.sina.com.cn/s/blog_98d98c7f0102v4ex.htmlhttp://www.cnblogs.com/aikimi7/p/3499633.htmlFPGA配置方式 目前spartan6、Vertex6系列FPGA可以支持多种配置方式:从配置时钟的来源可分为:Master Modes、Slave Modes,从转载 2016-11-04 23:52:25 · 18930 阅读 · 1 评论 -
Xilinx ISE 开发过程中生成的各种文件(一)
电路设计与输入-->功能仿真-->综合优化-->实现过程(翻译、映射、布局布线3个小步骤)-->烧写芯片,在线调试综合优化:XST:全称为XilinxSynthesis Technology,这是Xilinx ISE里面附带的一个免费的综合工具。Synplify生成文件:netlist网表文件 标准edif文件*.edf; 综合约束传递文件*.ncf;转载 2016-11-05 23:46:07 · 19903 阅读 · 0 评论 -
Xilinx ISE 开发过程中生成的各种文件(二)
在ISE系列软件中,CPLD/FPGA设计的实现主要包括转换(Translate)、映射(Map)、布局布线(Place&Route)和时间参数提取(Timing)等几个方面。1.转换在转换过程中,多个设计文件和约束文件将被合并为一个NGD文件,并同时输出BLD文件。其中,NGD文件包含当前设计的全部逻辑描述,BLD文件时转换的运行报告。转换可以接受的设计文件包括END、EDF、E转载 2016-11-05 23:50:50 · 5430 阅读 · 3 评论 -
ISE下载到FPGA内的文件格式
有bit、mcs、bin,三种用法不同 bit主要是下载后直接调试,重新上电需再次烧写 mcs是flash加载,下载完成后需重新上电且不必再次烧写,bin是内核加载 一般都是默认生成的bit文件,bin文件生成是在ISE里property里勾选的 。 mcs则是由下载工具生成的。转载 2016-11-05 23:55:21 · 7710 阅读 · 0 评论 -
Xilinx SelectIO 接口
http://xilinx.eetrend.com/blog/19631. 什么是I/O Tile?对Spartan-6系列FPGA来说,一个IO Tile包括2个IOB、2个ILOGIC、2个OLOGIC、2个IODELAY。图 1Spartan-6系列IO Tile结构图图 2Spartan-6 FPGA转载 2016-10-25 23:50:08 · 14487 阅读 · 0 评论