{"id":337366,"date":"2022-08-22T09:00:38","date_gmt":"2022-08-22T09:00:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=337366"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=337366","title":{"rendered":"<span>\u041a\u0430\u043a \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c Vivado \u0438 git: \u0441 \u043c\u0438\u043a\u0440\u043e\u0431\u043b\u0435\u0439\u0437\u043e\u043c \u0438 \u0441\u0430\u0431\u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/28e\/f1b\/274\/28ef1b274347b991b8f2683f08604606.png\" width=\"auto\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/28e\/f1b\/274\/28ef1b274347b991b8f2683f08604606.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b (\u041f\u041b\u0418\u0421) \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0435 (\u0421\u041d\u041a) \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u043d\u0441\u0442\u0440\u0443\u043e\u0437\u043d\u043e\u0441\u0442\u044c\u044e IDE \u0438 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0412 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0442\u043b\u0435 \u0437\u0430\u043c\u0435\u0448\u0430\u043d\u044b \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u041f\u041b\u0418\u0421, \u0444\u0430\u0439\u043b\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0442\u0435\u0441\u0442\u044b, \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438, IP-\u044f\u0434\u0440\u0430, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442.\u0434. \u0412\u0441\u0451 \u044d\u0442\u043e \u043f\u043e\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u043f\u043e\u0434 Xilinx Spartan 6, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439 \u0432 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 IDE Xilinx ISE, \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 5 \u0413\u0431. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431<strong>\u043e<\/strong>\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0432 IDE, \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435. \u041e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c &#8212; \u0430\u0434 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439. \u0417\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u044f\u0436\u0435\u043b\u043e. \u0410 &#171;\u0447\u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0433\u0438\u0442\u0435, \u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&#187;. \u0411\u0435\u0437 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u043b\u043e\u043c\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438: \u043e\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0434\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 Vivado \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438. \u041e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u043e\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0441\u0442\u0430\u043b\u043e \u043f\u0440\u043e\u0449\u0435, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438. \u041d\u0430\u0448\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0432 git, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u041f\u041b\u0418\u0421 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043f\u0440\u043e <a href=\"https:\/\/habr.com\/en\/post\/673254\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0434\u0438\u043e\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b<\/a> \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 &#171;\u043a\u0430\u043a \u0432\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 FPGA \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435?&#187;. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043f\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438, \u0430 \u0441\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c.<\/p>\n<h2>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0427\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u043c \u043c\u044b?<\/p>\n<ul>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e-\u0434\u0432\u0443\u0445-N \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u043b\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0431\u0435\u0437 \u0441\u0442\u0440\u0430\u0445\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0442.\u0435. \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0440\u0443\u043a\u043e\u043f\u0438\u0441\u043d\u044b\u0435, \u0430 \u043d\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0442\u043a\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Xilinx Zynq, \u0442.\u0435. \u043f\u043e\u043c\u0438\u043c\u043e \u0447\u0430\u0441\u0442\u0438 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u043d\u0443\u0436\u043d\u0430 \u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u0437\u0430\u0439\u043d\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 (\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 HDL, \u0430 \u043d\u0435 IP \u0431\u043b\u043e\u043a\u043e\u0432).<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u043e\u0434\u043d\u044b\u0435 Xilinx&#8217;\u043e\u0432\u0441\u043a\u0438\u0435 IP \u043c\u043e\u0434\u0443\u043b\u0438 (\u0441\u0435\u0440\u0438\u0430\u043b\u0430\u0439\u0437\u0435\u0440\u044b, \u0431\u0443\u0444\u0435\u0440\u044b, \u0448\u0438\u043d\u044b, \u0441\u0431\u0440\u043e\u0441\u044b \u0438 \u0442.\u043f.).<\/p>\n<\/li>\n<\/ul>\n<h2>Project \u0438 non-Project workflow<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 Vivado \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u0432\u0435\u0434\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430: project \u0438 non-project.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f GUI, \u0438\u043c\u0435\u0435\u043c \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 .xpr. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c &#8212; \u0434\u0435\u043b\u0430\u0435\u043c \u0443\u043f\u043e\u0440 \u043d\u0430 \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 tcl-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u0442.\u0435. \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c unix-way.<\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u043e\u0442 \u043e\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c non-project \u043f\u043e\u0434\u0445\u043e\u0434, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0434\u0435\u043b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0435\u0433\u043e \u043e\u0442\u0442\u043e\u0440\u0433\u0430\u044e\u0442. \u041b\u044e\u0434\u044f\u043c \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 GUI. <\/p>\n<p>\u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 GUI, \u0430 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 &#8212; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e tcl-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. <\/p>\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<p>\u0422\u0438\u043f\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Vivado \u043e\u0442\u043d\u043e\u0441\u0438\u0442 \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c:<\/p>\n<ul>\n<li>\n<p>HDL and netlist files: Verilog (.v), SystemVerilog (.sv), VHDL (.vhd), and EDIF (.edf)<\/p>\n<\/li>\n<li>\n<p>C based source files (.c)<\/p>\n<\/li>\n<li>\n<p>Tcl files, run scripts, and init.tcl (.tcl)<\/p>\n<\/li>\n<li>\n<p>Logical and Physical Constraints (.xdc)<\/p>\n<\/li>\n<li>\n<p>IP core files (.xci)<\/p>\n<\/li>\n<li>\n<p>IP core container (.xcix)<\/p>\n<\/li>\n<li>\n<p>IP integrator block design files (.bd)<\/p>\n<\/li>\n<li>\n<p>Design Checkpoint files (.dcp)<\/p>\n<\/li>\n<li>\n<p>System Generator subsystems (.sgp)<\/p>\n<\/li>\n<li>\n<p>Side files for use by related tools (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u201cdo\u201d-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430)<\/p>\n<\/li>\n<li>\n<p>Block Memory Map files (.bmm, .mmi)<\/p>\n<\/li>\n<li>\n<p>Executable and Linkable Format files (.elf)<\/p>\n<\/li>\n<li>\n<p>Coefficient files (.coe)<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438? \u0427\u0442\u043e &#171;\u0440\u0443\u043a\u043e\u043f\u0438\u0441\u043d\u043e\u0433\u043e&#187; \u043c\u044b \u0432\u043d\u043e\u0441\u0438\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442?<\/p>\n<ul>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog (.v) \u0438 SystemVerilog (.sv, .shv)<\/p>\n<\/li>\n<li>\n<p>Testbench&#8217;\u0438 (_tb.v, _tb.sv)<\/p>\n<\/li>\n<li>\n<p>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Xilinx&#8217;\u043e\u0432\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 Block Diagram (.bd)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 (.xdc)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 (.xdc)<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 (.coe)<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 (.wcfg)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d \u0432 Vivado, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0430\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u0415\u0441\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 .srcs, .cache, .runs, .data, .hw, .ip_users_files, .sim \u0438 \u0442.\u0434. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0432\u043e\u0432\u043d\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439, \u0430 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/934\/667\/637\/934667637b2c367af19784e9dd50685a.png\" width=\"1872\" height=\"911\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/934\/667\/637\/934667637b2c367af19784e9dd50685a.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043a\u043b\u0430\u0434\u0443\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 tcl-\u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u0441 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9e7\/a2f\/b6d\/9e7a2fb6dc1d637d91a1c5d5b18ff9de.png\" width=\"900\" height=\"839\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9e7\/a2f\/b6d\/9e7a2fb6dc1d637d91a1c5d5b18ff9de.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 (\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432), \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0430\u0431\u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041e\u043d\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 Vivado-\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f) \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e.<\/p>\n<p>\u0411\u043b\u043e\u043a-\u0434\u0438\u0437\u0430\u0439\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e bd. \u0422\u0430\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e .bd-\u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 xml-\u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0432\u0438\u0432\u0430\u0434\u043e\u0439. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ccb\/651\/be2\/ccb651be251e0e6d145c5046b8a47c8b.png\" width=\"1341\" height=\"700\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ccb\/651\/be2\/ccb651be251e0e6d145c5046b8a47c8b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u043b\u043e\u043a-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0441 bd-\u0444\u0430\u0439\u043b\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0438\u0433\u043d\u043e\u0440:<\/p>\n<details class=\"spoiler\">\n<summary>~\/Oryx\/src\/fpga\/.gitignore  <\/summary>\n<div class=\"spoiler__content\">\n<pre><code># Always ignore journal and log files *.log *.jou *.str  # Ignore trash in bd directory except .BD files \/bd\/**\/* !\/bd\/**\/*.bd  # Ignore editor's temporary files *~ *#  # Ignore sendboxes \/prj*\/  # Ignore Vivado temporary files .Xil\/<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0428\u0430\u0433 1. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/h3>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432, \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0441\u0431\u043e\u0440\u043a\u0430 bitstream-\u0444\u0430\u0439\u043b\u0430, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0417\u0430\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/$ mkdir Oryx korogodin@Diod:~\/$ cd Oryx<\/code><\/pre>\n<p>\u041c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0438 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/Oryx$ git clone ssh:\/\/git@krgd.ru:123\/git\/src Cloning into 'src'... remote: Counting objects: 20490, done. remote: Compressing objects: 100% (8449\/8449), done. remote: Total 20490 (delta 13181), reused 18342 (delta 11414) Receiving objects: 100% (20490\/20490), 787.09 MiB | 143.00 KiB\/s, done. Resolving deltas: 100% (13181\/13181), done. Checking connectivity... \u0433\u043e\u0442\u043e\u0432\u043e.<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0436\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 PL-\u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0421\u041d\u041a. \u041e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 fpga:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/$ cd src\/fpga korogodin@Diod:~\/Oryx\/src\/fpga$ ls bd  constr  prj_somz.tcl  sub  verilog<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u0443\u0441\u0442\u044b. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0445 \u0440\u0435\u0432\u0438\u0437\u0438\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 \u0432 \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/Oryx\/src\/fpga$ git submodule update --init korogodin@Diod:~\/Oryx\/src\/fpga$ tree -L 2 sub . \u251c\u2500\u2500 acquisition \u2502   \u251c\u2500\u2500 bin \u2502   \u251c\u2500\u2500 doc \u2502   \u251c\u2500\u2500 IPgen \u2502   \u251c\u2500\u2500 matlab \u2502   \u251c\u2500\u2500 sdk \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 correlator \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 dsp \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 serializer_zynq \u2502   \u2514\u2500\u2500 verilog \u2514\u2500\u2500 sync     \u2514\u2500\u2500 verilog<\/code><\/pre>\n<p>\u0412 \u0434\u0435\u0440\u0435\u0432\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<h2>\u0428\u0430\u0433 2. \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 Vivado<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Vivado \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043a\u043e\u0434\u0430\u043c\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c Vivado-\u043f\u0440\u043e\u0435\u043a\u0442, \u0442.\u0435. \u0441\u043e\u0437\u0434\u0430\u0442\u044c xpr-\u0444\u0430\u0439\u043b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432. \u0414\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 tcl-\u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 GUI (\u0434\u0430-\u0434\u0430, \u0442\u0443\u0442 \u043a\u0443\u0440\u0438\u0446\u0430 \u0438 \u044f\u0439\u0446\u043e).<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>#!\/usr\/bin\/tclsh # # Vivado (TM) v2015.3 (64-bit) # # prj_somz.tcl: Tcl script for re-creating project 'somz' # # Generated by Vivado on Tue Mar 22 10:11:05 +0300 2016 # IP Build 1367837 on Mon Sep 28 08:56:14 MDT 2015 # # This file contains the Vivado Tcl commands for re-creating the project to the state* # when this script was generated. In order to re-create the project, please source this # file in the Vivado Tcl Shell. # # * Note that the runs in the created project will be configured the same way as the #   original project, however they will not be launched automatically. To regenerate the #   run results please launch the synthesis\/implementation runs as needed. #  # Set the reference directory for source file relative paths (by default the value is script directory path) set origin_dir          \".\" set sub_dir             \"sub\" set prj_name            \"somz\" set prj_dir_name        \"prj_somz\" set topmodule_name      \"mainboard_facq\"  # Acquisition Microblaze firmware set facq_prj_name       \"mcs_facq\" set facq_bsp_name       \"mcs_facq_bsp\" set facq_proc_name      \"microblaze_0\" set hw_platform_name    \"$topmodule_name\\_hw_platform_0\"   # Use origin directory path location variable, if specified in the tcl shell if { [info exists ::origin_dir_loc] } {   set origin_dir $::origin_dir_loc }  variable script_file set script_file \"prj_$prj_name.tcl\"  # Help information for this script proc help {} {   variable script_file   puts \"\\nDescription:\"   puts \"Recreate a Vivado project from this script. The created project will be\"   puts \"functionally equivalent to the original project for which this script was\"   puts \"generated. The script contains commands for creating a project, filesets,\"   puts \"runs, adding\/importing sources and setting properties on various objects.\\n\"   puts \"Syntax:\"   puts \"$script_file\"   puts \"$script_file -tclargs \\[--origin_dir &lt;path>\\]\"   puts \"$script_file -tclargs \\[--help\\]\\n\"   puts \"Usage:\"   puts \"Name                   Description\"   puts \"-------------------------------------------------------------------------\"   puts \"\\[--origin_dir &lt;path>\\]  Determine source file paths wrt this path. Default\"   puts \"                       origin_dir path value is \\\".\\\", otherwise, the value\"   puts \"                       that was set with the \\\"-paths_relative_to\\\" switch\"   puts \"                       when this script was generated.\\n\"   puts \"\\[--help\\]               Print help information for this script\"   puts \"-------------------------------------------------------------------------\\n\"   exit 0 }  if { $::argc > 0 } {   for {set i 0} {$i &lt; [llength $::argc]} {incr i} {     set option [string trim [lindex $::argv $i]]     switch -regexp -- $option {       \"--origin_dir\" { incr i; set origin_dir [lindex $::argv $i] }       \"--help\"       { help }       default {         if { [regexp {^-} $option] } {           puts \"ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\\n\"           return 1         }       }     }   } }  # Set the directory path for the original project from where this script was exported #set orig_proj_dir \"[file normalize \"$origin_dir\/mainboard_facq_release\"]\"  # Create project create_project $prj_name .\/$prj_dir_name  # Set the directory path for the new project set proj_dir [get_property directory [current_project]]  # Set project properties set obj [get_projects $prj_name] set_property \"default_lib\" \"xil_defaultlib\" $obj set_property \"part\" \"xc7z045fbg676-2\" $obj set_property \"sim.ip.auto_export_scripts\" \"1\" $obj set_property \"simulator_language\" \"Mixed\" $obj set_property \"source_mgmt_mode\" \"DisplayOnly\" $obj  # Create 'sources_1' fileset (if not found) if {[string equal [get_filesets -quiet sources_1] \"\"]} {   create_fileset -srcset sources_1 }  # Set 'sources_1' fileset object set obj [get_filesets sources_1] set files [list \\  \"[file normalize \"$origin_dir\/verilog\/bus_interface.v\"]\"\\  \"[file normalize \"$origin_dir\/verilog\/$topmodule_name.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/serializer_zynq\/verilog\/zynq_deser_main.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/serializer_zynq\/verilog\/gearbox_4_to_7.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/serializer_zynq\/verilog\/n_x_serdes_1_to_7_mmcm_idelay_ddr.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/serializer_zynq\/verilog\/serdes_1_to_7_slave_idelay_ddr.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/serializer_zynq\/verilog\/serdes_1_to_7_mmcm_idelay_ddr.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/correlator_common.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/common_param.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/flag_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/flag_sync_n.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_adder.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/correlator.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_sin_table.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_synthesizer.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_param.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_cos_table.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/correlator_channel.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_delay_reg.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/signal_mux_adc.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/common_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/common_timegen.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_shift_reg.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_cmplx_table.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/time_generator.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/channel_regfile.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/correlator\/verilog\/common_regfile.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/ed_det.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/conv_reg.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/signal_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/data_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/latency.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/sync\/verilog\/level_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/bin\/$facq_prj_name.elf\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/DDS_I_Q.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/quant_level_table.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/arg_max.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/bram_dat_out_mux.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/poisk_IP.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/dat_in_sign_conv.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/doppler_dds.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/bram_addr_mux.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/pre_ader_adaptive.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/multi_sum.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/abs.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/lim_qnt.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/CORE.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/dop_shifter.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/sum_1_step.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/bram_multi_controller.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/poisk_time_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/bram_block.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/reset_poisk_sync.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/accum.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/acq_regfile.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/psp_rep_dds.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/bram_dat_mux.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/adaptive_quantizer.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/multi_core_correlator_conveer.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/acquisition\/verilog\/main\/facq_ecpu.v\"]\"\\  \"[file normalize \"$origin_dir\/$sub_dir\/dsp\/verilog\/hist_sig_mag.v\"]\"\\ ] add_files -norecurse -fileset $obj $files  # Set 'sources_1' fileset file properties for remote files # None  # Set 'sources_1' fileset file properties for local files set file \"$origin_dir\/$sub_dir\/acquisition\/bin\/$facq_prj_name.elf\" set file_obj [get_files -of_objects [get_filesets sources_1] [list \"$file\"]] set_property \"scoped_to_cells\" \"microblaze_0\" $file_obj set_property \"scoped_to_ref\" \"zynq\" $file_obj set_property \"used_in\" \"implementation\" $file_obj set_property \"used_in_simulation\" \"0\" $file_obj   # Set 'sources_1' fileset properties set obj [get_filesets sources_1] set_property \"include_dirs\" \"$origin_dir\/$sub_dir\/correlator\/verilog $origin_dir\/$sub_dir\/acquisition\/verilog\/inc $origin_dir\/verilog\" $obj set_property \"top\" \"$topmodule_name\" $obj  # Create 'zynq' fileset (if not found) if {[string equal [get_filesets -quiet zynq] \"\"]} {   create_fileset -blockset zynq }  # Set 'zynq' fileset object set obj [get_filesets zynq] set files [list \\  \"[file normalize \"$origin_dir\/bd\/$prj_name\/zynq.bd\"]\"\\ ] add_files -norecurse -fileset $obj $files  # Set 'zynq' fileset file properties for remote files set file \"$origin_dir\/bd\/$prj_name\/zynq.bd\" set file [file normalize $file] set file_obj [get_files -of_objects [get_filesets zynq] [list \"*$file\"]] if { ![get_property \"is_locked\" $file_obj] } {   set_property \"synth_checkpoint_mode\" \"Singular\" $file_obj }   # Set 'zynq' fileset properties set obj [get_filesets zynq] set_property \"include_dirs\" \"$origin_dir\/$sub_dir\/correlator\/verilog $origin_dir\/verilog $origin_dir\/$sub_dir\/acquisition\/verilog\/inc\" $obj set_property \"top\" \"zynq\" $obj  # Create 'constrs_1' fileset (if not found) if {[string equal [get_filesets -quiet constrs_1] \"\"]} {   create_fileset -constrset constrs_1 }  # Set 'constrs_1' fileset object set obj [get_filesets constrs_1]  # Add\/Import constrs file and set constrs file properties set file \"[file normalize \"$origin_dir\/constr\/$topmodule_name.xdc\"]\" set file_added [add_files -norecurse -fileset $obj $file] set file \"$origin_dir\/constr\/$topmodule_name.xdc\" set file [file normalize $file] set file_obj [get_files -of_objects [get_filesets constrs_1] [list \"*$file\"]] set_property \"file_type\" \"XDC\" $file_obj  # Set 'constrs_1' fileset properties set obj [get_filesets constrs_1] set_property \"target_constrs_file\" \"[file normalize \"$origin_dir\/constr\/$topmodule_name.xdc\"]\" $obj  # Create 'sim_1' fileset (if not found) if {[string equal [get_filesets -quiet sim_1] \"\"]} {   create_fileset -simset sim_1 }  # Set 'sim_1' fileset object set obj [get_filesets sim_1] # Empty (no sources present)  # Set 'sim_1' fileset properties set obj [get_filesets sim_1] set_property \"source_set\" \"\" $obj set_property \"top\" \"$topmodule_name\" $obj set_property \"xelab.nosort\" \"1\" $obj set_property \"xelab.unifast\" \"\" $obj  # Create 'synth_1' run (if not found) if {[string equal [get_runs -quiet synth_1] \"\"]} {   create_run -name synth_1 -part xc7z045fbg676-2 -flow {Vivado Synthesis 2014} -strategy \"Vivado Synthesis Defaults\" -constrset constrs_1 } else {   set_property strategy \"Vivado Synthesis Defaults\" [get_runs synth_1]   set_property flow \"Vivado Synthesis 2014\" [get_runs synth_1] } set obj [get_runs synth_1] set_property \"part\" \"xc7z045fbg676-2\" $obj  # Create 'zynq_synth_1' run (if not found) if {[string equal [get_runs -quiet zynq_synth_1] \"\"]} {   create_run -name zynq_synth_1 -part xc7z045fbg676-2 -flow {Vivado Synthesis 2014} -strategy \"Vivado Synthesis Defaults\" -constrset zynq } else {   set_property strategy \"Vivado Synthesis Defaults\" [get_runs zynq_synth_1]   set_property flow \"Vivado Synthesis 2014\" [get_runs zynq_synth_1] } set obj [get_runs zynq_synth_1] set_property \"constrset\" \"zynq\" $obj set_property \"part\" \"xc7z045fbg676-2\" $obj  # set the current synth run current_run -synthesis [get_runs synth_1]  # Create 'impl_2' run (if not found) if {[string equal [get_runs -quiet impl_2] \"\"]} {   create_run -name impl_2 -part xc7z045fbg676-2 -flow {Vivado Implementation 2014} -strategy \"Performance_Explore\" -constrset constrs_1 -parent_run synth_1 } else {   set_property strategy \"Performance_Explore\" [get_runs impl_2]   set_property flow \"Vivado Implementation 2014\" [get_runs impl_2] } set obj [get_runs impl_2] set_property \"part\" \"xc7z045fbg676-2\" $obj set_property \"steps.opt_design.args.directive\" \"Explore\" $obj set_property \"steps.place_design.args.directive\" \"Explore\" $obj set_property \"steps.phys_opt_design.is_enabled\" \"1\" $obj set_property \"steps.phys_opt_design.args.directive\" \"Explore\" $obj set_property \"steps.route_design.args.directive\" \"Explore\" $obj set_property \"steps.write_bitstream.args.readback_file\" \"0\" $obj set_property \"steps.write_bitstream.args.verbose\" \"0\" $obj  # Create 'zynq_impl_1' run (if not found) if {[string equal [get_runs -quiet zynq_impl_1] \"\"]} {   create_run -name zynq_impl_1 -part xc7z045fbg676-2 -flow {Vivado Implementation 2014} -strategy \"Vivado Implementation Defaults\" -constrset zynq -parent_run zynq_synth_1 } else {   set_property strategy \"Vivado Implementation Defaults\" [get_runs zynq_impl_1]   set_property flow \"Vivado Implementation 2014\" [get_runs zynq_impl_1] } set obj [get_runs zynq_impl_1] set_property \"constrset\" \"zynq\" $obj set_property \"part\" \"xc7z045fbg676-2\" $obj set_property \"steps.write_bitstream.args.readback_file\" \"0\" $obj set_property \"steps.write_bitstream.args.verbose\" \"0\" $obj  # set the current impl run current_run -implementation [get_runs impl_2]  puts \"INFO: Project created:somz\"  puts \"INFO: Generate all targets from BD\" set file \"$origin_dir\/bd\/$prj_name\/zynq.bd\" set file [file normalize $file] generate_target all [get_files  $file]  puts \"INFO: Export HW\" file mkdir [file normalize \"$proj_dir\/$prj_name.sdk\"] write_hwdef -force  -file [file normalize \"$proj_dir\/$prj_name.sdk\/$topmodule_name.hdf\"]  puts \"INFO: Create HW Platform and BSP\" exec xsdk -batch -eval \"sdk set_workspace [file normalize \"$proj_dir\/$prj_name.sdk\"]; sdk create_hw_project -name $hw_platform_name -hwspec [file normalize \"$proj_dir\/$prj_name.sdk\/$topmodule_name.hdf\"]; sdk create_bsp_project -name $facq_bsp_name -hwproject $hw_platform_name -proc $facq_proc_name -os standalone; exec xsdk -eclipseargs -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import [file normalize \"$origin_dir\/sub\/acquisition\/sdk\/$facq_prj_name\/\"] -data [file normalize \"$proj_dir\/$prj_name.sdk\"] -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole; exit\"  puts \"INFO: Project is regenerated\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432).<\/p>\n<\/li>\n<li>\n<p>\u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 &#8212; Verilog, TB, IP, .xdc \u0438 \u0442.\u0434.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 (\u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0430!).<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0430!).<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043d\u0435\u0446 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u044f \u0432\u043d\u0435\u0441 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e Block Design \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 HW Platform, BSP \u0434\u043b\u044f SDK \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f Microblaze (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0430).<\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 GUI Vivado (<code>File->Write Project Tcl<\/code>) \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 TCL-\u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u00a0<code>write_project_tcl<\/code>:<\/p>\n<pre><code class=\"bash\">pwd cd [get_property DIRECTORY [current_project]] pwd write_project_tcl -force prj_somz.tcl<\/code><\/pre>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 Vivado. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442 (\u0430 \u0442\u0430\u043a \u0436\u0435 block design, IP-\u044f\u0434\u0440\u0430 \u0438 \u0442.\u0434.) \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0440\u0435\u0434\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code>korogodin@Diod:~\/Oryx\/src\/fpga$ head -n 2 prj_somz.tcl # # Vivado (TM) v2015.3 (64-bit)<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e 2015.3. \u0414\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u043e\u0439\u0434\u0443\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f &#8212; \u044d\u0442\u043e \u043d\u0435 \u0434\u043b\u044f \u0440\u044f\u0434\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. <\/p>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b:<\/p>\n<pre><code>korogodin@Diod:~\/Oryx\/src\/fpga$ \/opt\/Xilinx\/Vivado\/2015.3\/bin\/vivado -source prj_somz.tcl<\/code><\/pre>\n<p>\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Vivado:<\/p>\n<pre><code class=\"bash\">cd ~\/Oryx\/src\/fpga source prj_somz.tcl<\/code><\/pre>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0443 \u0438 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u0438 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 Elf-\u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 MicroBlaze (\u043b\u0435\u0436\u0438\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 acquisition\/bin, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0443\u0434\u0430 \u0440\u0443\u043a\u0430\u043c\u0438 \u0440\u0430\u043d\u0435\u0435).<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f Block Design. \u0414\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 MicroBlaze \u0432 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f somz.sdk, \u0432 \u043d\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f HW Platform \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f BSP (microblaze_0, standalone). \u041a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 MicroBlaze \u0438\u0437 \u0441\u0430\u0431\u043c\u043e\u0434\u0443\u043b\u044f acquisition.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e0\/798\/ca3\/5e0798ca36f10d5059fc6cdf3f9d74bb.png\" width=\"915\" height=\"952\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e0\/798\/ca3\/5e0798ca36f10d5059fc6cdf3f9d74bb.png\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0428\u0430\u0433 3. \u041f\u0440\u0430\u0432\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443<\/h2>\n<p>\u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0440\u0435\u0433\u0435\u043d\u0438\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (<code>prj_somz.tcl<\/code> \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435) \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/28e\/f1b\/274\/28ef1b274347b991b8f2683f08604606.png\" width=\"1063\" height=\"846\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/28e\/f1b\/274\/28ef1b274347b991b8f2683f08604606.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0445 \u0432 \u043a\u043e\u043c\u043c\u0438\u0442\u044b. <\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0421\u041d\u041a, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u044f\u0434\u0440\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 MicroBlaze, \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u041f\u041b\u0418\u0421. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 MicroBlaze&#8217;\u0430, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c SDK. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 Vivado \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u044c\u00a0<code>File->Launch SDK<\/code>. \u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0431\u043b\u043e\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 (mcs_facq) \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 XSDK.<\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, BSP, HW Platform \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c prj_somz.tcl \u043f\u0440\u0438 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043d\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0445\u0430\u043a:<\/p>\n<pre><code class=\"bash\">exec xsdk -batch -eval \"sdk set_workspace [file normalize \"$proj_dir\/$prj_name.sdk\"]; sdk create_hw_project -name $hw_platform_name -hwspec [file normalize \"$proj_dir\/$prj_name.sdk\/$topmodule_name.hdf\"]; sdk create_bsp_project -name $facq_bsp_name -hwproject $hw_platform_name -proc $facq_proc_name -os standalone; exec xsdk -eclipseargs -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import [file normalize \"$origin_dir\/sub\/acquisition\/sdk\/$facq_prj_name\/\"] -data [file normalize \"$proj_dir\/$prj_name.sdk\"] -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole; exit\"<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0434\u043b\u044f \u041f\u041b\u0418\u0421: \u00a0\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0442\u043e\u0440\u0430, \u0440\u0430\u0437\u043c\u0435\u0440 \u044f\u0434\u0440\u0430 \u0431\u043b\u043e\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430, \u0442\u0438\u043f \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u0438 \u0442.\u043f. \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u00a0<strong>Generate Bitstream<\/strong>\u00a0\u0441\u043b\u0435\u0432\u0430 \u0441\u043d\u0438\u0437\u0443 \u0432 Vivado. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0448\u0435\u043b!<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0437\u0435\u0442, \u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442\/\u0447\u0430\u0441\u043e\u0432\/\u0434\u043d\u0435\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c bit-\u0444\u0430\u0439\u043b, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432 \u041f\u041b\u0418\u0421 (impl_2 &#8212; \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u0432\u0438\u043b \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043e\u043f\u0438\u0441\u0430\u043d \u0432 prj_somz.tcl):<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/Oryx\/src\/fpga$ find .\/ -name *.bit \/home\/korogodin\/Oryx\/src\/fpga\/prj_somz\/somz.runs\/impl_2\/somz.bit<\/code><\/pre>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0421\u043d\u041a Zynq \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f git. \u0412  \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u043f\u043b\u044e\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442 \u0438 xml-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a-\u0434\u0438\u0437\u0430\u0439\u043d\u0430. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u043e\u0441\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0432\u0435\u0442\u043e\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438. <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0441 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Vivado. \u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c FPGA \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043a\u043e\u043d\u0442\u0443\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/683580\/\"> https:\/\/habr.com\/ru\/post\/683580\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b (\u041f\u041b\u0418\u0421) \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0435 (\u0421\u041d\u041a) \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u043d\u0441\u0442\u0440\u0443\u043e\u0437\u043d\u043e\u0441\u0442\u044c\u044e IDE \u0438 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0412 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0442\u043b\u0435 \u0437\u0430\u043c\u0435\u0448\u0430\u043d\u044b \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u041f\u041b\u0418\u0421, \u0444\u0430\u0439\u043b\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0442\u0435\u0441\u0442\u044b, \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438, IP-\u044f\u0434\u0440\u0430, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442.\u0434. \u0412\u0441\u0451 \u044d\u0442\u043e \u043f\u043e\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430 \u043f\u043e\u0434 Xilinx Spartan 6, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439 \u0432 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 IDE Xilinx ISE, \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 5 \u0413\u0431. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431<strong>\u043e<\/strong>\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0432 IDE, \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435. \u041e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c &#8212; \u0430\u0434 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439. \u0417\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u044f\u0436\u0435\u043b\u043e. \u0410 &#171;\u0447\u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0433\u0438\u0442\u0435, \u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442&#187;. \u0411\u0435\u0437 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u043b\u043e\u043c\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438: \u043e\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0434\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 Vivado \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438. \u041e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u043e\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0441\u0442\u0430\u043b\u043e \u043f\u0440\u043e\u0449\u0435, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438. \u041d\u0430\u0448\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0432 git, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u041f\u041b\u0418\u0421 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043f\u0440\u043e <a href=\"https:\/\/habr.com\/en\/post\/673254\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0434\u0438\u043e\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b<\/a> \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 &#171;\u043a\u0430\u043a \u0432\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 FPGA \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435?&#187;. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043f\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438, \u0430 \u0441\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c.<\/p>\n<h2>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0427\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u043c \u043c\u044b?<\/p>\n<ul>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e-\u0434\u0432\u0443\u0445-N \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u043b\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0431\u0435\u0437 \u0441\u0442\u0440\u0430\u0445\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0442.\u0435. \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0440\u0443\u043a\u043e\u043f\u0438\u0441\u043d\u044b\u0435, \u0430 \u043d\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0442\u043a\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Xilinx Zynq, \u0442.\u0435. \u043f\u043e\u043c\u0438\u043c\u043e \u0447\u0430\u0441\u0442\u0438 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u043d\u0443\u0436\u043d\u0430 \u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u0437\u0430\u0439\u043d\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 (\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 HDL, \u0430 \u043d\u0435 IP \u0431\u043b\u043e\u043a\u043e\u0432).<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u043e\u0434\u043d\u044b\u0435 Xilinx&#8217;\u043e\u0432\u0441\u043a\u0438\u0435 IP \u043c\u043e\u0434\u0443\u043b\u0438 (\u0441\u0435\u0440\u0438\u0430\u043b\u0430\u0439\u0437\u0435\u0440\u044b, \u0431\u0443\u0444\u0435\u0440\u044b, \u0448\u0438\u043d\u044b, \u0441\u0431\u0440\u043e\u0441\u044b \u0438 \u0442.\u043f.).<\/p>\n<\/li>\n<\/ul>\n<h2>Project \u0438 non-Project workflow<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 Vivado \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u0432\u0435\u0434\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430: project \u0438 non-project.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f GUI, \u0438\u043c\u0435\u0435\u043c \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 .xpr. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c &#8212; \u0434\u0435\u043b\u0430\u0435\u043c \u0443\u043f\u043e\u0440 \u043d\u0430 \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 tcl-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u0442.\u0435. \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c unix-way.<\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u043e\u0442 \u043e\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c non-project \u043f\u043e\u0434\u0445\u043e\u0434, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0434\u0435\u043b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0435\u0433\u043e \u043e\u0442\u0442\u043e\u0440\u0433\u0430\u044e\u0442. \u041b\u044e\u0434\u044f\u043c \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 GUI. <\/p>\n<p>\u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 GUI, \u0430 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 &#8212; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e tcl-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. <\/p>\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<p>\u0422\u0438\u043f\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Vivado \u043e\u0442\u043d\u043e\u0441\u0438\u0442 \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c:<\/p>\n<ul>\n<li>\n<p>HDL and netlist files: Verilog (.v), SystemVerilog (.sv), VHDL (.vhd), and EDIF (.edf)<\/p>\n<\/li>\n<li>\n<p>C based source files (.c)<\/p>\n<\/li>\n<li>\n<p>Tcl files, run scripts, and init.tcl (.tcl)<\/p>\n<\/li>\n<li>\n<p>Logical and Physical Constraints (.xdc)<\/p>\n<\/li>\n<li>\n<p>IP core files (.xci)<\/p>\n<\/li>\n<li>\n<p>IP core container (.xcix)<\/p>\n<\/li>\n<li>\n<p>IP integrator block design files (.bd)<\/p>\n<\/li>\n<li>\n<p>Design Checkpoint files (.dcp)<\/p>\n<\/li>\n<li>\n<p>System Generator subsystems (.sgp)<\/p>\n<\/li>\n<li>\n<p>Side files for use by related tools (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u201cdo\u201d-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430)<\/p>\n<\/li>\n<li>\n<p>Block Memory Map files (.bmm, .mmi)<\/p>\n<\/li>\n<li>\n<p>Executable and Linkable Format files (.elf)<\/p>\n<\/li>\n<li>\n<p>Coefficient files (.coe)<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438? \u0427\u0442\u043e &#171;\u0440\u0443\u043a\u043e\u043f\u0438\u0441\u043d\u043e\u0433\u043e&#187; \u043c\u044b \u0432\u043d\u043e\u0441\u0438\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442?<\/p>\n<ul>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog (.v) \u0438 SystemVerilog (.sv, .shv)<\/p>\n<\/li>\n<li>\n<p>Testbench&#8217;\u0438 (_tb.v, _tb.sv)<\/p>\n<\/li>\n<li>\n<p>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Xilinx&#8217;\u043e\u0432\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 Block Diagram (.bd)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 (.xdc)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 (.xdc)<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 (.coe)<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445 (.wcfg)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d \u0432 Vivado, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0430\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u0415\u0441\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 .srcs, .cache, .runs, .data, .hw, .ip_users_files, .sim \u0438 \u0442.\u0434. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0432\u043e\u0432\u043d\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439, \u0430 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043a\u043b\u0430\u0434\u0443\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 tcl-\u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u0441 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 (\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432), \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0430\u0431\u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041e\u043d\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 Vivado-\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f) \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e.<\/p>\n<p>\u0411\u043b\u043e\u043a-\u0434\u0438\u0437\u0430\u0439\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e bd. \u0422\u0430\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e .bd-\u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 xml-\u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0432\u0438\u0432\u0430\u0434\u043e\u0439. <\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u043b\u043e\u043a-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0441 bd-\u0444\u0430\u0439\u043b\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0438\u0433\u043d\u043e\u0440:<\/p>\n<details class=\"spoiler\">\n<summary>~\/Oryx\/src\/fpga\/.gitignore  <\/summary>\n<div class=\"spoiler__content\">\n<pre><code># Always ignore journal and log files *.log *.jou *.str  # Ignore trash in bd directory except .BD files \/bd\/**\/* !\/bd\/**\/*.bd  # Ignore editor's temporary files *~ *#  # Ignore sendboxes \/prj*\/  # Ignore Vivado temporary files .Xil\/<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0428\u0430\u0433 1. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/h3>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432, \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0441\u0431\u043e\u0440\u043a\u0430 bitstream-\u0444\u0430\u0439\u043b\u0430, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0417\u0430\u0432\u043e\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/$ mkdir Oryx korogodin@Diod:~\/$ cd Oryx<\/code><\/pre>\n<p>\u041c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0438 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/Oryx$ git clone ssh:\/\/git@krgd.ru:123\/git\/src Cloning into 'src'... remote: Counting objects: 20490, done. remote: Compressing objects: 100% (8449\/8449), done. remote: Total 20490 (delta 13181), reused 18342 (delta 11414) Receiving objects: 100% (20490\/20490), 787.09 MiB | 143.00 KiB\/s, done. Resolving deltas: 100% (13181\/13181), done. Checking connectivity... \u0433\u043e\u0442\u043e\u0432\u043e.<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0436\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 PL-\u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0421\u041d\u041a. \u041e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 fpga:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/$ cd src\/fpga korogodin@Diod:~\/Oryx\/src\/fpga$ ls bd  constr  prj_somz.tcl  sub  verilog<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u0443\u0441\u0442\u044b. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0445 \u0440\u0435\u0432\u0438\u0437\u0438\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 \u0432 \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438:<\/p>\n<pre><code class=\"bash\">korogodin@Diod:~\/Oryx\/src\/fpga$ git submodule update --init korogodin@Diod:~\/Oryx\/src\/fpga$ tree -L 2 sub . \u251c\u2500\u2500 acquisition \u2502   \u251c\u2500\u2500 bin \u2502   \u251c\u2500\u2500 doc \u2502   \u251c\u2500\u2500 IPgen \u2502   \u251c\u2500\u2500 matlab \u2502   \u251c\u2500\u2500 sdk \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 correlator \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 dsp \u2502   \u251c\u2500\u2500 tb \u2502   \u2514\u2500\u2500 verilog \u251c\u2500\u2500 serializer_zynq \u2502   \u2514\u2500\u2500 verilog \u2514\u2500\u2500 sync     \u2514\u2500\u2500 verilog<\/code><\/pre>\n<p>\u0412 \u0434\u0435\u0440\u0435\u0432\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<h2>\u0428\u0430\u0433 2. \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 Vivado<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Vivado \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043a\u043e\u0434\u0430\u043c\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c Vivado-\u043f\u0440\u043e\u0435\u043a\u0442, \u0442.\u0435. \u0441\u043e\u0437\u0434\u0430\u0442\u044c xpr-\u0444\u0430\u0439\u043b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432. \u0414\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 tcl-\u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 GUI (\u0434\u0430-\u0434\u0430, \u0442\u0443\u0442 \u043a\u0443\u0440\u0438\u0446\u0430 \u0438 \u044f\u0439\u0446\u043e).<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>#!\/usr\/bin\/tclsh # # Vivado (TM) v2015.3 (64-bit) # # prj_somz.tcl: Tcl script for re-creating project 'somz' # # Generated by Vivado on Tue Mar 22 10:11:05 +0300 2016 # IP Build 1367837 on Mon Sep 28 08:56:14 MDT 2015 # # This file contains the Vivado Tcl commands for re-creating the project to the state* # when this script was generated. In order to re-create the project, please source this # file in the Vivado Tcl Shell. # # * Note that the runs in the created project will be configured the same way as the #   original project, however they will not be launched automatically. To regenerate the #   run results please launch the synthesis\/implementation runs as needed. #  # Set the reference directory for source file relative paths (by default the value is script directory path) set origin_dir          \".\" set sub_dir             \"sub\" set prj_name            \"somz\" set prj_dir_name        \"prj_somz\" set topmodule_name      \"mainboard_facq\"  # Acquisition Microblaze firmware set facq_prj_name       \"mcs_facq\" set facq_bsp_name       \"mcs_facq_bsp\" set facq_proc_name      \"microblaze_0\" set hw_platform_name    \"$topmodule_name\\_hw_platform_0\"   # Use origin directory path location variable, if specified in the tcl shell if { [info exists ::origin_dir_loc] } {   set origin_dir $::origin_dir_loc }  variable script_file set script_file \"prj_$prj_name.tcl\"  # Help information for this script proc help {} {   variable script_file   puts \"\\nDescription:\"   puts \"Recreate a Vivado project from this script. The created project will be\"   puts \"functionally equivalent to the original project for which this script was\"   puts \"generated. The script contains commands for creating a project, filesets,\"   puts \"runs, adding\/importing sources and setting properties on various objects.\\n\"   puts \"Syntax:\"   puts \"$script_file\"   puts \"$script_file -tclargs \\[--origin_dir &lt;path>\\]\"   puts \"$script_file -tclargs \\[--help\\]\\n\"   puts \"Usage:\"   puts \"Name                   Description\"   puts \"-------------------------------------------------------------------------\"   puts \"\\[--origin_dir &lt;path>\\]  Determine source file paths wrt this path. Default\"   puts \"                       origin_dir path value is \\\".\\\", otherwise, the value\"   puts \"                       that was set with the \\\"-paths_relative_to\\\" switch\"   puts \"                       when this script was generated.\\n\"   puts \"\\[--help\\]               Print<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-337366","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=337366"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337366\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=337366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=337366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=337366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}