LogiCORE PCI Express  – 使用PCI Express内核时,如何知道BAR或其他配置空间设置是什么?-Altera-Intel社区-FPGA CPLD-ChipDebug

LogiCORE PCI Express – 使用PCI Express内核时,如何知道BAR或其他配置空间设置是什么?

问题描述

一般问题描述:

我需要能够获得BAR0,BAR1和BAR2的值,以便我可以解码正在访问的内存区域。我的用户逻辑如何解码访问所指的三个可能的内存区域中的哪一个?

解决/修复方法

可以通过配置界面读取BAR。有关在配置空间中读取寄存器的信息,请参阅“PCIe设计指南”的“通过配置端口访问其他寄存器”部分。图4-14,配置空间访问示例,显示波形。

使用cfg_dwaddr端口,为BAR提供DWORD地址,核心将在下一个周期将值放在cfg_do上。您必须将这些地址显示为DWORDS而不是字节。

对于BAR0,它将是地址04h(10h是字节地址)BAR1将是地址05h(14h是字节地址)等。

要读取BAR,请创建一个状态机,它不断读取BAR寄存器并在用户应用程序中隐藏此信息。您将需要不断进行读取,因为主机资源可能会在操作期间的某个时刻重新分配地址空间。

参考:LogiCORE PCI Express v2.0设计指南,UG040(2.0)2003年10月10日。

请登录后发表评论

    没有回复内容