草庐IT

Vivado-FIFO

全部标签

FPGA开发软件(vivado + modelsim)环境搭建(附详细安装步骤+软件下载)

本文详细介绍了vivado软件和modelsim软件的安装,以及vivado中配置modelsim仿真设置,每一步都加文字说明和图片。一、软件安装包下载1、vivadovivado版本很多,目前最新的已更新到vivado2022.2,版本越高,安装包越大,目前vivado2022.2已达89.4GB大小。注:官网下载很慢,不稳定,可以选网盘下载官网下载:https://china.origin.xilinx.com/support/download/index.html网盘下载:vivado2017.4:https://pan.baidu.com/s/192qKequAoHLnk8fHWSmC

[FPGA深度解析]异步FIFO原理及使用

异步FIFO原理及使用1.异步FIFO的原理2.同步FIFO与异步FIFO的区别3.异步FIFO设计思想4.异步FIFO读/写地址采样4.1异步FIFO读/写采样时钟问题4.2格雷码的引用4.3格雷码的编码原理5.FIFO的深度6.FIFO代码实现7.代码解析8.异步FIFO的读/写时钟差别对格雷码的影响1.异步FIFO的原理FIFO是一种数据缓冲器,用来实现数据先入先出的读/写方式。FIFO有一个写端口和一个读端口,外部无需使用者控制地址,使用方便。FIFO与普通的BlockRAM有一个很明显的区别就是使用BlockRAM来做数据缓存处理,使用者必须自己控制读和写地址的管理,必须保证写的数据

XILINX-VIVADO IP参数化方法(XPM)

一、XPM简介    XPM全称是XilinxParameterizedMacros,是XILINX提供的一种IP参数化方法。传统的IP调用,我们需要进入到IPCatolog里选择自己需要的IP,这种调用方式的优点是比较直观,参数的设置图形化;但是它的弊端也很明显,就是每次修改IP参数都需要进入到图形化界面来修改然后保存。对于一些同质化比较高的项目,比如一个1K的视频图像处理项目,要移植成一个2K的版本;图像的分辨率发生了变化,工程里使用到的参数也会全部发生变化,我们需要把工程里面所有的IP全部重新设置一遍来进行更新,这样效率无疑是非常低的。Xilinx的工程师们考虑到用户的参数化设计需求,为

FIFO_IP核介绍和测试

FIFO_IP核介绍和测试前言一、简介各端口含义二、创建同步FIFOIP核三、FIFOIP核TB测试四、FIFOIP核仿真结果五、同步复位和异步复位比较前言FIFO的英文全称是FirstInFirstOut,即先进先出。FPGA使用的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存,或者高速异步数据的交互也即所谓的跨时钟域信号传递。它与FPGA内部的RAM和ROM的区别是没有外部读写地址线,采取顺序写入数据,顺序读出数据的方式,使用起来简单方便,由此带来的缺点就是不能像RAM和ROM那样可以由地址线决定读取或写入某个指定的地址。本章我们将对Vivado软件生成的F

Xilinx Vivado复数乘法器Complex Multiplier IP核调用及其仿真

 ComplexMultiplierIP核的使用,尤其是输出数据的截位到底怎么弄,我感觉官方文档PG104写的不清楚。我个人在网上也没找到好的讲解文章,就自己琢磨了下,然后写成文档记录在此,方便将来也有疑问的同学。目录一、如下是我的仿真代码:二、testbench中的IP设置如下: 三、几个关键点的理解如下:1、当IP输出位宽为默认的最大值25时,此时IP没有截位。如仿真例子中第一种方法:2、当IP输出位宽设置为20时,此时IP相对于最大值25就截掉了5位。如仿真例子中第二种方法:3、如上第2点使用同一个IP设置:IP输出位宽设置为20时,此时IP相对于最大值25就截掉了5位。但修改输入数据的

Vivado联合ModelSim仿真设置(附图步骤)

目录1、在Vivado中生成lib2、生成库的选择3、点击Compile,即可开始生成库文件4、在Vivado中添加ModelSim调用设置5、将Vivado的仿真库添加到ModelSim中作者以前是用ISE+ModelSim的,现在切换到Vivado平台,奈何XSim实在用不惯,现在和大家分享下如何在Vivado里调用ModelSim仿真设置、以及将Vivado的lib添加到Modelsim中。前期准备:Vivado2018.3,ModelSim-SE-10.6d1、在Vivado中生成lib打开Vivado2018.3软件,点击ToolsàCompileSimulationLibrarie

异步FIFO实验小结

目录写在前面 一、概述 1.异步/同步FIFO2.异步fifo的特点3.异步fifo设计结构图4. FIFO的常见参数 5.异步fifo空/满判断 6.指针计数器的选择 7.格雷码/二进制码相互转换8.RTL代码 9.DUTdebug 二、验证平台构建1.验证代码详解2.验证功能点3.验证结构 4.Analysis 5.部分功能点验证1时钟功能点验证​2复位功能点验证6.覆盖率分析1.代码覆盖率 2.功能覆盖率 三、整体结构图 四、Markfile写在前面 本小节内容主要针对异步FIFO进行设计验证,设计结构较为简单。作为SV学习阶段的大练习,其主要目的更多的是对SV基础语法的巩固,以及对验证

vivado DDS IP核的使用及仿真

参考:https://blog.csdn.net/weixin_45303812/article/details/123704440新人第一次写文档,有错误的地方请大佬指点。文档:Xilinx官网搜DDSConfiguration可配置参数:1.ConfigurationOptions,有如下三种模式PhaseGeneratorandSIN/COSLUT(DDS):相位和sin和cos的数据都是IP核自己产生PhaseGeneratoronly:只要相位输出SIN/COSLUTonly模式:只需要sin/cos模块输出,但此模式需要外部不断的输入累加的相位2.Systemclock 系统时钟频

java - 具有有限元素的 FIFO 映射

我需要一个HashMap或一个简单的Map,它具有固定数量的元素(n),就像一个FIFO排队。因此,直到元素编号为n时,新元素才简单地放入map中。对于元素编号>n,第一个插入的元素被删除,最新的元素被放入map中。Java中是否有类似的东西,或者我必须实现它? 最佳答案 您可以使用LinkedHashMap执行此操作,如下所示:newLinkedHashMap(n){@OverrideprotectedbooleanremoveEldestEntry(Entryentry){returnsize()>n;}};

跨时钟域设计方法-握手协议、异步FIFO

一、握手协议当由快时钟跨到慢时钟时,为了避免采不到信号这种情况,通常运用电平展宽、脉冲同步器、或者是握手处理。图中所示,发送端时钟是clk1,接收端时钟是clk2,当发送端接收到外部传过的数据时,准备就绪时拉高t_req,向接收端发送该信号表示我准备好传输了你准备好接收了吗,该信号到达接收端后进行两级同步器,为什么两级同步,主要是如果是快转慢,你需要用这种方式来展宽信号电平,这里由于是慢转快,仅仅两级同步就是为了减小亚稳态发生的概率,两级同步时在接收端的时钟clk2下发生的,两级同步后得到t_req_rr,在下一个clk2时钟沿来时发现t_req_rr为高,进行拉高ack,表示我接受到你的请求