{"id":480803,"date":"2026-05-24T11:52:23","date_gmt":"2026-05-24T11:52:23","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=480803"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=480803","title":{"rendered":"\u0420\u0410\u0417\u0420\u0410\u0411\u041e\u0422\u041a\u0410 \u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420\u0418\u0417\u0418\u0420\u0423\u0415\u041c\u041e\u0413\u041e \u041c\u041e\u0414\u0423\u041b\u042f CORDIC-\u0410\u041b\u0413\u041e\u0420\u0418\u0422\u041c\u0410 \u041d\u0410 SYSTEM VERILOG"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7be\/135\/1e2\/7be1351e210904fc9548be60b810038b.jpg\" width=\"985\" height=\"663\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7be\/135\/1e2\/7be1351e210904fc9548be60b810038b.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7be\/135\/1e2\/7be1351e210904fc9548be60b810038b.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p> 1 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/p>\n<p> 2 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u2014 CordicSimple_v1<\/p>\n<p> 3 \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 CordicSimple_v2<\/p>\n<p> 4 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u2014 CordicParam_v1<\/p>\n<p> 5 \u041c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2014 CordicParam_v2<\/p>\n<p> 6 \u0418\u0442\u043e\u0433\u0438<\/p>\n<p> <strong>1 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p> \u0412 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2011 \u0433\u043e\u0434\u0443 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0431\u044b\u043b\u0430 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u00ab\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0430 \u041f\u041b\u0418\u0421\u00bb [1]. \u0412 \u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0435\u0433\u043e \u0441\u0443\u0442\u044c. \u041f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u00ab\u043d\u0430 \u0431\u0443\u043c\u0430\u0436\u043a\u0435\u00bb \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u043c \u00ab\u043f\u043e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0443\u00bb. \u0417\u0430\u0442\u0435\u043c, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0441\u0440\u0435\u0434\u0435 ModelSim.<\/p>\n<p> \u0410\u0432\u0442\u043e\u0440 \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u041b\u0418\u0421, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u0442\u0435\u043c\u0443. \u0414\u0430\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u044f \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u043d\u0430 \u0442\u0435\u043c\u0443 \u041f\u041b\u0418\u0421 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041d\u043e! \u0415\u0441\u043b\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044f \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0430\u0432\u0442\u043e\u0440, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e \u0441\u0432\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c, \u043c\u043e\u0440\u0449\u0438\u0442\u0441\u044f \u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0435\u0431\u044f \u043d\u0435\u043b\u043e\u0432\u043a\u043e.<\/p>\n<p> \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c CORDIC\u0430 (\u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0434\u0438\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0432\u044f\u0437\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0432\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u0412\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u043e\u0434\u043d\u043e\u043c sv-\u043c\u043e\u0434\u0443\u043b\u0435, \u0430, \u0437\u043d\u0430\u0447\u0438\u0442, \u0435\u0433\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0433\u0447\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442 \u0432 \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0438.<\/p>\n<p> \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p> \u0421\u0447\u0438\u0442\u0430\u044e \u043d\u0443\u0436\u043d\u044b\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CORDIC. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 (\u0420\u0438\u0441.1):<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c6\/494\/7f3\/1c64947f365decb508103eca8f5108b9.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1\" width=\"503\" height=\"496\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1c6\/494\/7f3\/1c64947f365decb508103eca8f5108b9.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c6\/494\/7f3\/1c64947f365decb508103eca8f5108b9.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1<\/figcaption><\/div>\n<\/figure>\n<p> \u041a\u043e\u0440\u043e\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0437\u043d\u0430\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <strong>(X0, Y0)<\/strong> \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0435\u0441\u043b\u0438 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u0443\u0433\u043e\u043b <strong>Z<\/strong>, \u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>(X1, Y1)<\/strong>, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u044b (\u0420\u0438\u0441.2):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cb1\/9b4\/0be\/cb19b40bef6c21af549d331c969619ac.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 2\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 2\" width=\"633\" height=\"414\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cb1\/9b4\/0be\/cb19b40bef6c21af549d331c969619ac.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cb1\/9b4\/0be\/cb19b40bef6c21af549d331c969619ac.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 2<\/figcaption><\/div>\n<\/figure>\n<p> \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432 CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e <strong>tan(Z)<\/strong>. \u0412 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0443\u0433\u043b\u0430 <strong>Z<\/strong> \u043e\u0442 0\u00b0 \u0434\u043e 45\u00b0 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>tan(Z)<\/strong> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e 1 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442, \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 <strong>tan(Z) <\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\"><strong>tan(Z)<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\"><strong>1<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"77\" width=\"77\">\n<p align=\"left\"><strong>1\/2<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\"><strong>1\/4<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"83\" width=\"83\">\n<p align=\"left\"><strong>1\/8<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"left\"><strong>1\/16<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"80\" width=\"80\">\n<p align=\"left\"><strong>1\/32<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">\u2026<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\"><strong>2<sup>0<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"77\" width=\"77\">\n<p align=\"left\"><strong>2<sup>-1<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\"><strong>2<sup>-2<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"83\" width=\"83\">\n<p align=\"left\"><strong>2<sup>-3<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"left\"><strong>2<sup>-4<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"80\" width=\"80\">\n<p align=\"left\"><strong>2<sup>-5<\/sup><\/strong><\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\"> <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Z<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"73\" width=\"73\">\n<p align=\"left\"><strong>45\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"77\" width=\"77\">\n<p align=\"left\"><strong>~26\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\"><strong>~14\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"83\" width=\"83\">\n<p align=\"left\"><strong>~7\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"94\" width=\"94\">\n<p align=\"left\"><strong>~4\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"80\" width=\"80\">\n<p align=\"left\"><strong>~2\u00b0<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">\u2026<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p> , \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 (\u0420\u0438\u0441.3):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a3\/6c0\/489\/3a36c04892d80d6fcab33185fcecfe11.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 3\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 3\" width=\"700\" height=\"230\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3a3\/6c0\/489\/3a36c04892d80d6fcab33185fcecfe11.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a3\/6c0\/489\/3a36c04892d80d6fcab33185fcecfe11.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 3<\/figcaption><\/div>\n<\/figure>\n<p> , \u0430 \u043f\u0435\u0440\u0432\u044b\u0435 3 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0433\u043e\u043b \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0420\u0438\u0441.4):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/495\/3eb\/e39\/4953ebe39b10d6f30b4cf3c113f48f0a.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 4\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 4\" width=\"1075\" height=\"375\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/495\/3eb\/e39\/4953ebe39b10d6f30b4cf3c113f48f0a.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/495\/3eb\/e39\/4953ebe39b10d6f30b4cf3c113f48f0a.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 4<\/figcaption><\/div>\n<\/figure>\n<p> \u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440 \u2013 <strong>CordicSimple_v1<\/strong> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u2026 . \u0410 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f <strong>CordicSimple_v1<\/strong>. <\/p>\n<p> <strong>2 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u2014 CordicSimple_v1<\/strong><\/p>\n<p> \u0428\u0430\u043f\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicSimple_v1<\/strong> (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 1):<\/p>\n<pre><code class=\"vhdl\">module CordicSimple_v1 (input clk,input on,input [31:0] step,input [15:0] level,output logic [15:0] X,output logic [15:0] Y);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> <strong>step<\/strong> \u2013 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0448\u0430\u0433\u0430 \u0444\u0430\u0437\u044b \u0437\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u0442 <strong>clk<\/strong>. \u0412 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u2013 \u044d\u0442\u043e \u0443\u0433\u043e\u043b \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>step<\/strong>, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430.<\/p>\n<p> <strong>level<\/strong> \u2013 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0430\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0412 \u0440\u0430\u0431\u043e\u0442\u0435 [1] \u0431\u044b\u043b\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u043f\u0440\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u22480.607), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b <strong>X<\/strong> \u0438 <strong>Y<\/strong>, \u043b\u0438\u0431\u043e, \u0441\u0440\u0430\u0437\u0443 \u0432\u0437\u044f\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443) \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 <strong>level<\/strong>, \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>level<\/strong>. \u0422\u0430\u043a \u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<p> <strong>X<\/strong>, <strong>Y<\/strong> \u2013 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 I \u0438 Q \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0410 \u0432 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u2013 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 CORDIC.<\/p>\n<p> \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 2):<\/p>\n<pre><code class=\"vhdl\">logic [31:0] acc;logic [15:0] ang [0:16];wire [1:0] quad = acc[31:30];logic signed [15:0] X0, Y0;logic signed [15:0] Xs [0:16];logic signed [15:0] Ys [0:16];logic signed [17:0] Zs [0:16];wire signed [17:0] As [0:16];<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>  <strong>acc<\/strong> \u2013 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u0430\u0437\u044b. \u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u0442\u0430\u043a\u0442\u043e\u043c <strong>clk<\/strong> \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 <strong>step<\/strong>.<\/p>\n<p> <strong>ang<\/strong> \u2013 17-\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u044b\u0439 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0439 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0435  \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u0430 \u043f\u043e \u0445\u043e\u0434\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430.<\/p>\n<p> <strong>quad<\/strong> \u2013 \u043d\u043e\u043c\u0435\u0440 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438, \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f 2-\u043c\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u043c\u0438 \u0431\u0438\u0442\u0430\u043c\u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b <strong>acc<\/strong>. \u0421\u0443\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f (\u0420\u0438\u0441.5): \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u044c X. \u0414\u0430\u043b\u0435\u0435, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u0430\u0437\u044b \u0432 <strong>acc<\/strong>, \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0447\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 I (<strong>quad<\/strong> = 2&#8217;b01). \u041a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 2 \u0431\u0438\u0442\u0430 <strong>acc<\/strong> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432 2\u2019b01, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u043e\u0441\u044c Y \u0438 \u043d\u0430\u0447\u043d\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 II (<strong>quad<\/strong> = 2&#8217;b01). \u0412 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 III \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u044f\u0436\u0435\u0442 \u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u043e\u0441\u044c X, \u043d\u043e \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (<strong>quad<\/strong> = 2&#8217;b10). \u0417\u0430\u0442\u0435\u043c \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c IV \u043d\u0430 \u043e\u0441\u044c Y, \u0442\u0430\u043a\u0436\u0435 \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (<strong>quad<\/strong> = 2&#8217;b11). \u0417\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044e, \u0442\u0430\u043a \u043a\u0430\u043a \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0447\u043a\u0438 \u043f\u043e \u043a\u0440\u0443\u0433\u0443, \u0440\u0430\u0441\u0441\u0442\u044f\u043d\u0443\u0442\u043e\u043c \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2db\/763\/c55\/2db763c5514d8c801c393cbae4c0f682.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 5\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 5\" width=\"911\" height=\"281\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2db\/763\/c55\/2db763c5514d8c801c393cbae4c0f682.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2db\/763\/c55\/2db763c5514d8c801c393cbae4c0f682.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 5<\/figcaption><\/div>\n<\/figure>\n<p> <strong>X0<\/strong>,<strong> Y0<\/strong> \u2013 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/p>\n<p> <strong>Xs<\/strong>, <strong>Ys<\/strong> \u2013 17 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p> <strong>As<\/strong> \u2013 \u0421\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441 17-\u044e \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438, \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e 18 \u0431\u0438\u0442. \u0412 \u044d\u0442\u043e\u043c \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u00ab\u0442\u043e\u043b\u043a\u0430\u0435\u0442\u0441\u044f\u00bb \u043f\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0443 \u0443\u0433\u043e\u043b (\u0444\u0430\u0437\u0430) \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 2 \u0431\u0438\u0442\u0430: 1 \u0440\u0430\u0437\u0440\u044f\u0434 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u00ab\u0437\u0430\u0431\u0435\u0433\u0430\u0442\u044c\u00bb \u0437\u0430 90\u00b0 \u0438 0\u00b0, 2\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u2013 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430.<\/p>\n<p> <strong>Zs<\/strong> \u2013 17 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0434\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0437\u044b). \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u043a\u0430\u043a \u0443 <strong>As<\/strong>.<\/p>\n<p> \u0418\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0433\u043b\u0430 <strong>ang<\/strong> \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u043d\u0430 2 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c <strong>As<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0431\u043b\u043e\u043a\u0438 <strong>initial<\/strong> \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 3).<\/p>\n<pre><code class=\"vhdl\">assign As[0]  = {2'h0,ang[0]};assign As[1]  = {2'h0,ang[1]};assign As[2]  = {2'h0,ang[2]};assign As[3]  = {2'h0,ang[3]};assign As[4]  = {2'h0,ang[4]};assign As[5]  = {2'h0,ang[5]};assign As[6]  = {2'h0,ang[6]};assign As[7]  = {2'h0,ang[7]};assign As[8]  = {2'h0,ang[8]};assign As[9]  = {2'h0,ang[9]};assign As[10] = {2'h0,ang[10]};assign As[11] = {2'h0,ang[11]};assign As[12] = {2'h0,ang[12]};assign As[13] = {2'h0,ang[13]};assign As[14] = {2'h0,ang[14]};assign As[15] = {2'h0,ang[15]};assign As[16] = {2'h0,ang[16]};initialbeginacc = '0;for(int i=0; i&lt;17; i++) beginZs[i] = '0;ang[i] = '0;endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041d\u0438\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b <strong>acc<\/strong> \u0438 \u0441\u0445\u0435\u043c\u0430 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430 <strong>ang<\/strong> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 4):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : acc_incrif (on) acc &lt;= acc + step;else acc &lt;= '0;endalways @ (posedge clk)begin : ang_pipeang[0] &lt;= acc[29:14];for(int i=0; i&lt;16; i++) ang[i+1] &lt;= ang[i];end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441: \u043f\u043e\u0447\u0435\u043c\u0443 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 <strong>acc<\/strong> \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c 32 \u0431\u0438\u0442\u0430, \u0430 \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u00ab\u0442\u043e\u043b\u043a\u0430\u0435\u0442\u0441\u044f\u00bb \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0440\u0448\u0438\u0435 16 \u0431\u0438\u0442. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e, \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b <strong>acc,<\/strong> \u0442\u0435\u043c \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b.<\/p>\n<p> \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0431\u043e\u0440\u0430, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong>quad<\/strong> (\u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043e\u043a 5) (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 5):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : quarterif(quad == 2'b00) beginX0 &lt;= level;Y0 &lt;= '0; endelse if(quad == 2'b01) beginX0 &lt;= '0;Y0 &lt;= level; endelse if(quad == 2'b10) beginX0 &lt;= ~level;Y0 &lt;= '0; endelse beginX0 &lt;= '0;Y0 &lt;= ~level; endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 6):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : iter_0Zs[0] &lt;= 18'h08000;Xs[0] &lt;= X0 - Y0;Ys[0] &lt;= Y0 + X0;end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c, \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 3, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043f\u0440\u0438\u0432\u0435\u043b \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 [1], \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u0430\u0432\u0442\u043e\u0440 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u043b \u0438\u0437 [2]. \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e \u0447\u0435\u0440\u0435\u0437 <strong>\u03c3<sub>i<\/sub><\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f <strong>z<sub>i<\/sub><\/strong>. <strong>z<sub>i<\/sub><\/strong> \u2013 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0443\u0433\u043b\u043e\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0444\u0430\u0437\u043e\u0439) \u0432 \u0445\u043e\u0434\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430, \u043d\u043e \u0432\u0430\u0436\u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u0443\u0433\u043b\u043e\u043c \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0443\u0433\u043b\u043e\u043c \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430, \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430.  <\/p>\n<p> \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043e\u043a 4. \u0422\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CORDIC. \u041d\u0430\u043c, \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0443\u0433\u043e\u043b 55\u00b0. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0433\u043e\u043b 45\u00b0 &#8212; \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0443\u0433\u043e\u043b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <strong>\u03c3<sub>i<\/sub><\/strong> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c. \u0414\u0430\u043b\u0435\u0435 \u0432 3\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c.<\/p>\n<p> \u0418\u0442\u0430\u043a, \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 6 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043a\u043e\u0434 0-\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u043c\u044b \u0436\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u2013 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 \u043d\u0443\u043b\u044f\u2026). \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439, \u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0437\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 <strong>Zs[0]<\/strong> = 18\u2019h08000; \u041e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d\u043e \u0432\u0437\u044f\u043b\u043e\u0441\u044c? \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0430\u044f \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 45\u00b0, \u0442.\u0435. \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043e\u0442 \u043e\u0442 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430: 2<sup>16<\/sup> \/ 2 = 2<sup>15<\/sup> = 32768 dec = 16\u2019h8000 hex. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f arctan(2<sup>-0<\/sup>) \u2192 45\u00b0.<\/p>\n<p> \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 7):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : iter_1if(As[1] &lt; Zs[0]) beginZs[1] &lt;= Zs[0] - 18'h04b90;Xs[1] &lt;= Xs[0] + (Ys[0] &gt;&gt;&gt; 1);Ys[1] &lt;= Ys[0] - (Xs[0] &gt;&gt;&gt; 1); endelse beginZs[1] &lt;= Zs[0] + 18'h04b90;Xs[1] &lt;= Xs[0] - (Ys[0] &gt;&gt;&gt; 1);Ys[1] &lt;= Ys[0] + (Xs[0] &gt;&gt;&gt; 1); endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041d\u0430 \u044d\u0442\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 <strong>As<\/strong> \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0443 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0437\u044b \u0438\u043b\u0438 \u0442\u043e\u0442 \u0443\u0433\u043e\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c. \u0412 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 <strong>Zs<\/strong> \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0433\u043b\u0430. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0430 45\u00b0, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>Zs<\/strong> \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u043e \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443.<\/p>\n<p> \u0412\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u044d\u0442\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: 2<sup>15<\/sup> * arctan(2<sup>-1<\/sup>) \/ arctan(2<sup>0<\/sup>) \u2248 19344 dec = 16\u2019h4b90 hex.<\/p>\n<p> \u0412\u0441\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0435 \u0430\u0432\u0442\u043e\u0440 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438 \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 8):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : iter_2if(As[2] &lt; Zs[1]) beginZs[2] &lt;= Zs[1] - 18'h027ed;Xs[2] &lt;= Xs[1] + (Ys[1] &gt;&gt;&gt; 2);Ys[2] &lt;= Ys[1] - (Xs[1] &gt;&gt;&gt; 2); endelse beginZs[2] &lt;= Zs[1] + 18'h027ed;Xs[2] &lt;= Xs[1] - (Ys[1] &gt;&gt;&gt; 2);Ys[2] &lt;= Ys[1] + (Xs[1] &gt;&gt;&gt; 2); endend................................................always @ (posedge clk)begin : iter_15if(As[15] &lt; Zs[14]) beginZs[15] &lt;= Zs[14] - 18'h00001;Xs[15] &lt;= Xs[14] + (Ys[14] &gt;&gt;&gt; 15);Ys[15] &lt;= Ys[14] - (Xs[14] &gt;&gt;&gt; 15); endelse beginZs[15] &lt;= Zs[14] + 18'h00001;Xs[15] &lt;= Xs[14] - (Ys[14] &gt;&gt;&gt; 15);Ys[15] &lt;= Ys[14] + (Xs[14] &gt;&gt;&gt; 15); endendalways @ (posedge clk)begin : iter_16if(As[16] &lt; Zs[15]) beginXs[16] &lt;= Xs[15] + (Ys[15] &gt;&gt;&gt; 16);Ys[16] &lt;= Ys[15] - (Xs[15] &gt;&gt;&gt; 16); endelse beginXs[16] &lt;= Xs[15] - (Ys[15] &gt;&gt;&gt; 16);Ys[16] &lt;= Ys[15] + (Xs[15] &gt;&gt;&gt; 16); endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 iter_2 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: 2<sup>15<\/sup> * arctan(2<sup>-2<\/sup>) \/ arctan(2<sup>0<\/sup>) \u2248 10221 dec = 16\u2019h27ed hex.  <\/p>\n<p> \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 iter_15 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f: 2<sup>15<\/sup> * arctan(2<sup>-15<\/sup>) \/ arctan(2<sup>0<\/sup>) \u2248 1 dec = 16\u2019h0001 hex.<\/p>\n<p> \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c iter_16 \u0440\u0430\u0441\u0447\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u2013 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f.<\/p>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u044f CordicSimple_v1 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 (\u0440\u0438\u0441. 6). \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0442\u0435\u0441\u0442\u0431\u0435\u043d\u0447 \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435: <br \/>  <a href=\"https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicSimple_v1\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicSimple_v1<\/a><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1f6\/c03\/bb4\/1f6c03bb4e2e51624b1427ee4d5e0d40.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 6\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 6\" width=\"1103\" height=\"497\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1f6\/c03\/bb4\/1f6c03bb4e2e51624b1427ee4d5e0d40.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1f6\/c03\/bb4\/1f6c03bb4e2e51624b1427ee4d5e0d40.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 6<\/figcaption><\/div>\n<\/figure>\n<p> \u0417\u0434\u0435\u0441\u044c, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0431\u044b\u043b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 2 \u041c\u0413\u0446. \u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 clk = 100 \u041c\u0413\u0446. \u0428\u0430\u0433 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b acc = 2 \/ 100 * 2^32 = 0x051EB852.<\/p>\n<p> \u041d\u0435 \u044f\u0432\u043b\u044f\u044f\u0441\u044c \u043c\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043f\u043e MatLAB, \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0411\u041f\u0424 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0442\u043e\u0447\u0435\u043a 4096 (\u0440\u0438c. 7):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa3\/782\/72f\/aa378272f0dc42148326123fff7f6566.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 7\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 7\" width=\"846\" height=\"686\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/aa3\/782\/72f\/aa378272f0dc42148326123fff7f6566.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa3\/782\/72f\/aa378272f0dc42148326123fff7f6566.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 7<\/figcaption><\/div>\n<\/figure>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a \u0411\u041f\u0424 = 4096, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 100 \u041c\u0413\u0446, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0448\u0430\u0433 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u0430 100 \u041c\u0413\u0446 \/ 4096 \u2248 24,4 \u043a\u0413\u0446. \u041f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0448\u0430\u0433\u0430 \u2248 12,2 \u043a\u0413\u0446. \u0412 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 MatLAB \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e 1,95 \u043a\u0413\u0446 \u2014 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p> <strong>3 \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f &#8212; CordicSimple_v2<\/strong><\/p>\n<p> \u0412 \u0446\u0435\u043b\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c CORDIC \u0433\u043e\u0442\u043e\u0432, \u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u043c\u0435\u043d\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043c\u0443\u0449\u0430\u0435\u0442, \u044d\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c <strong>level<\/strong> \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 16-\u0442\u0438 \u0431\u0438\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e\u0431 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0435, \u0430 \u043d\u0435 \u043f\u0438\u043a-\u0442\u0443-\u043f\u0438\u043a. \u0427\u0442\u043e\u0431\u044b \u0441\u0447\u0438\u0442\u0430\u0442\u044c <strong>level<\/strong> \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 16-\u0442\u0438 \u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 <strong>Xs<\/strong>, <strong>Ys<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 286 \u0438 290 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 9):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : dataX &lt;= Xs[16][16:1] + Xs[16][0];Y &lt;= Ys[16][16:1] + Ys[16][0];end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430. \u0425\u043e\u0442\u044f \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a 15-\u0442\u0438 \u0431\u0438\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442.<\/p>\n<p> \u041f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f (\u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e CordicSimple_v2) \u0438 \u0435\u0433\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0443\u0442:<br \/><a href=\"https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicSimple_v2\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicSimple_v2<\/a><\/p>\n<p> \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u0438\u0432\u0435\u043b rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0430\u043c. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 (!) \u043c\u043e\u0434\u0443\u043b\u044c  CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0434\u0438\u043d \u0442\u043e\u0442 rtl-\u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439 \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e CordicParam_v1, \u0434\u0430, \u0432\u0435\u0440\u0441\u0438\u044f \u21161, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u0432\u0438\u0434\u043e\u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f, \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f&#8230;<\/p>\n<p> <strong>4 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f &#8212; CordicParam_v1<\/strong><\/p>\n<p> \u0428\u0430\u043f\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f CordicParam_v1 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 10):<\/p>\n<pre><code class=\"vhdl\">module CordicParam_v1#(parameter int DAT_W = 16,parameter int ACC_W = 32,parameter int NUM_I = 16)(input clk,input on,input [ACC_W-1:0] step,input [DAT_W-1:0] level,output logic [DAT_W-1:0] X,output logic [DAT_W-1:0] Y);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f. \u041f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>DAT_W<\/strong> \u2013 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong>X<\/strong> \u0438 <strong>Y<\/strong>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>ACC_W<\/strong> \u2013 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b. \u041a\u0430\u043a \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b, \u0442\u0435\u043c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0414\u0430\u043b\u0435\u0435, <strong>NUM_I<\/strong> \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 (\u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0430) \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0442\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p> \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v1<\/strong> \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u0430\u043a \u0438 \u0443 \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicSimple_v2<\/strong>. \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0448\u0430\u0433\u0430 \u043f\u043e \u0444\u0430\u0437\u0435 <strong>step<\/strong> \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b <strong>ACC_W<\/strong>. \u0411\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 <strong>level<\/strong> \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438\u043c \u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438  <strong>CordicSimple_v1 <\/strong>\u0438<strong>  CordicSimple_v2<\/strong>.<\/p>\n<p> \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 11), \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0443 2 \u043d\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<pre><code class=\"vhdl\">    logic [ACC_W-1:0] acc;logic [DAT_W-1:0] ang [0:NUM_I];wire [1:0] quad = acc[ACC_W-1:ACC_W-2];logic signed [DAT_W:0] X0, Y0;logic signed [DAT_W:0] Xs [0:NUM_I];logic signed [DAT_W:0] Ys [0:NUM_I];logic signed [DAT_W+1:0] Zs [0:NUM_I];wire signed [DAT_W+1:0] As [0:NUM_I];<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0433\u043b\u0430 <strong>ang<\/strong> \u0441\u043e\u043e\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0448\u0438\u043d\u044b, \u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043b\u0438\u043d\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0447\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e. \u041d\u043e\u043c\u0435\u0440 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 <strong>quad<\/strong> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u0430\u043c\u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 acc. \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 <strong>X0<\/strong>, <strong>Y0<\/strong>, <strong>Xs<\/strong>, <strong>Ys<\/strong> \u0438 \u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 <strong>Xs<\/strong>, <strong>Ys<\/strong>, \u0442\u0430\u043a\u0436\u0435 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b. \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430 <strong>As<\/strong> \u043d\u0430 2 \u0431\u0438\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0448\u0438\u043d\u044b.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 12), \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0443 3 :<\/p>\n<pre><code class=\"vhdl\">    generategenvar i;for (i = 0; i &lt; NUM_I; i = i + 1) begin : assin_angassign As[i] = {2'b00,ang[i]};endendgenerateinitialbeginacc = '0;for(int i=0; i&lt;NUM_I; i++) beginZs[i] = '0;ang[i] = '0;endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0422.\u0435. \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 1&#8230;6 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 ang \u0434\u043e <strong>As<\/strong> \u0441 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 2\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432. \u0410 \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 8&#8230;15 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435 \u0441\u0438\u043d\u0442\u0435\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0431\u043b\u043e\u043a initial \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443.<\/p>\n<p> \u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0447\u0430\u0441\u0442\u044c rtl-\u043a\u043e\u0434\u0430, \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 (\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430). \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u044c <strong>CordicSimple_v1<\/strong> \u0438\u043b\u0438 <strong>v2<\/strong> (\u0434\u043b\u044f 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445), \u0433\u0434\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: 2<sup>15<\/sup> * arctan(2<sup>-i<\/sup>) \/ arctan(2<sup>0<\/sup>), \u0433\u0434\u0435 i \u2013 \u043d\u043e\u043c\u0435\u0440 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0437\u0430\u043f\u0438\u0441\u0430\u0432 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 13):<\/p>\n<pre><code class=\"vhdl\">localparam logic [31:0] parMax = 2**(DAT_W-1);localparam logic [31:0] atan45 = 0.78539816 * parMax;localparam logic [31:0] atan[26] = '{0.46364761 * parMax,0.24497866 * parMax,0.12435499 * parMax,0.06241881 * parMax,0.03123983 * parMax,0.01562373 * parMax,\u2026 0.00000024 * parMax,0.00000012 * parMax,0.00000006 * parMax,0.00000003 * parMax,0.00000001 * parMax};logic [DAT_W+1:0] Rot [0:NUM_I];generategenvar k;for (i = 0; i &lt; NUM_I-1; i = i + 1) begin : assin_rotassign Rot[i] = parMax * atan[i] \/ atan45;endendgenerate<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 <strong>CordicSimple_v1<\/strong> \u0438 <strong>v2<\/strong>  \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 7 \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 18&#8217;h04b90. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0434\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 \u0432\u044b\u0448\u0435, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 DAT_W = 16:<\/p>\n<p> Rot[i] = 2<sup>15<\/sup> <em> atan[0] \/ atan45 =  32768 <\/em> 0.46364761 \/ 0.78539816 \u2248 19344d = 4B90h. \u0412\u0441\u0435 \u0441\u0445\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<p> 32-\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u0430\u043b\u043e. \u042d\u0442\u043e \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p> \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 4:<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : acc_incrif (on) acc &lt;= acc + step;else acc &lt;= '0;endalways @ (posedge clk)begin : ang_pipeang[0] &lt;= acc[ACC_W-3:ACC_W-DAT_W-2];for(int i=0; i&lt;NUM_I; i++) ang[i+1] &lt;= ang[i];end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0421\u0442\u0440\u043e\u043a\u0438 1&#8230;5 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b <strong>acc<\/strong> \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c <strong>step<\/strong>. \u041d\u0443, \u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 7&#8230;12 \u043e\u043f\u0438\u0441\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430 \u043f\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u0426\u0435\u043b\u0435\u0432\u044b\u043c \u0443\u0433\u043b\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0448\u0438\u0440\u0438\u043d\u043e\u0439 <strong>DATA_WIDTH<\/strong>, \u043e\u0442\u0441\u0442\u0443\u043f\u0438\u0432 2 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u0430. \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, 2 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0443\u044e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c (<strong>quad<\/strong>).<\/p>\n<p> \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0438\u0436\u0435 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432\u044b\u0431\u043e\u0440 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 15) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 2-\u0445 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u043c <strong>acc<\/strong>. \u041a\u043e\u0434 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 5:<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : quarterif(quad == 2'b00) beginX0 &lt;= level;Y0 &lt;= '0; endelse if(quad == 2'b01) beginX0 &lt;= '0;Y0 &lt;= level; endelse if(quad == 2'b10) beginX0 &lt;= ~level;Y0 &lt;= '0; endelse beginX0 &lt;= '0;Y0 &lt;= ~level; endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0414\u0430\u043b\u0435\u0435, \u043d\u0430\u0447\u043d\u0435\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f 1-\u044f (\u043d\u0443\u043b\u0435\u0432\u0430\u044f) \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 16):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : iter_0Zs[0] &lt;= 1 &lt;&lt; (DAT_W-1);Xs[0] &lt;= X0 - Y0;Ys[0] &lt;= Y0 + X0;end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0414\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0443 6, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u0430 <strong>Zs[0]<\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong>DATA_WIDTH<\/strong>. \u041a\u0430\u043a \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicSimple_v1<\/strong>, \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 45 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0430 \u044d\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0448\u0438\u043d\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 2<sup>16<\/sup> &#8212; 1 ) \u043f\u043e\u0434 45\u00ba \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 16&#8217;h8000,   \u0442. \u0435. 2<sup>15<\/sup> , \u0442.\u0435. <strong>DATA_WIDTH-1<\/strong> \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435.<\/p>\n<p> \u0414\u0430\u043b\u0435\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e generate \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 17):<\/p>\n<pre><code class=\"vhdl\">generategenvar j;for (j = 0; j &lt; NUM_I-1; j = j + 1) begin : iteralways @ (posedge clk)begin : iterif(As[j+1] &lt; Zs[j]) beginZs[j+1] &lt;= Zs[j] - Rot[j];Xs[j+1] &lt;= Xs[j] + (Ys[j] &gt;&gt;&gt; j+1);Ys[j+1] &lt;= Ys[j] - (Xs[j] &gt;&gt;&gt; j+1); endelse beginZs[j+1] &lt;= Zs[j] + Rot[j];Xs[j+1] &lt;= Xs[j] - (Ys[j] &gt;&gt;&gt; j+1);Ys[j+1] &lt;= Ys[j] + (Xs[j] &gt;&gt;&gt; j+1); endendendendgenerate<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0417\u0434\u0435\u0441\u044c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 generate \u2026 endgenerate \u043c\u044b \u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 91&#8230;278 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <strong>CordicSimple_v2<\/strong>. \u041e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e. \u0422\u0430\u043a\u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 <strong>Rot[j]<\/strong> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 13.<\/p>\n<p> \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0433\u043e\u043b (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 18):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : iter_lastif(As[NUM_I] &lt; Zs[NUM_I-1]) beginXs[NUM_I] &lt;= Xs[NUM_I-1] + (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys[NUM_I] &lt;= Ys[NUM_I-1] - (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I); endelse beginXs[NUM_I] &lt;= Xs[NUM_I-1] - (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys[NUM_I] &lt;= Ys[NUM_I-1] + (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I); endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u00ab\u0437\u0430\u0441\u0443\u043d\u0443\u0442\u044c\u00bb \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e generate (\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043b\u0438\u0441\u0442\u0438\u043d\u0433), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 <strong>if&#8230;else<\/strong>, \u043d\u043e \u0430\u0432\u0442\u043e\u0440 \u0440\u0435\u0448\u0438\u043b \u043d\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c <strong>CordicParam_v1<\/strong> \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e <strong>CordicSimple_v2<\/strong>, \u0433\u0434\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u0434 \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 9 , \u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 19):<\/p>\n<pre><code class=\"vhdl\">always @ (posedge clk)begin : dataX &lt;= Xs[NUM_I][DAT_W:1] + Xs[NUM_I][0];Y &lt;= Ys[NUM_I][DAT_W:1] + Ys[NUM_I][0];end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041f\u043e\u043b\u043d\u0443\u044e \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0434\u0443\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u0443\u0442:<br \/><a href=\"https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicParam_v1\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicParam_v1<\/a><\/p>\n<p> \u0418\u0442\u0430\u043a, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 <strong>CordicSimple_v2<\/strong> \u0438 <strong>CordicParam_v1<\/strong> \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u0440\u0438\u0441.8):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/70f\/a27\/74e\/70fa2774ef2252b37a399f1f624d5947.png\" alt=\" \u0420\u0438\u0441\u0443\u043d\u043e\u043a 8 - \u0421\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 CordicParam_v1 \u0438 CordicSimple_v2. DATA_WIDTH = 16, ACC_WIDTH = 32, NUM_ITERATIONS = 16.\" title=\" \u0420\u0438\u0441\u0443\u043d\u043e\u043a 8 - \u0421\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 CordicParam_v1 \u0438 CordicSimple_v2. DATA_WIDTH = 16, ACC_WIDTH = 32, NUM_ITERATIONS = 16.\" width=\"727\" height=\"697\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/70f\/a27\/74e\/70fa2774ef2252b37a399f1f624d5947.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/70f\/a27\/74e\/70fa2774ef2252b37a399f1f624d5947.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption> \u0420\u0438\u0441\u0443\u043d\u043e\u043a 8 &#8212; \u0421\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 <strong>CordicParam_v1<\/strong> \u0438 <strong>CordicSimple_v2<\/strong>. <strong>DATA_WIDTH<\/strong> = 16, <strong>ACC_WIDTH<\/strong> = 32, <strong>NUM_ITERATIONS<\/strong> = 16.<\/figcaption><\/div>\n<\/figure>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0430\u0432\u0442\u043e\u0440 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 2 \u0431\u0438\u0442\u0430. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u043a 32-\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443. \u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432 \u044d\u043f\u0438\u043b\u043e\u0433\u0435 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442.<\/p>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u2026 \u0441\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u043c \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v1<\/strong> (\u0440\u0438\u0441.9):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/56a\/b82\/dfc\/56ab82dfcce587ac0ab961747ad163e8.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 9\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 9\" width=\"993\" height=\"820\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/56a\/b82\/dfc\/56ab82dfcce587ac0ab961747ad163e8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/56a\/b82\/dfc\/56ab82dfcce587ac0ab961747ad163e8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 9<\/figcaption><\/div>\n<\/figure>\n<p> \u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0430\u0440\u0430\u0437\u0438\u0442\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 <strong>CordicSimple_v1<\/strong> (\u0440\u0438\u0441. 7) \u0438 <strong>CordicParam_v1<\/strong> (\u0440\u0438\u0441. 9).<\/p>\n<p> \u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0441 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f: \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435? \u0414\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 1:<\/p>\n<p> \u0422\u0430\u0431\u043b\u0438\u0446\u0430 1<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"115\" width=\"115\">\n<p align=\"left\">\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/td>\n<td data-colwidth=\"343\" width=\"343\">\n<p align=\"left\">CordicParam_v1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"115\" width=\"115\">\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0447\u0435\u0435\u043a<\/p>\n<\/td>\n<td data-colwidth=\"343\" width=\"343\">\n<p align=\"left\">1867<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"115\" width=\"115\">\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432<\/p>\n<\/td>\n<td data-colwidth=\"343\" width=\"343\">\n<p align=\"left\">1197<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"115\" width=\"115\">\n<p align=\"left\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b<\/p>\n<\/td>\n<td data-colwidth=\"343\" width=\"343\">\n<p align=\"left\">177.81 \u041c\u0413\u0446<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p> \u041f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u041f\u041b\u0418\u0421 \u0444\u0438\u0440\u043c\u044b Intel (Altera), \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 Cyclone IV \u2013 EP4CE6E22I7.<\/p>\n<p> <strong>5 \u041c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2014 CordicParam_v2<\/strong><\/p>\n<p> \u0427\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c &#8212; \u0431\u0443\u0434\u0443\u0449\u0438\u0439 <strong>CordicParam_v2<\/strong>. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u044f. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0432 \u00ab\u0434\u043b\u0438\u043d\u0443\u00bb \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0446\u0435\u043f\u043e\u0447\u0435\u043a, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430.<\/p>\n<p> \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0434\u043d\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 (\u0440\u0438\u0441 10):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/587\/6e8\/4c1\/5876e84c13ab52064abcf286dfbd1f9c.PNG\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 10 - \u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043c\u043e\u0434\u0443\u043b\u044f CordicParam_v1\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 10 - \u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043c\u043e\u0434\u0443\u043b\u044f CordicParam_v1\" width=\"802\" height=\"592\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/587\/6e8\/4c1\/5876e84c13ab52064abcf286dfbd1f9c.PNG 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/587\/6e8\/4c1\/5876e84c13ab52064abcf286dfbd1f9c.PNG 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 10 &#8212; \u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043c\u043e\u0434\u0443\u043b\u044f CordicParam_v1<\/figcaption><\/div>\n<\/figure>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043c\u0435\u0436\u0434\u0443 \u00ab\u0433\u0440\u044f\u0434\u043a\u043e\u0439\u00bb \u0441\u0443\u043c\u043c\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0449\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438, \u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0443\u0434\u0432\u043e\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u041e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430.<\/p>\n<p> \u0412 \u0448\u0430\u043f\u043a\u0435 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v2<\/strong> \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>PERF<\/strong>. \u041f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u044b\u043c 0, \u043c\u043e\u0434\u0443\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 <strong>CordicParam_v1<\/strong>, \u0430 \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u044b\u043c 1, \u043a\u0430\u0436\u0434\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0432\u0435, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0434\u043b\u0438\u043d\u0443 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 20):<\/p>\n<pre><code class=\"vhdl\">module CordicParam_v2#(parameter int DAT_W = 16,parameter int ACC_W = 32,parameter int NUM_I = 16,parameter bit PERF = 0 \/\/1 = yes, 0 = no)(input clk,input on,input [ACC_W-1:0] step,input [DAT_W-1:0] level,output logic [DAT_W-1:0] X,output logic [DAT_W-1:0] Y);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0422\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043c\u0438\u043c\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0433\u043b\u0430 <strong>ang<\/strong>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c <strong>ang_buf<\/strong>, \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p> \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e <strong>X<\/strong> \u0438 <strong>Y<\/strong> \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0443\u0440\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f <strong>Xs<\/strong>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u043e \u0434\u0432\u0443\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u2013 <strong>Xs_p<\/strong>, <strong>Xs_n<\/strong> \u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439. \u0422\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 <strong>Ys<\/strong> \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0443\u0433\u043b\u043e\u043c <strong>Zs<\/strong>.<\/p>\n<p> \u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0435 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0435\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u0438\u043d\u0433 17 \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 <strong>CordicParam_v1 <\/strong>(\u043b\u0438\u0441\u0442\u0438\u043d\u0433 21):<\/p>\n<pre><code class=\"vhdl\">generategenvar j;for (j = 0; j &lt; NUM_I-1; j = j + 1) begin : iterif (!PERF)always @ (posedge clk)begin : iterif(As[j+1] &lt; Zs[j]) beginZs[j+1] &lt;= Zs[j] - Rot[j];Xs[j+1] &lt;= Xs[j] + (Ys[j] &gt;&gt;&gt; j+1);Ys[j+1] &lt;= Ys[j] - (Xs[j] &gt;&gt;&gt; j+1); endelse beginZs[j+1] &lt;= Zs[j] + Rot[j];Xs[j+1] &lt;= Xs[j] - (Ys[j] &gt;&gt;&gt; j+1);Ys[j+1] &lt;= Ys[j] + (Xs[j] &gt;&gt;&gt; j+1); endendelse always @ (posedge clk)begin : iterZs_p[j+1] &lt;= Zs[j] - Rot[j];Zs_n[j+1] &lt;= Zs[j] + Rot[j];Xs_p[j+1] &lt;= Xs[j] + (Ys[j] &gt;&gt;&gt; j+1);Ys_p[j+1] &lt;= Ys[j] - (Xs[j] &gt;&gt;&gt; j+1);Xs_n[j+1] &lt;= Xs[j] - (Ys[j] &gt;&gt;&gt; j+1);Ys_n[j+1] &lt;= Ys[j] + (Xs[j] &gt;&gt;&gt; j+1);Zs_buf[j+1] &lt;= Zs[j];if(As[j+1] &lt; Zs_buf[j+1]) beginZs[j+1] &lt;= Zs_p[j+1];Xs[j+1] &lt;= Xs_p[j+1];Ys[j+1] &lt;= Ys_p[j+1]; end else beginZs[j+1] &lt;= Zs_n[j+1];Xs[j+1] &lt;= Xs_n[j+1];Ys[j+1] &lt;= Ys_n[j+1]; endendendendgenerate<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041f\u043e \u043b\u0438c\u0442\u0438\u043d\u0433\u0443 21 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong>PERF<\/strong> \u0440\u0430\u0432\u043d\u044b\u043c 0, \u043a\u043e\u0434 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043a\u043e\u0434 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v1<\/strong>. \u0410 \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 <strong>PERF<\/strong> \u0440\u0430\u0432\u043d\u044b\u043c 1, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u0442\u0430\u043a\u0442\u0430. \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0430\u043a\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0431\u043e\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong>Zs<\/strong>, <strong>Xs<\/strong>, <strong>Ys<\/strong> \u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0433\u043e\u043b \u043c\u0435\u043d\u044c\u0448\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e, \u0442\u0430\u043a \u0438 \u0431\u043e\u043b\u044c\u0448\u0435. \u0410 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0442\u0430\u043a\u0442\u0435 \u0443\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0434\u0435\u0442 \u0437\u0430\u0449\u0435\u043b\u043a\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u041f\u041b\u0418\u0421 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043c\u0435\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0441\u043c\u044b\u0441\u043b&#8230;<\/p>\n<p> \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RTL-Viewer \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <strong>PERF<\/strong> \u0440\u0430\u0432\u043d\u044b\u043c 1, \u0442.\u00a0\u0435. \u0441 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 (\u0440\u0438\u0441. 11):<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f8\/af6\/e7f\/9f8af6e7f537ad981f81a5c05decd751.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 11\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 11\" width=\"910\" height=\"755\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9f8\/af6\/e7f\/9f8af6e7f537ad981f81a5c05decd751.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f8\/af6\/e7f\/9f8af6e7f537ad981f81a5c05decd751.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 11<\/figcaption><\/div>\n<\/figure>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <strong>Xs[6]<\/strong> \u0438 <strong>Xs[7]<\/strong>, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b <strong>Xs_n[7]<\/strong> \u0438 <strong>Xs_p[7]<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u0431\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438 <strong>Ys<\/strong> \u0438 <strong>Zs<\/strong>.<\/p>\n<p> \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u0442.\u00a0\u0435. \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043b\u0438\u0441\u0442\u0438\u043d\u0433 18 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong>PERF<\/strong> (\u043b\u0438\u0441\u0442\u0438\u043d\u0433 22): <\/p>\n<pre><code class=\"vhdl\">generateif (!PERF)always @ (posedge clk)begin : iter_lastif(As[NUM_I] &lt; Zs[NUM_I-1]) beginXs[NUM_I] &lt;= Xs[NUM_I-1] + (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys[NUM_I] &lt;= Ys[NUM_I-1] - (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I); endelse beginXs[NUM_I] &lt;= Xs[NUM_I-1] - (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys[NUM_I] &lt;= Ys[NUM_I-1] + (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I); endendelsealways @ (posedge clk)begin : iterXs_p[NUM_I] &lt;= Xs[NUM_I-1] + (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys_p[NUM_I] &lt;= Ys[NUM_I-1] - (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I);Xs_n[NUM_I] &lt;= Xs[NUM_I-1] - (Ys[NUM_I-1] &gt;&gt;&gt; NUM_I);Ys_n[NUM_I] &lt;= Ys[NUM_I-1] + (Xs[NUM_I-1] &gt;&gt;&gt; NUM_I);Zs_buf[NUM_I] &lt;= Zs[NUM_I-1];if(As[NUM_I] &lt; Zs_buf[NUM_I]) beginXs[NUM_I] &lt;= Xs_p[NUM_I];Ys[NUM_I] &lt;= Ys_p[NUM_I]; end else beginXs[NUM_I] &lt;= Xs_n[NUM_I];Ys[NUM_I] &lt;= Ys_n[NUM_I]; endendendgenerate<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v2<\/strong> \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong>PERF<\/strong> (\u0440\u0438\u0441 12). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043c\u043e\u0434\u0443\u043b\u044f  <strong>CordicParam_v2<\/strong> \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <strong>PERF<\/strong> = 1 \u0431\u044b\u043b \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043d\u0430 17 \u0442\u0430\u043a\u0442\u043e\u0432 \u043a\u043b\u043e\u043a\u0430 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043c\u043e\u0434\u0443\u043b\u044f  <strong>CordicParam_v2<\/strong>  \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <strong>PERF<\/strong> = 0, \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 (\u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u0443\u0440\u0441\u043e\u0440\u0430\u043c\u0438 1 \u0438 2). \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0430\u0441\u044c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f. \u041e\u0431 \u044d\u0442\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 3.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a89\/677\/6df\/a896776df67e4a48b7fd942f4036c25d.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 12\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a 12\" width=\"950\" height=\"448\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a89\/677\/6df\/a896776df67e4a48b7fd942f4036c25d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a89\/677\/6df\/a896776df67e4a48b7fd942f4036c25d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 12<\/figcaption><\/div>\n<\/figure>\n<p> \u041a\u043e\u0434 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v2<\/strong> \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435:<br \/><a href=\"https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicParam_v2\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/DigitalRabbit85\/CordicDR\/tree\/main\/CordicParam_v2<\/a><\/p>\n<p> <strong>6 \u0418\u0442\u043e\u0433\u0438<\/strong><\/p>\n<p> \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0438 \u043c\u043e\u0434\u0443\u043b\u044f <strong>CordicParam_v2<\/strong> \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong>PERF<\/strong> \u0440\u0430\u0432\u043d\u044b\u043c 0 \u0438 1, \u043f\u0440\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043f\u0440\u0438 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 (\u0442\u0430\u0431\u043b\u0438\u0446\u0430 2). \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u0438 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u0446\u0435\u043b\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<p> \u0422\u0430\u0431\u043b\u0438\u0446\u0430 2<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">CordicParam_v2<br \/>PERF = 0<\/p>\n<\/td>\n<td>\n<p align=\"left\">CordicParam_v2<br \/>PERF = 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0447\u0435\u0435\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">1867<\/p>\n<\/td>\n<td>\n<p align=\"left\">3326<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">1197<\/p>\n<\/td>\n<td>\n<p align=\"left\">3071<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">177.81 \u041c\u0413\u0446<\/p>\n<\/td>\n<td>\n<p align=\"left\">242.72 \u041c\u0413\u0446<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p> \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0447\u0435\u043c \u0432 2 \u0440\u0430\u0437\u0430, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 177.81 \u0434\u043e 242.72 \u041c\u0413\u0446, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0438\u0433\u0440\u0430 \u0441\u0442\u043e\u0438\u0442 \u0441\u0432\u0435\u0447.<\/p>\n<p> \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432\u0441\u0435\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0442\u0443\u0442 \u2026 , \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0442\u0435\u0441\u0442\u0431\u0435\u043d\u0447\u0438 \u043a \u043d\u0438\u043c \u0438 \u0434\u0440.<\/p>\n<p> \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 rtl-\u043a\u043e\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CORDIC \u043c\u043e\u0436\u043d\u043e \u0438 \u0434\u0430\u043b\u044c\u0448\u0435: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0430\u0442\u043e\u0440\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 assertions. \u041d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 [3], \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u0430\u043a \u043f\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e, \u0442\u0430\u043a \u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c (\u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434). \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0430\u0432\u0442\u043e\u0440 \u0445\u043e\u0442\u0435\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0439, \u0442\u0430\u043a \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435  \u0434\u0430\u043d\u043d\u044b\u0435 \u0426\u0410\u041f \u043c\u043e\u0433\u0443\u0442 \u044d\u0442\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044f, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0437\u0430\u0442\u044f\u043d\u0443\u043b\u0430\u0441\u044c, \u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0443\u0436\u0435 \u0438 \u0442\u0430\u043a, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0443\u0442\u043e\u043c\u0438\u043b\u0441\u044f.<\/p>\n<p> \u0427\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0432 \u0441\u0432\u043e\u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0438 \u0438\u0434\u0435\u0438 \u043d\u0430 <strong>daynekod85@gmail.com<\/strong>.<\/p>\n<p><strong> \u041b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430:<\/strong><\/p>\n<p> [1] \u0414\u0430\u0439\u043d\u0435\u043a\u043e \u0414.<a href=\"https:\/\/www.kit-e.ru\/articles\/plis\/2011%5C_12%5C_36.php\" rel=\"noopener noreferrer nofollow\">\u00a0\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0430 \u041f\u041b\u0418\u0421<\/a>\u00a0\/\/ \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. 2011. \u2116 12.<br \/> [2] \u0417\u0430\u0445\u0430\u0440\u043e\u0432\u00a0\u0410.\u00a0\u0412., \u0425\u0430\u0447\u0443\u043c\u043e\u0432\u00a0\u0412.\u00a0\u041c. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b CORDIC. \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u00a0\u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b.\u00a0\u041c.: \u0424\u0438\u0437-\u043c\u0430\u0442\u043b\u0438\u0442. 2004.<br \/> [3] Uniformly Distributed CORDIC, Mario Garrido, Daniel Medina, Pedro Paz, and Marisa Lopez-Vallejo. 2025.<\/p>\n<p> P.S.: \u042d\u0442\u043e \u043c\u043e\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0448\u0443 \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0435 \u0441\u0443\u0434\u0438\u0442\u044c, \u0445\u043e\u0442\u044f \u043a\u0440\u0438\u0442\u0438\u043a\u0430, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f). \u041d\u0435 \u0441\u043c\u043e\u0433 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0441\u0442\u0440\u043e\u043a, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u0430 \u043d\u0435 \u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u044b. \u041c\u043e\u0436\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0443\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u044f \u043d\u0435 \u0441\u043c\u043e\u0433 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f. \u0422\u0430\u043a\u0436\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Verilog \u0438\u043b\u0438 SystemVerilog. \u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e VHDL. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043c\u043d\u0435 \u0443\u043a\u0430\u0436\u0443\u0442 \u043d\u0430 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f).<\/p>\n<\/div>\n<p>\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\/articles\/1038674\/\">https:\/\/habr.com\/ru\/articles\/1038674\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> 1 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 2 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u2014 CordicSimple_v1 3 \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 CordicSimple_v2 4 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u2014 CordicParam_v1 5 \u041c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2014 CordicParam_v2 6 \u0418\u0442\u043e\u0433\u0438 1 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2011 \u0433\u043e\u0434\u0443 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0431\u044b\u043b\u0430 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u00ab\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0430 \u041f\u041b\u0418\u0421\u00bb [1]. \u0412 \u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0435\u0433\u043e \u0441\u0443\u0442\u044c. \u041f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u00ab\u043d\u0430 \u0431\u0443\u043c\u0430\u0436\u043a\u0435\u00bb \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u043c \u00ab\u043f\u043e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0443\u00bb. \u0417\u0430\u0442\u0435\u043c, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0441\u0440\u0435\u0434\u0435 ModelSim. \u0410\u0432\u0442\u043e\u0440 \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u041b\u0418\u0421, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u0442\u0435\u043c\u0443. \u0414\u0430\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u044f \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u043d\u0430 \u0442\u0435\u043c\u0443 \u041f\u041b\u0418\u0421 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041d\u043e! \u0415\u0441\u043b\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044f \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0430\u0432\u0442\u043e\u0440, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e \u0441\u0432\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c, \u043c\u043e\u0440\u0449\u0438\u0442\u0441\u044f \u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0435\u0431\u044f \u043d\u0435\u043b\u043e\u0432\u043a\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c CORDIC\u0430 (\u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0434\u0438\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0432\u044f\u0437\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0432\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u0412\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u043e\u0434\u043d\u043e\u043c sv-\u043c\u043e\u0434\u0443\u043b\u0435, \u0430, \u0437\u043d\u0430\u0447\u0438\u0442, \u0435\u0433\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0433\u0447\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442 \u0432 \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0421\u0447\u0438\u0442\u0430\u044e \u043d\u0443\u0436\u043d\u044b\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CORDIC. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 (\u0420\u0438\u0441.1):\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1 \u041a\u043e\u0440\u043e\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0437\u043d\u0430\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (X0, Y0) \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0435\u0441\u043b\u0438 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u0443\u0433\u043e\u043b Z, \u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (X1, Y1), \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u044b (\u0420\u0438\u0441.2):\u0420\u0438\u0441\u0443\u043d\u043e\u043a 2 \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432 CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e tan(Z). \u0412 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0443\u0433\u043b\u0430 Z \u043e\u0442 0\u00b0 \u0434\u043e 45\u00b0 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 tan(Z) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e 1 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442, \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 tan(Z) :tan(Z)11\/21\/41\/81\/161\/32\u2026202-12-22-32-42-5 Z45\u00b0~26\u00b0~14\u00b0~7\u00b0~4\u00b0~2\u00b0\u2026 , \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 (\u0420\u0438\u0441.3):\u0420\u0438\u0441\u0443\u043d\u043e\u043a 3 , \u0430 \u043f\u0435\u0440\u0432\u044b\u0435 3 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0433\u043e\u043b \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0420\u0438\u0441.4):\u0420\u0438\u0441\u0443\u043d\u043e\u043a 4 \u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e CORDIC-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440 \u2013 CordicSimple_v1 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u2026 . \u0410 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 rtl-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f CordicSimple_v1.  2 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u2014 CordicSimple_v1 \u0428\u0430\u043f\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f CordicSimple_v1 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 1):module CordicSimple_v1 (input clk,input on,input [31:0] step,input [15:0] level,output logic [15:0] X,output logic [15:0] Y); step \u2013 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0448\u0430\u0433\u0430 \u0444\u0430\u0437\u044b \u0437\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u0442 clk. \u0412 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u2013 \u044d\u0442\u043e \u0443\u0433\u043e\u043b \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 step, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. level \u2013 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0430\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0412 \u0440\u0430\u0431\u043e\u0442\u0435 [1] \u0431\u044b\u043b\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u043f\u0440\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u22480.607), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b X \u0438 Y, \u043b\u0438\u0431\u043e, \u0441\u0440\u0430\u0437\u0443 \u0432\u0437\u044f\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443) \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 level, \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u0435\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 level. \u0422\u0430\u043a \u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c. X, Y \u2013 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 I \u0438 Q \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0410 \u0432 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u2013 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 CORDIC. \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 2):logic [31:0] acc;logic [15:0] ang [0:16];wire [1:0] quad = acc[31:30];logic signed [15:0] X0, Y0;logic signed [15:0] Xs [0:16];logic signed [15:0] Ys [0:16];logic signed [17:0] Zs [0:16];wire signed [17:0] As [0:16];  acc \u2013 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u0430\u0437\u044b. \u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u0442\u0430\u043a\u0442\u043e\u043c clk \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 step. ang \u2013 17-\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u044b\u0439 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0439 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0435  \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u0430 \u043f\u043e \u0445\u043e\u0434\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. quad \u2013 \u043d\u043e\u043c\u0435\u0440 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438, \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f 2-\u043c\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u043c\u0438 \u0431\u0438\u0442\u0430\u043c\u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b acc. \u0421\u0443\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f (\u0420\u0438\u0441.5): \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u044c X. \u0414\u0430\u043b\u0435\u0435, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u0430\u0437\u044b \u0432 acc, \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0447\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 I (quad = 2&#8217;b01). \u041a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 2 \u0431\u0438\u0442\u0430 acc \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432 2\u2019b01, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u043e\u0441\u044c Y \u0438 \u043d\u0430\u0447\u043d\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 II (quad = 2&#8217;b01). \u0412 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 III \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u044f\u0436\u0435\u0442 \u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u043e\u0441\u044c X, \u043d\u043e \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (quad = 2&#8217;b10). \u0417\u0430\u0442\u0435\u043c \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c IV \u043d\u0430 \u043e\u0441\u044c Y, \u0442\u0430\u043a\u0436\u0435 \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (quad = 2&#8217;b11). \u0417\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044e, \u0442\u0430\u043a \u043a\u0430\u043a \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0447\u043a\u0438 \u043f\u043e \u043a\u0440\u0443\u0433\u0443, \u0440\u0430\u0441\u0441\u0442\u044f\u043d\u0443\u0442\u043e\u043c \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\u0420\u0438\u0441\u0443\u043d\u043e\u043a 5 X0, Y0 \u2013 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 Xs, Ys \u2013 17 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. As \u2013 \u0421\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441 17-\u044e \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438, \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e 18 \u0431\u0438\u0442. \u0412 \u044d\u0442\u043e\u043c \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u00ab\u0442\u043e\u043b\u043a\u0430\u0435\u0442\u0441\u044f\u00bb \u043f\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0443 \u0443\u0433\u043e\u043b (\u0444\u0430\u0437\u0430) \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 2 \u0431\u0438\u0442\u0430: 1 \u0440\u0430\u0437\u0440\u044f\u0434 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u00ab\u0437\u0430\u0431\u0435\u0433\u0430\u0442\u044c\u00bb \u0437\u0430 90\u00b0 \u0438 0\u00b0, 2\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u2013 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430. Zs \u2013 17 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0434\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0437\u044b). \u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u043a\u0430\u043a \u0443 As. \u0418\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0433\u043b\u0430 ang \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u043d\u0430 2 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c As, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0431\u043b\u043e\u043a\u0438 initial \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 3).assign As[0]  = {2&#8217;h0,ang[0]};assign As[1]  = {2&#8217;h0,ang[1]};assign As[2]  = {2&#8217;h0,ang[2]};assign As[3]  = {2&#8217;h0,ang[3]};assign As[4]  = {2&#8217;h0,ang[4]};assign As[5]  = {2&#8217;h0,ang[5]};assign As[6]  = {2&#8217;h0,ang[6]};assign As[7]  = {2&#8217;h0,ang[7]};assign As[8]  = {2&#8217;h0,ang[8]};assign As[9]  = {2&#8217;h0,ang[9]};assign As[10] = {2&#8217;h0,ang[10]};assign As[11] = {2&#8217;h0,ang[11]};assign As[12] = {2&#8217;h0,ang[12]};assign As[13] = {2&#8217;h0,ang[13]};assign As[14] = {2&#8217;h0,ang[14]};assign As[15] = {2&#8217;h0,ang[15]};assign As[16] = {2&#8217;h0,ang[16]};initialbeginacc = &#8216;0;for(int i=0; i&lt;17; i++) beginZs[i] = &#8216;0;ang[i] = &#8216;0;endend \u041d\u0438\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b acc \u0438 \u0441\u0445\u0435\u043c\u0430 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430 ang \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 4):always @ (posedge clk)begin : acc_incrif (on) acc &lt;= acc + step;else acc &lt;= &#8216;0;endalways @ (posedge clk)begin : ang_pipeang[0] &lt;= acc[29:14];for(int i=0; i&lt;16; i++) ang[i+1] &lt;= ang[i];end \u041c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441: \u043f\u043e\u0447\u0435\u043c\u0443 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 acc \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c 32 \u0431\u0438\u0442\u0430, \u0430 \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u00ab\u0442\u043e\u043b\u043a\u0430\u0435\u0442\u0441\u044f\u00bb \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0440\u0448\u0438\u0435 16 \u0431\u0438\u0442. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e, \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b acc, \u0442\u0435\u043c \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0431\u043e\u0440\u0430, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f quad (\u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043e\u043a 5) (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 5):always @ (posedge clk)begin : quarterif(quad == 2&#8217;b00) beginX0 &lt;= level;Y0 &lt;= &#8216;0; endelse if(quad == 2&#8217;b01) beginX0 &lt;= &#8216;0;Y0 &lt;= level; endelse if(quad == 2&#8217;b10) beginX0 &lt;= ~level;Y0 &lt;= &#8216;0; endelse beginX0 &lt;= &#8216;0;Y0 &lt;= ~level; endend \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 6):always @ (posedge clk)begin : iter_0Zs[0] &lt;= 18&#8217;h08000;Xs[0] &lt;= X0 &#8212; Y0;Ys[0] &lt;= Y0 + X0;end \u0422\u0435\u043f\u0435\u0440\u044c, \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 3, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043f\u0440\u0438\u0432\u0435\u043b \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 [1], \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u0430\u0432\u0442\u043e\u0440 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u043b \u0438\u0437 [2]. \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u03c3i, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f zi. zi \u2013 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0443\u0433\u043b\u043e\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0444\u0430\u0437\u043e\u0439) \u0432 \u0445\u043e\u0434\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430, \u043d\u043e \u0432\u0430\u0436\u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u0443\u0433\u043b\u043e\u043c \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0443\u0433\u043b\u043e\u043c \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430, \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430.   \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043e\u043a 4. \u0422\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CORDIC. \u041d\u0430\u043c, \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0443\u0433\u043e\u043b 55\u00b0. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0433\u043e\u043b 45\u00b0 &#8212; \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0443\u0433\u043e\u043b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u03c3i \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c. \u0414\u0430\u043b\u0435\u0435 \u0432 3\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c. \u0418\u0442\u0430\u043a, \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 6 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043a\u043e\u0434 0-\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u043c\u044b \u0436\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u2013 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441 \u043d\u0443\u043b\u044f\u2026). \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439, \u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0430\u0437\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 Zs[0] = 18\u2019h08000; \u041e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d\u043e \u0432\u0437\u044f\u043b\u043e\u0441\u044c? \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0430\u044f \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 45\u00b0, \u0442.\u0435. \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043e\u0442 \u043e\u0442 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 16-\u0442\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430: 216 \/ 2 = 215 = 32768 dec = 16\u2019h8000 hex. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f arctan(2-0) \u2192 45\u00b0. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 (\u041b\u0438\u0441\u0442\u0438\u043d\u0433 7):always @ (posedge clk)begin : iter_1if(As[1] &lt; Zs[0]) beginZs[1] &lt;= Zs[0] &#8212; 18&#8217;h04b90;Xs[1] &lt;= Xs[0] + (Ys[0] &gt;&gt;&gt; 1);Ys[1] &lt;= Ys[0] &#8212; (Xs[0] &gt;&gt;&gt; 1); endelse beginZs[1] &lt;= Zs[0] + 18&#8217;h04b90;Xs[1] &lt;= Xs[0] &#8212; (Ys[0] &gt;&gt;&gt; 1);Ys[1] &lt;= Ys[0] &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-480803","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/480803","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=480803"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/480803\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=480803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=480803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=480803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}