草庐IT

Vivado_AXI

全部标签

FPGA中FIFO的应用(三)——Vivado FIFO IP核的调用

⭐️作者简介:小瑞同学,一个努力精进的FPGA和通信学习者。🍎个人主页:小瑞同学的博客主页🌻个人信条:越努力,越幸运!⏰日期:2023.12.6🔍来源:自学经历📖文章内容概述:简单介绍了FIFOIP核常用参数的配置,通过仿真分析了异步IP的读写数据过程。连载系列:FPGA中FIFO的应用完整工程已上传至CSDN:下载链接同步FIFO设计异步FIFO设计VivadoFIFOIP核的调用目录1.FIFOIP核参数配置简介1.1Basic1.2NativePorts1.3StatusFlags1.4DataCounts2.仿真验证2.1testbench文件2.2原始仿真结果2.3修改参数后的仿真结

VIVADO弹球游戏VGA显示Verilog代码EGO1开发板游戏

名称:VIVADO弹球游戏VGA显示Verilog代码EGO1开发板游戏软件:VIVADO语言:Verilog代码功能:设计一个弹球游戏,并在VGA显示器上显示1、可以控制游戏开始,开始时数码管显示0分2、使用按键控制球拍的运动,当控制球拍接住球时,分数加13、弹球触碰屏幕边缘或者球拍时可以反弹4、当未成功接球时,游戏结束FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:代码下载:VIVADO弹球游戏VGA显示Verilog代码EGO1开发板游戏名称:VIVADO弹球游戏VGA显示Verilog

Vivado RAM随机存取存储器 IP核的使用

RAM随机存取存储器IP核的使用实验简介操作方法一、在IPCatalog中搜索RAM选择BlockMemoryGenerator二、配置过程BasicPortAOptionsPortBOptionsOtherOptionsSummary三、调用方法四、仿真验证关于内置RAM资源实验简介本文纯属学习笔记,使用的FPGA是Xilinx的XC7A35TFGG484-1,使用Vivado调用RAMIP核来实现双端口的数据存储和读取。操作方法一、在IPCatalog中搜索RAM选择BlockMemoryGenerator二、配置过程Basic①在MemoryType中选择SinglePortRAMMem

FPGA Vivado环境下实现D触发器

此触发器具有复位信号RSTn,时钟信号CLK,使能信号En,输入信号D,输出信号Q(仅供参考)工作原理:初始状态下,触发器处于复位状态,输出为复位信号的稳定状态(通常为0)。使能信号EN和输入数据D的值不会影响触发器的状态。当使能信号EN为高电平时,D触发器处于使能状态,可以根据时钟信号CLK的变化来接收和存储输入数据。当使能信号EN为低电平时,D触发器处于禁止状态,不论时钟信号CLK如何变化,都不会对输入数据进行接收或存储。当时钟CLK发生上升沿或下降沿时(取决于D触发器的类型),且使能信号EN为高电平时,D触发器根据输入数据D来更新其状态。如果是上升沿触发的D触发器,在时钟上升沿时,输入数

【常见 error】Vivado生成比特流时报错[DRC NSTD-1]和[DRC UCIO-1]

目录 问题描述错误信息翻译解决办法添加约束执行TCL命令更改顶层选项 问题描述今天在生成工程的比特流时,出现如下的报错信息,经过上网查询相关错误的解决方案,以及自己摸索,发现可能是如下错误以及相应的解决方案。错误信息翻译[DRCNSTD-1]未指定的I/O标准:108个逻辑端口中有106个使用I/O标准(IOSTANDARD)值“DEFAULT”,而不是用户指定的值。这可能会导致单板的I/O竞争或不兼容,或影响性能和信号完整性,极端情况下可能导致所连接的设备或组件损坏。要纠正这种违规,请指定所有I/O标准。除非所有逻辑端口都定义了用户指定的I/O标准值,否则这种设计将无法生成位流。使用set_

