微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > PCIe在RC模式下的工作机制

PCIe在RC模式下的工作机制

时间:10-02 整理:3721RD 点击:
PCIe在RC模式下的工作机制,请交流。

这个话题好宽泛啊。


具体是通过FPGA实现PCIe在RP模式下的功能,FPGA利用PCIe接口去读写其下的PCIe设备。做EP的操作可以实现,针对做RP而言,分为几个步骤才能实现该功能。

基于FPGA实现PCIe在RP模式下的功能,逻辑驱动需要做哪些事情?



   这种系统性的问题,挺难一两句话说完。够写一本书的了。



    能否给个方向,从哪里入手进行开发,不胜感激!

看看xilinx或者altera的例子吧,读读源代码,读读pcie的规范


有没有RP模式下成功的经验


针对你的问题,我也有两个问题。
   1. 你是要设计RP这个IP呢,还是已经有了IP。你需要设计接口将IP挂载到cpu系统总线上。   2. 还是上层逻辑你们也开发好了,现在是要做驱动?驱动是操作系统层面了。
这两者一个是硬件问题,一个是软件问题。



   是这样子的,我的理解是有现成的IP核,直接拿来用,我们做个接口。同时,逻辑进行驱动实现配置的功能,没有cpu什么事,完全是硬件自己玩。

"逻辑进行驱动实现配置的功能,没有cpu什么事,完全是硬件自己玩",
这一点很难,当然,你可以简化系统到,只剩下那么一点点功能。对于一个PCIE的RC来说,其实要做的事情很多的,最典型的,
1,接收EP送过来的memory 读写TLP,接收和返回数据,这一点和EP是对等的,EP要做的,RC都要做。
2. 根据当前EP的capability来动态的配置EP的功能,比如link speed。
3. 生成PCIE的层级关系树,如果只有一个RC和一个EP,那么是最简单的端到端链接,需要配置对端EP的配置空间(configuration space),需要使能那些功能,关掉哪些功能,这个是最难得,你需要一个个的去看base spec,当然,很多寄存器也是不用配置的,你需要搞清楚你需要那些功能,可能绝大多数功能你都不需要。但是有一个一定需要,就是RC要配置EP的BAR寄存器,你要用几组BAR,就得配置几组BAR。配置EP的device id,bus number等等,这些是必须要配置的。
4. 还有的就很麻烦了,比如硬件+软件的MSI/MSI-X,消息处理,中断处理,错误处理,低功耗power state的处理,这些和“如何配置EP的配置空间或者叫寄存器空间”,这几个都是RC要做的,而且大多数都需要软件干预的。你这里不要软件,,感觉不好搞。



    回复的很详细,多谢了。有一点不清楚的是,在例化IP时,RC端的BAR寄存器的用途是什么?由于权限有限,我的qq为286696173,如方便,烦请加下,感谢!



    感谢回复,很详尽。能否加个qq方便联系。qq286696173,烦请加下。多谢!



   RC的Mem Base/limit对EP是有用的,它的BAR没啥用处,不用的话就别分配地址空间,或者随便分配一个和base/limit,以及EP不冲突的空间也行。



   RC的Mem Base/limit对EP是有用的,它的BAR没啥用处,不用的话就别分配地址空间,或者随便分配一个和base/limit,以及EP不冲突的空间也行。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top