- 博客(15)
- 收藏
- 关注
原创 PCIE笔记8:Transaction Layer---Flow Control
本节主要讨论流控协议的目的与操作细节。流控的目的是确保发送端不会发送接收端无法接受的事务层数据包。
2025-07-16 20:35:14
986
原创 PCIE笔记7:Transaction Layer---TLP Elements
与并行总线不同,像PCIE这样的串行总线不使用控制信号去识别Link上发生的事情。相反,在发送的数据流中必须有预期的大小和可识别的格式让接受者理解内容。另外,PCIE不使用任何立刻的握手。TLP和DLLP都是包传输,Ordered Sets也是,但是没有起始,结束标志。一个TLP 4DW header。
2025-07-08 10:48:49
1059
原创 PCIE笔记6:Vivado XDMA ip核
对于7系列FPGA芯片,Xilinx提供了3种PCI-E的IP。这里先学习一下XDMA这个IP。上图是XMDA的架构。此IP完成了事务层TLP的组包与解包,并且有着完整的DMA引擎。下图为XMDA的IP框图。
2025-07-02 16:42:23
1374
原创 PCIE笔记5:Address Space and Transaction Routing
本节将介绍 PCIe 设备如何通过 BAR 申请地址空间,主机如何设置桥接设备的地址路由规则,以及整个系统如何利用 TLP 路由机制实现事务的正确传递。PCIe 的路由方式包括基于地址的 Memory/IO 操作、基于设备 ID 的配置请求、以及部分隐式路径通信。理解这些机制是深入掌握 PCIe 架构和资源配置的基础。
2025-07-01 15:36:04
1188
原创 PCIE笔记4:Configuration Overview
本节主要介绍一下PCI-E的环境配置。主要包括实现功能配置寄存器的空间,如何发现功能,如何生成和路由配置事务,软件如何区分Endpoint和Bridge。
2025-06-30 16:32:04
1152
原创 PCIE笔记3:Device Layers(续)
数据链路层负责链路管理,执行三个主要功能:1、TLP错误检测 2、流量控制 3、链路电源管理。PCIE规范将物理层分为两部分:逻辑和电气部分。逻辑物理层包含将数据包准备为可在Link上传输的串行格式的数字逻辑,以及对接收到的数据包执行相反处理的数字逻辑。即串并转换,编码解码等等吧。电气物理层包含每一条通道上的差分驱动器和接收器。涉及信号完整性、CDR、均衡等。
2025-06-27 16:44:53
850
原创 PCIE笔记3:Device Layers
发送方为Endpoint,类型为Memory Read Request,经过了两级Switch中转,目标设备是Root Complex,接收到MRd后,访问系统内存,生成CpID返回数据,返回给原始Endpoint。必须保证数据确实已经到达目标设备,并得到确认,才能进行下一步操作,却被数据一致性和操作顺序的正确性,多用于需要严格保证操作完成顺序的场合,例如设备控制命令的写入。此方式也是降低了pin数,通过在数据路径上传递控制信息,而不是设置pin脚表示控制信息,例如中断,电源管理、错误等等。
2025-06-26 18:13:05
868
原创 PCIE笔记2:PCIE
PCI Express从前身的并行转为了串行。PCI Express在软件上兼容PCI。硬件上不兼容,PCI-E是差分电平,PCI是普通电平。PCI-E采用双向连接,可同时收发信息。连接方式。如下图所示两个设备之间的路径称为Link,由一个或者多个发送、接收对组成。一个发送、接收对被称为Lane。每个Link可由1,2,4,8,12,16,32个Lane组成。即x1,x2,x4,x8,x16,x32。
2025-06-25 17:33:34
707
原创 PCIe笔记1:PCIe概述
PCI Express是一种高性能、通用的I/O互连器件,转为各种未来的计算和通信平台而定义。其保留了PCI的部分关键属性(如使用模型、存储架构、软件接口),但其使用串行接口代替了并行总线。PCI Express利用点对点互连、基于交换机的技术和分组协议的最新进展,提供更高水平的性能和功能。其支持电源管理、QOS、热插拔、数据完整性和错误处理。
2025-06-25 11:30:20
254
原创 VScode代码插件setting问题
在使用VScode关联Vivado开发时,下载了Verilog-HDL插件,但是显示。当前工作区不受信任,因此已禁用此扩展。下一步怎么进行,不知道了。在网上查资料,发现在。
2025-06-11 10:18:22
207
原创 复旦微:vivado导入procise BD不全
初学复旦微板卡,在通过vivado导入procise BD流程中遇到问题。如下图,vivado里BD中ip很多,但是导入procise后就只剩processing了。
2025-03-21 10:08:01
439
4
原创 ADC中的INL和DNL
DNL(微分非线性度)表示两点模拟值之间的误差,单位一般为LSB。若某器件DNL为3LSB,例如A点电压测得为100LSB,B点电压测得为120LSB,则这两点之间的差距并非是20LSB的准确值,而应是再20LSB±3LSB。例如从20LSB增加到21LSB,但是可能测得19LSB。INL(积分非线性度)表示单点模拟值与真实值之间的误差,单位一般为LSB。例如某AD芯片INL为2LSB,测得某点值为1V,则这点真实值在1V±2LSB之间。SAR型ADC的INL一般很小,DNL一般较大。
2024-09-02 10:26:30
1319
原创 IIC时序代码经验
而在生成I2C的SCL的四倍频率驱动时钟时,clk_divide[8:1]表示对clk_divide除以2 25-1=24,结果得到clk时钟频率的1/50 为1M,即dri_clk 为1M,在状态机中,dri_clk又四分频得到SCL,SCL为0.25M 与预计相符。SCL为高电平时,SDA要求保持稳定,所以SDA需在SCL低电平时赋值。图片来源达芬奇PRO FPGA开发板开发指南 V2.1。同时注意代码中信号的0或1代表信息,不要搞反。学习达芬奇PRO FPGA开发板。
2024-05-29 10:05:34
337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