Xilinx-Vidado-HLS-Zynq
文章平均质量分 82
Tiger-Li
大家好
展开
-
AR# 63739 Kintex UltraScale FPGA KCU105 Evaluation Kit - Board Debug Checklist
DescriptionThe Kintex UltraScale FPGA KCU105 Evaluation Kit Checklist is useful to debug board-related issues and to determine if applying for a Board RMA is the next step.Before working through t...转载 2018-08-21 08:05:43 · 1178 阅读 · 0 评论 -
vivado生成BRAM ROM表
在vivado下使用bram的文章很多,这里我想用的bram作为ROM使用。在zc702开发板上实现。首先在vivado的block design中添加IP,选择axi bram进行搜索,选择“AXI BRAM Controller”,如下图所示然后输入blk,进行搜索,选择“Block Memory Generator”然后使用推荐的连接自动化“Run Connection Automation...转载 2018-07-11 21:14:55 · 3115 阅读 · 1 评论 -
ZYNQ+Vivado2015.2系列(十一)BRAM的使用——PS与PL交互数据,及其与DRAM(Distributed RAM)的区别
Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。每一个BRAM都有两个共享数据的独立端口,当然是可以配置的,可用于片内数据缓存、FIFO缓冲。在Vivado里有一个IP核叫Block Memory Gener...转载 2018-07-11 21:09:28 · 4691 阅读 · 0 评论 -
对Vivado多周期路径约束的诠释
我们先看看单时钟周期的情形,如下图所示。红色标记为默认情况下的建立时间检查,蓝色标记为默认情况下的保持时间检查,且注意保持时间的检查是以建立时间的检查为前提,即总是在建立时间检查的前一个时钟周期确定保持时间检查。如果是多周期,如下图所示,此时两个寄存器之间尽管使用同一个时钟但因为使能信号的作用,使得两者数据率变为时钟频率的一半,意味着发起沿和捕获沿相隔2个时钟周期。此时新的建立时间检查如下图中的红...转载 2018-07-11 19:18:27 · 1540 阅读 · 0 评论 -
换位思考多周期约束
在开篇前先推荐两篇文档,一篇是altera的官方文档 Appling Multicycle Execptions in the TimeQuest Timing Analyzer ,另一篇是riple兄很早之前推荐过的Multicycles Exception Between Two Synchronous Clock,这两篇都是关于多周期约束很好的上手文档,虽然可以快速上手解决当务之急,但事后不...转载 2018-07-11 18:57:52 · 404 阅读 · 0 评论 -
FPGA开发全攻略——时序约束
原文链接:FPGA开发全攻略连载之十二:FPGA实战开发技巧(5)FPGA开发全攻略连载之十二:FPGA实战开发技巧(6)(原文缺失,转自:FPGA开发全攻略—工程师创新设计宝典) 5.3.3 和FPGA接口相关的设置以及时序分析5.3.3.1 使用约束文件添加时序约束一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松。其目的是在可能的地方尽量放松约束,提高布线成功概率...转载 2018-07-11 18:54:28 · 1053 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(3):使用IP核
IP核(IP Core)Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。使用Verilog调用IP核这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v顶层模块。添加IP核点击...转载 2018-07-11 10:37:11 · 913 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
前面一篇介绍了从新建工程一直到编写代码进行行为仿真,这篇继续进行介绍。修改器件型号新建工程时选择过器件型号,如果新建好工程后需要修改型号,可以选择菜单Tools - Project Settings。弹出窗口中,点击Project Device右侧的按钮,即可选择器件型号。综合(Synthesis)综合类似于编程中的编译。在Flow Navigator或Flow菜单中,选择Synthesis - ...转载 2018-07-11 10:36:25 · 3823 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
新建工程打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程。点击Next输入工程名称和路径。选择RTL Project,勾选Do not specify......(这样可以跳过添加源文件的步骤,源文件可以后面再添加)。根据自己的开发板选择器件型号,可以直接通过型号进行搜索,例如Basys3开发板上的芯片...转载 2018-07-11 10:35:33 · 726 阅读 · 0 评论 -
Verilog testbench总结(一)
1. 激励的产生对于testbench而言,端口应当和被测试的module一一对应。端口分为input,output和inout类型产生激励信号的时候,input对应的端口应当申明为reg, output对应的端口申明为wire,inout端口比较特殊,下面专门讲解。1)直接赋值。一般用initial块给信号赋初值,initial块执行一次,always或者forever表示由事件激发反复执行。举...转载 2018-07-11 10:34:51 · 8599 阅读 · 0 评论 -
Windows7系统禁用驱动程序签名强制的方法
Windows7系统禁用驱动程序签名强制的方法开始 - 运行(输入gpedit.msc)- 确定或者回车。打开本地组策略编辑器;在打开的本地组策略编辑器窗口,我们找到:用户配置 - 管理模板;在管理模板展开项中找到:系统并展开;在系统的展开项中,我们找到:驱动转载 2017-11-15 20:49:35 · 5069 阅读 · 0 评论 -
BRAM和DSP间的纠缠(一) ---Vivado高效设计案例分享
Xilinx公司的FPGA中不仅有“成吨”的逻辑资源(slice),另外存储器、I/O、时钟和集成式IP资源也非常丰富,笔者在设计中经常使用Block RAM(BRAM)、DSP资源,灵活运用BRAM和DSP能为设计的速度和面积都带来一定的提升,可谓是鱼和熊掌兼得。以Kintex-7系列为例,如图1所示为kintex-7各芯片资源表,其中Block RAM/FIFO w/ ECC (36 Kb e...转载 2018-07-11 21:16:20 · 3562 阅读 · 1 评论 -
fpga时序分析和slack(SOC) (Quartus II)
Abstract在分析timing時,在timing report中常會出現setup time slack與hold time slack,本文深入探討slack的意義。Introductionslack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經...转载 2018-07-12 09:19:28 · 1825 阅读 · 0 评论 -
Vivado(2017.1)中 BRAM IP核的配置与使用
Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM IP核的使用。 BRAM是FPGA定制的RAM资源,有着较大的存储空间,且在日常的工程中使用较为频繁。BRAM以阵列的方式排布于FPGA的内部,是FPGA实现各种存储功能的主要部分,是真正的双读/写端口的同步的RAM。 ...转载 2018-07-31 16:03:47 · 6915 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(3):使用IP核
IP核(IP Core)Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。使用Verilog调用IP核这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v顶层模块。...转载 2018-07-31 15:25:09 · 1199 阅读 · 1 评论 -
Vivado中ROM/RAM IP核的使用
添加IP核点击Flow Navigator中的IP Catalog,打开窗口添加IP核。Block Memory为块存储设备,这里需要的是Distributed Memory Generator参数设置设置参数:Component Name:生成的IP核模块名 Depth:存储深度,即数据点数目 DataWidth:数据位宽,即每个数据点的位数 Memory Ty...转载 2018-07-31 15:24:06 · 16505 阅读 · 0 评论 -
FPGA开发之RAM IP的使用
CORE Generator里有很多的IP核,适合用于各方面的设计。一般来说,它包括了:基本模块,通信与网络模块,数字信号处理模块,数字功能设计模块,存储器模块,微处理器,控制器与外设,标准与协议设计模块,语音处理模块,标准总线模块,视频与图像处理模块等。 在Xilinx的IP核里有xilinx core generator 里面的memory interface gene...转载 2018-07-31 14:50:18 · 682 阅读 · 0 评论 -
xilinx cordic ip核的使用
http://blog.163.com/fantasy_sunny/blog/static/1959182122013113152237210/ 本文介绍如何使用xilinx的CORDIC 核生产一个sin和cos波形?cordic的原理就不介绍了,百度一大堆,我们知道原理后,需要去使用它。环境:xilinx ISE 14.5 cordic 4.0 modelsim ...转载 2018-08-04 17:18:22 · 3132 阅读 · 0 评论 -
Vivado防止信号被综合掉的三种方法
1、 信号前面将keep hierarchy选择YES ,或者选择soft(在综合时保持层次),这样有利于你从模块中找到你想抓取的信号和信号名不被更改。2、 信号前面使用 (* KEEP = “{TRUE|FALSE |SOFT}” *),可以防止信号被综合掉,但是无法防止在布局布线的时候优化掉3、 信号前面使用(* DONT_TOUCH= “{TRUE|FALSE}” *),可以防止信号在综...转载 2018-07-13 11:17:30 · 2608 阅读 · 0 评论 -
Vivado防止信号被综合掉的三种方法
1、 信号前面将keep hierarchy选择YES ,或者选择soft(在综合时保持层次),这样有利于你从模块中找到你想抓取的信号和信号名不被更改。2、 信号前面使用 (* KEEP = “{TRUE|FALSE |SOFT}” *),可以防止信号被综合掉,但是无法防止在布局布线的时候优化掉3、 信号前面使用(* DONT_TOUCH= “{TRUE|FALSE}” *),可以防止信号在综...转载 2018-07-13 11:17:29 · 5269 阅读 · 1 评论 -
综合里dont_use/dont_touch/ideal_network的理解
先简单记录一下自己的理解,下一步看看官方文档的描述。dont_usedont_touchideal_networkdont_use部分单元库的单元,由于工艺、性能功耗面积等原因,工艺厂商建议或者后端建议,不要使用的单元。在综合步骤设置dont_use属性,就可以避免综合使用这些单元。dont_touch对目标模块,设置dont_touch属性。会使得该目标模块,不进行任何优化。 常见, 比如已经综...转载 2018-07-13 11:16:07 · 4917 阅读 · 0 评论 -
在vivado中使用attribute
之前最常用的一个attribute就是mark_debug了,语法如下:(*mark_debug="ture"*)。 今天又学到几个新的,原文在这里:http://china.xilinx.com/support/answers/54357.html 一、PARALLEL_CASE (Verilog Only) Parallel case is valid only for Verilo...转载 2018-07-13 09:05:16 · 1140 阅读 · 0 评论 -
Xilinx VIVADO CORDIC核的使用
一:参数配置1.选择函数的类型。包含了矢量旋转,矢量变换,正弦,余弦,双曲正弦,双曲余弦,反正切,反双曲正切和平方根的计算。2.选择cordic的结构。可选并行和串行。3.选择输出流水线类型。提供了三种,无,最优,最大。其中optimal模式实现时使用很多流水线,但是不使用附加的查找表。4.选择数据格式。有符号小数(默认),无符号小数,无符号整数。5.选择相位模式。弧度和角度。。radians的取...转载 2018-07-12 15:28:37 · 1991 阅读 · 0 评论 -
详解Linux下SSH远程文件传输命令scp
详解Linux下SSH远程文件传输命令scp标签: linuxssh服务器ftp服务器防火墙2012-06-19 17:02 14336人阅读 评论(0) 收藏 举报 分类:linux(49) 一:Linux ssh scp的简介及作用:在日常linux服务器操作中,传输文件是必不可少的操作。以前章郎虫一直用他来翻墙,可以算是偏门,今转载 2017-06-30 14:11:02 · 1030 阅读 · 0 评论 -
xilinx FPGA hls心得(3)
hls 的优化以 for,func,array为核心。尤其是for, 可以uroll,pipeline。 以至于所有的数据设计,都要以for的数据流为核心。 if都要放在需要展开的 for里面。原创 2017-03-17 10:15:10 · 3120 阅读 · 0 评论 -
Vivado下试出来的几条 Verilog 综合的规则
下面的经验在vivado的RTL级综合验证:总体原则:操作要与输出信号相关,不相关的全部视为无用信号,综合成电路是被综合掉。1,always过程中 中间变量自己给自己赋值的操作,在综合出来的电路中会被忽略掉, 因为对电路的输出没有意义。2,输入信号赋值给中间变量, 但是没有跟输出相关,被综合掉。3,中间变量赋给常量值,在综合时会根据位值 直接连接对应位D触发器的se原创 2017-02-27 13:54:45 · 3605 阅读 · 0 评论 -
C语言中数组的初始化问题
C语言中数组的初始化问题标签: 语言c编译器2012-07-21 18:02 1860人阅读 评论(0) 收藏 举报 分类:Android闲谈(62) 版权声明:本文为博主原创文章,未经博主允许不得转载。C语言中数组的初始化问题一维数组Int a[] = {1,2,3,4} //用数去填充Int a[3] = {1,2转载 2017-03-18 18:05:46 · 1174 阅读 · 0 评论 -
matlab生成一定范围内的随机数
rand([m n])产生 m行,n列(0,1)范围内均匀分布的伪随机数如果要求在区间(a,b)内产生均匀分布的随机数r = a + (b-a).*rand([m n]));转载 2017-03-18 15:03:13 · 27916 阅读 · 0 评论 -
我的科研生活2017-3-17
为了并行 ,改了一天的代码。HLS毁三观啊, 这样干半年,我写的代码估计自己都不看了。原创 2017-03-18 10:22:40 · 467 阅读 · 0 评论 -
ARM上怎么用 gettimeofday 函数
0down votefavoriteI am trying to use gettimeofday on an embedded ARM device, however it seems as though I am unable to use it:gnychis@ubuntu:~/Documents/coexisyst/econotag_firmware转载 2017-02-05 19:29:30 · 3514 阅读 · 0 评论 -
Xilinx SDK 编译包含有sin, cos, or tan 等数学函数时如何成功编译
http://www.360doc.com/content/16/0406/19/18252487_548394259.shtmlXilinx SDK 编译包含有sin, cos, or tan 等数学函...2016-04-06 mzsm 文章来源 阅 161 转 1转藏到我的图书馆微信分享:转载 2017-02-05 19:01:16 · 3283 阅读 · 0 评论 -
比百度更能有效找到 xilinx 相关问题答案的地方
xilinx官网的supporthttps://www.xilinx.com/赛灵思社区http://xilinx.eetop.cn/原创 2017-02-05 18:45:28 · 404 阅读 · 0 评论 -
undefined reference to `exp'
http://blog.csdn.net/andrew659/article/details/6326845undefined reference to `exp'标签: referencemath.hlinkerincludegooglegcc2011-04-15 23:10 2775人阅读 评论(0) 收藏 举报 分类:转载 2017-02-05 18:25:38 · 762 阅读 · 0 评论 -
Vivado-zynq7000 的PS侧开发相关文档
C__Users_lidalin_Documents_XilinxDocs_User_Documents_101.96.8.164_documentation_sw_manuals_xilinx2016_3_oslib_rm.pdf OS and Libraries Document Collection原创 2017-02-05 15:50:26 · 623 阅读 · 0 评论 -
C语言打印字符串的一部分的方法
http://c.biancheng.net/cpp/html/1575.htmlC语言打印字符串的一部分的方法头文件:#include sprintf()函数用于将格式化的数据写入字符串,其原型为: int sprintf(char *str, char * format [, argument, ...]);【参数】str为转载 2017-02-05 11:30:07 · 11978 阅读 · 0 评论 -
xilinx zynq-7000 基本知识
xilinx zynq-7000 基本知识2015-09-01 19:12 4313人阅读 评论(1) 收藏 举报 分类:读书笔记(4) 版权声明:本文为博主原创文章,未经博主允许不得转载。Zynq-7000 采用可扩展式处理平台架构(Extensible Processing Platform、EPP),是 Xilinx 用转载 2017-03-09 18:54:04 · 3057 阅读 · 0 评论 -
开发自定义AXI总线外设IP核——以LED和开关为例
http://www.eefocus.com/nightseas/blog/12-10/287343_15762.htmlZedBoard学习手记(二) 开发自定义AXI总线外设IP核——以LED和开关为例2012-10-25 23:06:43分享:标签: ZYNQ AXI Zedboard 外设转载 2017-03-09 18:59:29 · 2437 阅读 · 0 评论 -
ZYNQ TIMER定时器中断
http://www.cnblogs.com/milinker/p/5906014.html第十四章 ZYNQ TIMER定时器中断 上篇文章实现了了PS接受来自PL的中断,本片文章将在ZYNQ的纯PS里实现私有定时器中断。每隔一秒中断一次,在中断函数里计数加1,通过串口打印输出。本文所使用的开发板是Miz702 PC 开发环境版本:Vivado转载 2017-03-09 19:02:31 · 3451 阅读 · 0 评论 -
浮点数比较
http://www.360doc.com/content/12/1019/14/1317564_242414220.shtml转载 2017-03-15 22:32:59 · 324 阅读 · 0 评论 -
hls心得(2)-关于hls处理浮点数运算
浮点运算存在运算精度问题,统一个算法,放在不同的实现环境,结果会不同。在C++代码中, hls有两个头文件 这个放在testbench中 这个文件放在 要编译成STL代码的cpp文件中这样可以保证在simulation的时候, hls_math中的数学函数返回的结果与STL后返回的精度一致。 否者,如果都用cmath,会导致C-simulati原创 2017-03-15 11:28:12 · 3537 阅读 · 0 评论