{"id":6086,"date":"2024-08-19T21:01:03","date_gmt":"2024-08-19T13:01:03","guid":{"rendered":""},"modified":"2024-08-19T21:01:03","modified_gmt":"2024-08-19T13:01:03","slug":"\u63a5\u53e3\u6587\u6863\u662f\u4ec0\u4e48_\u4e32\u53e3\u8f6c\u7f51\u53e3\u8bbe\u5907","status":"publish","type":"post","link":"https:\/\/mushiming.com\/6086.html","title":{"rendered":"\u63a5\u53e3\u6587\u6863\u662f\u4ec0\u4e48_\u4e32\u53e3\u8f6c\u7f51\u53e3\u8bbe\u5907"},"content":{"rendered":"
\u70b9\u51fb\u201c\u84dd\u5b57\u201d\u5173\u6ce8\u6211\u4eec<\/strong><\/p>\n <\/p>\n Versal\u2122 ACAP(\u81ea\u9002\u5e94\u8ba1\u7b97\u52a0\u901f\u5e73\u53f0)\u662f\u9ad8\u5ea6\u96c6\u6210\u5316\u7684\u591a\u6838\u8ba1\u7b97\u5e73\u53f0\uff0c\u53ef\u901a\u8fc7\u7075\u6d3b\u7684\u81ea\u9002\u5e94\u80fd\u529b\u6765\u6ee1\u8db3\u4e0d\u65ad\u53d8\u5316\u7684\u52a8\u6001\u7b97\u6cd5\u7684\u9700\u6c42\u3002VCK190 \u662f\u8d5b\u7075\u601d\u6700\u65e9\u53d1\u5e03\u7684 Versal AI Core \u8bc4\u4f30\u5668\u4ef6\u4e4b\u4e00\u3002<\/em><\/p>\n \u672c\u7bc7\u535a\u6587\u5c06\u4e3a\u60a8\u8be6\u89e3\u5982\u4e0b\u6240\u8ff0\u8bbe\u8ba1\u521b\u5efa\u6b65\u9aa4\uff1a<\/p>\n \u5728 Vivado \u4e2d\u6784\u5efa\u57fa\u4e8e Versal \u7684 IP \u96c6\u6210\u5668 (IP integrator) \u8bbe\u8ba1<\/p>\n<\/li>\n \u521b\u5efa\u5668\u4ef6\u955c\u50cf<\/p>\n<\/li>\n \u5728 Vitis \u4e2d\u6784\u5efa\u5e73\u53f0\u548c\u7cfb\u7edf\u5de5\u7a0b<\/p>\n<\/li>\n \u5728 VCK190 \u8bc4\u4f30\u677f\u4e0a\u8fd0\u884c\u548c\u8c03\u8bd5\u5e94\u7528<\/p>\n<\/li>\n<\/ol>\n Versal\u4e0a\u7684PS-GEM<\/strong> <\/p>\n \u5343\u5146\u4ee5\u592a\u7f51 MAC (GEM) \u53ef\u63d0\u4f9b\u7b26\u5408 IEEE 802.3-2016 \u6807\u51c6\u7684\u786c\u6838 10\/100\/1000 Mbps \u63a5\u53e3\u3002<\/p>\n \u5728 PS \u4f4e\u529f\u8017\u57df (LPD) \u4e2d\u6709 2 \u4e2a GEM \u63a7\u5236\u5668\u3002<\/p>\n \u6bcf\u4e2a\u63a7\u5236\u5668\u5747\u72ec\u7acb\u8fd0\u884c\uff0c\u4e14\u5404\u542b 1 \u4e2a\u7ba1\u7406\u6570\u636e\u8f93\u5165\/\u8f93\u51fa (MDIO) \u63a5\u53e3\u4ee5\u4f9b\u5176\u5916\u90e8 PHY \u914d\u5408 RGMII \u63a5\u53e3\u4f7f\u7528\u3002<\/p>\n <\/p>\n GEM \u5305\u542b\u4e0b\u5217\u7ec4\u4ef6\uff1a<\/p>\n 1 \u4e2a MAC \u7528\u4e8e\u63a7\u5236\u4f20\u8f93\u3001\u63a5\u6536\u3001\u5730\u5740\u68c0\u67e5\u548c\u73af\u56de<\/p>\n<\/li>\n \u914d\u7f6e\u5bc4\u5b58\u5668\uff0c\u53ef\u63d0\u4f9b\u63a7\u5236\u548c\u72b6\u6001\u5bc4\u5b58\u5668\u3001\u7edf\u8ba1\u6570\u636e\u5bc4\u5b58\u5668\u548c\u540c\u6b65\u903b\u8f91<\/p>\n<\/li>\n 1 \u4e2a\u76f4\u63a5\u5185\u5b58\u8bbf\u95ee (Direct Memory Access) \u6a21\u5757\uff0c\u7528\u4e8e\u63a7\u5236 DMA \u4f20\u8f93\u548c DMA \u63a5\u6536<\/p>\n<\/li>\n 1 \u4e2a\u65f6\u95f4\u6233\u5355\u5143 (TSU)\uff0c\u7528\u4e8e\u8ba1\u7b97 IEEE 1588 \u5b9a\u65f6\u5668\u503c\uff0c\u5176\u4e2d\u5305\u542b\u5b9e\u65f6\u65f6\u949f<\/p>\n<\/li>\n<\/ul>\n \u5728\u65e0\u9700 DMA \u64cd\u4f5c\u7684\u7cfb\u7edf\u5e94\u7528\u4e2d\uff0c\u53ef\u4f7f\u7528\u914d\u7f6e\u9009\u9879\u79fb\u9664 DMA \u6a21\u5757\uff0c\u5e76\u4e14\u53ef\u4f7f\u7528\u5916\u90e8 FIFO \u63a5\u53e3\u5c06 GEM \u96c6\u6210\u5230 SoC \u73af\u5883\u4e2d\u3002<\/p>\n GEM \u5757\u5305\u542b\u4ee5\u4e0b\u4fe1\u53f7\u63a5\u53e3\uff1a<\/p>\n \u8fde\u63a5\u5230\u5916\u90e8 PHY \u7684 GMII \u548c RGMII<\/p>\n<\/li>\n 1 \u4e2a\u7528\u4e8e\u5916\u90e8 PHY \u7ba1\u7406\u7684 MDIO \u63a5\u53e3<\/p>\n<\/li>\n 1 \u4e2a APB \u4ece\u63a5\u53e3\uff0c\u7528\u4e8e\u8bbf\u95ee GEM \u5bc4\u5b58\u5668<\/p>\n<\/li>\n 1 \u4e2a\u7528\u4e8e\u5185\u5b58\u8bbf\u95ee\u7684 AXI4 DMA \u4e3b\u63a5\u53e3<\/p>\n<\/li>\n \u65e0\u9700 DMA \u529f\u80fd\u7684\u5e94\u7528\u5185\u5305\u542b 1 \u4e2a\u53ef\u9009 FIFO \u63a5\u53e3<\/p>\n<\/li>\n 1 \u4e2a\u53ef\u9009\u65f6\u95f4\u6233\u63a5\u53e3<\/p>\n<\/li>\n<\/ul>\n <\/p>\n I\/O \u9009\u9879\u5305\u62ec\uff1a<\/p>\n \u5e03\u7ebf\u5230 LPD MIO \u7ba1\u811a\u7684 RGMII (v2.0)\uff0c\u7528\u4e8e\u8fde\u63a5\u5230\u5916\u90e8 PHY<\/p>\n<\/li>\n GMII \u548c MII \u5e03\u7ebf\u5230 PL\uff0c\u4ee5\u4fbf\u6620\u5c04\u5230 GT \u6216(\u53ef\u9009)\u53ef\u501f\u52a9 PL \u903b\u8f91\u6765\u8f6c\u6362\u4e3a\u5176\u5b83\u534f\u8bae<\/p>\n<\/li>\n \u6bcf\u4e2a\u63a7\u5236\u5668\u5185\u7684\u8bca\u65ad\u5185\u90e8\u73af\u56de<\/p>\n<\/li>\n<\/ul>\n \u6ce8\uff1aVersal \u4e2d\u4e0d\u652f\u6301\u5185\u90e8 SERDES \u63a5\u53e3 (SGMII)\u3002\u5728 MPSoC \u5668\u4ef6\u4e2d\u652f\u6301\u6b64\u7c7b\u63a5\u53e3\u3002<\/p>\n \u5728 VCK190 \u5668\u4ef6\u4e0a\uff0cGEM0 \u548c GEM1 \u5747\u786c\u8fde\u7ebf\u5230\u677f\u4e0a\u7684 2 \u4e2a\u5916\u90e8 RGMII PHY\u3002<\/p>\n \u6709 2 \u4e2a RJ45 \u7aef\u53e3\uff0c\u5206\u522b\u7528\u4e8e GEM0 \u548c GEM1\u3002\u5982\u8981\u6d4b\u8bd5 GEM1 RGMII \u7aef\u53e3\uff0c\u8bf7\u786e\u4fdd GEM0 RGMII \u7aef\u53e3\u540c\u6837\u901a\u8fc7\u7535\u7f06\u8fde\u63a5\uff0c\u56e0\u4e3a\u6b64\u7aef\u53e3\u4f7f\u7528\u5171\u4eab MDIO \u7ebf(\u4f7f\u7528 GEM0 MDIO \u4f5c\u4e3a\u4e3b\u63a5\u53e3)\u3002 <\/p>\n \u8bf7\u53c2\u9605\u4ee5\u4e0b VCK190 \u622a\u5c4f\u3002\u5728\u53f3\u4e0a\u89d2\u6709 2 \u4e2a RJ45 \u7aef\u53e3\u7528\u4e8e Versal \u4ee5\u592a\u7f51\u3002<\/p>\n <\/p>\n \u5728 Vivado \u4e2d\u521b\u5efa IP integrator \u8bbe\u8ba1<\/strong><\/p>\n \u8bf7\u4e0b\u8f7d\u968f\u9644\u7684 Tcl \u6587\u4ef6\u5e76\u9075\u5faa\u4ee5\u4e0b\u6b65\u9aa4\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n 1. \u5728 Vivado 2019.2 \u4e2d\u57fa\u4e8e VCK190 \u8bc4\u4f30\u677f\u521b\u5efa\u5de5\u7a0b\u3002<\/p>\n 2. \u521b\u5efa\u5757\u8bbe\u8ba1\u3002<\/p>\n 3. \u627e\u5230 vck190_1g.tcl\u3002\u4ee5\u4e0b\u662f IP integrator \u753b\u5e03\u4e2d\u7684\u539f\u7406\u56fe\u3002<\/p>\n <\/p>\n 4. \u751f\u6210 HDL \u5c01\u88c5\u6587\u4ef6\u3002<\/p>\n 5. \u5355\u51fb\u201c\u8fd0\u884c\u5b9e\u73b0 (Run Implementation)\u201d\u548c\u201c\u751f\u6210\u5668\u4ef6\u955c\u50cf (Generate Device Image)\u201d\u3002 <\/p>\n 6. \u5bfc\u51fa\u5305\u542b\u5668\u4ef6\u955c\u50cf\u7684\u786c\u4ef6\u8bbe\u8ba1\u3002<\/p>\n <\/p>\n \u6ce8\uff1a\u5355\u72ec\u4f7f\u7528\u201c\u8fd0\u884c\u5757\u81ea\u52a8\u5316\u8bbe\u7f6e\u529f\u80fd (run block automation)\u201d\u65f6\uff0cCIP \u4e0e NoC \u4e4b\u95f4\u90e8\u5206\u8fde\u63a5\u7f3a\u5931\u3002\u968f\u9644\u7684 Tcl \u6587\u4ef6\u53ef\u7528\u4e8e\u786e\u4fdd CIP \u548c NoC \u4e2d\u914d\u7f6e\u8bbe\u7f6e\u6b63\u786e\u3002<\/p>\n \u5728 Vitis \u4e2d\u6784\u5efa\u5e76\u8fd0\u884c LwIP \u5e94\u7528<\/strong><\/p>\n \u6211\u4eec\u5df2\u6784\u5efa\u4e86 IP integrator \u8bbe\u8ba1\u5e76\u5df2\u5bfc\u51fa\u4e86\u542b\u5668\u4ef6\u955c\u50cf\u7684\u786c\u4ef6\u8bbe\u8ba1\u3002\u73b0\u5728\uff0c\u6211\u4eec\u5c06\u5728 Vitis \u4e2d\u521b\u5efa lwIP \u793a\u4f8b\uff0c\u5e76\u5728 VCK190 \u8bc4\u4f30\u677f\u4e0a\u8fd0\u884c\u3002<\/p>\n 1. \u542f\u52a8 Vitis\u3002<\/p>\n 2. \u4f7f\u7528\u6765\u81ea\u4ee5\u4e0a\u8bbe\u8ba1\u7684 XSA \u6587\u4ef6\u521b\u5efa\u5e94\u7528\u5de5\u7a0b\u3002<\/p>\n <\/p>\n 3. \u4ece SDK \u4e2d\u9009\u62e9\u201clwIP \u54cd\u5e94\u670d\u52a1\u5668 (lwIP Echo Server)\u201d\u3002<\/p>\n <\/p>\n 4. \u5728 SDK \u4e2d\u6784\u5efa\u5e73\u53f0\u548c\u7cfb\u7edf\u5de5\u7a0b\u3002\u9009\u4e2d lwIP \u54cd\u5e94\u670d\u52a1\u5668\u5e94\u7528\u65f6\uff0c\u4f1a\u81ea\u52a8\u8bbe\u7f6e lwIP \u5e93\u7684 BSP \u8bbe\u7f6e\u3002\u7528\u6237\u8fd8\u53ef\u4ee5\u9009\u62e9\u4ec5\u521b\u5efa\u5e76\u6784\u5efa\u5e73\u53f0\u5de5\u7a0b\uff0c\u4f46\u8fd9\u6837\u9700\u624b\u52a8\u8bbe\u7f6e BSP \u8bbe\u7f6e\u3002<\/p>\n <\/p>\n 5. \u5728 VCK190 \u5f00\u53d1\u677f\u4e0a\u8fd0\u884c lwIP \u793a\u4f8b\u3002\u4ee5\u4e0b\u5373 UART \u63a7\u5236\u53f0\u8f93\u51fa\uff1a<\/p>\n <\/p>\n 6. \u4ee5\u4e0b\u662f ping \u6d4b\u8bd5\u8f93\u51fa\uff1a<\/p>\n <\/p>\n \u8981\u5207\u6362\u5230 GEM1 RJ45 \u4ee5\u4fbf\u8fdb\u884c\u6d4b\u8bd5\uff0c\u7528\u6237\u5e94\u4f7f\u7528 XPAR_XEMACPS_1_BASEADDR \u4fee\u6539 platform_config.h\u3002<\/p>\n \u53ef\u5728 BSP \u7684 xparameters.h \u4e2d\u627e\u5230\u4ee5\u592a\u7f51\u5b9a\u4e49\u3002\u8bf7\u53c2\u9605\u4ee5\u4e0b\u793a\u4f8b<\/p>\n <\/p>\n \u5728 platform_config.h \u4e2d\uff0c\u66f4\u6539\u4ee5\u4e0b\u5b9a\u4e49\uff1a<\/p>\n <\/p>\n \u5c06\u6b64\u5b9a\u4e49\u66f4\u65b0\u4e3a\uff1a<\/p>\n #define PLATFORM_EMAC_BASEADDRXPAR_XEMACPS_1_BASEADDR<\/p>\n \u73b0\u5728\uff0c\u60a8\u53ef\u91cd\u65b0\u6784\u5efa\u5e94\u7528\u5e76\u91cd\u65b0\u8fd0\u884c\u6d4b\u8bd5\u3002<\/p>\n LwIP\u6027\u80fd<\/strong><\/p>\n \u4ee5\u4e0b\u662f lwIP \u54cd\u5e94\u670d\u52a1\u5668\u5e94\u7528\u7684 BSP \u8bbe\u7f6e\u3002<\/p>\n PARAMETER dhcp_does_arp_check = true<\/p>\n<\/li>\n PARAMETER lwip_dhcp = true<\/p>\n<\/li>\n PARAMETER pbuf_pool_size = 2048<\/p>\n<\/li>\n<\/ul>\n \u5bf9\u4e8e lwIP TCP\/UDP \u6027\u80fd\u670d\u52a1\u5668\uff0c\u9ed8\u8ba4\u5c06\u8bbe\u7f6e\u4e0b\u5217\u53c2\u6570\u3002<\/p>\n PARAMETER mem_size = <\/p>\n<\/li>\n PARAMETER memp_n_pbuf = 1024<\/p>\n<\/li>\n PARAMETER n_tx_descriptors = 512<\/p>\n<\/li>\n PARAMETER pbuf_pool_size = 16384<\/p>\n<\/li>\n<\/ul>\n \u8fd9\u4e9b lwIP \u53c2\u6570\u5bf9\u4e8e\u6027\u80fd\u8c03\u4f18\u81f3\u5173\u91cd\u8981\u3002<\/p>\n \u7528\u6237\u5e94\u53c2\u9605 lwIP \u6587\u6863\u4e2d\u7684\u201c\u914d\u7f6e\u5185\u5b58\u9009\u9879\u201d\u3001\u201c\u914d\u7f6e\u5c01\u88c5\u7f13\u5b58 (Pbuf) \u5185\u5b58\u9009\u9879\u201d\u548c\u201cTEMAC \u9002\u914d\u5668\u9009\u9879\u201d\u90e8\u5206\uff0c\u4ee5\u4e86\u89e3\u6709\u5173\u5404\u53c2\u6570\u7684\u66f4\u591a\u4fe1\u606f\u3002<\/p>\n https:\/\/china.xilinx.com\/support\/documentation\/user_guides\/ug1137-zynq-ultrascale-mpsoc-swdev.pdf<\/p>\n \u8fd9\u4e9b\u53c2\u6570\u53ef\u63a7\u5236\u6240\u5206\u914d\u548c\u4f7f\u7528\u7684\u5185\u5b58\u91cf\u4ee5\u53ca Pbuf \u548c\u63cf\u8ff0\u7b26\u6570\u91cf\u3002<\/p>\n \u5982\u679c\u7cfb\u7edf\u53d7\u5230\u9650\u5236\uff0c\u65e0\u6cd5\u5904\u7406\u8fd9\u4e9b\u5305\uff0c\u5219 BD \u548c Pbuf \u5c06\u88ab\u5feb\u901f\u7528\u5c3d\uff0c\u4e14\u65e0\u6cd5\u6839\u636e\u8981\u6c42\u5feb\u901f\u6e05\u7a7a\u4ee5\u4f9b\u4f7f\u7528\u3002\u7531\u6b64\u5bfc\u81f4\u6027\u80fd\u53d7\u5230\u5f71\u54cd\u3002<\/p>\n \u4f46\u6211\u4eec\u8fd8\u5e94\u5e73\u8861\u53ef\u4f7f\u7528\u7684\u5185\u5b58\u91cf\uff0c\u4ee5\u4fbf\u5728\u7528\u4e8e\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u7684\u8bc4\u4f30\u677f\u4e0a\u5c06\u8fd9\u4e9b\u53c2\u6570\u8c03\u6574\u4e3a\u9002\u5408 1Gbps \u7684\u6700\u4f18\u503c\u3002\u60a8\u53ef\u4ee5\u6b64\u4e3a\u53c2\u8003\uff0c\u6839\u636e\u81ea\u5df1\u7684\u8981\u6c42\u6765\u5bf9\u8fd9\u4e9b\u53c2\u6570\u8fdb\u884c\u8c03\u4f18\u3002<\/p>\n <\/p>\n <\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"\u63a5\u53e3\u6587\u6863\u662f\u4ec0\u4e48_\u4e32\u53e3\u8f6c\u7f51\u53e3\u8bbe\u5907\u70b9\u51fb\u201c\u84dd\u5b57\u201d\u5173\u6ce8\u6211\u4eecVersal\u2122ACAP(\u81ea\u9002\u5e94\u8ba1\u7b97\u52a0\u901f\u5e73\u53f0)\u662f\u9ad8\u5ea6\u96c6\u6210\u5316\u7684\u591a\u6838\u8ba1\u7b97\u5e73\u53f0\uff0c\u53ef\u901a\u8fc7\u7075\u6d3b...","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"_links":{"self":[{"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/posts\/6086"}],"collection":[{"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/comments?post=6086"}],"version-history":[{"count":0,"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/posts\/6086\/revisions"}],"wp:attachment":[{"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/media?parent=6086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/categories?post=6086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mushiming.com\/wp-json\/wp\/v2\/tags?post=6086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \u5173\u6ce8\u6211\u4eec<\/strong> <\/p>\n