邮箱功能可用于输入和输出,并且需要为内核的所有 s_axilite
I/O 指定此功能。通过 Vitis HLS
config_interface
命令,使用一个全局选项为这些接口启用该功能:
config_interface -s_axilite_mailbox both
config_interface -s_axilite_auto_restart_counter 1
设置 config_interface
选项后,邮箱会实现一对名为 HW
copy
和 SW copy
的寄存器。输入邮箱和输出邮箱具有一对独立的寄存器,如下图中所示。与内核的通信包括:
- 输入邮箱
-
- 主机应用将部分或全部元素写入邮箱的
SW copy
寄存器。 - 主机应用通知邮箱,
SW copy
已更新。 - 当硬件内核重新启动时,
SW copy
寄存器将被复制到HW copy
寄存器。 - 主机应用收到关于
HW copy
已更新的通知,并且可根据需要再次更改SW copy
寄存器。提示: 硬件内核可在无主机应用更新的情况下进行多次读取。
- 主机应用将部分或全部元素写入邮箱的
- 输出邮箱
-
- 主机应用通知邮箱,它想要读取更新后的邮箱副本。在当前内核执行结束时,硬件将部分或全部元素写入邮箱的
HW copy
寄存器。 - 在内核完成后,会将
HW copy
复制到SW copy
寄存器。 - 主机应用收到关于
SW copy
已更新的通知,并且可随时读取该寄存器。提示: 硬件可在无任何软件更新请求的情况下进行多次写入。
- 主机应用通知邮箱,它想要读取更新后的邮箱副本。在当前内核执行结束时,硬件将部分或全部元素写入邮箱的