{"id":287110,"date":"2017-05-31T08:00:03","date_gmt":"2017-05-31T04:00:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=287110"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=287110","title":{"rendered":"\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 MIPSfpga \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0427\u0430\u0441\u0442\u044c 3"},"content":{"rendered":"<p><b><\/p>\n<h2>\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 MIPSfpga \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0427\u0430\u0441\u0442\u044c 3<br \/>  <\/h2>\n<p><\/b><\/p>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <a href=\"http:\/\/store.digilentinc.com\/cmod-a7-breadboardable-artix-7-fpga-module\">cmoda7<\/a> \u043a\u0430\u043a \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c MIPSfpga (<a href=\"https:\/\/habrahabr.ru\/post\/329808\/\">\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 MIPSfpga \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0427\u0430\u0441\u0442\u044c 1<\/a>) \u043d\u0430 FPGA \u043f\u043b\u0430\u0442\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442 \u0443\u0436\u0435 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043a\u0430\u043a: basys3, nexys4, nexys4_ddr \u0444\u0438\u0440\u043c\u044b Xilinx, \u0430 \u0442\u0430\u043a \u0436\u0435 de0, de0_cv, de0_nano, de1, DE1, de10_lite, de2_115, DE2-115 \u0444\u0438\u0440\u043c\u044b Altera(Intel), \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043a\u0430\u043a \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 <a href=\"http:\/\/store.digilentinc.com\/pmod-kypd-16-button-keypad\/\">Pmod KYPD<\/a>.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a MIPSfpga-plus \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0410\u0426\u041f, \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 LCD \u043e\u0442 Nokia 5100.<br \/>  \u0421 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 MIPSFPGA \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u044f\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044d\u0442\u0430\u043f\u043e\u0432:  <\/p>\n<ul>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 (i2c, spi, \u0438 \u0442.\u0434.).<\/li>\n<li>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445\/\u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0448\u0438\u043d\u043e\u0439 AHB-Lite.<\/li>\n<li>\u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u043e\u0432 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043b\u0430\u0442\u044b.<\/li>\n<li>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f MIPS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/li>\n<\/ul>\n<p>  <b><\/p>\n<h3>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 cmoda7 \u0410\u0426\u041f<\/h3>\n<p><\/b><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/061\/11e\/9ed\/06111e9ed96546418478e21e15cdd696.JPG\"\/><br \/>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u043f\u043b\u0430\u0442\u0430 cmodA7 \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0410\u0426\u041f, pin 15 \u0438 16 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0432\u0445\u043e\u0434\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f FPGA. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0410\u0426\u041f \u043e\u0442 0-1V, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043e 3.3V. <br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/163\/30f\/a8d\/16330fa8d024420687eb1392e7ad03c2.png\"\/><\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044e XACD \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 0 \u0412 \u0438 3,3 \u0412 (\u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a GND). \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0410\u0426\u041f \u0432 Vivado \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a IP (\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438) Xilinx, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 MIPSfpga.<br \/>  <a name=\"habracut\"><\/a><br \/>  <i><b><\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f<\/h4>\n<p><\/b><\/i><br \/>  \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b\u0439 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 (\u0441\u0441\u044b\u043b\u043a\u0430). \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f IP \u0441 \u0441\u0438\u0442\u0435\u043c\u043e\u0439. \u0412 Vivado \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c Add source -&gt; Add or create design sources -&gt; Create file -&gt; (\u043d\u0430\u0437\u043e\u0432\u0435\u043c xadc) -&gt; Finish -&gt; Ok -&gt; Yes. \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Source \u043e\u0442\u043a\u0440\u043e\u0435\u043c \u0444\u0430\u0439\u043b.<br \/>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c IP.<br \/>  \u0412\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Project manager \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c IP Catalog. \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 FPGA Features and Design -&gt; XADC -&gt; XADC Wizard \u0438 \u043e\u0442\u043a\u0440\u043e\u0435\u043c.<br \/>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u043b\u043e\u043a\u0430 XADC. \u0412\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Basic \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c43\/c44\/721\/c43c447210b340aba8c603389a1571f7.png\"\/><br \/>  \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e \u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0410\u0426\u041f, \u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432.<br \/>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 ADC Setup:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/85a\/084\/0e2\/85a0840e2f384d45a9b20a6a54ceb040.png\"\/><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f80\/0b2\/a72\/f800b2a723004715968ad283458b97e9.png\"\/><\/p>\n<p>  \u0412\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Basic \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0440\u0435\u0436\u0438\u043c Single channel(\u0442\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u043a\u0430\u043d\u0430\u043b VAux4):<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/01a\/d80\/87d\/01ad8087ddff48cdb6bfb1a6e19798db.png\"\/><\/p>\n<p>  \u0416\u043c\u0435\u043c Ok -&gt; Generate. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 IP \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043c\u043e\u0434\u0443\u043b\u044c xadc:  <\/p>\n<pre><code>`timescale 1ns \/ 1ps  module xadc(    input i_clk,                 input i_rst_n,                 input i_xa_p,                 input i_xa_n,                 output reg [15:0] xadc_data             );  wire [15:0] do_out;  xadc_wiz_0 wiz              (               .daddr_in(8'h14),    \/\/ Address bus for the dynamic reconfiguration port               .dclk_in(i_clk),     \/\/ Clock input for the dynamic reconfiguration port               .den_in(1'b1),       \/\/ Enable Signal for the dynamic reconfiguration port               .di_in(16'b0),       \/\/ Input data bus for the dynamic reconfiguration port               .dwe_in(1'b0),       \/\/ Write Enable for the dynamic reconfiguration port               .vauxp4(i_xa_p),     \/\/ Auxiliary channel 4               .vauxn4(i_xa_n),               .busy_out(),         \/\/ ADC Busy signal               .channel_out(),      \/\/ Channel Selection Outputs               .do_out(do_out),     \/\/ Output data bus for dynamic reconfiguration port               .drdy_out(),         \/\/ Data ready signal for the dynamic reconfiguration port               .eoc_out(),          \/\/ End of Conversion Signal               .eos_out(),          \/\/ End of Sequence Signal               .alarm_out(),        \/\/ OR'ed output of all the Alarms                   .vp_in(1'b0),        \/\/ Dedicated Analog Input Pair               .vn_in(1'b0)              );  always @(posedge i_clk, negedge i_rst_n) if (!i_rst_n)     xadc_data &lt;= 16'b0; else     xadc_data &lt;= do_out;  endmodule<\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445\/\u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0448\u0438\u043d\u043e\u0439 AHB-Lite<\/h4>\n<p><\/b><\/i><br \/>  \u041f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b MIPSfpga \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f:<br \/>  \u0412 \u00abmfp_system\u00bb \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0441 \u043c\u043e\u0434\u0443\u043b\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438:  <\/p>\n<pre><code>    `ifdef MFP_XADC      input  I_XA_P,      input  I_XA_N,     `endif<\/code><\/pre>\n<p>  \u0441\u0438\u0433\u043d\u0430\u043b \u0442\u0438\u043f\u0430 wire \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u00abxadc\u00bb \u0438 \u00abmfp_ahb_lite_matrix_with_loader\u00bb:   <\/p>\n<pre><code>    `ifdef MFP_XADC      wire [15:0] XADC_DATA;     `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>    `ifdef MFP_XADC      .XADC_DATA        (    XADC_DATA       ),     `endif<\/code><\/pre>\n<p>  \u0418 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0430\u043c \u0435\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043c\u043e\u0434\u0443\u043b\u044f xadc:  <\/p>\n<pre><code>  `ifdef MFP_XADC     xadc xadc     (             .i_clk      (   SI_ClkIn  ),         .i_rst_n    ( ~SI_Reset     ),         .i_xa_p     (   I_XA_P      ),         .i_xa_n     (   I_XA_N      ),         .xadc_data  (   XADC_DATA   )      );     `endif<\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_lite_matrix_with_loader\u00bb:  <\/p>\n<pre><code>    `ifdef MFP_XADC         input [15:0]     XADC_DATA,     `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>    `ifdef MFP_XADC      .XADC_DATA        (    XADC_DATA       ),     `endif<\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_lite_matrix\u00bb:  <\/p>\n<pre><code>    `ifdef MFP_XADC      input [15:0]  XADC_DATA,     `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>   `ifdef MFP_XADC     .XADC_DATA        (    XADC_DATA       ),    `endif<\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_gpio_slave\u00bb \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0440\u0442:  <\/p>\n<pre><code>    `ifdef MFP_XADC      input [15:0] XADC_DATA,     `endif<\/code><\/pre>\n<p>  \u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 always \u0431\u043b\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e:  <\/p>\n<pre><code>    `ifdef MFP_XADC      `MFP_XADC_IONUM  : HRDATA &lt;= { 16'b0, XADC_DATA };     `endif<\/code><\/pre>\n<p>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043f\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 \u0442\u043e\u043f \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0443, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c\u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435:  <\/p>\n<pre><code>    input         i_xa_p,     input         i_xa_n, <\/code><\/pre>\n<p>  \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u00abmfp_system\u00bb:  <\/p>\n<pre><code>   `ifdef MFP_XADC    .I_XA_P           (   i_xa_p         ),    .I_XA_N           (   i_xa_n         ),    `endif<\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/h4>\n<p><\/b><\/i><br \/>  \u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u00abmfp_ahb_litematrix_config.vh\u00bb:<br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f\/\/\u0440\u0430\u0441\u0441\u043a\u043e\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 `ifdef MFP_XADC\u2026 `endif:  <\/p>\n<pre><code>`define MFP_XADC<\/code><\/pre>\n<p>  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0430\u0434\u0440\u0435\u0441:  <\/p>\n<pre><code>`ifdef MFP_XADC `define MFP_XADC_ADDR               32'h1f80001C `endif<\/code><\/pre>\n<p>  \u0410 \u0442\u0430\u043a \u0436\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0443\u044e \u0430\u0434\u0440\u0435\u0441:  <\/p>\n<pre><code>`ifdef MFP_XADC             `define MFP_XADC_IONUM              4'h7 `endif<\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u043e\u0432 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043b\u0430\u0442\u044b<\/h4>\n<p><\/b><\/i><br \/>  \u0412 \u0444\u0430\u0439\u043b *.xdc \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043c\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u044b. \u0412\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c \u0410\u0426\u041f \u043f\u043b\u0430\u0442\u044b cmodA7 \u0443 \u043d\u0430\u0441 \u044d\u0442\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0438\u043c\u044f ADx_P \u2014 G2, \u0438 ADx_N \u2014 G3, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0438\u0445 \u0432 \u0444\u0430\u0439\u043b:  <\/p>\n<pre><code>## Analog XADC Pins set_property -dict {PACKAGE_PIN G2 IOSTANDARD LVCMOS33} [get_ports i_xa_n] set_property -dict {PACKAGE_PIN G3 IOSTANDARD LVCMOS33} [get_ports i_xa_p] <\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f MIPS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h4>\n<p><\/b><\/i><br \/>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0410\u0426\u041f. <br \/>  \u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u0441\u0442\u0430\u0442\u044c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043a\u0430\u043a MIPSfpga, \u043f\u043e\u0442\u043e\u043c\u0443 \u0432 \u043a\u043e\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a. \u0412 \u043a\u0430\u043a\u043e\u0439 \u0442\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u044d\u0442\u043e \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u0443\u0447\u0438\u0442\u044c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0434\u0438\u0437\u0430\u0439\u043d, \u0442\u0430\u043a \u0438 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0448\u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<br \/>  \u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 Verilog(VHDL), \u0438 \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443 \u043d\u0430 \u0421\u0438 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c SPI \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<p>  \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 MIPSfpga \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u044e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <a href=\"https:\/\/community.imgtec.com\/developers\/mips\/tools\/codescape-mips-sdk\/download-codescape-mips-sdk-essentials\/\">Codescape <\/a> \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Imagination. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 Codescape SDK \u0438 OpenOCD. Codescape \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C, \u0442\u0430\u043a \u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430.<br \/>  \u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441\u043a\u0430\u0447\u0430\u043d\u043e\u0433\u043e mipsfpga plus -&gt;github-&gt;mipsfpga-plus-&gt;programs-&gt;01_light_sensor \u043e\u0442\u043a\u0440\u043e\u0435\u043c \u00abmfp_memory_mapped_registers.h\u00bb   <\/p>\n<pre><code class=\"cpp\">#define MFP_XADC_ADDR           0xBF80001\u0421 \u0438 #define MFP_XADC                (* (volatile unsigned *) MFP_XADC_ADDR          ) <\/code><\/pre>\n<p>  \u0434\u0430\u043b\u0435\u0435 \u043e\u0442\u043a\u0440\u043e\u0435\u043c main.c \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a:  <\/p>\n<pre><code class=\"cpp\">#include &quot;mfp_memory_mapped_registers.h&quot;  void delay();  int main () {     int n = 0;      for (;;)     {         MFP_7_SEGMENT_HEX = MFP_XADC &gt;&gt; 8 ; \t\tdelay();     }      return 0; }  void delay() {   volatile unsigned int j;    for (j = 0; j &lt; (1000000); j++) ;\t\/\/ delay  } <\/code><\/pre>\n<p>  \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c motorola_s_record \u0444\u0430\u0439\u043b:  <\/p>\n<pre><code class=\"cpp\">08_generate_motorola_s_record_file<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u0421\u041e\u041c \u043f\u043e\u0440\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d USB UART \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c:   <\/p>\n<pre><code class=\"cpp\">11_check_which_com_port_is_used<\/code><\/pre>\n<p>  \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0444\u0430\u0439\u043b 12_upload_to_the_board_using_uart:  <\/p>\n<pre><code class=\"cpp\">set a=7  mode com%a% baud=115200 parity=n data=8 stop=1 to=off xon=off odsr=off octs=off dtr=off rts=off idsr=off type program.rec &gt;\\.\\COM%a%<\/code><\/pre>\n<p>  \u0433\u0434\u0435 \u0430 \u2013 \u043d\u043e\u043c\u0435\u0440 \u0421\u041e\u041c \u043f\u043e\u0440\u0442\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d USB UART \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.<br \/>  \u0418 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:   <\/p>\n<pre><code class=\"cpp\">12_upload_to_the_board_using_uart<\/code><\/pre>\n<p>  \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/65c\/9fc\/cfa\/65c9fccfa6bf422d8c0ccb8d7094d070.png\"\/><br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441 \u0410\u0426\u041f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 16 \u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0435\u043c\u0443 \u043d\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u0445\u043e\u0434 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0441 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430 \u0438 \u0444\u043e\u0442\u043e\u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 8 \u0431\u0438\u0442 \u0432 \u043b\u0435\u0432\u043e \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0435\u043c\u0438\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u0441\u0435 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438.  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/ust7EdmBlik?rel=0&amp;showinfo=1\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <b><\/p>\n<h3>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f LCD \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u043e\u0442 Nokia 5100<\/h3>\n<p><\/b><br \/>  \u0412 \u0441\u0435\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 LCD \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0441\u0440\u0435\u0434\u0438 \u0430\u0440\u0434\u0443\u0438\u043d\u0449\u0438\u043a\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u043f\u0440\u043e\u0441\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u043d\u0438 \u0434\u0430\u043b\u0438 \u0435\u043c\u0443 \u0448\u0430\u043d\u0441 \u043d\u0430 \u0432\u0442\u043e\u0440\u0443\u044e \u0436\u0438\u0437\u043d\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0435\u0433\u043e \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a MIPS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438.<br \/>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u0438 \u043f\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443 \u0442\u0430\u043a, \u043a\u0430\u043a \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u044b\u0448\u0435.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/75a\/4f7\/dd1\/75a4f7dd1e5043129ca7a8b431b85334.JPG\"\/><br \/>  \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 SPI, \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0434\u043e\u043c\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043b\u0438\u043d\u0438\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043b\u0438\u0448\u044c \u0442\u0440\u0438. \u042d\u0442\u043e \u043b\u0438\u043d\u0438\u0438 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f CLK, \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0430 SCE \u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 MOSI. \u041b\u0438\u043d\u0438\u044f \u0432\u044b\u0445\u043e\u0434\u0430 MISO \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435. \u0412 Nokia 5110 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\/\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u2013 D\/C\u0305. \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u0434\u0438\u0441\u043f\u043b\u0435\u0439, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0431\u0430\u0439\u0442, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 D\/C\u0305.<\/p>\n<p>  \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/2bb\/fda\/1ed\/2bbfda1eda3240b2a4b5edf704829448.png\"\/>  <\/p>\n<table>\n<tr>\n<th>Pin<\/th>\n<th>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0435<\/th>\n<th>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u0432 XDC \u0444\u0430\u0439\u043b\u0435<\/th>\n<th>\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u043d\u0430<br \/>   FPGA <\/th>\n<th>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>34<\/td>\n<td>BL<\/td>\n<td>o_sbl<\/td>\n<td>W3<\/td>\n<td>\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430<\/td>\n<\/tr>\n<tr>\n<td>33<\/td>\n<td>Clk<\/td>\n<td>o_sck<\/td>\n<td>V2<\/td>\n<td>\u0421\u0438\u0433\u043d\u0430\u043b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>32<\/td>\n<td>Din<\/td>\n<td>o_sdo<\/td>\n<td>W2<\/td>\n<td>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<\/tr>\n<tr>\n<td>30<\/td>\n<td>DC<\/td>\n<td>o_sdc<\/td>\n<td>T2<\/td>\n<td>\u0421\u0438\u0433\u043d\u0430\u043b \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u0430\/\u0434\u0430\u043d\u043d\u044b\u0435<\/td>\n<\/tr>\n<tr>\n<td>29<\/td>\n<td>CE<\/td>\n<td>o_sce<\/td>\n<td>T1<\/td>\n<td>\u0421\u0438\u0433\u043d\u0430\u043b \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<\/tr>\n<tr>\n<td>28<\/td>\n<td>RST<\/td>\n<td>o_rst<\/td>\n<td>R2<\/td>\n<td>\u0421\u0438\u0433\u043d\u0430\u043b \u0441\u0431\u0440\u043e\u0441\u0430<\/td>\n<\/tr>\n<tr>\n<td>VCC<\/td>\n<td>Vcc<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>\u041f\u0438\u0442\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>GND<\/td>\n<td>Gnd<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>\u0417\u0435\u043c\u043b\u044f<\/td>\n<\/tr>\n<\/table>\n<p>  <i><b><\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439<\/h4>\n<p><\/b><\/i><br \/>  \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0430\u0442\u0430\u0448\u0438\u0442 \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 <a href=\"https:\/\/www.sparkfun.com\/products\/10168\">Nokia 5100 LCD Display<\/a>.<br \/>  \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u0441 MIPSfpga-plus \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442.  <\/p>\n<pre><code>\/*  * SPI interface for MIPSfpga  *\/  module mfp_lcd_spi(            input                                    clk,            input                                    i_rst_n,            input [7 : 0]                            value,            input [2 : 0]                            ctrl,            input                                    send,                        output    reg                            sdo,            output                                   sck,            output    reg                            ce,                        output    reg                            sdc,            output    reg                            sbl,            output    reg                            o_rst_n            );  parameter DIV_WIDTH = 16;   \/\/ Width counter   reg [DIV_WIDTH - 1:0] counter; reg [7:0]  data_r; reg [3:0] bit_count_r;   \/\/ register for control signal always @(posedge clk, negedge i_rst_n)    if (!i_rst_n) begin  \t   sdc     &lt;= 1'b0;        sbl     &lt;= 1'b0; \t   o_rst_n &lt;= 1'b0;     end else begin         sdc     &lt;= ctrl[0];        sbl     &lt;= ctrl[1]; \t   o_rst_n &lt;= ctrl[2];     end \/\/       assign sck = (counter[DIV_WIDTH - 1]);   \/\/ counter for low frequency spi out always @(posedge clk, negedge i_rst_n)    if (!i_rst_n ) begin \t    counter &lt;= {DIV_WIDTH{1'b0}};    end else if (!ce) \t    counter &lt;= counter + 1'b1;    else  \t    counter &lt;= {DIV_WIDTH{1'b0}};   \/\/ shift register for sending data always @(posedge clk, negedge i_rst_n) \tif (!i_rst_n) begin  \t\tdata_r &lt;= 8'b0; \t\tsdo &lt;= 1'b0; \t\tbit_count_r &lt;= 4'b1001;  \tend else if (bit_count_r != 4'b1001 && counter == 0) begin \t\t \t\tsdo &lt;= data_r[7]; \t\tdata_r &lt;= data_r &lt;&lt; 1; \t\tbit_count_r &lt;= bit_count_r + 1'b1;   \tend else if (send && ce) begin \t \t\tdata_r &lt;= value;  \t\tbit_count_r &lt;= 4'b0000; \t \tend \/\/  \/\/control register for allow data transfer always @(posedge clk, negedge i_rst_n) \tif (!i_rst_n) begin \t\tce &lt;= 1'b1; \tend else if (!send && bit_count_r == 4'b1001) \t\tce &lt;= 1'b1; \telse  \t\tce &lt;= 1'b0; \/\/\t\t \t\t endmodule<\/code><\/pre>\n<p>  \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0434\u0443\u043b\u044f SPI:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/a82\/bd4\/e5b\/a82bd4e5b5904c388fd67f53bbfd373f.png\"\/><br \/>  <i><b><\/p>\n<h4>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445\/\u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0448\u0438\u043d\u043e\u0439 AHB-Lite<\/h4>\n<p><\/b><\/i><\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u00abmfp_system\u00bb:  <\/p>\n<pre><code>    `ifdef MFP_LCD_5100             output                                  IO_CE,      output                                  SDO,      output                                  SCK,      output                                  SDC,      output                                  SBL,      output                                  RST,     `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>     `ifdef MFP_LCD_5100       wire [`MFP_LCD_5100_WIDTH      - 1:0] IO_LCD_5100;       wire [`MFP_SEND_WIDTH          - 1:0] IO_SEND;       wire [`MFP_CTRL_WIDTH          - 1:0] IO_CTRL;      `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>     `ifdef MFP_LCD_5100      .IO_LCD_5100      (   IO_LCD_5100      ),      .IO_SEND          (   IO_SEND          ),      .IO_CE            (   IO_CE            ),      .IO_CTRL          (   IO_CTRL          ),      `endif<\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_lite_matrix_with_loader\u00bb:  <\/p>\n<pre><code>     `ifdef MFP_LCD_5100       output [`MFP_LCD_5100_WIDTH      - 1:0] IO_LCD_5100,       input  [`MFP_CE_WIDTH            - 1:0] IO_CE,       output [`MFP_SEND_WIDTH          - 1:0] IO_SEND,       output [`MFP_CTRL_WIDTH          - 1:0] IO_CTRL,      `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100       .IO_LCD_5100      ( IO_LCD_5100     ),       .IO_CE            ( IO_CE           ),       .IO_SEND          ( IO_SEND         ),       .IO_CTRL          ( IO_CTRL         ),       `endif <\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_lite_matrix\u00bb:  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100        output [`MFP_LCD_5100_WIDTH      - 1:0] IO_LCD_5100,        input  [`MFP_CE_WIDTH            - 1:0] IO_CE,        output [`MFP_SEND_WIDTH          - 1:0] IO_SEND,        output [`MFP_CTRL_WIDTH          - 1:0] IO_CTRL,       `endif     <\/code><\/pre>\n<p>  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100        .IO_LCD_5100      ( IO_LCD_5100     ),       .IO_CE            ( IO_CE           ),       .IO_SEND          ( IO_SEND         ),       .IO_CTRL          ( IO_CTRL         ),       `endif<\/code><\/pre>\n<p>  \u0412 \u00abmfp_ahb_gpio_slave\u00bb \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100        output reg [`MFP_LCD_5100_WIDTH      - 1:0] IO_LCD_5100,        input      [`MFP_CE_WIDTH            - 1:0] IO_CE,        output reg [`MFP_SEND_WIDTH          - 1:0] IO_SEND,        output reg [`MFP_CTRL_WIDTH          - 1:0] IO_CTRL,       `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100         IO_LCD_5100     &lt;= `MFP_LCD_5100_WIDTH'b0;        IO_CTRL         &lt;= `MFP_CTRL_WIDTH'b0;        IO_SEND         &lt;= `MFP_SEND_WIDTH'b0;       `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>      `ifdef MFP_LCD_5100              `MFP_LCD_5100_IONUM      : IO_LCD_5100     &lt;= HWDATA [`MFP_LCD_5100_WIDTH      - 1:0];       `MFP_CTRL_IONUM          : IO_CTRL         &lt;= HWDATA [`MFP_CTRL_WIDTH          - 1:0];       `MFP_SEND_IONUM          : IO_SEND         &lt;= HWDATA [`MFP_SEND_WIDTH          - 1:0];         `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>`ifdef MFP_LCD_5100 `MFP_LCD_5100_IONUM: HRDATA &lt;= { { 32 - `MFP_LCD_5100_WIDTH{ 1'b0 } } ,IO_LCD_5100         }; `MFP_CTRL_IONUM: HRDATA     &lt;= { { 32 - `MFP_CTRL_WIDTH    { 1'b0  } } ,IO_CTRL}; `MFP_SEND_IONUM: HRDATA     &lt;= { { 32 - `MFP_SEND_WIDTH    { 1'b0 } } ,IO_SEND}; `MFP_CE_IONUM: HRDATA       &lt;= { { 32 - `MFP_CE_WIDTH      { 1'b0 } } ,IO_CE}; `endif<\/code><\/pre>\n<p>  \u0412 \u0442\u043e\u043f \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u043d\u0430 \u043f\u043b\u0430\u0442\u0443:  <\/p>\n<pre><code>    `ifdef MFP_LCD_5100      output o_rst,              o_ce,             o_sdc,             o_sdo,             o_sck,             o_sbl,     `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>        `ifdef MFP_LCD_5100         .IO_CE            (    o_ce          ),         .SDO              (    o_sdo         ),         .SCK              (    o_sck         ),         .SDC              (    o_sdc         ),         .SBL              (    o_sbl         ),         .RST              (    o_rst         ),         `endif<\/code><\/pre>\n<p>  <i><b> <\/p>\n<h4>\u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/h4>\n<p><\/b><\/i><br \/>  \u0412 \u0444\u0430\u0439\u043b \u00abmfp_ahb_lite_matrix_config.vh\u00bb \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f:  <\/p>\n<pre><code>`define MFP_LCD_5100<\/code><\/pre>\n<p>  <\/p>\n<pre><code>`ifdef MFP_LCD_5100 `define MFP_LCD_5100_WIDTH          9 `define MFP_SEND_WIDTH              1 `define MFP_CE_WIDTH                1 `define MFP_CTRL_WIDTH              3 `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>`ifdef MFP_LCD_5100 `define MFP_LCD_5100_ADDR           32'h1f800020 `define MFP_SEND_ADDR               32'h1f800024 `define MFP_CE_ADDR                 32'h1f800028 `define MFP_CTRL_ADDR               32'h1f80002C `endif<\/code><\/pre>\n<p>  <\/p>\n<pre><code>`ifdef MFP_LCD_5100 `define MFP_LCD_5100_IONUM          4'h8 `define MFP_SEND_IONUM              4'h9 `define MFP_CE_IONUM                5'hA `define MFP_CTRL_IONUM              5'hB         `endif<\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u043e\u0432 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043b\u0430\u0442\u044b<\/h4>\n<p><\/b><\/i><br \/>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u044b \u0434\u043b\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u0432 XDC \u0444\u0430\u0439\u043b:  <\/p>\n<pre><code>### GPIO Pins 33 - 40 LCD set_property -dict {PACKAGE_PIN W3 IOSTANDARD LVCMOS33} [get_ports o_sbl] set_property -dict {PACKAGE_PIN V2 IOSTANDARD LVCMOS33} [get_ports o_sck] set_property -dict {PACKAGE_PIN W2 IOSTANDARD LVCMOS33} [get_ports o_sdo] set_property -dict {PACKAGE_PIN T2 IOSTANDARD LVCMOS33} [get_ports o_sdc] set_property -dict {PACKAGE_PIN T1 IOSTANDARD LVCMOS33} [get_ports o_ce] set_property -dict {PACKAGE_PIN R2 IOSTANDARD LVCMOS33} [get_ports o_rst] <\/code><\/pre>\n<p>  <i><b><\/p>\n<h4>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f MIPS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h4>\n<p><\/b><\/i><br \/>  \u0412 \u00abmfp_memory_mapped_registers.h\u00bb:  <\/p>\n<pre><code class=\"cpp\">#define MFP_LCD_5100_ADDR  \t\t0xBF800020 #define MFP_SEND_ADDR   \t\t0xBF800024 #define MFP_CE_ADDR      \t\t0xBF800028 #define MFP_CTRL_ADDR    \t\t0xBF80002C<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"cpp\">#define value                   (* (volatile unsigned *) MFP_LCD_5100_ADDR      ) #define ctrl                    (* (volatile unsigned *) MFP_CTRL_ADDR          ) #define send                    (* (volatile unsigned *) MFP_SEND_ADDR          ) #define ce                      (* (volatile unsigned *) MFP_CE_ADDR            )<\/code><\/pre>\n<p>  \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 main.c:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">main.c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &quot;mfp_memory_mapped_registers.h&quot; #include &lt;stdlib.h&gt;  void delay(int delay);  \t\t\/\/ \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 void waitTillLCDDone(); \t\t\/\/ \u0436\u0434\u0451\u043c \u043f\u043e\u043a\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430  void init();\t\t\t\t\/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f void start_image();\t\t\t\/\/ \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 void disp_picture();\t\t\t\/\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 void gotoXY(int x, int y);              \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b void send_byte(int command, int data);\t\/\/ \u043e\u0442\u0440\u0430\u0432\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 void clear_disp();\t\t\t\/\/ \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u044f  int main () {\t \tinit (); \tstart_image(); \tdelay(1000); }  void init(){ unsigned int lcd_cmd[7] = {0x21, 0x13, 0x04, 0xC0, 0x20, 0x0C, 0x08};  unsigned int i;      for (i=0; i&lt;7; i++) { \tsend_byte(0x06, lcd_cmd[i]);   } }  void start_image (){ unsigned int screen[504] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x07, 0x03, 0x83, 0x81, 0xC1, 0xC1, 0xE1, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC1, 0xC1, 0xC1, 0x83, 0x83, 0x07, 0x07, 0x0F, 0x1F, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x03, 0x01, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF0, 0xC0, 0x00, 0x00, 0x01, 0x07, 0x3F, 0xF3, 0xC3, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF0, 0xC0, 0x80, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x3F, 0x1F, 0x1F, 0x0F, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF8, 0xF8, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  };      unsigned int i; \tgotoXY(0, 0);    for (i=0; i&lt;504; i++) {\t \tsend_byte(0x7, screen[i]);   }      disp_picture();    for (i=0; i &lt; 4; i++){ \t  send_byte(0x06, 0x0D); \t  delay(1000); \t  send_byte(0x06, 0x0C); \t  delay(1000);   } }  void send_byte(int command, int data){  \tctrl = command; \tvalue = data; \tsend = 1; \tsend = 0; \twaitTillLCDDone(); \twaitTillLCDDone();  }  void waitTillLCDDone() {   do {      } while (!ce);   }     void disp_picture(){ \tsend_byte(0x06, 0x0C); \t}  void clear_disp(){ \tsend_byte(0x06, 0x08); } \t void gotoXY(int x, int y) {   send_byte(0x6, 0x80 | x);  \/\/ Column.   send_byte(0x6, 0x40 | y);  \/\/ Row.  ?  }  void delay(int delay)  {   volatile unsigned int j;   delay = delay * 5000;   for (j = 0; j &lt; (delay); j++) ;\t\/\/ delay  }   <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438 \u0438\u043c\u0435\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0443 Imagination Technologies, \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044f.  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/SoaQsgOOlFI?rel=0&amp;showinfo=1\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  \u0412\u044b\u0440\u0430\u0436\u0430\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c:<br \/>   \u2014 \u042e\u0440\u0438\u044e \u041f\u0430\u043d\u0447\u0443\u043b\u0443 (@YuriPanchul) \u0437\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u044b cmodA7.<br \/>   \u2014 \u0415\u0432\u0433\u0435\u043d\u0438\u044e \u041a\u043e\u0440\u043e\u0442\u043a\u043e\u043c\u0443 \u2014 \u0434\u043e\u0446\u0435\u043d\u0442\u0443 \u043a\u0430\u0444\u0435\u0434\u0440\u044b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e-\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b \u0444\u0430\u043a\u0443\u043b\u044c\u0442\u0435\u0442\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438, \u0437\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0441\u0435\u0449\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043a\u0430\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438 <a href=\"https:\/\/www.facebook.com\/lampa.kpi\/?fref=ts\">Lampa<\/a>.<br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/329854\/\"> https:\/\/habrahabr.ru\/post\/329854\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><b><\/p>\n<h2>\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 MIPSfpga \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0427\u0430\u0441\u0442\u044c 3<br \/>  <\/h2>\n<p><\/b><\/p>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <a href=\"http:\/\/store.digilentinc.com\/cmod-a7-breadboardable-artix-7-fpga-module\">cmoda7<\/a> \u043a\u0430\u043a \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c MIPSfpga (<a href=\"https:\/\/habrahabr.ru\/post\/329808\/\">\u041f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 MIPSfpga \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0427\u0430\u0441\u0442\u044c 1<\/a>) \u043d\u0430 FPGA \u043f\u043b\u0430\u0442\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442 \u0443\u0436\u0435 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043a\u0430\u043a: basys3, nexys4, nexys4_ddr \u0444\u0438\u0440\u043c\u044b Xilinx, \u0430 \u0442\u0430\u043a \u0436\u0435 de0, de0_cv, de0_nano, de1, DE1, de10_lite, de2_115, DE2-115 \u0444\u0438\u0440\u043c\u044b Altera(Intel), \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043a\u0430\u043a \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 <a href=\"http:\/\/store.digilentinc.com\/pmod-kypd-16-button-keypad\/\">Pmod KYPD<\/a>.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a MIPSfpga-plus \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0410\u0426\u041f, \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 LCD \u043e\u0442 Nokia 5100.<br \/>  \u0421 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0432 MIPSFPGA \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u044f\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044d\u0442\u0430\u043f\u043e\u0432:  <\/p>\n<ul>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0435\u0439 (i2c, spi, \u0438 \u0442.\u0434.).<\/li>\n<li>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445\/\u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0448\u0438\u043d\u043e\u0439 AHB-Lite.<\/li>\n<li>\u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u043e\u0432 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043b\u0430\u0442\u044b.<\/li>\n<li>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f MIPS \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/li>\n<\/ul>\n<p>  <b><\/p>\n<h3>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 cmoda7 \u0410\u0426\u041f<\/h3>\n<p><\/b><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/061\/11e\/9ed\/06111e9ed96546418478e21e15cdd696.JPG\"\/><br \/>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u043f\u043b\u0430\u0442\u0430 cmodA7 \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0410\u0426\u041f, pin 15 \u0438 16 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0432\u0445\u043e\u0434\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f FPGA. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0410\u0426\u041f \u043e\u0442 0-1V, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043e 3.3V. <br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/163\/30f\/a8d\/16330fa8d024420687eb1392e7ad03c2.png\"\/><\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044e XACD \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 0 \u0412 \u0438 3,3 \u0412 (\u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a GND). \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0410\u0426\u041f \u0432 Vivado \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a IP (\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438) Xilinx, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 MIPSfpga.  <\/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-287110","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/287110","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=287110"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/287110\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=287110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=287110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=287110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}