Pcie调试笔记5_30_20:00

原来XP系统不支持MSI中断机制,只能用Legacy 的INTa...

Cache Line Size是64B 越大DMA速度越快。

Max_Payload_Size=128B,在我使用的CPU中。

问题1:当存储器读完成报文传递的地址范围跨越了RCB边界时,为什么就必须要拆包进行地址对界,不对界会出现什么结果?

不对界的结果是数据不能全部返回,比如DMA读 4KB的数据量,总是有一个cpld无法返回。cpld长度也不定,有2个DW的有14个DW的,还有16个DW=64B的,还有32个DW=128B。

问题2:为什么PIO程序里的trn_teo_nf被综合成了PORT类型?明显是错误的。但错在哪里?

解:是在初始化时应给予IP核一个trn_tsrc_dsc_n<=1'b1;我忘记初始化了,所以导致User Appolication总是申请断开的。逻辑错误表现为我先向一个固定的寄存器写一个常数,返回值总是0xffff_ffff;我还是有点不明白为什么没有初始化这个信号而导致RTL级的trn_teof_n信号没有连接。修改以后trn_teof_n信号不再是port,而是FDP(或FDC,需要核实一下)了。

问题3:是哪部份逻辑负责对DMA写数据包里的数据对应的物理地址加一加一加一呢?

RC ,Memory Controller,还是IP核的物理层,事物层,应该再熟读下规范。我好爱规范啊。规范就像上帝给人类立的十条诫命一样,告诉什么才是善与恶,美与丑,假与真。

你可能感兴趣的:(Pcie调试笔记5_30_20:00)