OutputLogic 0 27 июня, 2009 Опубликовано 27 июня, 2009 · Жалоба Я сделал онлайновый tool который генерирует CRC,Scrambler,LFSR Counter на Verilog / VHDL: OutputLogic.com Пользуйтесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 июня, 2009 Опубликовано 27 июня, 2009 · Жалоба Я сделал онлайновый tool который генерирует CRC,Scrambler,LFSR Counter на Verilog / VHDL: OutputLogic.com Пользуйтесь. это хорошо, вешь безусловно полезная, но позвольте немного критики : 1. Онлайновые тулзы не удобны, сделали бы скрипты пусть на том же Python и выложили бы для людей 2. Ручками параметризуемый CRC, скремблер LFSR пишется не немного дольше чем пользоваться генератором и только один раз + пользоваться параметруземыми, с помошью языковых средств, корками удобнее, чем сгенерированными по месту %) Удачи вам в вашем начинании !!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asic8 0 27 июня, 2009 Опубликовано 27 июня, 2009 · Жалоба Я сделал онлайновый tool который генерирует CRC,Scrambler,LFSR Counter на Verilog / VHDL: OutputLogic.com Пользуйтесь. Привествую. Мне надо посчитать CRC-16-CCITT полином - x16 + x12 + x5 + 1: Я руками все расчитал, но надо проверить. Вот что получилось: CRCreg[ 0] <= CRCreg[ 8] ^ CRCreg[12] ^ data[ 4] ^ data[ 0]; CRCreg[ 1] <= CRCreg[ 9] ^ CRCreg[13] ^ data[ 5] ^ data[ 1]; CRCreg[ 2] <= CRCreg[10] ^ CRCreg[14] ^ data[ 6] ^ data[ 2]; CRCreg[ 3] <= CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; CRCreg[ 4] <= CRCreg[12] ^ data[ 4]; CRCreg[ 5] <= CRCreg[ 8] ^ CRCreg[12] ^ CRCreg[13] ^ data[ 5] ^ data[ 4] ^ data[ 0]; CRCreg[ 6] <= CRCreg[ 9] ^ CRCreg[13] ^ CRCreg[14] ^ data[ 6] ^ data[ 5] ^ data[ 1]; CRCreg[ 7] <= CRCreg[10] ^ CRCreg[14] ^ CRCreg[15] ^ data[ 7] ^ data[ 6] ^ data[ 2]; CRCreg[ 8] <= CRCreg[ 0] ^ CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; CRCreg[ 9] <= CRCreg[ 1] ^ CRCreg[12] ^ data[ 4]; CRCreg[10] <= CRCreg[ 2] ^ CRCreg[13] ^ data[ 5]; CRCreg[11] <= CRCreg[ 3] ^ CRCreg[14] ^ data[ 6]; CRCreg[12] <= CRCreg[ 4] ^ CRCreg[ 8] ^ CRCreg[12] ^ CRCreg[15] ^ data[ 7] ^ data[ 4] ^ data[ 0]; CRCreg[13] <= CRCreg[ 5] ^ CRCreg[ 9] ^ CRCreg[13] ^ data[ 5] ^ data[ 1]; CRCreg[14] <= CRCreg[ 6] ^ CRCreg[10] ^ CRCreg[14] ^ data[ 6] ^ data[ 2]; CRCreg[15] <= CRCreg[ 7] ^ CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; Как проверить с помощью вашего online tool? Что-то не совпадает у меня, может я что-то не так делаю.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OutputLogic 0 27 июня, 2009 Опубликовано 27 июня, 2009 · Жалоба Привествую. Мне надо посчитать CRC-16-CCITT полином - x16 + x12 + x5 + 1: Я руками все расчитал, но надо проверить. Вот что получилось: CRCreg[ 0] <= CRCreg[ 8] ^ CRCreg[12] ^ data[ 4] ^ data[ 0]; CRCreg[ 1] <= CRCreg[ 9] ^ CRCreg[13] ^ data[ 5] ^ data[ 1]; CRCreg[ 2] <= CRCreg[10] ^ CRCreg[14] ^ data[ 6] ^ data[ 2]; CRCreg[ 3] <= CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; CRCreg[ 4] <= CRCreg[12] ^ data[ 4]; CRCreg[ 5] <= CRCreg[ 8] ^ CRCreg[12] ^ CRCreg[13] ^ data[ 5] ^ data[ 4] ^ data[ 0]; CRCreg[ 6] <= CRCreg[ 9] ^ CRCreg[13] ^ CRCreg[14] ^ data[ 6] ^ data[ 5] ^ data[ 1]; CRCreg[ 7] <= CRCreg[10] ^ CRCreg[14] ^ CRCreg[15] ^ data[ 7] ^ data[ 6] ^ data[ 2]; CRCreg[ 8] <= CRCreg[ 0] ^ CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; CRCreg[ 9] <= CRCreg[ 1] ^ CRCreg[12] ^ data[ 4]; CRCreg[10] <= CRCreg[ 2] ^ CRCreg[13] ^ data[ 5]; CRCreg[11] <= CRCreg[ 3] ^ CRCreg[14] ^ data[ 6]; CRCreg[12] <= CRCreg[ 4] ^ CRCreg[ 8] ^ CRCreg[12] ^ CRCreg[15] ^ data[ 7] ^ data[ 4] ^ data[ 0]; CRCreg[13] <= CRCreg[ 5] ^ CRCreg[ 9] ^ CRCreg[13] ^ data[ 5] ^ data[ 1]; CRCreg[14] <= CRCreg[ 6] ^ CRCreg[10] ^ CRCreg[14] ^ data[ 6] ^ data[ 2]; CRCreg[15] <= CRCreg[ 7] ^ CRCreg[11] ^ CRCreg[15] ^ data[ 7] ^ data[ 3]; Как проверить с помощью вашего online tool? Что-то не совпадает у меня, может я что-то не так делаю.... Нужно выбрать: Data width =8 Polynomial width = 16 Отметить checkboxes = 1,5,12 Получается тоже самое: lfsr_c[0] = lfsr_q[8] ^ lfsr_q[12] ^ data_in[0] ^ data_in[4]; lfsr_c[1] = lfsr_q[9] ^ lfsr_q[13] ^ data_in[1] ^ data_in[5]; lfsr_c[2] = lfsr_q[10] ^ lfsr_q[14] ^ data_in[2] ^ data_in[6]; lfsr_c[3] = lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; lfsr_c[4] = lfsr_q[12] ^ data_in[4]; lfsr_c[5] = lfsr_q[8] ^ lfsr_q[12] ^ lfsr_q[13] ^ data_in[0] ^ data_in[4] ^ data_in[5]; lfsr_c[6] = lfsr_q[9] ^ lfsr_q[13] ^ lfsr_q[14] ^ data_in[1] ^ data_in[5] ^ data_in[6]; lfsr_c[7] = lfsr_q[10] ^ lfsr_q[14] ^ lfsr_q[15] ^ data_in[2] ^ data_in[6] ^ data_in[7]; lfsr_c[8] = lfsr_q[0] ^ lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; lfsr_c[9] = lfsr_q[1] ^ lfsr_q[12] ^ data_in[4]; lfsr_c[10] = lfsr_q[2] ^ lfsr_q[13] ^ data_in[5]; lfsr_c[11] = lfsr_q[3] ^ lfsr_q[14] ^ data_in[6]; lfsr_c[12] = lfsr_q[4] ^ lfsr_q[8] ^ lfsr_q[12] ^ lfsr_q[15] ^ data_in[0] ^ data_in[4] ^ data_in[7]; lfsr_c[13] = lfsr_q[5] ^ lfsr_q[9] ^ lfsr_q[13] ^ data_in[1] ^ data_in[5]; lfsr_c[14] = lfsr_q[6] ^ lfsr_q[10] ^ lfsr_q[14] ^ data_in[2] ^ data_in[6]; lfsr_c[15] = lfsr_q[7] ^ lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asic8 0 27 июня, 2009 Опубликовано 27 июня, 2009 · Жалоба Нужно выбрать: Data width =8 Polynomial width = 16 Отметить checkboxes = 1,5,12 Получается тоже самое: lfsr_c[0] = lfsr_q[8] ^ lfsr_q[12] ^ data_in[0] ^ data_in[4]; lfsr_c[1] = lfsr_q[9] ^ lfsr_q[13] ^ data_in[1] ^ data_in[5]; lfsr_c[2] = lfsr_q[10] ^ lfsr_q[14] ^ data_in[2] ^ data_in[6]; lfsr_c[3] = lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; lfsr_c[4] = lfsr_q[12] ^ data_in[4]; lfsr_c[5] = lfsr_q[8] ^ lfsr_q[12] ^ lfsr_q[13] ^ data_in[0] ^ data_in[4] ^ data_in[5]; lfsr_c[6] = lfsr_q[9] ^ lfsr_q[13] ^ lfsr_q[14] ^ data_in[1] ^ data_in[5] ^ data_in[6]; lfsr_c[7] = lfsr_q[10] ^ lfsr_q[14] ^ lfsr_q[15] ^ data_in[2] ^ data_in[6] ^ data_in[7]; lfsr_c[8] = lfsr_q[0] ^ lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; lfsr_c[9] = lfsr_q[1] ^ lfsr_q[12] ^ data_in[4]; lfsr_c[10] = lfsr_q[2] ^ lfsr_q[13] ^ data_in[5]; lfsr_c[11] = lfsr_q[3] ^ lfsr_q[14] ^ data_in[6]; lfsr_c[12] = lfsr_q[4] ^ lfsr_q[8] ^ lfsr_q[12] ^ lfsr_q[15] ^ data_in[0] ^ data_in[4] ^ data_in[7]; lfsr_c[13] = lfsr_q[5] ^ lfsr_q[9] ^ lfsr_q[13] ^ data_in[1] ^ data_in[5]; lfsr_c[14] = lfsr_q[6] ^ lfsr_q[10] ^ lfsr_q[14] ^ data_in[2] ^ data_in[6]; lfsr_c[15] = lfsr_q[7] ^ lfsr_q[11] ^ lfsr_q[15] ^ data_in[3] ^ data_in[7]; отлично Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 июня, 2009 Опубликовано 29 июня, 2009 · Жалоба Мне надо посчитать CRC-16-CCITT полином - x16 + x12 + x5 + 1: Я руками все расчитал, но надо проверить. Вот что получилось: module sample #(parameter pW = 8) (input logic iclk, iena, init, logic [pW-1 : 0] idat, logic [15:0] crc); typedef logic [15 : 0] uint16_t; typedef logic [pW-1 : 0] data_t; always_ff @(posedge iclk) begin if (iena) begin crc <= init ? crc16(16'h0, idat) : crc16(crc, idat); end end // // G(x) = x16 + x12 + x5 + 1: // function automatic uint16_t crc16x1 (input uint16_t crc, input logic d); logic msb; begin msb = crc[15]; crc16x1 = (crc << 1); crc16x1[0] = d ^ msb; crc16x1[5] = d ^ msb ^ crc[4]; crc16x1[12] = d ^ msb ^ crc[11]; end endfunction function automatic uint16_t crc16xW (input uint16_t crc, input data_t data); crc16xW = crc; for (int i = 0; i < $size(data); i++) begin crc16xW = crc16x1(crc16xW, data[$high(data)-i]); end endfunction endmodule и никакого хендсмейда, для любых входных векторов %) . ЗЫ. это SV версия, в V версию приводиться за пару минут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OutputLogic 0 29 июня, 2009 Опубликовано 29 июня, 2009 · Жалоба это хорошо, вешь безусловно полезная, но позвольте немного критики : 1. Онлайновые тулзы не удобны, сделали бы скрипты пусть на том же Python и выложили бы для людей 2. Ручками параметризуемый CRC, скремблер LFSR пишется не немного дольше чем пользоваться генератором и только один раз + пользоваться параметруземыми, с помошью языковых средств, корками удобнее, чем сгенерированными по месту %) Удачи вам в вашем начинании !!! По работе мне нужно часто генерировать код для нестандартных CRC. Я долгое время пользовался програмкой на Veriloge. Затем написал скрипт на Perl, выложил на сервер и добавил JavaScript interface. В результате процесс генерации занимает нескоько секунд. В общем с вами согласен что сделать удобный онлайновый тулз не просто. Код на C выложен здесь: sourceforge.net/projects/crc-gen-verilog sourceforge.net/projects/lfsr-counter Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 2 июля, 2009 Опубликовано 2 июля, 2009 · Жалоба У кого-то совпадает CRC реализованный в ПЛИС онлайновым средством/ручками и программой для ПК для одной и той же последовательности данных? ЗЫ у меня нет. Писал наподобии как привел asic8 в Сообщении #3 и брал здесь цепочку CRC для каждого бита входных данных. Для ПК программу брал здесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 июля, 2009 Опубликовано 2 июля, 2009 · Жалоба У кого-то совпадает CRC реализованный в ПЛИС онлайновым средством/ручками и программой для ПК для одной и той же последовательности данных? ЗЫ у меня нет. Писал наподобии как привел asic8 в Сообщении #3 и брал здесь цепочку CRC для каждого бита входных данных. Для ПК программу брал здесь всегда совпадает %) если вы не перепутали : 1. начальную инициализацию 2. направление прохода массива данных 3. учли что иногда проверять нужно не на 0, а на т.н. magic number. для эзернета это 0x04C11DB7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 июля, 2009 Опубликовано 3 июля, 2009 · Жалоба всегда совпадает %) если вы не перепутали : 1. начальную инициализацию 2. направление прохода массива данных 3. учли что иногда проверять нужно не на 0, а на т.н. magic number. для эзернета это 0x04C11DB7 Не могли бы Вы поделиться реализацией CRC-32 (желательно на VHDL) Name : CRC-32 Poly : 0x04C11DB7 x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 Init : 0xFFFFFFFF Revert: true XorOut: 0xFFFFFFFF Check : 0xCBF43926 ("123456789") и рассказать как подавать последовательность 123456789 чтобы получить 0xCBF43926 ЗЫ SV Verilog я не знаю и приведенную Вами ранее программу к сожалению не понимаю. За ранее благодарен. ОЧЕНЬ НУЖНО!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 3 июля, 2009 Опубликовано 3 июля, 2009 · Жалоба Не могли бы Вы поделиться реализацией CRC-32 (желательно на VHDL) и рассказать как подавать последовательность 123456789 чтобы получить 0xCBF43926 ЗЫ SV Verilog я не знаю и приведенную Вами ранее программу к сожалению не понимаю. считаем и проверяем CRC-32 для Ethernet. module crc32; //------------------------------------------------------------------------------------------------------ // //------------------------------------------------------------------------------------------------------ // // G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1 // function bit [31:0] crc_32x1 (input bit [31:0] crc, input bit d); bit msb; begin msb = crc[31]; crc_32x1 = crc << 1; crc_32x1[ 0] = d ^ msb; crc_32x1[ 1] = d ^ msb ^ crc[ 0]; crc_32x1[ 2] = d ^ msb ^ crc[ 1]; crc_32x1[ 4] = d ^ msb ^ crc[ 3]; crc_32x1[ 5] = d ^ msb ^ crc[ 4]; crc_32x1[ 7] = d ^ msb ^ crc[ 6]; crc_32x1[ 8] = d ^ msb ^ crc[ 7]; crc_32x1[10] = d ^ msb ^ crc[ 9]; crc_32x1[11] = d ^ msb ^ crc[10]; crc_32x1[12] = d ^ msb ^ crc[11]; crc_32x1[16] = d ^ msb ^ crc[15]; crc_32x1[22] = d ^ msb ^ crc[21]; crc_32x1[23] = d ^ msb ^ crc[22]; crc_32x1[26] = d ^ msb ^ crc[25]; end endfunction // // // function bit [31:0] crc_32x8(input bit [31:0] crc, input bit [7:0] data); int i; begin crc_32x8 = crc; for (i = 8; i > 0; i--) begin crc_32x8 = crc_32x1 (crc_32x8, data[i-1]); end end endfunction //------------------------------------------------------------------------------------------------------ // //------------------------------------------------------------------------------------------------------ int unsigned crc32_tx, crc32_rx; byte unsigned data [128]; initial begin : main // // generate tx packet // // init crc crc32_tx = 32'hFFFF_FFFF; // count crc for (int i = 0; i < 128; i++) begin data[i] = $urandom; crc32_tx = crc_32x8(crc32_tx, data[i]); end // put crc to data packet, we must to put " The complement of this 32-bit sequence is the CRC-32. " crc32_tx = ~crc32_tx; // // receive rx packet // // init crc crc32_rx = 32'hFFFF_FFFF; // count crc for (int i = 0; i < 128; i++) begin crc32_rx = crc_32x8(crc32_rx, data[i]); end crc32_rx = crc_32x8(crc32_rx, crc32_tx[31:24]); crc32_rx = crc_32x8(crc32_rx, crc32_tx[23:16]); crc32_rx = crc_32x8(crc32_rx, crc32_tx[15: 8]); crc32_rx = crc_32x8(crc32_rx, crc32_tx[7 : 0]); // check with magic world 32'hC704DD7B if (crc32_rx != 32'hC704DD7B) $display("get bad crc %h", crc32_rx); else $display("get good crc %h", crc32_rx); end endmodule VHDL кода нет, и делать его нет времени. Самое главное в этом примере для вас то что происходит в процессе main, если знаете C то разберетесь, там код почти сишный. ЗЫ. вот готовый модуль, (код кстати выкладывал в теме про холивар AHDL vs Verilog/VHDL), который можно использовать как есть, только проверку crc прикрутите снаружи. ЗЗЫ. убрал приатаченый модуль, т.к. все равно никому не интересно, все есть в сорцах на этом форуме %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 3 июля, 2009 Опубликовано 3 июля, 2009 · Жалоба А чем этот tool не устраивает? crctool Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asic8 0 3 июля, 2009 Опубликовано 3 июля, 2009 · Жалоба Долго мучился почему CRC не совпадает. Оказалось, что нужно не с нулем сравнивать а с assign crc_ok = reg16 == 16'h1D0F; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 июля, 2009 Опубликовано 4 июля, 2009 · Жалоба А чем этот tool не устраивает? crctool ну многих устраивает, но похоже Maverick неправильно его использовал и я показал как надо использовать сгенерированную crc для расчета в частности в 100 мегабином эзернете %) PS. меня подобные тулзы не устраивают свой онлайновостью и не возможностью кастомизации "по месту", мне проще прописать 3 параметра pDAT_W/pCRC_TYPE/pINIT_VALUE в одном и том же модуле чем каждый раз генерить отдельный модуль %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 15 декабря, 2011 Опубликовано 15 декабря, 2011 · Жалоба ну многих устраивает, но похоже Maverick неправильно его использовал и я показал как надо использовать сгенерированную crc для расчета в частности в 100 мегабином эзернете %) PS. меня подобные тулзы не устраивают свой онлайновостью и не возможностью кастомизации "по месту", мне проще прописать 3 параметра pDAT_W/pCRC_TYPE/pINIT_VALUE в одном и том же модуле чем каждый раз генерить отдельный модуль %) Для полинома А001 под MODBUS генератор от OutputLogic.com генерирует -- CRC module for data(7:0) -- lfsr(15:0)=1+x^13+x^15+x^16; ------------------------------------------------ Прогоняю бенчем счетчиком oт 0 до 255 на выходе заявленная таблица не просматривается //************************************************************************** const unsigned short CrcTable[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040, }; Что я упускаю? Спасибо! :1111493779: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться