{"id":260141,"date":"2015-06-25T21:33:02","date_gmt":"2015-06-25T17:33:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=260141"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=260141","title":{"rendered":"\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 DDS r\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u041f\u041b\u0418\u0421"},"content":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cd8\/e6b\/473\/cd8e6b473d24439fbf7faa3b87f3fc89.jpg\" align=\"left\"\/>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 AVR. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u2014 <a href=\"http:\/\/ra3ggi.qrz.ru\/UZLY\/dds.htm\">DDS<\/a>, \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"http:\/\/www.myplace.nu\/avr\/minidds\/\">Jesper<\/a> \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u2014 65534 \u0413\u0446 (\u0438 \u0434\u043e 8 \u041c\u0413\u0446 HS \u0432\u044b\u0445\u043e\u0434 \u0441 \u043c\u0435\u0430\u043d\u0434\u0440\u043e\u043c). \u0418 \u0442\u0443\u0442 \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0433\u0434\u0435 \u041f\u041b\u0418\u0421 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u0432\u0438\u0434\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u041f\u041b\u0418\u0421, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e \u0441\u0440\u043e\u043a\u0430\u043c \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u043d\u044f, \u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435, \u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435. \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c<br clear=\"right\"\/>  <br clear=\"left\"\/>  <a name=\"habracut\"><\/a><\/p>\n<h4><b>\u0414\u0435\u043d\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0439<\/b><\/h4>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3cb\/fdd\/29f\/3cbfdd29fd944a0fa8be594778569bb5.jpg\" align=\"right\"\/>\u0414\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0443\u043f\u044f\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435, \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0430\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0427\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443, \u0440\u0435\u0448\u0438\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438 \u0438 LCD \u044d\u043a\u0440\u0430\u043d\u043e\u043c, \u0430 \u0432 \u0432\u0438\u0434\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u041f\u041a \u0447\u0435\u0440\u0435\u0437 USB. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c <a href=\"http:\/\/www.dx.com\/p\/pl2303hx-usb-to-rs232-ttl-converter-adapter-module-164590#.VYl73fntlBc\">\u043f\u043b\u0430\u0442\u0430 USB2RS232<\/a>. \u041f\u043b\u0430\u0442\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 (HID), \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u044f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0438 \u043f\u043e\u0434 Linux \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c (\u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e). \u0422\u0430\u043a \u0436\u0435, \u043d\u0435 \u0431\u0443\u0434\u0443 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0441 \u043f\u0440\u0438\u0435\u043c\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u043e RS232 \u044f \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b. <a href=\"http:\/\/opencores.org\/project,uart2bus\">\u041c\u043e\u0434\u0443\u043b\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 RS232<\/a> \u0431\u0443\u0434\u0443 \u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 c <a href=\"http:\/\/opencores.com\/\">opencores.com<\/a>.<br clear=\"right\"\/>  <br \/>  \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0426\u0410\u041f. \u0422\u0438\u043f \u0426\u0410\u041f \u044f \u0432\u044b\u0431\u0440\u0430\u043b, \u043a\u0430\u043a \u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u2014 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B\">R2R<\/a> \u043d\u0430 8 \u0431\u0438\u0442. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446. \u0423\u0431\u0435\u0436\u0434\u0435\u043d, \u0447\u0442\u043e \u041f\u041b\u0418\u0421 \u0441 \u044d\u0442\u0438\u043c \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cf1\/532\/086\/cf1532086504422286febc0edbfcd0c0.jpg\" align=\"left\"\/>\u041f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0442\u043e\u0433\u043e, \u043d\u0430 \u0447\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 COM \u043f\u043e\u0440\u0442 \u044f \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 Delphi7, \u043e\u043f\u044b\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043c. \u0415\u0449\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043d\u0430\u0431\u0440\u043e\u0441\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Serial \u0432 \u0432\u0438\u0434\u0435 java \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 html \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 Chrome serial API, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u2026 \u0432 \u043e\u0431\u0449\u0435\u043c \u0442\u043e\u0436\u0435 \u043e\u0442\u043f\u0430\u0434\u0430\u0435\u0442. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b PyQt5, \u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u0449\u0438\u0442\u044c \u043a\u0443\u0447\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0432 \u0441\u043e\u0431\u0440\u0430\u0442\u044c PyQt \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 exe \u0444\u0430\u0439\u043b, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435 10 \u043c\u0431. \u0422\u043e \u0435\u0441\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 c++\\Qt5. \u0421\u0442\u043e\u0438\u0442 \u0435\u0449\u0435 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 python \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442, \u0430 \u0432\u043e\u0442 \u043d\u0430 Qt5 \u2014 \u0435\u0441\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 Qt5. \u0421 \u043f\u044f\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0442\u0430\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 serial \u0438 \u044f \u0441 \u043d\u0438\u043c \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u0410 \u0435\u0449\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Qt5 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u043e \u043d\u0430 Linux \u0438 Mac (\u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e), \u0430 \u0441 5.2 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 QWidgets \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u043e \u0434\u0430\u0436\u0435 \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d!<br clear=\"left\"\/>  <br \/>  \u0427\u0442\u043e \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e? \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043b\u0430\u0442\u0430 \u0441 \u041f\u041b\u0418\u0421. \u0423 \u043c\u0435\u043d\u044f \u0438\u0445 \u0434\u0432\u0435 (Cyclone iv EP4CE10E22C8N \u043d\u0430 10 \u0442\u044b\u0441. \u044f\u0447\u0435\u0435\u043a, \u0438 Cyclone ii EP2C5 \u043d\u0430 5 \u0442\u044b\u0441. \u044f\u0447\u0435\u0435\u043a). \u042f \u0432\u044b\u0431\u0435\u0440\u0443 \u0442\u0443, \u0447\u0442\u043e \u0441\u043b\u0435\u0432\u0430, \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u044a\u0435\u043c\u0430. \u0412 \u043f\u043b\u0430\u043d\u0435 \u043e\u0431\u044a\u0435\u043c\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u0432 \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u0434\u0432\u0443\u0445. \u041f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u043d\u0438 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f. \u041e\u0431\u0435 \u043f\u043b\u0430\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u00ab\u043d\u0430 \u0431\u043e\u0440\u0442\u0443\u00bb \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b 50 \u041c\u0413\u0446, \u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u041f\u041b\u0418\u0421 \u0435\u0441\u0442\u044c <a href=\"http:\/\/marsohod.org\/index.php\/11-blog\/212-pll\">PLL<\/a>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0441\u043c\u043e\u0433\u0443 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 200 \u041c\u0413\u0446.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fe3\/961\/a3a\/fe3961a3a89c41c2b86bae86b1ccf27f.jpg\" \/><\/div>\n<h4><b>\u0414\u0435\u043d\u044c \u043f\u0435\u0440\u0432\u044b\u0439<\/b><\/h4>\n<p>  \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c DDS \u044f \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0442\u043e \u044f \u0441\u0440\u0430\u0437\u0443 \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 \u043f\u0430\u044f\u043b\u044c\u043d\u0438\u043a \u0438 \u043d\u0430\u0447\u0430\u043b \u043f\u0430\u044f\u0442\u044c \u0426\u0410\u041f \u043d\u0430 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430\u0445. \u041f\u043b\u0430\u0442\u0443 \u0432\u0437\u044f\u043b \u043c\u0430\u043a\u0435\u0442\u043d\u0443\u044e. \u041c\u043e\u043d\u0442\u0430\u0436 \u0434\u0435\u043b\u0430\u043b \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c <a href=\"http:\/\/habrahabr.ru\/post\/238675\/\">\u043d\u0430\u043a\u0440\u0443\u0442\u043a\u0438<\/a>. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u0441\u043d\u0443\u043b\u043e\u0441\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u2014 \u044f \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 \u043a\u0438\u0441\u043b\u043e\u0442\u044b <a href=\"http:\/\/habrastorage.org\/files\/9cb\/2de\/38d\/9cb2de38d05a471babafc9b76d5f1022.jpg\">\u042438\u041d<\/a> \u0434\u043b\u044f \u043b\u0443\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0435\u043a \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 <a href=\"https:\/\/habrastorage.org\/files\/bcd\/8de\/776\/bcd8de7761954df4b730d351cc33f781.png\">\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0444\u043b\u044e\u0441-\u0433\u0435\u043b\u044f \u0422\u0422<\/a>. \u0421\u0443\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u0430: \u0432 \u043f\u0435\u0447\u0430\u0442\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u0432\u043f\u0430\u0438\u0432\u0430\u044e \u0441\u0442\u043e\u0439\u043a\u0438, \u043d\u0430 \u043d\u0438\u0445 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u0435\u0447\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0430\u0436\u0430 \u043f\u0440\u0438\u043f\u0430\u0438\u0432\u0430\u044e \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e \u043d\u0430\u043a\u0440\u0443\u0442\u043a\u043e\u0439. \u0415\u0449\u0435, \u0441\u0442\u043e\u0439\u043a\u0438 \u0443\u0434\u043e\u0431\u043d\u044b \u0442\u0435\u043c, \u0447\u0442\u043e \u044f \u0438\u0445 \u043c\u043e\u0433\u0443 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u043b\u0430\u0442\u0443 \u041f\u041b\u0418\u0421. <\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043e\u043c\u0430 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u0432 1 \u0438 2 \u043a\u0438\u043b\u043e\u043e\u043c\u0430. \u0415\u0445\u0430\u0442\u044c \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u0431\u044b\u043b\u043e \u043d\u0435\u043a\u043e\u0433\u0434\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b, \u0438 \u0432\u044b\u043f\u0430\u044f\u0442\u044c \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b. \u0422\u0430\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b 15\u041a \u0438 30\u041a. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u043d\u043a\u0435\u043d\u0448\u0442\u0435\u0439\u043d:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4d9\/8e3\/b71\/4d98e3b718db4983950b760c80f716bf.jpg\" \/><\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0430\u043b\u044c\u0448\u0435 \u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b Quartus, \u0441\u043e\u0437\u0434\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: \u041c\u0435\u043d\u044e Assigments -&gt; Device<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/208\/419\/c17\/208419c173a44b709980aea89c4f726b.png\" \/><\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0442\u0430\u043c \u0436\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u044e \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0443 \u00abDevice and Pin options\u00bb \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0438\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443\u0442. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e \u0432\u0441\u0435, \u043a\u0430\u043a \u00abUse as regular I\/O\u00bb<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/818\/3e9\/68b\/8183e968bc0d40ec9ea9f3c045dbc3ce.png\" \/><\/div>\n<\/div>\n<\/div>\n<p>  \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u044f \u00ab\u043d\u0430\u0445\u0430\u0434\u0440\u043a\u043e\u0434\u0438\u043b\u00bb \u043d\u0435\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c DDS \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0443\u043b\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 1000 \u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">module signal_generator(clk50M, signal_out);  input wire clk50M; output wire [7:0] signal_out;  wire clk200M; osc osc_200M  reg [31:0] accumulator;  assign signal_out = accumulator[31:31-7];  \/\/\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c 1000 \u0413\u0446 \/\/50 000 000 Hz - \u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \/\/2^32 = 4 294 967 296 - \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c DDS - 32 \u0431\u0438\u0442\u0430 \/\/\u0434\u0435\u043b\u0438\u043c 1000Hz \/ 50 000 000 Hz \/ 2 * 4294967296   =&gt; 42949,67296 always @(posedge clk50M) begin \taccumulator &lt;= accumulator + 32'd42949; end  endmodule<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u043b \u00abStart Compilation\u00bb, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u0434\u0430\u043b\u0430\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0430\u0441 \u043b\u0438\u043d\u0438\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043a \u043a\u0430\u043a\u0438\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c PIN&#8217;s \u043e\u043d\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a \u043b\u044e\u0431\u043e\u043c\u0443. \u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043b\u0438\u043d\u0438\u0438 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c PIN \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u041f\u041b\u0418\u0421:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e Assigments -&gt; Pin Planner<\/b><\/p>\n<div class=\"spoiler_text\">\u041d\u0430 \u043b\u0438\u043d\u0438\u0438 HS_OUT, key0 \u0438 key1 \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043e\u043d\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e\u0442\u043e\u043c, \u043d\u043e \u0441\u043a\u0440\u0438\u043d \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0443\u0441\u043f\u0435\u043b. <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/73e\/f0e\/883\/73ef0e883f914a18a1e18948cd37ad5b.png\" \/><\/div>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u00ab\u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c\u00bb \u0442\u043e\u043b\u044c\u043a\u043e PIN_nn \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 Location, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (I\/O standart, Current Strench \u0438 Slew Rate) \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043b\u0438\u0431\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0436\u0435, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (default), \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e warning&#8217;\u043e\u0432.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u043c\u0443 PIN \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u0440\u0430\u0437\u044a\u0435\u043c\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435?<\/b><\/p>\n<div class=\"spoiler_text\">\u041d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0440\u0430\u0437\u044a\u0435\u043c\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u043f\u043b\u0430\u0442\u0435<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/53e\/74a\/048\/53e74a0480f7400eae14dbc41e09d04e.jpg\" \/><\/div>\n<p>  \u0410 \u043f\u0438\u043d\u044b \u041f\u041b\u0418\u0421, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0440\u0430\u0437\u044a\u0435\u043c\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0434\u0435\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u043f\u043b\u0430\u0442\u043e\u0439 \u041f\u041b\u0418\u0421.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c55\/d6d\/005\/c55d6d00574a45cd91badbda1bc81cec.jpg\" \/><\/div>\n<p>  <\/div>\n<\/div>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u0438\u043d\u044b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e \u043f\u0440\u043e\u0435\u043a\u0442 \u0435\u0449\u0435 \u0440\u0430\u0437 \u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e USB \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 USB Byte blaster, \u0442\u043e \u0443\u043a\u0430\u0436\u0438\u0442\u0435 Windows, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435, \u043a\u0443\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Quartus. \u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043d\u0430\u0439\u0434\u0435\u0442.<\/p>\n<p>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u043d\u0443\u0436\u043d\u043e \u043a \u0440\u0430\u0437\u044a\u0435\u043c\u0443 JTAG. \u0410 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00abTools -&gt; Programmer\u00bb (\u043b\u0438\u0431\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043a \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432). \u041a\u043d\u043e\u043f\u043a\u0430 \u00abStart\u00bb, \u0440\u0430\u0434\u043e\u0441\u0442\u043d\u043e\u0435 \u00abSuccess\u00bb \u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u041f\u041b\u0418\u0421 \u0438 \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u041f\u041b\u0418\u0421, \u0430 \u0442\u043e \u043e\u043d\u0430 \u0432\u0441\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u0442.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Tools -&gt; Programmer<\/b><\/p>\n<div class=\"spoiler_text\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e6e\/bcb\/594\/e6ebcb594ab845b9b8c058e7246f85d9.png\" \/><\/div>\n<\/div>\n<\/div>\n<p>  \u0426\u0410\u041f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u0440\u0430\u0437\u044a\u0435\u043c\u0443 \u043f\u043b\u0430\u0442\u044b \u041f\u041b\u0418\u0421. \u041a \u0432\u044b\u0445\u043e\u0434\u0443 \u0426\u0410\u041f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444 \u04211-112\u0410. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u00ab\u043f\u0438\u043b\u0430\u00bb \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 8 \u0431\u0438\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u0430 DDS \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b. \u0410 \u043e\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f.<\/p>\n<p>  \u041a\u0430\u043a\u0438\u0445-\u0442\u043e 1.5 \u0447\u0430\u0441\u0430 \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432 1000 \u0413\u0446 \u044f \u0432\u0438\u0436\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u0443:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ccd\/401\/f26\/ccd401f2672e4ff285c026fdd9e6484c.jpg\" \/><\/div>\n<p>  \u0425\u043e\u0447\u0443 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u00ab\u043f\u0438\u043b\u0430\u00bb \u043f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0435\u0440\u0435\u043b\u043e\u043c. \u041e\u043d \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u2014 \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c DDS \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440. \u041f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 TimeQuest, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u00abCompilation Report\u00bb \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0445\u0435\u043c\u044b \u0432\u044b\u0448\u0435 200 \u041c\u0413\u0446 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c. \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 50 \u041c\u0413\u0446 \u044f \u0431\u0443\u0434\u0443 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PLL \u043d\u0430 4. \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b DDS \u0431\u0443\u0434\u0443 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 200 \u041c\u0413\u0446. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0447\u0430\u0441\u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432 \u043d\u0430\u0448\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 0 \u2014 100 \u041c\u0413\u0446. \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b:<\/p>\n<pre><code class=\"vhdl\"> 200 000 000 \u0413\u0446 (clk) \/ 2^32 (DDS) = 0,047 \u0413\u0446<\/code><\/pre>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c, \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c ~0.05 \u0413\u0446. \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0434\u043e\u043b\u0438 \u0433\u0435\u0440\u0446\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 (0&#8230;100 \u041c\u0413\u0446) \u0441\u0447\u0438\u0442\u0430\u044e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c, \u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c DDS (\u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c TimeQuest Timing Analyzer, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0432 CLK=200 \u041c\u0413\u0446, \u0432\u0435\u0434\u044c \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430\u0442\u043e\u0440), \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0447\u0430\u0441\u0442\u043e\u0442 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">TimeQuest Timing Analyzer<\/b><\/p>\n<div class=\"spoiler_text\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8bd\/df2\/4e7\/8bddf24e721c4ef8b27664d5e42ce83a.png\" \/><\/div>\n<\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u00ab\u043f\u0438\u043b\u0443\u00bb, \u0441\u0435\u043c\u0435\u0439\u043d\u044b\u0435 \u0434\u0435\u043b\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0435\u0445\u0430\u0442\u044c \u043d\u0430 \u0434\u0430\u0447\u0443 (\u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0436\u0435). \u0422\u0430\u043c \u044f \u043a\u043e\u0441\u0438\u043b, \u0432\u0430\u0440\u0438\u043b, \u0436\u0430\u0440\u0438\u043b \u0448\u0430\u0448\u043b\u044b\u043a \u0438 \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u043b \u043e \u0442\u043e\u043c \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u0435, \u0447\u0442\u043e \u0436\u0434\u0430\u043b \u043c\u0435\u043d\u044f \u0432\u0435\u0447\u0435\u0440\u043e\u043c. \u0423\u0436\u0435 \u0431\u043b\u0438\u0436\u0435 \u043a \u043d\u043e\u0447\u0438, \u043f\u0435\u0440\u0435\u0434 \u0441\u043d\u043e\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b 100 \u041a\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/179\/013\/c89\/179013c89e96487eac058b86d51354b9.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b 250 \u041a\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/47d\/bd3\/b19\/47dbd3b1983d4a388373be6df6b20d86.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b 500 \u041a\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b72\/c1c\/d0e\/b72c1cd0e8094b898528b965747475d2.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b 1 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e07\/937\/f68\/e07937f684e441309f144e0569d053b7.jpg\"\/><\/div>\n<\/div>\n<p>  \u041d\u0435 \u0431\u0443\u0434\u0443 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043c\u0435\u043d\u044f \u0440\u0430\u0441\u0441\u0442\u0440\u043e\u0438\u043b\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430 1\u041c\u0413\u0446 (\u0436\u0430\u043b\u043a\u0438\u0439, \u043d\u0438\u043a\u0447\u0435\u043c\u043d\u044b\u0439 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446!). \u042f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432. \u041f\u043e\u0447\u0438\u0442\u0430\u0432 \u043f\u0440\u043e R2R \u0426\u0410\u041f \u0441\u0442\u0430\u043b\u0430 \u044f\u0441\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u2014 \u043f\u0430\u0440\u0430\u0437\u0438\u0442\u043d\u044b\u0435 \u0435\u043c\u043a\u043e\u0441\u0442\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0426\u0410\u041f \u043d\u0430 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430\u0445 100 \u0438 200 \u041e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u0430 \u044d\u0442\u043e\u0442 \u0426\u0410\u041f \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445, \u0432\u0435\u0434\u044c \u0432 \u0433\u043b\u0430\u0434\u043a\u043e\u0441\u0442\u0438 \u043f\u0438\u043b\u044b \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043b\u044e\u0441.<\/p>\n<h4><b>\u0414\u0435\u043d\u044c \u0432\u0442\u043e\u0440\u043e\u0439<\/b><\/h4>\n<p>  \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0426\u0410\u041f \u043d\u0430 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430\u0445 100 \u0438 200 \u041e\u043c, \u044f \u0441\u0440\u0430\u0437\u0443 \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 \u043f\u0430\u044f\u043b\u044c\u043d\u0438\u043a. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0426\u0410\u041f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u043c, \u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0435\u0433\u043e \u043c\u043e\u043d\u0442\u0430\u0436 \u0443\u0448\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0ca\/c46\/7bb\/0cac467bb4f145ae8b727db6ee31e5ac.jpg\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/97f\/801\/685\/97f8016853a545d48be0038d1e5d9842.jpg\"\/><\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u043c \u0426\u0410\u041f \u043d\u0430 \u043f\u043b\u0430\u0442\u0443 \u041f\u041b\u0418\u0421 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043a \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0443<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4b9\/873\/56b\/4b987356b5484650b188709653002767.jpg\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c 1 \u041c\u0413\u0446 \u2014 \u0412\u041e! \u0421\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/332\/3c9\/e20\/3323c9e20dc749ccac4a422bc23d07bb.jpg\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0438\u043b\u0430 10 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ed7\/e0d\/df1\/ed7e0ddf119945e6add223e7886659f1.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0438\u043b\u0430 25 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/581\/098\/88b\/58109888b2e342b9a7b75c9da1a69685.jpg\"\/><\/div>\n<\/div>\n<p>  \u0424\u043e\u0440\u043c\u0430 \u043f\u0438\u043b\u044b \u043d\u0430 10 \u041c\u0413\u0446 \u0435\u0449\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e. \u041d\u043e \u043d\u0430 25 \u041c\u0413\u0446 \u043e\u043d\u0430 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u00ab\u043d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u0430\u044f\u00bb. \u041e\u0434\u043d\u0430\u043a\u043e, \u0443 \u04211-112\u0430 \u043f\u043e\u043b\u043e\u0441\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u2014 10 \u041c\u0413\u0446, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0436\u0435 \u0432 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0435. <\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043d\u0430 \u044d\u0442\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441 \u0441 \u0426\u0410\u041f \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043d\u0438\u043c\u0435\u043c \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0431\u0438\u0442 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 PIN \u041f\u041b\u0418\u0421. \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0438\u0442\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 DDS.<\/p>\n<pre><code class=\"vhdl\">assign hs_out  =  accumulator[31];<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u0435\u0430\u043d\u0434\u0440 1 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f9b\/488\/c7c\/f9b488c7c1de41f29b593b1c2e78f6c8.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u0435\u0430\u043d\u0434\u0440 5 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2b8\/b48\/6fc\/2b8b486fcae54072aaeb5fe6e5f94749.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u0435\u0430\u043d\u0434\u0440 25 \u041c\u0413\u0446<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f9b\/e52\/781\/f9be5278162e47ba863083ec2cec9d9b.jpg\"\/><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u0435\u0430\u043d\u0434\u0440 50 \u041c\u0413\u0446 \u0443\u0436\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0432\u0438\u0434\u0435\u043d<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/291\/d1d\/75b\/291d1d75bc344c9dbf76b9bc6c856c74.jpg\"\/><\/div>\n<\/div>\n<p>  \u041d\u043e \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u0432\u044b\u0445\u043e\u0434 \u041f\u041b\u0418\u0421 \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b \u043d\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0430 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0444\u0440\u043e\u043d\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u043a\u0440\u0443\u0447\u0435.<\/p>\n<p>  \u0421\u0438\u043d\u0443\u0441 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446\u044b 256 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e 8 \u0431\u0438\u0442. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u0437\u044f\u0442\u044c \u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0439 mif \u0444\u0430\u0439\u043b. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 ROM \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0438\u043d\u0443\u0441\u0430 \u0438\u0437 mif-\u0444\u0430\u0439\u043b\u0430. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 ROM &#8212; Tools -&gt; Mega Wizard Plugin manager<\/b><\/p>\n<div class=\"spoiler_text\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/30f\/d23\/599\/30fd2359902041c78086210ba7d24aa1.png\" \/><\/div>\n<p>  \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c 1 \u043f\u043e\u0440\u0442\u043e\u0432\u0443\u044e ROM \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044e<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f1c\/875\/788\/f1c875788d80417d92725d017cd5f317.png\" \/><\/div>\n<p>  \u0421\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/520\/510\/681\/520510681437440ea1fd654b4cdef4d7.png\" \/><\/div>\n<p>  \u0422\u0443\u0442 \u0442\u043e\u0436\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/7a6\/0c3\/540\/7a60c354018a4edaaf93d0090a29641f.png\" \/><\/div>\n<p>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e browse \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430\u0448 mif \u0444\u0430\u0439\u043b \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u0438\u043d\u0443\u0441\u0430<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/82e\/b8d\/cb3\/82eb8dcb3a084c41b2e385fe5cc1bb92.png\" \/><\/div>\n<p>  \u0422\u0443\u0442 \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u043c<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e9c\/aa9\/9c2\/e9caa99c2cf947259f772b5c1c5c3aeb.png\" \/><\/div>\n<p>  \u0421\u043d\u0438\u043c\u0430\u0435\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f sine_rom_bb.v \u2014 \u043e\u043d \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u0414\u0430\u043b\u044c\u0448\u0435 finish. \u041a\u0432\u0430\u0440\u0442\u0443\u0441 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 Verilog.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/118\/767\/182\/118767182df64592a9e8d5cfe6a0c30b.png\" \/><\/div>\n<\/div>\n<\/div>\n<p>  \u0421\u0442\u0430\u0440\u0448\u0438\u0435 8 \u0431\u0438\u0442 \u0441\u043b\u043e\u0432\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 DDS \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 ROM, \u0430 \u0432\u044b\u0445\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u043d\u0443\u0441\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">\/\/sine rom wire [7:0] sine_out; sine_rom sine1(.clock(clk200M), .address(accumulator[31:31-7]), .q(sine_out));<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0438\u043d\u0443\u0441\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442\u2026 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/280\/f1d\/414\/280f1d4148cd4134b4c6d813051c3c69.jpg\"\/><\/p>\n<p>  \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0426\u0410\u041f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u043e\u043c \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u0432:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fb5\/e67\/5e7\/fb5e675e77fb45738e7400fe0f634ee6.jpg\" \/><\/div>\n<p>  \u0427\u0442\u043e\u0436, \u043d\u0430 \u044d\u0442\u043e\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c. \u0410 \u0432\u0435\u0434\u044c \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u041f\u041e \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u041f\u041a. \u0412\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u043a\u043e\u043d\u0441\u0442\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0432 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u043e\u043a\u0438 \u044f \u043d\u0435 \u0443\u043b\u043e\u0436\u0438\u043b\u0441\u044f.<\/p>\n<h4><b>\u0414\u0435\u043d\u044c \u0442\u0440\u0435\u0442\u0438\u0439<\/b><\/h4>\n<p>  \u0412\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0430\u043b\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u0438\u0448\u0435\u043c \u043d\u0430 \u0441\u043a\u043e\u0440\u0443\u044e \u0440\u0443\u043a\u0443 (\u0432 \u043b\u0443\u0447\u0448\u0438\u0445 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u044f\u0445). \u041c\u0435\u0441\u0442\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u043a\u0432 \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0432\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u0430. \u041f\u0440\u043e\u0448\u0443 \u043f\u043e\u043d\u044f\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c.<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/aee\/794\/cbe\/aee794cbe1c14b31a899937eb0dd250d.png\" \/><\/div>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 <a href=\"https:\/\/github.com\/UA3MQJ\/fpga-signal-generator\/tree\/master\/Qt_project\/signal_generator\">GitHub<\/a>. \u0422\u0430\u043c \u0436\u0435 \u0435\u0441\u0442\u044c \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0434 windows \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041a\u043e\u0434 \u043f\u0440\u043e\u0441\u0442, \u043a\u0430\u043a 5 \u043a\u043e\u043f\u0435\u0435\u043a. \u0412 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 .pro \u043a\u0440\u043e\u043c\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c serialport:<\/p>\n<pre><code>QT       += core gui serialport<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 COM \u043f\u043e\u0440\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>        QSerialPort serial;         ...         serial.setPortName(ui-&gt;lbSerialPortInfo-&gt;currentText());         serial.setBaudRate(QSerialPort::Baud115200);         serial.setDataBits(QSerialPort::Data8);         serial.setParity(QSerialPort::NoParity);         serial.setStopBits(QSerialPort::OneStop);         serial.setFlowControl(QSerialPort::NoFlowControl);         serial.open(QIODevice::ReadWrite);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>    QByteArray source;     QDataStream stream(&source, QIODevice::ReadWrite);     stream &lt;&lt; (qint8)(01); \/\/ set freq msg     stream &lt;&lt; waveform;     stream &lt;&lt; adder32;     serial.write(source);<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h4><b>\u0414\u0435\u043d\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439<\/b><\/h4>\n<p>  \u0412 \u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e UART. \u0414\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u043e UART \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041e\u0434\u0438\u043d Baud \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 115200, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u0441\u0447\u0435\u0442\u044b, \u0438\u0441\u0445\u043e\u0434\u044f, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0443 \u043d\u0430\u0441 \u2014 200 \u041c\u0413\u0446.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0443\u043b\u044c baud_gen<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">parameter global_clock_freq = 200000000; parameter baud_rate = 115200; \/\/\u0431\u043e\u0434\u0433\u0435\u043d - \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u043e\u043a\u0430 UART \/\/ first register: \/\/ \t\tbaud_freq = 16*baud_rate \/ gcd(global_clock_freq, 16*baud_rate) \/\/Greatest Common Divisor - \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u043e\u0431\u0449\u0438\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c. http:\/\/www.alcula.com\/calculators\/math\/gcd\/ \/\/ second register: \/\/ \t\tbaud_limit = (global_clock_freq \/ gcd(global_clock_freq, 16*baud_rate)) - baud_freq    \/\/\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 parameter GCD = (baud_rate==115200) ? 12800 : 0;  parameter baud_freq  = 16*baud_rate \/ GCD; parameter baud_limit = (global_clock_freq \/ GCD) - baud_freq;  wire uart_clk; baud_gen BG(.clock(clk), .reset(rst), .ce_16(uart_clk), .baud_freq(baud_freq), .baud_limit(baud_limit));<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u0442\u0430\u0432\u043b\u044e \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f uart_clk \u0438 \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u0430 \u041f\u041b\u0418\u0421.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0443\u043b\u044c uart_rx<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">\/\/RCV wire [7:0] uart_command; wire uart_data_ready;  uart_rx URX(.clock(clk),  \t\t      .reset(rst), \t\t\t\t.ce_16(uart_clk),  \t\t\t\t.ser_in(rx),  \t\t\t\t.rx_data(uart_command),  \t\t\t\t.new_rx_data(uart_data_ready) );<\/code><\/pre>\n<\/div>\n<\/div>\n<p>   \u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u044e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440 \u0444\u043e\u0440\u043c\u044b \u0432\u043e\u043b\u043d\u044b \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u0433\u0438\u0440\u0441\u0442\u0440\u0443 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b DDS.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0443\u043b\u044c ctrl.v<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">module ctrl(clk, rst, rx, wf, adder); input wire clk, rst, rx; output wire [7:0] wf; \/\/wave form output wire [31:0] adder;\/\/ adder value  reg [7:0] wf_reg; initial wf_reg &lt;= 8'd0;  reg [31:0] adder_reg; initial adder_reg &lt;= 32'd1073741;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u043e\u0434\u0443\u043b\u044c uart_rx \u043f\u0440\u0438\u043d\u044f\u043b \u0431\u0430\u0439\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043e\u043d \u043d\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u0442 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043b\u0438\u043d\u0438\u044e uart_data_ready. \u0412 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 uart_command \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0431\u0430\u0439\u0442. \u0414\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0438\u0448\u0443 \u0441\u0442\u0435\u0439\u0442\u043c\u0430\u0448\u0438\u043d\u0443.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u0442\u0435\u0439\u0442-\u043c\u0430\u0448\u0438\u043d\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">\/\/rcv state machine parameter SM_READY     = 4'd0; parameter SM_FRQ_WF    = 4'd1; parameter SM_FRQ_DDS1  = 4'd2; parameter SM_FRQ_DDS2  = 4'd3; parameter SM_FRQ_DDS3  = 4'd4; parameter SM_FRQ_DDS4  = 4'd5;  \/\/messages parameter CMD_SETFREQ = 8'd1;  reg [3:0] rcv_state; initial rcv_state &lt;= SM_READY;  always @ (posedge clk) begin  \t \tif (uart_data_ready==1) begin \t\tif (rcv_state==SM_READY) begin \t\t\trcv_state = (uart_command==CMD_SETFREQ) ? SM_FRQ_WF : rcv_state; \t\tend else if (rcv_state==SM_FRQ_WF) begin \t\t\twf_reg &lt;= uart_command; \t\t\trcv_state &lt;= rcv_state + 1'b1; \t\tend else if (rcv_state==SM_FRQ_DDS1) begin \t\t\tadder_reg &lt;= (adder_reg &lt;&lt; 8) + uart_command; \t\t\trcv_state &lt;= rcv_state + 1'b1; \t\tend else if (rcv_state==SM_FRQ_DDS2) begin \t\t\tadder_reg &lt;= (adder_reg &lt;&lt; 8) + uart_command; \t\t\trcv_state &lt;= rcv_state + 1'b1; \t\tend else if (rcv_state==SM_FRQ_DDS3) begin \t\t\tadder_reg &lt;= (adder_reg &lt;&lt; 8) + uart_command; \t\t\trcv_state &lt;= rcv_state + 1'b1; \t\tend else if (rcv_state==SM_FRQ_DDS4) begin \t\t\tadder_reg &lt;= (adder_reg &lt;&lt; 8) + uart_command; \t\t\trcv_state &lt;= SM_READY; \t\tend else begin \t\t\trcv_state &lt;= SM_READY; \t\tend \tend \/\/ucom_ready \t end<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u044b \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u044b\u0432\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">assign adder = adder_reg; assign wf = wf_reg;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u0438\u0435\u043c\u0430 \u0432 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c ctrl \u0432 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">\/\/rs232 rcvr wire [31:0] adder_value; wire [7:0] waveform; ctrl ctrl_0(.clk(clk200M), .rst(rst), .rx(RS232in), .wf(waveform), .adder(adder_value));<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0444\u0430\u0437\u044b<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0442\u0430\u043a\u0442\u043e\u043c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">always @(posedge clk200M) begin \taccumulator &lt;= accumulator + adder_value; end<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0418\u0437 \u0441\u0442\u0430\u0440\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u043b\u043d\u043e\u0444\u043e\u0440\u043c\u044b. \u0410 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0435 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u043b\u043d\u043e\u0444\u043e\u0440\u043c\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vhdl\">\/\/ wave_forms parameter SINE      = 8'd0; parameter SAW       = 8'd1; parameter RAMP      = 8'd2; parameter TRIA      = 8'd3; parameter SQUARE    = 8'd4; parameter SAWTRI    = 8'd5; parameter NOISE     = 8'd6;  wire [7:0] saw_out = accumulator[31:31-7]; wire [7:0] noise_out = 8'd127; \/\/! wire [7:0] ramp_out = -saw_out;\t wire [7:0] square_out = (saw_out &gt; 127) ? 8'b11111111 : 1'b00000000; wire [7:0] saw_tri_out = (saw_out &gt; 7'd127) ?  -saw_out : 8'd127 + saw_out;\t wire [7:0] tri_out = (saw_out&gt;8'd191) ? 7'd127 + ((saw_out &lt;&lt; 1) - 9'd511) :                       (saw_out&gt;8'd063) ? 8'd255 - ((saw_out &lt;&lt; 1) - 7'd127) : 7'd127 + (saw_out &lt;&lt; 1); \/\/sine rom wire [7:0] sine_out; sine_rom sine1(.clock(clk200M), .address(saw_out), .q(sine_out));  wire [7:0] signal = (waveform ==     SINE) ? sine_out :                     (waveform ==      SAW) ? saw_out :                      (waveform ==     RAMP) ? ramp_out :                      (waveform ==     TRIA) ? tri_out :                     (waveform ==   SQUARE) ? square_out :                     (waveform ==   SAWTRI) ? saw_tri_out :                     (waveform ==    NOISE) ? noise_out : 8'd127; \/\/TODO<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u042f \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u0435\u043d, \u0447\u0442\u043e \u043e\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043d\u0430\u0448\u0435\u043b \u2014 \u0431\u044b\u043b\u0430 \u0432 \u0440\u0430\u0441\u0441\u0447\u0435\u0442\u0430\u0445: \u044f \u0434\u0435\u043b\u0438\u043b \u0438\u0441\u043a\u043e\u043c\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043d\u0430 CLK, \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 \u043d\u0430 \u0434\u0432\u0430, \u043f\u043e\u0442\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u043b \u043d\u0430 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430. \u041d\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 1 \u043f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043e\u0442 0 \u0434\u043e \u041c\u0410\u0425. \u0414\u0435\u043b\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 2 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u043c\u0435\u0430\u043d\u0434\u0440\u0430 \u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0431\u0438\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b (\u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u0432 2 \u0440\u0430\u0437\u0430). \u041d\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0430\u043d\u0434\u0440\u0430 \u044f \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b.<\/p>\n<h4><b>\u0414\u0435\u043d\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439<\/b><\/h4>\n<p>  \u0412 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043d\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u043e\u043c.<br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/eDHQYtqhRGM?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u041d\u0430 \u0440\u0430\u0434\u0438\u043e\u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445 \u043e\u0442 28 \u0438 \u0434\u043e 100 \u041c\u0413\u0446 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SDR \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0430\u043d\u0442\u0435\u043d\u043d\u0443 \u0440\u044f\u0434\u043e\u043c \u0441 \u043f\u043b\u0430\u0442\u043e\u0439.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/08d\/406\/e91\/08d406e9163e4294a39bb779dddf8196.jpg\" \/><\/div>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/94a\/8e2\/f8e\/94a8e2f8e9d84c428853c2e223d0b694.JPG\" \/><\/div>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/-XqECAIpqfw?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<h4><b>\u0412\u044b\u0432\u043e\u0434\u044b<\/b><\/h4>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0432 \u0418\u0422 \u2014 \u0441 \u043e\u0446\u0435\u043d\u043a\u043e\u0439 \u0441\u0440\u043e\u043a\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 2 \u2014 2.5 \u0440\u0430\u0437\u0430. \u0426\u0435\u043b\u044c \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u0430: \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0441\u043e\u0431\u0440\u0430\u043d \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043e 100 \u041c\u0413\u0446. \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0443 \u043f\u043e\u0434\u0435\u043b\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c, \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0449\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0418\u0437 \u0437\u0430 \u0441\u0440\u044b\u0432\u0430 \u0441\u0440\u043e\u043a\u043e\u0432, \u044f \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0442\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0433: 1) \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0448\u0443\u043c\u0430; 2) \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u043e\u043b\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0440\u0438\u0441\u0443\u0435\u0442 \u0441\u0430\u043c; 3) \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0449\u0435 \u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0435 \u043d\u0435\u0442 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u042f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u0441\u043c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0432 \u043f\u0440\u043e\u0435\u043a\u0442. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b:<a href=\"https:\/\/github.com\/UA3MQJ\/fpga-signal-generator\">https:\/\/github.com\/UA3MQJ\/fpga-signal-generator<\/a><\/p>\n<h4><b>\u0421\u0441\u044b\u043b\u043a\u0438 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c\u0438<\/b><\/h4>\n<p>  \u0414\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<br \/>  <a href=\"http:\/\/cxem.net\/izmer\/izmer76.php\">\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 DDS \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440.<\/a> \u0421\u043e\u0437\u0434\u0430\u043d \u0431\u0430\u0437\u0435 AVR. \u0427\u0430\u0441\u0442\u043e\u0442\u044b 0\u2026 65534 \u0413\u0446.<br \/>  <a href=\"http:\/\/cxem.net\/review\/review15.php\">\u041e\u0431\u0437\u043e\u0440 DDS-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 GK101.<\/a> \u0421\u043e\u0437\u0434\u0430\u043d \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u041f\u041b\u0418\u0421 Altera MAX240. \u0427\u0430\u0441\u0442\u043e\u0442\u044b \u0434\u043e 10 \u041c\u0413\u0446.<br \/>  <a href=\"http:\/\/cxem.net\/izmer\/izmer88.php\">\u041c\u043d\u043e\u0433\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 PIC16F870.<\/a> \u0427\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: 11 \u0413\u0446 \u2014 60 \u043a\u0413\u0446.<br \/>  <a href=\"http:\/\/cxem.net\/izmer\/izmer136.php\">\u0410\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440.<\/a> \u0427\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043a\u043e\u043b\u0435\u0431\u043b\u0435\u0442\u0441\u044f \u043e\u0442 20 \u0413\u0446 \u0434\u043e 300 \u043a\u0413\u0446 <br \/>  <a href=\"http:\/\/cxem.net\/izmer\/izmer112.php\">USB \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 AD9833.<\/a> \u041d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b DDS.<br \/>  <a href=\"http:\/\/qsl.net\/ew6gb\/mini_dds.html\">\u041c\u0438\u043d\u0438 DDS \u2014 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d 137 \u043a\u0413\u0446 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e.<\/a> \u0427\u0430\u0441\u0442\u043e\u0442\u0430 136 \u041a\u0413\u0446.     \t<\/p>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/260999\/\"> http:\/\/habrahabr.ru\/post\/260999\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cd8\/e6b\/473\/cd8e6b473d24439fbf7faa3b87f3fc89.jpg\" align=\"left\"\/>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 AVR. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u2014 <a href=\"http:\/\/ra3ggi.qrz.ru\/UZLY\/dds.htm\">DDS<\/a>, \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"http:\/\/www.myplace.nu\/avr\/minidds\/\">Jesper<\/a> \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u2014 65534 \u0413\u0446 (\u0438 \u0434\u043e 8 \u041c\u0413\u0446 HS \u0432\u044b\u0445\u043e\u0434 \u0441 \u043c\u0435\u0430\u043d\u0434\u0440\u043e\u043c). \u0418 \u0442\u0443\u0442 \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0433\u0434\u0435 \u041f\u041b\u0418\u0421 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u0432\u0438\u0434\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u041f\u041b\u0418\u0421, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e \u0441\u0440\u043e\u043a\u0430\u043c \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u043d\u044f, \u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435, \u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435. \u0427\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c<br clear=\"right\"\/>  <br clear=\"left\"\/>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-260141","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/260141","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=260141"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/260141\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}