FPGA
skyplain1984
这个作者很懒,什么都没留下…
展开
-
同步FIFO的编写
以一个16x8bit的FIFO为例。module sync_fifo( input clk, input rst_n, input wr_en, input[7:0] wr_data, input rd_en, output reg[7:0] rd_data, output full, output empty); reg[3:0] wr_addr, rd_addr; r原创 2016-12-17 13:50:12 · 1006 阅读 · 1 评论 -
跨时钟域信号处理
一、慢速多周期信号Signal-in为clkA时钟域多周期信号。此时只需要用clkB打两拍即可。module Signal_CrossDomain( input rst_p; input clkA, // we actually don't need clkA in that example, but it is here for completeness as w转载 2017-01-30 14:58:11 · 4985 阅读 · 0 评论 -
FPGA源同步时钟输出
在xilinx的FPGA中,要实现高频时钟的输出,并保证时钟质量,最有效的方案是使用ODDR来产生。ODDR位于IOB里面,如果CLK是由BUFG驱动的,那么从CLK到ODDR的路径在每次实现中都是确定的,从OODR到FPGA芯片PAD的路径和延迟也是确定的,由ODDR产生的时钟是一个稳定的高质量时钟。下面是原语使用实例。ODDR2 #( .DDR_ALIGNMENT("NONE"),原创 2017-03-14 16:51:12 · 4006 阅读 · 0 评论 -
spartan6 MCB调试中碰到的问题
1、对于MCB自己产生的rst0输出信号,不是很可靠。用这个rst0信号做全局reset,发现很多reset下必须为一个默认值的(全0的不算,不设置默认就是0)寄存器,统统不正常。开始还以为自己代码有问题,仔细仿真后发现功能没问题,reset下都能正常赋默认值,上板调试后发现和仿真结果不对。找了很久没找到原因,后来才顿悟到这个reset信号上。自己写了一个reset,马上正常。正确的做法应原创 2017-03-14 20:41:28 · 1303 阅读 · 0 评论 -
关于sdr sdram的full page burst
关于SDRAM的full page burst//-------------------------------------------------------------------------//1、micron官方的datasheet指出BURST TERMINATE和PRECHARGE都可以终止当前突发。2、full page burst不支持自动precharge。//-转载 2017-04-01 18:13:09 · 1759 阅读 · 1 评论 -
换位思考多周期约束
本文转载自http://www.cnblogs.com/shengansong/archive/2012/05/17/2505918.html在开篇前先推荐两篇文档,一篇是altera的官方文档 Appling Multicycle Execptions in the TimeQuest Timing Analyzer ,另一篇是riple兄很早之前推荐过的Multicycles Exce转载 2017-06-19 20:26:42 · 786 阅读 · 0 评论 -
Zynq学习(一)----AXI STREAM接口
AXI4-Stream协议是一种用来连接需要交换数据的两个部件的标准接口,它可以用于连接一个产生数据的主机和一个接受数据的从机。当然它也可以用于连接多个主机和从机。该协议支持多种数据流使用相同共享总线集合,允许构建类似于路由、宽窄总线、窄宽总线等更为普遍的互联。AXI4-Stream接口的信号线定义如下所示。比较重要的信号线有:ACLK为时钟线,所有信号都在ACLK上升沿被采样;ARESETn为复...转载 2018-04-19 16:52:43 · 5182 阅读 · 0 评论 -
ZYNQ学习(二)----关于video in to axi4-stream
ZYNQ学习(一)分析了AXI STREAM的接口信号。分析VDMA之前,先看看PG043 Video In to AXI4-Stream对于video转成AXIS的处理。关键信号READY/VALID HandshakeA valid transfer occurs whenever READY, VALID, ACLKEN, and ARESETn are high at the rising...原创 2018-04-19 18:41:39 · 5760 阅读 · 1 评论 -
ZYNQ学习(三)----关于VDMA
关于VDMA,以下两篇博客写得很好:1、https://blog.csdn.net/qq_36373500/article/details/702306632、https://blog.csdn.net/vacajk/article/details/53908661看完大概就懂了。。。只是有几点还是需要注意的:1、write burst size和read burst sizedma实际上是一次一...原创 2018-04-19 19:20:06 · 5199 阅读 · 0 评论 -
VDMA IP的GUI配置介绍【Xilinx-VDMA模块学习】
使用的是Vivado 2015.4,XC7Z020, AXI Video Direct Memory Acess(6.2)。 在我的系统中,GUI配置图片如下:(其实和默认配置没有太大区别) 下面介绍VDMA IP内各个参数的配置说明。1.Basic标签页Address Width:数据线位宽除非内存地址空间大约32位,一般就配置成32位了,因为所做的板子DDR转载 2017-01-29 14:32:38 · 7350 阅读 · 1 评论 -
XILINX之RAM使用指南(加个人总结)
一、 RAM 分类XILINX 的 RAM 可分为三种,分别是:单口 RAM,简化双口 RAM 和真双口 RAM。如下 图所示: 图1 单口 RAM 图2 简化双口 RAM A 口写入数据,B 口读数据图3 真双口 RA转载 2017-02-10 16:54:52 · 21342 阅读 · 0 评论 -
vivado与modelsim的关联以及器件库编译
本文转载自:http://www.cnblogs.com/geekite/p/5331995.html一、在vivado中设置modelsim(即第三方仿真工具)的安装路径。在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最底部,在“QuestaSim/ModelSim install path”栏中输入或选择modelsim转载 2016-12-30 18:58:14 · 5514 阅读 · 0 评论 -
在Vivado HLS中综合时如何指定端口的综合类型
如果你对Vivado HLS中综合之后端口的ap_none之类的类型指示摸不着头脑的话,那就来一起学习一下它们是如何使用的吧。在Vivado HLS中,我们可以指定端口使用的类型,这样在对C代码进行综合的时候,就可以指定某个端口所使用的转换协议了。常见的类型有:1. ap_none 默认类型,该类型不适用任何I/O转换协议,它用于表示只读的输入信号,对应于HDL中的wire转载 2016-12-17 16:21:01 · 3666 阅读 · 0 评论 -
zynq开发之HLS
HLS简介HLS(High Level Synthesis)即高层次综合,不同于以往的FPGA逻辑开发,是用HDL编写的,开发周期长、难度大。而HLS可以使用C,C++,SystemC以及OPenCL等编写,通过高层次综合,可以把软件代码转化为硬件描述语言,可以大大加快开发速度,使软件工程师也可以编写硬件语言。HLS OpenCV简介OpenCV是开源的图像处理和计算机视觉原创 2016-12-17 14:31:00 · 7497 阅读 · 0 评论 -
关于UG925的一些东东
ug925中涉及的工程1、需要从xilinx官网下载和自己安装的vivado版本匹配的代码版本。2、下载解压后,将hardware文件夹单独拷贝出来。hardware文件夹就是用来搭建硬件平台的。3、进入hardware/vivado文件夹。打开vivado tcl shell。输入cd c:/hardware/vivado。4、输入source ./scripts/project原创 2016-12-17 17:28:47 · 743 阅读 · 1 评论 -
ZED Board从入门到精通系列(八)——Vivado HLS实现矩阵相乘
转载地址:http://blog.csdn.net/kkk584520/article/details/18812321HLS的学习资源可以参考http://xilinx.eetrend.com/article/5096。本节给出较为通用的矩阵与向量相乘例子,从全串行到全并行进行了一步步优化实现。矩阵实验室Matlab是比较常用的数学仿真软件。本博主用的是R2013a版本。为了验证矩阵转载 2016-12-22 09:50:52 · 6033 阅读 · 3 评论 -
异步复位同步释放
异步复位同步释放,最好要结合PLL的输出locked信号。module rst( input locked, input clk, input ext_rst_n, output reg rst_n); reg rst_reg0, rst_reg1; wire rst_n_combine; assign rst_n_combine = ext_rst_n & locked原创 2016-12-17 13:47:04 · 449 阅读 · 0 评论 -
关于xilinx wp275的理解
wp275 主要内容讲的是flip-flop怎么合理的应用。1、常用的代码写法process (clk, reset)begin if reset=‘1’ then data_out <= ‘0’; elsif clk’event and clk=’1’ then data_out <= a and b and c and d; end if;end pro原创 2017-01-05 19:07:07 · 1206 阅读 · 0 评论 -
DCM,PLL,MMCM区别和共性
The DCM is a Digital Clock Manager - at its heart it is a Delay Locked Loop. This has the ability to deskew a clock, generate different phases of the clock, dynamically change the phase of a clock,转载 2016-12-29 09:21:02 · 15009 阅读 · 0 评论 -
搭建Modelsim SE仿真环境-使用do文件仿真
转载地址:http://blog.csdn.net/lg2lh/article/details/51176467本章我们介绍仿真环境搭建是基于Modelsim SE的。Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera实际是针对Altera 的OEM版本,它事先将Altera的一些IP核仿真库添加转载 2016-12-30 09:44:26 · 1224 阅读 · 0 评论 -
在zynq的裸机程序中计算程序运行耗时
可以利用ARM 内核中的Performance Monitor Unit(PMU,性能检测单元)来得到耗时的tick count。转载别人的代码如下:修改XTime_GetTime代码:/**************************************************************************** * * Get the time from the G...转载 2018-04-20 17:32:24 · 3584 阅读 · 0 评论