Vivado生成网表文件

仅供个人纪录!!!什么是网表文件?在vivado中执行综合后即可生成网表文件,简单来说网表文件是对电路设计逻辑结构的描述,如网表由单元(cell)、引脚(pin)、端口(port)和网络(Net)构成。综合之后OpenSynthesisDesign可以看到这样一个窗口,这就是记录了电路的网表信息。如何导出网表文件?如要导出网表信息,首先在综合前在Tools->Settings->Synthesis中进行设置,Option中这一项设置为full,意思是模块综合后的层级结构全部为平层,只剩下顶层。看到一个解释说是为了打平整个设计,防止别人看到模块层次。选择full和默认选项rebuilt,后续网表

浅入浅出Vivado IP之DDS Compiler

简单介绍:直接数字合成器(DDS)或数字控制振荡器(NCO)是许多数字通信系统的重要组成部分。数字系统中生成复杂或实值正弦信号的常用方法是查找表法。查找表存储正弦信号的样本数据。数字积分器用于产生合适的相位参数,通过查找表映射到所需的输出波形。1.操作理论TheoryofOperationDDS编译器IP的标准模式采用相位截断法来生产波形。积分器(组件D1和A1)计算了相位斜率用来使用查找表。量化器Q1接收高精度相角值之后,进行简单的截断处理,生成较低精度的角度值。这个值提供了进行相角空间与时间波形的映射的查找表的地址。最终产生的信号的保真度收到处理过程中相位与幅度的量化的影响。查找表的深度和

AMBA协议AXI-Lite(AXI-Lite从机代码设计)

文章目录一、设计思路1、什么时候发生写数据操作?2.什么时候发生数据读操作?3.如何根据AXI_WSTRB信号完成数据的写入?二、源码设计2.1写通道源码设计2.2读通道源码设计2.3模板代码三、仿真总结一、设计思路在设计开始之前,我们需要弄清楚以下几个问题:什么时候发生写数据操作?什么时候发生数据写操作?如何根据AXI_WSTRB信号完成数据的写入?1、什么时候发生写数据操作?  我们在第4-1节对AXI-Lite协议介绍后,分析了写数据发生的条件,那就是当写数据和写地址同时有效时,立即完成传输;  我们将上面的条件翻译一下,就是当AXI_AWVALID、AXI_AWREADY、AXI_WV

【FPGA】AXI4-Lite总线读写BRAM

博主参考和学习的博客AXI协议基础知识。这篇博客比较详细地介绍了AXI总线,并且罗列了所有的通道和端口,写代码的时候可以方便地进行查表。AXI总线,AXI_BRAM读写仿真测试。这篇文章为代码的书写提供大致的思路,比如状态机和时序的控制问题,可以参考。valid-ready双向握手机制双向握手机制的实质是:数据接收方R告诉数据发送方T“我准备好接收数据了”,并拉高ready;同样的,数据发送方T告诉数据接收方R“我准备好发送数据了”,并拉高valid。数据发送方给出valid,数据接收方给出ready重点:只有在valid和ready同时拉高时,表面成功握手,数据才得以传输。【例】比如下图,当

解决vivado赋reg时出现的cannot assign to memory或者cannot assign a packed type to an unpacked type

省流:解决方案检查被赋值的reg是如何被声明的,是不是把[m:n]给放错位置了,仔细思索是应该声明成向量还是数组,[m:n]是放到变量名前还是变量名后即可。虽然省流了,但是也不妨往下划一划:),看看俺的心路历程。如果有用欢迎点赞收藏~背景有时候我们在给某个reg赋值的时候,会出现如下提示:Error:cannotassigntomemoryError:cannotassignapackedtypetoanunpackedtype排查过程仔细检查后,发现是在声明reg类型的寄存器时,声明成了数组而非向量。即:/*出现错误的代码*/regreg_tagv_wen[1:0];//声明成了数组,这里即