在实现外部实现的配置寄存器时,“Configuration Extend”(配置扩展)接口允许核随用户应用一起传输配置信息。下表定义了核的配置扩展接口中的端口。
端口 | I/O | 宽度 | 描述 |
---|---|---|---|
cfg_ext_read_received | 输出 | 1 | 已接收配置扩展读取。 块接收到来自链路的配置读取请求时,会断言此输出有效。 在 Vivado IDE 的核配置下的“User Defined Configuration Capabilities”(用户定义的配置功能)中选中PCI Express Extended Configuration Space Enable(PCI Express 扩展配置空间使能)时,即可设置此端口。 所含 cfg_ext_register_number 范围如下的所有接收配置读取都被视为“PCIe Extended Configuration Space”(PCIe 扩展配置空间)。
通过断言 cfg_ext_read_received 有效并保持 1 个周期来表示所有接收的配置读取(与其地址无关),并且在 cfg_ext_register_number 和 cfg_ext_function_number 上驱动有效数据。 超出 IP 范围的用户应用只需响应接收到的上述范围内的配置读取。 |
cfg_ext_write_received | 输出 | 1 | 已接收配置扩展写入。 块接收到来自链路的配置写入请求时,会断言此输出有效。 在 Vivado IDE 的核配置的“User Defined Configuration Capabilities”中选中PCI Express Extended Configuration Space Enable时,即可设置此端口。 在 cfg_ext_register_number、cfg_ext_function_number、cfg_ext_write_data 和 cfg_ext_write_byte_enable 上会显示对应于所有接收配置写入(所含 cfg_ext_register_number 在 0xb0-0xbf 范围内)的数据。 在 cfg_ext_register_number、cfg_ext_function_number、cfg_ext_wrte_data 和 cfg_ext_write_byte_enable 上会显示所含 cfg_ext_register_number 范围如下的所有接收配置写入。
|
cfg_ext_register_number | 输出 | 10 | 配置扩展寄存器编号 读取或写入的配置寄存器的 10 位 DWORD 地址。例如,要访问 0x480 地址,应在 cfg_ext_register_number 上布局 0x480/4 = 0x120,因为这是 DWORD 地址。当 cfg_ext_read_received 或 cfg_ext_write_received 为高电平时,数据有效。 |
cfg_ext_function_number | 输出 | 8 | 配置扩展功能编号 对应于配置读取或写入请求的 8 位功能编号。当 cfg_ext_read_received 或 cfg_ext_write_received 为高电平时,数据有效。 |
cfg_ext_write_data | 输出 | 32 | 配置扩展写入数据 写入配置寄存器的数据。当 cfg_ext_write_received 为高电平时,此输出有效。 |
cfg_ext_write_byte_enable | 输出 | 4 | 配置扩展写入字节使能 针对配置写入传输事务的字节使能。 |
cfg_ext_read_data | 输入 | 32 | 配置扩展读取数据 您可通过此总线将数据从外部实现的配置寄存器提供给核。如果您已设置 cfg_ext_read_data_valid,那么核会在将 cfg_ext_read_received 设置为高电平后,在时钟的下一个上升沿上对此数据进行采样。 |
cfg_ext_read_data_valid | 输入 | 1 | 配置扩展读取数据有效 用户应用通过向核断言此输入有效,以提供来自外部实现的配置寄存器的数据。核会在将 cfg_ext_read_received 设置为高电平后,在时钟的下一个上升沿对此输入进行采样。在 cfg_ext_read_received 信号上接收到读取请求后,核期望在用户时钟的 262144 ('h4_0000) 个时钟周期内断言此信号有效。如果在此时间内未接收到任何响应,那么核将发送含 'h0 有效载荷的自动响应,用户应用必须丢弃响应,并立即终止该特定请求。 |