作为一个有一定工作经验(划水好多年)的FPGA工程师,很多模块都已经学习过或者使用过,但是如果让我重新实现,感觉又是一脸懵。因此,这是我发文档的原因。对于自己来说,这是一个总结归纳的过程,对读者,可能是一次解惑。后期,将会逐渐分享DDR/ETH/SERDES/PCIe/SPI/FFT/FIR等等应用、调试经历。2022.8.4@gz如果有疑惑的地方,可以站内信->共同探讨!概述在FPGA的开发过程中,FIFO几乎是所有工程中都会使用的一个存储器IP。在很多场合,例如数据的跨时域处理,流水线命令等,可以说是最佳选择。普通的FIFO(native),不管是在altera/xilinx/lattic
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档一、AXI中关于非对齐问题理解 AXI协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,总线位宽为32bit时,如果起始地址为0x1002,则产生了非对齐现象。与16bit位宽总线对齐的地址需要能被2整除;与32bit位宽总线对齐的地址需要能被4整除;与64bit位宽总线对齐的地址需要能被8整除。如下图所示:(32位数据的对齐图) 对于非对齐传输,主机会进行两项操作:1.即使起始地址非对齐,也保证所有传输是对齐的。2.在首个transfer中增加填充数据,将首次传输填充至对
多处翻译官方文档IHI0022E_amba_axi_and_ace_protocol_spec.pdf基本的读写操作握手协议AXI具有5个独立的通道,每个通道都使用相同的VALID和READY的握手过程去传输地址、数据、控制信息等。双向握手带来的好处是主机和从机都可以控制传输的节奏。请求方的VALID信号的发出表示着地址、数据、控制信号的信息是有效的。应答方的READY信号的发出表示可以接收上述信号。仅仅当VALID信号和READY信号同时为高电平时,传输才正式发生在T1之后,准备好地址、数据、控制信号VALID,在T2被采样,T3时刻时采样READY信号,完成一次握手,在完成握手之前请求信号
一、交易标识符ID AXI交易标识符ID,主机用这些ID来判别必须按顺序返回的交易。同一ID的交易必须按顺序返回,不同ID的交易可以乱序。AXI通过使用ID,主机可以不等待一笔交易完成就发起多笔交易。起到提升系统性能的作用,实现多笔交易的并行处理。从机需要返回合适的BID或者RID来响应主机的ID。二、AXI中的outstanding传输outstanding传输:也可以称为AXI超前传输,表示这次事务还没完成,可以先发起别的事务,即outstanding操作是不需要等待前一笔传输完成就可以发送下一笔操作在不考虑乱序和交织的情况下,AXI事务都是顺序完成的,这时多事务在传输上不需要其他信号来实
一、stm32cubeide配置1、DMA串口接收数据的ide配置如下图所示 串口1相关的设置及printf函数的使用,这里没放,建议先实现串口打印功能可以参考:使用STM32CUBEIDE配置STM32F7用DMA传输多通道ADC数据_stm32cubeide配置adc_一只小白啊的博客-CSDN博客2、相关的知识点 普通模式和循环模式的区别在于,普通模式下,DMA只会接收一次数据,接收完成后就会停止,需要接收时再开启;而循环模式下,DMA会一直接收数据,直到接收缓存区满或者手动停止。 根据自己需求定模式,如果是数据有间隔,空闲中断的这种情况下,处理一帧
#STM32系列-串口-uart-引脚上拉-原因问题的搜寻前言-(知道一个结论正确,也要知道它为什么正确)问题描述查找过程(1)上网查资料(2)请教大佬(3)查代码-找手册-验证一些参考资料链接现有结论汇总叙述前言-(知道一个结论正确,也要知道它为什么正确)最近,在调试uart串口的时候,被要求,要在串口初始化的时候,将引脚设为上拉。由此想到了为什么要上拉这个问题,但上网查了资料,发现大部分都是是说RX应该上拉,但是为什么上拉,没有什么人说的清楚,于是想深入找下原因。问题描述预先假设问题,知道自己要问什么,缕清问题本身。如果自己脑袋里一团乱麻,莫能两可,那对于所掌握的知识也不准确。RX是应该软
文章目录一、AXI-Stream简介二、AXI-Stream端口信号(Master)三、AXI-Stream数据字节类型和流格式四、数据反压五、实验设计5.1情景描述与分析5.2硬件架构设计5.3源码设计5.4仿真一、AXI-Stream简介 AXI-Stream(以下简称AXIS)是AMBA协议的AXI协议三个版本中(AXI4-FULL、AXI4-Lite、AXI4-Stream)最简单的一个协议;是AXI4中定义的面向数据流的协议,常用于对数据流的处理,如:摄像头高速ADXilinx的AXI-DMA模块 在进行SOC设计中需要高速数据传输处理的场合,常常使用AXIS协议; AXIS与
芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍解读AXI协议事务属性(TransactionAttributes)一、写在前面二、事务属性机制解读(TransactionAttributes)2.1Cache知识预览2.1.1Cache的功能2.1.2Cache的位置2.1.3Cache的行为2.1.3.1Cache的读行为2.1.3.2Cache的写行为2.
UART通信UART通信简介verilog实现顶层模块接收模块发送模块仿真波形实测结果UART通信简介即通用异步收发器(UniversalAsynchronousReceiver/Transmitter),是一种串行、异步、全双工的通信协议。特点是通信线路简单,适用于远距离通信,但传输速度慢。数据传输速率:波特率(单位:baud,波特)常见波特率有:1200、2400、4800、19200、38400、57600等,最常用的是9600和115200。数据通信格式如下:包含一个起始位、n个数据位(通常为8位,即一个字节)、1个校验位、1个结束位其中各位的意义如下:空闲位:UART协议规定,当总
(一)FPGA之串口通信(UART)回到梦开始的地方,如今回过头来看串口协议,确实清晰了很多,但是奈何好记性不如烂笔头,我还是要重新记录一下学习的知识点,方便查找和学习。波特率(BandRate):串口协议中很重要的一点就是波特率,波特率的概念是每秒钟传送码元的个数,就是一秒钟传输了几个二进制的个数,他的单位是Bit/s和bps两种。常见的串口速度有115200bps9600bps等等,串口(RS232)的最大传输速率是115200bps,表示一秒钟传输了115200个二进制。波特率和字节的关系1GB=1024MB1MB=1024KB1KB=1024B(字节)我们需要串口接收的数据数每秒512