{"id":495693,"date":"2026-09-23T07:36:32","date_gmt":"2026-09-23T07:36:32","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=495693"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=495693","title":{"rendered":"\u041a\u0430\u043a \u0434\u0438\u043b\u0435\u0442\u0430\u043d\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0418\u043d\u0442\u0435\u043b 8080 \u0438\u0437\u0443\u0447\u0430\u043b"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u0441\u0442\u0430\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e <a href=\"https:\/\/github.com\/1801BM1\/vm80a\/blob\/master\/org\/rtl\/vm80a.v\" rel=\"noopener nofollow\">\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog<\/a> \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0430 \u0435\u0433\u043e \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u043e\u043d\u0430 \u2014 \u041a\u0420580\u0412\u041c80\u0410. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442. \u0423\u0441\u0442\u0440\u043e\u0435\u043d 8080 \u043f\u0440\u043e\u0441\u0442\u043e, \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 Verilog.<\/p>\n<h3>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c <a href=\"https:\/\/deramp.com\/downloads\/intel\/8080%20Data%20Sheet.pdf\" rel=\"noopener nofollow\">\u0434\u0430\u0442\u0430\u0448\u0438\u0442<\/a> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. Intel \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 8080, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u0442\u0430\u043a\u0442\u0430\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432.<\/p>\n<p>\u041d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d 8080, \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 SAP-1 \u0438\u0437 \u043a\u043d\u0438\u0433\u0438 Malvino \u00abDigital Computer Electronics\u00bb.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u0444\u0430\u0437\u043d\u044b\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b f1, f2. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c Verilog-\u043a\u043e\u0434\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b clk \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0445\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0435\u0433\u043e \u0444\u0440\u043e\u043d\u0442\u0443. \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 FPGA-\u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed9\/1bf\/4d5\/ed91bf4d55465d5cd36df855074af2d5.png\" alt=\"\u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ed9\/1bf\/4d5\/ed91bf4d55465d5cd36df855074af2d5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed9\/1bf\/4d5\/ed91bf4d55465d5cd36df855074af2d5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b<\/figcaption><\/div>\n<\/figure>\n<h3>\u0427\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434<\/h3>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 vm80a.v, \u0432\u043e\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f:<\/p>\n<details class=\"spoiler\">\n<summary>\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_de<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr2<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_hl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr3<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_bc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr4<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxr5<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_wz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxo<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxi<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxwadr<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxw16<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxwl<\/p>\n<\/td>\n<td>\n<p align=\"left\">data_TO_r16_low<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxwh<\/p>\n<\/td>\n<td>\n<p align=\"left\">data_TO_r16_high<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxrl<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_low_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mxrh<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_high_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_xout<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_xr_TO_x_inv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_xwr<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_xrd<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_xr_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_ald<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_s_TO_acc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_awr<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_data_TO_acc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_ard<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_acc_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_rld<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_acc_TO_r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_r00<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_minus1_TO_r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_rwr<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_data_TO_r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_srd<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_s_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_zrd<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_00_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_frd<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_psw_TO_data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">psw_ld<\/p>\n<\/td>\n<td>\n<p align=\"left\">data_TO_psw<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">psw_wr<\/p>\n<\/td>\n<td>\n<p align=\"left\">res_TO_psw<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<h2>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h2>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/p>\n<h3>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b<\/h3>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b PC, SP \u0438 8-\u0431\u0438\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b B, C, D, E, H, L, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u0440\u044b. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 A (\u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0410\u041b\u0423 \u0438 \u0437\u0434\u0435\u0441\u044c \u0435\u0433\u043e \u043d\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b W, Z \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043d\u0443\u0436\u0434 \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b.<\/p>\n<pre><code>reg   [15:0] r16_pc, r16_hl, r16_de, r16_bc, r16_sp, r16_wz, r16_val;wire  [15:0] addr_plus;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u0430\u044f \u043f\u0430\u0440\u0430, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 sel_pc. 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c (\u043d\u0430 \u0448\u0438\u043d\u0443 \u0430\u0434\u0440\u0435\u0441\u0430 a) \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 addr_plus_TO_r16, r16_val_TO_addr. 8-\u0431\u0438\u0442\u043d\u043e\u0435 (\u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 d) \u2014 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 data_TO_r16_high, data_TO_r16_low, r16_val_high_TO_data, r16_val_low_TO_data.<\/p>\n<pre><code>wire sel_pc, sel_de, sel_hl, sel_bc, sel_sp, sel_wz;wire data_TO_r16_high, data_TO_r16_low, r16_val_high_TO_data, r16_val_low_TO_data, addr_plus_TO_r16, r16_val_TO_addr;\/\/\u0432\u044b\u0431\u043e\u0440 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u044balways @ (*)case ({sel_pc, sel_de, sel_hl, sel_bc, sel_sp, sel_wz})   6'b100000:  r16_val = r16_pc;   6'b010000:  r16_val = r16_hl;   6'b001000:  r16_val = r16_de;   6'b000100:  r16_val = r16_bc;   6'b000010:  r16_val = r16_sp;   6'b000001:  r16_val = r16_wz;   default:    r16_val = 16'h0000;endcasealways @ (posedge clk)if (f2)begin   \/\/16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435   if (r16_val_TO_addr) a &lt;= r16_val;   \/\/16-\u0431\u0438\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c   if (addr_plus_TO_r16)      begin         if (sel_pc) r16_pc &lt;= addr_plus;         if (sel_de) r16_hl &lt;= addr_plus;         if (sel_hl) r16_de &lt;= addr_plus;         if (sel_bc) r16_bc &lt;= addr_plus;         if (sel_sp) r16_sp &lt;= addr_plus;         if (sel_wz) r16_wz &lt;= addr_plus;      end   else      begin         \/\/8-\u0431\u0438\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c         if (data_TO_r16_low)            begin               if (sel_pc) r16_pc[7:0] &lt;= d;               if (sel_de) r16_hl[7:0] &lt;= d;               if (sel_hl) r16_de[7:0] &lt;= d;               if (sel_bc) r16_bc[7:0] &lt;= d;               if (sel_sp) r16_sp[7:0] &lt;= d;               if (sel_wz) r16_wz[7:0] &lt;= d;            end         if (data_TO_r16_high)            begin               if (sel_pc) r16_pc[15:8] &lt;= d;               if (sel_de) r16_hl[15:8] &lt;= d;               if (sel_hl) r16_de[15:8] &lt;= d;               if (sel_bc) r16_bc[15:8] &lt;= d;               if (sel_sp) r16_sp[15:8] &lt;= d;               if (sel_wz) r16_wz[15:8] &lt;= d;            end      endend\/\/8-\u0431\u0438\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435assign d    = \/\/...               | r16_val_low_TO_data &amp; r16_val[7:0]               | r16_val_high_TO_data &amp; r16_val[15:8]               | \/\/...               ;\/\/16-\u0431\u0438\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044cassign addr_plus = inc16 ? (a + 16'h0001)                  : dec16 ? (a - 16'h0001)                  : a;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0410\u041b\u0423<\/h3>\n<p>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 8080 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0430\u0434\u0440\u0435\u0441\u043d\u044b\u043c \u2014 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440 A).<\/p>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0410\u041b\u0423 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 r, \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 \u0432 x, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 s.<\/p>\n<pre><code>reg   [7:0]    xr, r, acc;wire  [7:0]    x, s, c;wire           cl, ch;reg            psw_z, psw_s, psw_p, psw_c, psw_ac, tmp_c;assign s  = {7'b0000000, id_rlc &amp; c[7]}          | ((id_rxc | id_ora | id_ana | id_xra) ? 8'h00 : (x + r + cl))          | (id_rxc  ? {ch, r[7:1]} : 8'h00)          | (id_ora  ? (x | r) : 8'h00)          | (id_ana  ? (x &amp; r) : 8'h00)          | (id_xra  ? (x ^ r) : 8'h00);assign cl = (id_daa | id_rlc | id_ora | id_xra | id_rxc) ? 0 : tmp_c;assign ch = id_rar ? tmp_c | r[0];assign c[0] = (r[0] &amp; x[0]) | (cl &amp; (r[0] | x[0]));assign c[1] = (r[1] &amp; x[1]) | (c[0] &amp; (r[1] | x[1]));assign c[2] = (r[2] &amp; x[2]) | (c[1] &amp; (r[2] | x[2]));assign c[3] = (r[3] &amp; x[3]) | (c[2] &amp; (r[3] | x[3]));assign c[4] = (r[4] &amp; x[4]) | (c[3] &amp; (r[4] | x[4]));assign c[5] = (r[5] &amp; x[5]) | (c[4] &amp; (r[5] | x[5]));assign c[6] = (r[6] &amp; x[6]) | (c[5] &amp; (r[6] | x[6]));assign c[7] = (r[7] &amp; x[7]) | (c[6] &amp; (r[7] | x[7]));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = (x + r + cl).<\/p>\n<p>\u0414\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 (x | r), (x &amp; r), \u0438\u043b\u0438 (x ^ r).<\/p>\n<p>\u0414\u043b\u044f \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043b\u0435\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = (x + r + cl), \u043f\u0440\u0438 \u044d\u0442\u043e\u043c x \u0438 r \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043f\u0440\u0430\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = {ch, r[7:1]}.<\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>alu_xr_TO_x_inv \u2014 \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442,<\/p>\n<\/li>\n<li>\n<p>alu_data_TO_xr \u2014 \u0432\u0437\u044f\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_xr_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_s_TO_acc \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440,<\/p>\n<\/li>\n<li>\n<p>alu_data_TO_acc \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_acc_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_acc_TO_r \u2014 \u0432\u0437\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430,<\/p>\n<\/li>\n<li>\n<p>alu_minus1_TO_r \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c -1,<\/p>\n<\/li>\n<li>\n<p>alu_data_TO_r \u2014 \u0432\u0437\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_s_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_00_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c 0 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>alu_psw_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043b\u0430\u0433\u0438 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0438 \u0442.\u043f.) \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,<\/p>\n<\/li>\n<li>\n<p>t2175 \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 tmp_c \u0438\u0437 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430,<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 tmp_c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<pre><code>wire alu_xr_TO_x_inv, alu_data_TO_xr, alu_xr_TO_data, alu_s_TO_acc, alu_data_TO_acc, alu_acc_TO_data,     alu_acc_TO_r, alu_minus1_TO_r, alu_data_TO_r, alu_s_TO_data, alu_00_TO_data, alu_psw_TO_data;reg  data_TO_psw, res_TO_psw;\/\/alu_xr_TO_x_invassign x = alu_xr_TO_x_inv ? ~xr : xr;\/\/alu_xr_TO_dataassign d    = ~alu_00_TO_data &amp; (               \/\/...               | alu_xr_TO_data &amp; xr               | alu_acc_TO_data &amp; acc               | alu_psw_TO_data &amp; psw_s               | alu_s_TO_data &amp; s               \/\/...               );always @(posedge clk)begin   if (f1)      begin         t2133 &lt;= ~id_rxc &amp; c[7];      end   if (f2)      begin         if (alu_data_TO_xr) xr &lt;= id_rst ? (i &amp; 8'b00111000) : d;         if (alu_data_TO_acc) acc &lt;= d;         if (alu_s_TO_acc) acc &lt;= s;         if (alu_acc_TO_r) r &lt;= acc;         if (alu_data_TO_r) r &lt;= d;         if (alu_minus1_TO_r) r &lt;= 8'hff;         if (data_TO_psw)            begin               psw_c  &lt;= d[0];                psw_p  &lt;= d[2];               psw_z  &lt;= d[6];               psw_s  &lt;= d[7];            end         if (res_TO_psw)            begin               psw_p  &lt;= ~(^s);               psw_z  &lt;= ~(|s);               psw_s  &lt;= s[7];            end         if (t2222)            begin               if (id_xra | id_stc | id_ora | id_ana | id_cmc)                  psw_c &lt;= ~tmp_c;               if (id_cmp | id_sbb | id_sub)                  psw_c &lt;= ~(t2133 | id_rxc &amp; x[0]);               if (id_dad | id_sha | id_adc | id_add)                  psw_c &lt;= t2133 | id_rxc &amp; x[0];            end         if (t2175)            tmp_c &lt;= psw_c;         if (t4f1)            begin               if (id_sbb)                  tmp_c &lt;= ~psw_c;               if (id_inr | id_ora | id_xra | id_ana | id_cmp | id_sub)                  tmp_c &lt;= 1'b1;               if (id_dad | id_cma | id_dcr | id_add | id_stc)                  tmp_c &lt;= 1'b0;            end      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h2>\n<p>\u042d\u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043a\u043b\u0430\u0441\u0441\u044b, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043e\u0431\u0449\u0435\u0435. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b \u0441 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0441\u043c\u044b\u0441\u043b\u043e\u043c: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, id_1cycle, id_4cycle, id_3cycle \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u0441\u043c\u044b\u0441\u043b \u0447\u0430\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u041e\u043d\u0438 \u0442\u0430\u043a \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u044b: id00, id01, \u0438 \u0442.\u0434. \u0415\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u043d\u0430 \u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0430 \u044d\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u044b.<\/p>\n<h3>\u041c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b<\/h3>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b, \u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b \u2014 \u043d\u0430 \u0442\u0430\u043a\u0442\u044b (\u044d\u0442\u0430\u043f\u044b, \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0438\u043c\u0435\u043d\u0443\u044e\u0442\u0441\u044f state). \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 8080 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u043c \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0442\u0430\u043a\u0442\u043e\u0432. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 5 \u0446\u0438\u043a\u043b\u043e\u0432: m1, m2, m3, m4, m5. \u0418 6 \u0442\u0430\u043a\u0442\u043e\u0432: t1, t2, tw, t3, t4, t5.<\/p>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0430\u043c\u044f\u0442\u0438 (\u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c).<\/p>\n<p>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0446\u0438\u043a\u043b\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 (\u043a\u043e\u043b\u044c\u0446\u0435\u0432\u043e\u0439) \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432:<\/p>\n<pre><code>always @(posedge clk)begin   if (f1)      begin         m1f1 &lt;= m1;         m2f1 &lt;= m2;         m3f1 &lt;= m3;         m4f1 &lt;= m4;         m5f1 &lt;= m5;      end   if (f2)      begin         m1 &lt;= (~ms0 &amp; ~ms1) | (~ms1 &amp; m1f1);         m2 &lt;= (~ms0 | ~ms1) &amp; ((ms0 &amp; m2f1) | (ms1 &amp; m1f1));         m3 &lt;= (ms0 &amp; m3f1) | (ms1 &amp; m2f1);         m4 &lt;= (ms0 &amp; m4f1) | (ms1 &amp; m3f1) | (ms0 &amp; ms1);         m5 &lt;= (ms0 &amp; m5f1) | (ms1 &amp; m4f1);      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b { ms0, ms1 } \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u043c:<\/p>\n<ul>\n<li>\n<p>2\u2019b00 \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0446\u0438\u043a\u043b m1,<\/p>\n<\/li>\n<li>\n<p>2\u2019b01 \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b (\u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430 m5),<\/p>\n<\/li>\n<li>\n<p>2\u2019b10 \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430,<\/p>\n<\/li>\n<li>\n<p>2\u2019b11 \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0446\u0438\u043a\u043b\u0443 m4 (\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e \u0432 m1).<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b { ms0, ms1 } \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<pre><code>assign ms0 = ~reset &amp; m839 &amp; ~(sy_stack &amp; ~t1f1) &amp; ~(eom &amp; ~m836);assign ms1 = ~reset &amp; m839 &amp; ~(sy_stack &amp; ~t1f1) &amp; ~(m871 &amp; ~m836) &amp; eom;assign m836 = m1f1 &amp; id_skip_m2_m3;assign m839 = ~t976 | ~sy_hlta;assign m871 = t789 | id_1cycle;always @(posedge clk)begin   if (f1)      begin         t789 &lt;= (id_3cycle &amp; m3) | (id_4cycle &amp; ~id_mvim &amp; m4) | m5;         t976 &lt;= t980 &amp; m4;      end   if (f2)      begin         t980 &lt;= sy_inta;      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ul>\n<li>\n<p>\u043a\u043e\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d reset: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1,<\/p>\n<\/li>\n<li>\n<p>eom == 0: \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f,<\/p>\n<\/li>\n<li>\n<p>eom == 1: \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b,<\/p>\n<\/li>\n<li>\n<p>\u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f eom == 1: <\/p>\n<ul>\n<li>\n<p>eom &amp; id_1cycle: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438,<\/p>\n<\/li>\n<li>\n<p>eom &amp; m1f1 &amp; id_skip_m2_m3: \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0446\u0438\u043a\u043b\u043e\u0432 m2 \u0438 m3,<\/p>\n<\/li>\n<li>\n<p>eom &amp; m3 &amp; id_3cycle: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1,<\/p>\n<\/li>\n<li>\n<p>eom &amp; m4 &amp; id_4cycle &amp; ~id_mvim: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1,<\/p>\n<\/li>\n<li>\n<p>eom &amp; m5: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1,<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u043a\u043e\u0433\u0434\u0430 sy_stack == 1 (\u043d\u0430 t3 \u0438\u043b\u0438 t5): \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 m1.<\/p>\n<\/li>\n<\/ul>\n<p>(\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043c \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f.)<\/p>\n<p>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u0430\u043f\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a:<\/p>\n<pre><code>always @(posedge clk)begin   if (f1)      begin         t1f1 &lt;= t1 &amp; ~reset; \/\/ ensure the reliable start after reset         t2f1 &lt;= t2;         twf1 &lt;= tw;         t3f1 &lt;= t3;         t4f1 &lt;= t4;         t5f1 &lt;= t5;      end   if (f2)      begin         t1 &lt;= start;         t2 &lt;= ~start &amp; t1f1;         tw &lt;= ~start &amp; (t2f1 | twf1) &amp; (~ready | thalt);         t3 &lt;= ~start &amp; (t2f1 | twf1) &amp;  ready &amp; ~thalt;         t4 &lt;= ~start &amp; t3f1 &amp; ms0 &amp; ~ms1;         t5 &lt;= ~start &amp; t4f1 &amp; ms0 &amp; ~ms1;      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422.\u0435. \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 f1 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, t2f1 \u0438 t2 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u044d\u0442\u0430\u043f, \u043d\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438: t2 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0440\u0430\u043d\u044c\u0448\u0435, \u0443\u0436\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 f2, \u0430 t2f1 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u043e\u0437\u0436\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 f1:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3bf\/e73\/9fe\/3bfe739fe5aaac16e51bb972e23d028b.png\" alt=\"\u0442\u0430\u043a\u0442\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u0430\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3bf\/e73\/9fe\/3bfe739fe5aaac16e51bb972e23d028b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3bf\/e73\/9fe\/3bfe739fe5aaac16e51bb972e23d028b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0442\u0430\u043a\u0442\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u0430<\/figcaption><\/div>\n<\/figure>\n<pre><code>assign start = ~m839             | t953             | (eom &amp; ~(hold &amp; t887))             | (f2 &amp; ((~t382 &amp; hold) | t383) &amp; ~(twf1 | t3f1 | t4f1 | t5f1));always @(posedge clk)begin   if (f1)      begin         t887 &lt;= hold;         t953 &lt;= reset;      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ul>\n<li>\n<p>\u043a\u043e\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d reset: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 t1,<\/p>\n<\/li>\n<li>\n<p>eom == 1: \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 t1 \u2014 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u043d\u0435\u0446 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code>always @(posedge clk)begin   if (f1)      begin         eom &lt;= t5              | t4 &amp; m1 &amp; id_m1_4state              | t3 &amp; m2              | t3 &amp; m3              | t3 &amp; m4              | t3 &amp; m5 &amp; ~id_xthl;      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0426\u0438\u043a\u043b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442\u044b<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">m1<\/p>\n<\/td>\n<td>\n<p align=\"left\">t1, t2, tw, t3, t4, t5<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">m2<\/p>\n<\/td>\n<td>\n<p align=\"left\">t1, t2, tw, t3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">m3<\/p>\n<\/td>\n<td>\n<p align=\"left\">t1, t2, tw, t3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">m4<\/p>\n<\/td>\n<td>\n<p align=\"left\">t1, t2, tw, t3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">m5<\/p>\n<\/td>\n<td>\n<p align=\"left\">t1, t2, tw, t3, t4, t5<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041f\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430<\/h3>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u043e\u0440 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 d:<\/p>\n<pre><code>wire [7:0] d;assign d    = ~reset &amp; ~alu_00_TO_data &amp;               ( dbin_ext &amp; di               | r16_val_low_TO_data &amp; r16_val               | r16_val_high_TO_data &amp; r16_val               | t1f1 &amp; { sy_memr, sy_inp, sy_m1, sy_out, sy_stack, sy_wo_n, sy_inta }               | alu_xr_TO_data &amp; xr               | alu_acc_TO_data &amp; acc               | alu_psw_TO_data &amp; psw_s               | alu_s_TO_data &amp; s );<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0430 \u043f\u0438\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430 pin_a \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0448\u0438\u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 a.<\/p>\n<p>\u041d\u0430 \u0446\u0438\u043a\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f (\u043a\u043e\u0433\u0434\u0430 sy_wo_n \u0440\u0430\u0432\u0435\u043d 1) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0442\u0435\u043d\u0438\u0435 \u0441 \u043f\u0438\u043d\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 pin_din \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code>reg [7:0] di;assign d    = \/\/...               | dbin_ext &amp; di               \/\/...               ;always @(posedge clk)begin   if (dbin_pin) di &lt;= pin_din;      if (f1) t1124 &lt;= (t2 | tw) &amp; sy_wo_n;   if (f2) dbin_pin &lt;= t1124 &amp; (m1f1 | ~sy_hlta);   dbin_ext &lt;= (f2 | dbin_pin) &amp; ((t1124 &amp; (m1f1 | ~sy_hlta)) | dbin_ext);end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 pin_din \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0437\u0430\u0449\u0435\u043b\u043a\u0435 di \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t3 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 d \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 t3 \u0438 \u0434\u043e t4f1.<\/p>\n<p>\u041d\u0430 \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 (\u043a\u043e\u0433\u0434\u0430 sy_wo_n \u0440\u0430\u0432\u0435\u043d 0) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 pin_dout \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code>reg [7:0] dbassign pin_dout   = db;assign pin_dena   = db_ena;always @(posedge clk)begin   if (f1) db_stb &lt;= t1 | (~sy_wo_n &amp; t2);   if (f2 &amp; db_stb) db &lt;= d;      if (f1) t851 &lt;= t1 | (~sy_wo_n &amp; (t2 | tw | t3));   if (f2) db_ena &lt;= ~reset &amp; t851;end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422.\u0435. \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445 d \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0437\u0430\u0449\u0435\u043b\u043a\u0435 db \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t3 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 pin_dout \u0432\u043e \u0432\u0440\u0435\u043c\u044f t3 \u0438 t4.<\/p>\n<p>\u041f\u043e\u0440\u0442\u044b \u0432\u0432\u043e\u0434\u0430 pin_din \u0438 \u0432\u044b\u0432\u043e\u0434\u0430 pin_dout \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f vm80a_core \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 pin_d \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 vm80a.<\/p>\n<p>\u041c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b m1, m2 \u0438 m3 \u2014 \u0446\u0438\u043a\u043b\u044b \u0447\u0442\u0435\u043d\u0438\u044f, \u0430 m4 \u0438 m5 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0446\u0438\u043a\u043b\u0430\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0438, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<pre><code>assign sy_wo_n  = m1 | m2 | m3 | (((m4 &amp; ~id_write_on_m4) | (m5 &amp; ~id_write_on_m5)) &amp; ~ready_int);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b sync \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t2:<\/p>\n<pre><code>always @(posedge clk)begin   if (f2) sync &lt;= ~ready_int &amp; t1011;   if (f1) t1011 &lt;= t1 &amp; ~reset;end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0430\u043a\u0442\u043e\u0432 \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0438 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442: \u043d\u043e\u043c\u0435\u0440 \u0442\u0430\u043a\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u043e \u043a\u043e\u0434\u0443 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b t1, \u2026, t5, \u0430 \u043d\u0435 t1f1, \u2026, t5f1. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u0435\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u043e \u0442\u0430\u043a\u0442\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c f2, \u043d\u043e \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0442\u0430\u043a\u0442\u0430 \u043e\u0431\u043e\u0437\u043d\u0447\u0435\u043d \u0441\u0438\u0433\u043d\u0430\u043b f1.<\/p>\n<h3>\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/h3>\n<p>\u041a\u043e\u0434, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043d\u0430\u0434\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f: \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0442\u0430\u043a\u0442\u0430\u0445 \u043a\u0430\u043a\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u043e\u043d\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e\u0442\u0441\u044f.<\/p>\n<h4>r16_val_TO_addr<\/h4>\n<pre><code>assign      r16_val_TO_addr   = t3363 | (t4f1 &amp; ~id_dad &amp; ~id_hlt);always @(posedge clk)begin   if (f1)      begin         t3363 &lt;= t1 &amp; (m1 | m2 | m3 | ((m4 | m5) &amp; ~id_hlt &amp; ~id_dad));      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422.\u0435. \u0441\u0438\u0433\u043d\u0430\u043b r16_val_TO_addr \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t1 \u0438 t4.f1 \u0432\u0441\u0435\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 (\u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439).<\/p>\n<h4>addr_plus_TO_r16<\/h4>\n<pre><code>assign      addr_plus_TO_r16    = t3403;always @(posedge clk)begin   if (f1)      begin         t3403 &lt;= t2 &amp; ( (m1 | m2)                       | (m3 &amp; ~id_xthl)                       | ((m4 | m5) &amp; ~id_dad &amp; ~id09))                | t3 &amp; m4 &amp; id09                | t5 &amp; (m5 | (m1 &amp; ~id08));      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422.\u0435. \u0441\u0438\u0433\u043d\u0430\u043b addr_plus_TO_r16 \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f<\/p>\n<ul>\n<li>\n<p>\u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t2 \u0432\u0441\u0435\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 (\u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 id09),<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 m4.t3 \u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u0437 id09,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 m1.t5, \u043a\u0440\u043e\u043c\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u0437 id08,<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 m5.t5.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0420\u0430\u0437\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/h2>\n<p>\u0418\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043b\u043e\u0433\u0438\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430 (\u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f), \u0434\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0448\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0442\u0430\u043a\u0442\u0430\u0445 \u043a\u0430\u043a\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u043a\u0430\u043a\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f.<\/p>\n<p>\u0412 \u0433\u0440\u0430\u0444\u0435 \u00ab\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438\u00bb \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442:<\/p>\n<ul>\n<li>\n<p>id_1cycle, id_4cycle, id_3cycle \u2014 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438,<\/p>\n<\/li>\n<li>\n<p>id_skip_m2_m3 \u2014 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430 1 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b 4,<\/p>\n<\/li>\n<li>\n<p>id_m1_4state \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0442\u0430\u043a\u0442\u043e\u0432 (\u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u2014 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0442\u0430\u043a\u0442\u043e\u0432),<\/p>\n<\/li>\n<li>\n<p>id_write_on_m4, id_write_on_m5 \u2014 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c (\u0438\u043b\u0438 \u043f\u043e\u0440\u0442 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430).<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 m1. \u0415\u0441\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f, \u0442\u043e m2 \u0438 m3 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0439\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 m4. \u0415\u0441\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0445\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f, \u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u0431\u0430\u0439\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 m2 \u0438 m3.<\/p>\n<p>\u041d\u0430 m1, m2 \u0438 m3 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 PC. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430 m4, \u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0443 id02. \u0414\u043b\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u0441\u0438\u0433\u043d\u0430\u043b inc16. \u041d\u0430 \u0442\u0430\u043a\u0442\u0435 t1 \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b r16_val_TO_addr \u0438 sel_pc. \u041d\u0430 \u0442\u0430\u043a\u0442\u0435 t2 \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b addr_plus_TO_r16 \u0438 sel_pc.<\/p>\n<p>\u0421\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 r16_val_TO_addr \u0438 sel_pc \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430 \u0448\u0438\u043d\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438. \u041d\u0430 \u0442\u0430\u043a\u0442\u0435 m1.t3.f1_ext \u043a\u043e\u0434 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 i:<\/p>\n<pre><code>always @(posedge clk)begin   if (~f2 &amp; (reset | (m1 &amp; t3))) i &lt;= pin_din;end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t3, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 t1 \u0438 t2 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f. \u0427\u0430\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u044d\u0442\u0443 \u0444\u0438\u0448\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 (\u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043f\u0435\u0440\u0435\u0445\u043e\u0434).<\/p>\n<h3>xchg<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: \u043e\u0431\u043c\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e DE \u0438 HL.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_1cycle.<\/p>\n<p>\u042d\u0442\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442 DE \u0438 HL. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433 xchg_dh, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 sel_hl \u0438 sel_de.<\/p>\n<p>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f xchg_dh \u0432 \u043a\u043e\u043d\u0446\u0435 \u0442\u0430\u043a\u0442\u0430 t2 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<pre><code>always @ (posedge clk)begin      xchg_tt &lt;= id_xchg &amp; t2;      xchg_dh &lt;= ~reset &amp; ((xchg_tt &amp; ~(id_xchg &amp; t2)) ? ~xchg_dh : xchg_dh);end<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>mov r1, r2<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: r1 := r2.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_1cycle, id08.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f 8-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 xr \u0438\u0437 \u0410\u041b\u0423.<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">imx = 0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438\u0437 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, r16_val_high\/low_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[high\/low]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_xr_TO_data<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = xr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, data_TO_r16_high\/low (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[high\/low] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0443\u043a\u0430\u0437\u0430\u043d A, \u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0432\u043c\u0435\u0441\u0442\u043e r16_val_high\/low_TO_data \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b alu_acc_TO_data, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0448\u0438\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0446\u0438\u043a\u043b m1 \u0434\u043b\u044f \u201cmov r, a\u201d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">imx = 0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438\u0437 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">acc_sel, alu_acc_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = acc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_xr_TO_data<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = xr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, data_TO_r16_high\/low (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[high\/low] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430-\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d A, \u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0432\u043c\u0435\u0441\u0442\u043e data_TO_r16_high\/low \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b alu_data_TO_acc, \u0447\u0442\u043e\u0431\u044b \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0446\u0438\u043a\u043b m1 \u0434\u043b\u044f \u201cmov a, r\u201d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">imx = 0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438\u0437 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, r16_val_high\/low_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[high\/low]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_xr_TO_data<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = xr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">acc_sel, alu_data_TO_acc (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">acc := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>mov m, r<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: memory[HL] := r.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_skip_m2_m3, id_4cycle, id_write_on_m4, id08.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m4.<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">imx = 0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438\u0437 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, r16_val_high\/low_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[high\/low]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_hl<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_hl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m4)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_xr_TO_data<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = xr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_stb (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">db := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m4)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>mov r, m<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: r := memory[HL].<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_skip_m2_m3, id_4cycle, id08, id10.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m4.<\/p>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_hl<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_hl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_* (\u043e\u0442 id10), data_TO_r16_high\/low (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[high\/low] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>lda addr<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: A := memory[addr].<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_4cycle.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m2, m3, m4.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 WZ.<\/p>\n<p>\u0426\u0438\u043a\u043b m2:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_low, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[7:0] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m3:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_high, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[15:8] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_wz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_acc<\/p>\n<\/td>\n<td>\n<p align=\"left\">acc := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>adi val<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: A := A + val.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_skip_m2_m3, id_4cycle, id02.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m4.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u0432 \u0432 \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u043e-\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0442\u0430\u043a\u0442\u0435 t2 \u0446\u0438\u043a\u043b\u0430 m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc (\u043e\u0442 id02)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc (\u043e\u0442 id02)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"6\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_acc_TO_r<\/p>\n<\/td>\n<td>\n<p align=\"left\">r := acc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">id_add<\/p>\n<\/td>\n<td>\n<p align=\"left\">tmp_c := 0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<pre><code>cl = tmp_cs = (x + r + cl)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0426\u0438\u043a\u043b m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_s_TO_acc<\/p>\n<\/td>\n<td>\n<p align=\"left\">acc := s<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">res_TO_psw<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>aci val<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: A := A + val + psw.carry.<\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 aci:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430 m1.t3 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f tmp_c := psw_c<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 m4.t4 \u043d\u0435\u0442 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u044f tmp_c := 0<\/p>\n<\/li>\n<\/ul>\n<h3>sui val<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: A := A &#8212; val.<\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 adi:<\/p>\n<ul>\n<li>\n<p>\u0430\u043a\u0442\u0438\u0432\u0435\u043d alu_xr_TO_x_inv: x = ~xr<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 m4.t4 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f tmp_c := 1<\/p>\n<\/li>\n<\/ul>\n<p>(\u0442.\u0435. \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434).<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430 m1.t2 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 (\u043a\u0430\u043a \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435).<\/p>\n<h3>inr r<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: r := r + 1.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_1cycle, id08.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1.<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_00_TO_data, alu_data_TO_r<\/p>\n<\/td>\n<td>\n<p align=\"left\">r := 0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_*, r16_val_high\/low_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[high\/low]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">id_inr<\/p>\n<\/td>\n<td>\n<p align=\"left\">tmp_c := 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_s_TO_data<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = s<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_high\/low, sel_* (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[high\/low] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<pre><code>cl = tmp_cs = (x + r + cl)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0426\u0438\u043a\u043b m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">res_TO_psw<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>inx r16<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: r16 := r16 + 1.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_1cycle, id07.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0435\u0440 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 PC).<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* (\u043e\u0442 id07), r16_val_TO_addr<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">sel_* (\u043e\u0442 id07), addr_plus_TO_r16<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_* := a + 1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>ana val<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: A := A &amp; val.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_1cycle, id08.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1.<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_acc_TO_r<\/p>\n<\/td>\n<td>\n<p align=\"left\">r := acc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_*, r16_val_high\/low_TO_data (\u043e\u0442 id08)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[high\/low]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">alu_data_TO_xr<\/p>\n<\/td>\n<td>\n<p align=\"left\">xr := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">id_ana<\/p>\n<\/td>\n<td>\n<p align=\"left\">tmp_c := 1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<pre><code>s = (x &amp; r)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0426\u0438\u043a\u043b m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">alu_s_TO_acc<\/p>\n<\/td>\n<td>\n<p align=\"left\">acc := s<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">res_TO_psw<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u0432 (psw_c := ~tmp_c)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>jmp addr<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: PC := addr.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: goto, id_m1_4state, id_3cycle.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m2, m3.<\/p>\n<p>\u0426\u0438\u043a\u043b m2:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_low, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[7:0] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m3:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_high, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[15:8] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0431\u0435\u0440\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 wz:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_wz<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>j cond addr<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: if (cond) then PC := addr.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: goto, id_m1_4state, id_3cycle.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m2, m3.<\/p>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430:<\/p>\n<pre><code>assign jmpflag =    (psw_c &amp;  i14 &amp; ~i25)                  | (psw_p &amp; ~i14 &amp;  i25)                  | (psw_z &amp; ~i14 &amp; ~i25)                  | (psw_s &amp;  i14 &amp;  i25);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">jmptake &lt;= i03 ? jmpflag : ~jmpflag<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m2:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_low, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[7:0] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m3:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">data_TO_r16_high, sel_wz<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_wz[15:8] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m1 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0431\u0435\u0440\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 wz, \u0435\u0441\u043b\u0438 jmptake:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">sync<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_TO_addr, jmptake ? sel_wz : sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_wz\/pc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_pc<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_pc := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0438 \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430, \u0442\u043e \u0432 \u043d\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b sy_stack, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\/\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0441\u0442\u0435\u043a\u0430), \u043a\u043e\u0433\u0434\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e:<\/p>\n<pre><code>always @(posedge clk)begin   if (f1)      begin         sy_stack &lt;= (t1 &amp; t1460)                   | (t3 &amp; m3 &amp; id_cxx &amp; ~jmptake)                   | (t5 &amp; m1 &amp; id_rxx &amp; ~jmptake);      endend<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>push r16<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: memory[SP-1] := r16_high; memory[SP-2] := r16_low; SP := SP-2.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_skip_m2_m3, id_write_on_m4, id_write_on_m5, id03, id04, id05, id09, id10.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m4, m5.<\/p>\n<p>\u0414\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0435\u0440.<\/p>\n<p>\u0426\u0438\u043a\u043b m1:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t4<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_sp (\u043e\u0442 id04)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t5<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_sp (\u043e\u0442 id04), dec16 (\u043e\u0442 id05)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_sp := a &#8212; 1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_sp (\u043e\u0442 id04)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m4)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_high_TO_data (\u043e\u0442 id03), sel_* (\u043e\u0442 id10)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[15:8]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_stb (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">db := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16 (\u043e\u0442 id09), sel_sp (\u043e\u0442 id04), dec16 (\u043e\u0442 id05)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_sp := a &#8212; 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m4)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m5:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_sp (\u043e\u0442 id04)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m5)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">r16_val_low_TO_data (\u043e\u0442 id03), sel_* (\u043e\u0442 id10)<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = r16_*[7:0]<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_stb (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">db := d<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena (\u043d\u0430 f2)<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">sy_wo_n = 0 (\u043e\u0442 id_write_on_m5)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">db_ena<\/p>\n<\/td>\n<td>\n<p align=\"left\">pin_d = db<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>push psw<\/h3>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0446\u0438\u043a\u043b\u0430 m4 \u0434\u043b\u044f \u201cpush psw\u201d: \u0432\u043c\u0435\u0441\u0442\u043e r16_val_high_TO_data \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b alu_acc_TO_data, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0448\u0438\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0446\u0438\u043a\u043b\u0430 m5 \u0434\u043b\u044f \u201cpush psw\u201d: \u0432\u043c\u0435\u0441\u0442\u043e r16_val_low_TO_data \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b alu_psw_TO_data, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0448\u0438\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0444\u043b\u0430\u0433\u043e\u0432.<\/p>\n<h3>pop r16<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f: r16_low := memory[SP]; r16_high := memory[SP+1]; SP := SP+2.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: id_m1_4state, id_skip_m2_m3, id01, id06, id10.<\/p>\n<p>\u0426\u0438\u043a\u043b\u044b: m1, m4, m5.<\/p>\n<p>\u0426\u0438\u043a\u043b m4:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_sp (\u043e\u0442 id01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_sp (\u043e\u0442 id01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_sp := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_* (\u043e\u0442 id10), data_TO_r16_low (\u043e\u0442 id06)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[7:0] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0426\u0438\u043a\u043b m5:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0422\u0430\u043a\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t1<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_val_TO_addr, sel_sp (\u043e\u0442 id01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">a := r16_sp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">t2<\/p>\n<\/td>\n<td>\n<p align=\"left\">addr_plus_TO_r16, sel_sp (\u043e\u0442 id01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_sp := a + 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\">\n<p align=\"left\">t3<\/p>\n<\/td>\n<td>\n<p align=\"left\">db_ena = 0, dbin_pin, sy_wo_n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_pin (\u043d\u0430 f1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">di := pin_din<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dbin_ext<\/p>\n<\/td>\n<td>\n<p align=\"left\">d = di<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sel_* (\u043e\u0442 id10), data_TO_r16_high (\u043e\u0442 id06)<\/p>\n<\/td>\n<td>\n<p align=\"left\">r16_*[15:8] := d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>pop psw<\/h3>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0446\u0438\u043a\u043b\u0430 m4 \u0434\u043b\u044f \u201cpop psw\u201d: \u0432\u043c\u0435\u0441\u0442\u043e data_TO_r16_low \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b data_TO_psw, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0444\u043b\u0430\u0433\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438\u0441\u044c \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0446\u0438\u043a\u043b\u0430 m5 \u0434\u043b\u044f \u201cpop psw\u201d: \u0432\u043c\u0435\u0441\u0442\u043e data_TO_r16_high \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b alu_data_TO_acc, \u0447\u0442\u043e\u0431\u044b \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c. \u041d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438, \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0438\u0445 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e.<\/p>\n<p>\u0421\u0430\u043c\u044b\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043f\u043e\u0434\u0441\u043f\u043e\u0440\u044c\u0435\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u043d\u0438\u0435 \u043c\u0430\u0442\u0447\u0430\u0441\u0442\u0438 \u2013 \u043c\u0438\u043a\u0440\u043e\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0441 \u043e\u0431\u0449\u0435\u0439 \u0448\u0438\u043d\u043e\u0439, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b. \u0414\u0430\u043b\u0435\u0435, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0432 \u0438\u0437 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0443\u0437\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 verilog.<\/p>\n<p>\u041f\u0440\u043e\u0440\u044b\u0432\u043e\u043c \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043b\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u043e\u0434, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0441\u0432\u044f\u0437\u044c \u0441 \u0442\u0430\u043a\u0442\u0430\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432.<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f xchg \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u044b. \u0422\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0438 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u043c\u0435\u043d\u044f. \u041d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0446\u043a\u0441\u0441\u043e\u0440\u0435 8080 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043b\u0435\u0437\u0430\u0442\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0412\u044b\u0440\u0430\u0436\u0430\u0435\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u0430 \u2014 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0445 \u0442\u0440\u0443\u0434\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u0430\u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1085486\/\">https:\/\/habr.com\/ru\/articles\/1085486\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u0441\u0442\u0430\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0430 \u0435\u0433\u043e \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u043e\u043d\u0430 \u2014 \u041a\u0420580\u0412\u041c80\u0410. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442. \u0423\u0441\u0442\u0440\u043e\u0435\u043d 8080 \u043f\u0440\u043e\u0441\u0442\u043e, \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 Verilog.\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u0442\u0430\u0448\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. Intel \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 8080, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u0442\u0430\u043a\u0442\u0430\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432.\u041d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d 8080, \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 SAP-1 \u0438\u0437 \u043a\u043d\u0438\u0433\u0438 Malvino \u00abDigital Computer Electronics\u00bb.\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u0444\u0430\u0437\u043d\u044b\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b f1, f2. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c Verilog-\u043a\u043e\u0434\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b clk \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0445\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0435\u0433\u043e \u0444\u0440\u043e\u043d\u0442\u0443. \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 FPGA-\u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c.\u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u0427\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 vm80a.v, \u0432\u043e\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f:\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0435mxr0sel_pcmxr1sel_demxr2sel_hlmxr3sel_bcmxr4sel_spmxr5sel_wzmxor16_valmxiaddr_plusmxwadrr16_val_TO_addrmxw16addr_plus_TO_r16mxwldata_TO_r16_lowmxwhdata_TO_r16_highmxrlr16_val_low_TO_datamxrhr16_val_high_TO_dataalu_xoutalu_xr_TO_x_invalu_xwralu_data_TO_xralu_xrdalu_xr_TO_dataalu_aldalu_s_TO_accalu_awralu_data_TO_accalu_ardalu_acc_TO_dataalu_rldalu_acc_TO_ralu_r00alu_minus1_TO_ralu_rwralu_data_TO_ralu_srdalu_s_TO_dataalu_zrdalu_00_TO_dataalu_frdalu_psw_TO_datapsw_lddata_TO_pswpsw_wrres_TO_psw\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b PC, SP \u0438 8-\u0431\u0438\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b B, C, D, E, H, L, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u0440\u044b. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 A (\u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0410\u041b\u0423 \u0438 \u0437\u0434\u0435\u0441\u044c \u0435\u0433\u043e \u043d\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b W, Z \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043d\u0443\u0436\u0434 \u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b.reg   [15:0] r16_pc, r16_hl, r16_de, r16_bc, r16_sp, r16_wz, r16_val;wire  [15:0] addr_plus;\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u0430\u044f \u043f\u0430\u0440\u0430, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 sel_pc. 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c (\u043d\u0430 \u0448\u0438\u043d\u0443 \u0430\u0434\u0440\u0435\u0441\u0430 a) \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 addr_plus_TO_r16, r16_val_TO_addr. 8-\u0431\u0438\u0442\u043d\u043e\u0435 (\u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 d) \u2014 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 data_TO_r16_high, data_TO_r16_low, r16_val_high_TO_data, r16_val_low_TO_data.wire sel_pc, sel_de, sel_hl, sel_bc, sel_sp, sel_wz;wire data_TO_r16_high, data_TO_r16_low, r16_val_high_TO_data, r16_val_low_TO_data, addr_plus_TO_r16, r16_val_TO_addr;\/\/\u0432\u044b\u0431\u043e\u0440 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u044balways @ (*)case ({sel_pc, sel_de, sel_hl, sel_bc, sel_sp, sel_wz})   6&#8217;b100000:  r16_val = r16_pc;   6&#8217;b010000:  r16_val = r16_hl;   6&#8217;b001000:  r16_val = r16_de;   6&#8217;b000100:  r16_val = r16_bc;   6&#8217;b000010:  r16_val = r16_sp;   6&#8217;b000001:  r16_val = r16_wz;   default:    r16_val = 16&#8217;h0000;endcasealways @ (posedge clk)if (f2)begin   \/\/16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435   if (r16_val_TO_addr) a &lt;= r16_val;   \/\/16-\u0431\u0438\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c   if (addr_plus_TO_r16)      begin         if (sel_pc) r16_pc &lt;= addr_plus;         if (sel_de) r16_hl &lt;= addr_plus;         if (sel_hl) r16_de &lt;= addr_plus;         if (sel_bc) r16_bc &lt;= addr_plus;         if (sel_sp) r16_sp &lt;= addr_plus;         if (sel_wz) r16_wz &lt;= addr_plus;      end   else      begin         \/\/8-\u0431\u0438\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c         if (data_TO_r16_low)            begin               if (sel_pc) r16_pc[7:0] &lt;= d;               if (sel_de) r16_hl[7:0] &lt;= d;               if (sel_hl) r16_de[7:0] &lt;= d;               if (sel_bc) r16_bc[7:0] &lt;= d;               if (sel_sp) r16_sp[7:0] &lt;= d;               if (sel_wz) r16_wz[7:0] &lt;= d;            end         if (data_TO_r16_high)            begin               if (sel_pc) r16_pc[15:8] &lt;= d;               if (sel_de) r16_hl[15:8] &lt;= d;               if (sel_hl) r16_de[15:8] &lt;= d;               if (sel_bc) r16_bc[15:8] &lt;= d;               if (sel_sp) r16_sp[15:8] &lt;= d;               if (sel_wz) r16_wz[15:8] &lt;= d;            end      endend\/\/8-\u0431\u0438\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435assign d    = \/\/&#8230;               | r16_val_low_TO_data &amp; r16_val[7:0]               | r16_val_high_TO_data &amp; r16_val[15:8]               | \/\/&#8230;               ;\/\/16-\u0431\u0438\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044cassign addr_plus = inc16 ? (a + 16&#8217;h0001)                  : dec16 ? (a &#8212; 16&#8217;h0001)                  : a;\u0410\u041b\u0423\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 8080 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0430\u0434\u0440\u0435\u0441\u043d\u044b\u043c \u2014 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440 A).\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0410\u041b\u0423 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 r, \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 \u0432 x, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 s.reg   [7:0]    xr, r, acc;wire  [7:0]    x, s, c;wire           cl, ch;reg            psw_z, psw_s, psw_p, psw_c, psw_ac, tmp_c;assign s  = {7&#8217;b0000000, id_rlc &amp; c[7]}          | ((id_rxc | id_ora | id_ana | id_xra) ? 8&#8217;h00 : (x + r + cl))          | (id_rxc  ? {ch, r[7:1]} : 8&#8217;h00)          | (id_ora  ? (x | r) : 8&#8217;h00)          | (id_ana  ? (x &amp; r) : 8&#8217;h00)          | (id_xra  ? (x ^ r) : 8&#8217;h00);assign cl = (id_daa | id_rlc | id_ora | id_xra | id_rxc) ? 0 : tmp_c;assign ch = id_rar ? tmp_c | r[0];assign c[0] = (r[0] &amp; x[0]) | (cl &amp; (r[0] | x[0]));assign c[1] = (r[1] &amp; x[1]) | (c[0] &amp; (r[1] | x[1]));assign c[2] = (r[2] &amp; x[2]) | (c[1] &amp; (r[2] | x[2]));assign c[3] = (r[3] &amp; x[3]) | (c[2] &amp; (r[3] | x[3]));assign c[4] = (r[4] &amp; x[4]) | (c[3] &amp; (r[4] | x[4]));assign c[5] = (r[5] &amp; x[5]) | (c[4] &amp; (r[5] | x[5]));assign c[6] = (r[6] &amp; x[6]) | (c[5] &amp; (r[6] | x[6]));assign c[7] = (r[7] &amp; x[7]) | (c[6] &amp; (r[7] | x[7]));\u041f\u0440\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = (x + r + cl).\u0414\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 (x | r), (x &amp; r), \u0438\u043b\u0438 (x ^ r).\u0414\u043b\u044f \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043b\u0435\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = (x + r + cl), \u043f\u0440\u0438 \u044d\u0442\u043e\u043c x \u0438 r \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.\u0414\u043b\u044f \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u043f\u0440\u0430\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 s = {ch, r[7:1]}.\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:alu_xr_TO_x_inv \u2014 \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442,alu_data_TO_xr \u2014 \u0432\u0437\u044f\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,alu_xr_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,alu_s_TO_acc \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440,alu_data_TO_acc \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,alu_acc_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,alu_acc_TO_r \u2014 \u0432\u0437\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430,alu_minus1_TO_r \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c -1,alu_data_TO_r \u2014 \u0432\u0437\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445,alu_s_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,alu_00_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c 0 \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,alu_psw_TO_data \u2014 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043b\u0430\u0433\u0438 (\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0438 \u0442.\u043f.) \u043d\u0430 \u0448\u0438\u043d\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,t2175 \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 tmp_c \u0438\u0437 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430,\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 tmp_c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.wire alu_xr_TO_x_inv, alu_data_TO_xr, alu_xr_TO_data, alu_s_TO_acc, alu_data_TO_acc, alu_acc_TO_data,     alu_acc_TO_r, alu_minus1_TO_r, alu_data_TO_r, alu_s_TO_data, alu_00_TO_data, alu_psw_TO_data;reg  data_TO_psw, res_TO_psw;\/\/alu_xr_TO_x_invassign x = alu_xr_TO_x_inv ? ~xr : xr;\/\/alu_xr_TO_dataassign d    = ~alu_00_TO_data &amp; (               \/\/&#8230;               | alu_xr_TO_data &amp; xr               | alu_acc_TO_data &amp; acc               | alu_psw_TO_data &amp; psw_s               | alu_s_TO_data &amp; s               \/\/&#8230;               );always @(posedge clk)begin   if (f1)      begin         t2133 &lt;= ~id_rxc &amp; c[7];      end   if (f2)      begin         if (alu_data_TO_xr) xr &lt;= id_rst ? (i &amp; 8&#8217;b00111000) : d;         if (alu_data_TO_acc) acc &lt;= d;         if (alu_s_TO_acc) acc &lt;= s;         if (alu_acc_TO_r) r &lt;= acc;         if (alu_data_TO_r) r &lt;= d;         if (alu_minus1_TO_r) r &lt;= 8&#8217;hff;         if (data_TO_psw)            begin               psw_c  &lt;= d[0];                psw_p  &lt;= d[2];               psw_z  &lt;= d[6];               psw_s  &lt;= d[7];            end         if (res_TO_psw)            begin               psw_p  &lt;= ~(^s);               psw_z  &lt;= ~(|s);               psw_s  &lt;= s[7];            end         if (t2222)            begin               if (id_xra | id_stc | id_ora | id_ana | id_cmc)                  psw_c &lt;= ~tmp_c;               if (id_cmp | id_sbb | id_sub)                  psw_c &lt;= ~(t2133 | id_rxc &amp; x[0]);               if (id_dad | id_sha | id_adc | id_add)                  psw_c &lt;= t2133 | id_rxc &amp; x[0];            end         if (t2175)            tmp_c &lt;= psw_c;         if (t4f1)            begin               if (id_sbb)                  tmp_c &lt;= ~psw_c;               if (id_inr | id_ora | id_xra | id_ana | id_cmp | id_sub)                  tmp_c &lt;= 1&#8217;b1;               if (id_dad | id_cma | id_dcr | id_add | id_stc)                  tmp_c &lt;= 1&#8217;b0;            end      endend\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u042d\u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438.\u041c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043a\u043b\u0430\u0441\u0441\u044b, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043e\u0431\u0449\u0435\u0435. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b \u0441 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0441\u043c\u044b\u0441\u043b\u043e\u043c: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, id_1cycle, id_4cycle, id_3cycle \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u0441\u043c\u044b\u0441\u043b \u0447\u0430\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u041e\u043d\u0438 \u0442\u0430\u043a \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u044b: id00, id01, \u0438 \u0442.\u0434. \u0415\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u043d\u0430 \u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0430 \u044d\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u044b.\u041c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b, \u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b \u2014 \u043d\u0430 \u0442\u0430\u043a\u0442\u044b (\u044d\u0442\u0430\u043f\u044b, \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0438\u043c\u0435\u043d\u0443\u044e\u0442\u0441\u044f state). \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 8080 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u043c \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0442\u0430\u043a\u0442\u043e\u0432. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 5 \u0446\u0438\u043a\u043b\u043e\u0432: m1, m2, m3, m4, m5. \u0418 6 \u0442\u0430\u043a\u0442\u043e\u0432: t1, t2, tw, t3, t4, t5.\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0430\u043c\u044f\u0442\u0438 (\u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c).\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0446\u0438\u043a\u043b\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 (\u043a\u043e\u043b\u044c\u0446\u0435\u0432\u043e\u0439) \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432:always @(posedge clk)begin   if (f1)      begin      &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-495693","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495693","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=495693"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495693\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=495693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=495693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=495693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}