Xilinx中的xapp1052的详细解释.doc
《Xilinx中的xapp1052的详细解释.doc》由会员分享,可在线阅读,更多相关《Xilinx中的xapp1052的详细解释.doc(4页珍藏版)》请在三一文库上搜索。
1、Xilinx中的xapp1052的详细解释xapp1052是xilinx官方给出的一个有关DMA数据传输的样例,用于PC端和FPGA端之间的DMA数据传输。首先需要说的是,xapp1052并不是一个完整的DMA数据传输的终端硬件设计,这在下面会有详细解释。首先说一下xapp1052模块的组成结构:顶层模块是xilinx_pci_exp_ep,在顶层模块中包含pci_exp_64b_app和bmd_design两个模块,其中pci_exp_64b_app就是我们要介绍的重点,而bmd_design则是实现PCIE协议的底层模块。下面就详细说一下pci_exp_64b_app的模块结构:pci_e
2、xp_64b_app|_BMD|_BMD_EP| | |_BMD_EP_MEM_ACCESS| | |_BMD_EP_MEM| | |_BMD_RX_ENGINE| |_BMD_TX_ENGINE| |_BMD_INTR_CTRL| |_BMD_GEN2| |_BMD_RD_THROTTLE|_BMD_TO_CTRL|_BMD_CFG_CTRL1,BMD_RX_ENGINE的设计:这个模块的作用就是接受来自PC的TLP包(trn_rd63:0),并根据不同的情况对包进行拆解,首先根据trn_rd62:56位判断包的类型,如果是32位地址读请求(BMD_MEM_RD32_FMT_TYPE),那么
3、就转到32位读对应的状态(BMD_64_RX_MEM_RD32_QW1);如果是32位地址写请求(BMD_MEM_WR32_FMT_TYPE),那么久转到32位写对应的状态(BMD_64_RX_MEM_WR32_QW1);如果是不带数据的完成类型(BMD_CPL_FMT_TYPE),那么就转到完成请求对应的状态(BMD_64_RX_CPL_QW1);如果是带数据的完成类型(BMD_CPLD_FMT_TYPE),那么就转到带数据完成对应的状态(BMD_64_RX_CPLD_QW1)。上面是状态机的第一次过渡,下面看状态的第二次过渡,在状态是BMD_MEM_RD32_FMT_QW1时,这个时候TL
4、P包的第二个DWORD已经传来,从第二个DWORD中可以得到读请求的地址addr_o,这个地址时输入到memory模块下用于读出对应地址下的数据的;然后过渡到下一个状态(BMD_64_RX_MEM_32_WT),在这个状态下,RX模块会一直检测从TX返回的compl_done_i信号,当读请求申请的对应地址下的数据由TX发送出去时,compl_done_i信号就为1,这个时候RX就会返回到RST状态。当状态是BMD_MEM_WR32_FMT_QW1时,这个时候RX也接受到了TLP包的第二个DWORD,从这个DWORD中可以拆分出地址(addr_o)和要写的数据(wr_data_o),同时在这个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Xilinx 中的 xapp1052 详细 解释
链接地址:https://www.31doc.com/p-3275306.html