?

Log in

No account? Create an account
Я тоже силиконовый крымчанин - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Я тоже силиконовый крымчанин [Mar. 27th, 2015|11:40 pm]
Yuri Panchul
Господа! На днях Председатель Совета Федерации Валентина Матвиенко (наверняка посовещавшись с Натальей Поклонской) предложила создать в Крыму Силиконовую Долину:







Я не мог остаться к этому равнодушен. Помимо того, что я более 20 лет являюсь обитателем и работником калифорнийской Silicon Valley, я еще и был в Крыму (я - слева, а справа мой младший брат):





Кроме этого, я читал книгу "Остров Крым" и кроме этого Крым недавно посещала великая ЖЖ-блоггерша Наталья ... нет, не Поклонская, ... Наталья Радулова:





Не буду вас томить. Чтобы помочь Крыму по части силикона, я зарегистрировал вебсайт:

silicon-crimea.com




на который буду выкладывать разного рода заметки и учебные материалы для того, чтобы приобщить широкие массы крымчан и гостей Крыма к схемотехнике, языкам описания аппаратуры, программируемым пользователем вентильным матрицам, разработке систем на кристалле, системам автоматизации проектирования электронных устройств, встроенным микропроцессорам, микроконтроллерам, полупроводниковому производству и экономике электронного бизнеса.

Замечу, что крымчане, с их ограниченными ресурсами, могут довольно просто переиграть как минимум Министерство Образования Украины. В мой визит в Киев в 2012 году я изучил, какие учебники МинОбр Украины рекомендует для изучения электроники и ... Короче, я не хочу никого обижать, но в учебниках МинОбра Украины просто не представлены многие базовые мейнстримные технологии последних 25 лет, включая использование языков описания аппаратуры для разработки цифровых схем на уровне регистровых обменов, микроархитектуру конвейерных процессоров и другие вещи, которые там должны были быть минимум с начала 1990-х.

Но переиграть Киев - это не достижение. Реально крымчане должны вписаться в мировой рынок, работать с компаниями из Калифорнии, Японии, Южной Кореи, Великобритании, российского Зеленограда, Шанхая, Тайваня и т.д. Конечно, сейчас есть всякие санкции, но когда-нибудь их снимут, и до этого в Крыму должно сформироваться сообщество инженеров с навыками в разнообразных silicon-овых технологиях.

Мой сегодняшний пост на silicon-crimea.com - это примерчик, который я приготовил в рамках моей помощи Тимуру Палташеву из AMD учить 35 индийских и китайских студентов в небольшом университете во Fremont, California:

http://www.silicon-crimea.com/2015/03/28/verilog-and-fpga-intro-project-example/

Пример ниже служит как иллюстрация для списка из 35 индивидуальных упражнений для студентов, начинающих изучать разработку цифровых микросхем, используя язык описания аппаратуры Verilog на уровне регистрового обмена, с реализацией на программируемой пользователем вентильной матрице (ППВМ).

Задание: Разработать схему, которая вводит нажатия на клавишу в сдвиговый регистр с сигналом разрешения, выводит текущее состояние сдвигового регистра на группу светодиодов в двоичном представлении, а также на статический многоразрядный семисегментный индикатор, показывающий текущее состояние сдвигового регистра в шестнадцатеричном представлении. Реализовать схему на плате Terasic DE2-115 с ПЛИС Altera Cyclone IV E. В качестве примеров для разработки схемы можно использовать шаблон верхнего модуля от Terasic, пример драйвера одноразрядного семисегментного индикатора для платы Digilent Basys 3 с ПЛИС Xilinx Artix-7, и пример иллюстрирующий сдвиговый регистр без сигнала разрешения, с выводом текущего состояния на светодиоды в двоичном представлении, также реализованный на плате Basys 3.


HTML для печати - http://www.silicon-crimea.com/student_projects/2015_03_27_intro_project_example

An example introductory project: Implement a design of a shift register with enable signal. The design should input a single bit from a key and put in into the shift register. The current state and the output of the shift register should be displayed on LEDs in binary representation. In addition, the current state of the shift register should be displayed on static multi-digit seven-segment display in hexadecimal form. The design should be implemented using Terasic DE2-115 board with Altera Cyclone IV E FPGA. As a base for the project a student can use the top module template from Terasic; the example of a seven-segment display driver for Digilent Basys 3 board with Xilinx Artix-7 FPGA; and the example illustrating a shift register (without enable signal), that outputs the current state of the shift register on LEDs in binary representation, also implemented for Basys 3 board.



//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------


The reference materials:


//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------


Top module from Terasic Altera DE2-115 template:


module de2_115_user
(
    input         CLOCK_50,
    input  [ 3:0] KEY,
    input  [17:0] SW,
    output [ 8:0] LEDG,
    output [17:0] LEDR,
    output [ 6:0] HEX0,
    output [ 6:0] HEX1,
    output [ 6:0] HEX2,
    output [ 6:0] HEX3,
    output [ 6:0] HEX4,
    output [ 6:0] HEX5,
    output [ 6:0] HEX6,
    output [ 6:0] HEX7
);

    assign LEDG [3:0] = KEY;
    assign LEDG [4]   = KEY [0] & KEY [1];
    assign LEDG [5]   = KEY [0] | KEY [1];
    assign LEDG [6]   = KEY [0] ^ KEY [1];
    assign LEDG [7]   = ~ KEY [0];
    assign LEDG [8]   = ~ KEY [1];

    assign LEDR = SW;

    assign HEX0 = 7'h0;
    assign HEX1 = 7'h7f;
    assign HEX2 = 7'h0;
    assign HEX3 = 7'h7f;
    assign HEX4 = 7'h0;
    assign HEX5 = 7'h7f;
    assign HEX6 = 7'h0;
    assign HEX7 = 7'h7f;

endmodule


//--------------------------------------------------------------------


// Combinational driver for single-digit display


module single_digit_display
(
    input      [3:0] digit,
    input            single_digit,
    input            show_dot,

    output reg [6:0] seven_segments,
    output           dot,
    output     [3:0] anodes
);

    always @*
        case (digit)
        'h0: seven_segments = 'b1000000;  // a b c d e f g
        'h1: seven_segments = 'b1111001;
        'h2: seven_segments = 'b0100100;  //   --a--
        'h3: seven_segments = 'b0110000;  //  |     |
        'h4: seven_segments = 'b0011001;  //  f     b
        'h5: seven_segments = 'b0010010;  //  |     |
        'h6: seven_segments = 'b0000010;  //   --g--
        'h7: seven_segments = 'b1111000;  //  |     |
        'h8: seven_segments = 'b0000000;  //  e     c
        'h9: seven_segments = 'b0011000;  //  |     |
        'ha: seven_segments = 'b0001000;  //   --d-- 
        'hb: seven_segments = 'b0000011;
        'hc: seven_segments = 'b1000110;
        'hd: seven_segments = 'b0100001;
        'he: seven_segments = 'b0000110;
        'hf: seven_segments = 'b0001110;
        endcase

    assign dot    = ~ show_dot;
    assign anodes = single_digit ? 4'b1110 : 4'b0000;

endmodule


//--------------------------------------------------------------------


// Basys3 project that instantiates
// combinational driver for single-digit display


module basys3
(
    input         clk,

    input         btnC,
    input         btnU,
    input         btnL,
    input         btnR,
    input         btnD,

    input  [15:0] sw,

    output [15:0] led,

    output [ 6:0] seg,
    output        dp,
    output [ 3:0] an
);

    single_digit_display single_digit_display
    (
        .digit           ( sw [3:0] ),
        .single_digit    ( sw [15]  ),
        .show_dot        ( sw [14]  ),

        .seven_segments  ( seg      ),
        .dot             ( dp       ),
        .anodes          ( an       )
    );

endmodule


//--------------------------------------------------------------------


// Clock divider for 100 MHz input clock:


module clock_divider_100_MHz_to_1_49_Hz
(
    input  clock_100_MHz,
    input  resetn,
    output clock_1_49_Hz
);

    // 100 MHz / 2 ** 26 = 1.49 Hz

    reg [25:0] counter;

    always @ (posedge clock_100_MHz)
    begin
        if (! resetn)
            counter <= 0;
        else
            counter <= counter + 1;
    end

    assign clock_1_49_Hz = counter [25];

endmodule


//--------------------------------------------------------------------


// Shift register (without enable)


module shift_register
(
    input             clock,
    input             resetn,
    input             in,
    output            out,
    output reg [15:0] data
);

    always @ (posedge clock or negedge resetn)
    begin
        if (! resetn)
            data <= 16'hABCD;
        else
            data <= { in, data [15:1] };
            // data <= (data >> 1) | (in << 15);
    end
    
    assign out = data [0];

endmodule


//--------------------------------------------------------------------


// Basys3 project that instantiates shift register


module basys3
(
    input         clk,

    input         btnC,
    input         btnU,
    input         btnL,
    input         btnR,
    input         btnD,

    input  [15:0] sw,

    output [15:0] led,

    output [ 6:0] seg,
    output        dp,
    output [ 3:0] an
);

    wire clock;
    wire resetn = ! btnU;

    clock_divider_100_MHz_to_1_49_Hz clock_divider
    (
        .clock_100_MHz (clk),
        .resetn        (resetn),
        .clock_1_49_Hz (clock)
    );

    wire out;

    shift_register shift_register
    (
        .clock      ( clock  ),
        .resetn     ( resetn ),
        .in         ( btnC   ),
        .out        ( out    ),
        .data       ( led    )
    );

    assign seg = out ? 7'b1111001 : 7'b1000000;
    assign dp  = 1'b1;
    assign an  = 4'b1110;

endmodule


//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------


The implementation report:


//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------


Top module:


module de2_115_user
(
    input         CLOCK_50,
    input  [ 3:0] KEY,
    input  [17:0] SW,
    output [ 8:0] LEDG,
    output [17:0] LEDR,
    output [ 6:0] HEX0,
    output [ 6:0] HEX1,
    output [ 6:0] HEX2,
    output [ 6:0] HEX3,
    output [ 6:0] HEX4,
    output [ 6:0] HEX5,
    output [ 6:0] HEX6,
    output [ 6:0] HEX7
);

    wire clock;
    wire resetn = KEY [3];

    clock_divider_50_MHz_to_1_49_Hz clock_divider_50_MHz_to_1_49_Hz
    (
        .clock_50_MHz  (CLOCK_50),
        .resetn        (resetn),
        .clock_1_49_Hz (clock)
    );

    shift_register_with_enable shift_register_with_enable
    (
        .clock      (   clock    ),
        .resetn     (   resetn   ),
        .in         ( ~ KEY  [2] ),
        .enable     (   KEY  [1] ),
        .out        (   LEDG [7] ),
        .data       (   LEDR     )
    );

    single_digit_display digit_0
    (
        .digit          ( LEDR [ 3: 0] ),
        .seven_segments ( HEX0         )
    );

    single_digit_display digit_1
    (
        .digit          ( LEDR [ 7: 4] ),
        .seven_segments ( HEX1         )
    );

    single_digit_display digit_2
    (
        .digit          ( LEDR [11: 8] ),
        .seven_segments ( HEX2         )
    );

    single_digit_display digit_3
    (
        .digit          ( LEDR [15:12] ),
        .seven_segments ( HEX3         )
    );

    single_digit_display digit_4
    (
        .digit          ( { 2'b0 , LEDR [17:16] } ),
        .seven_segments ( HEX4                    )
    );

    assign LEDG [7:1] = 7'b111_1111;
    assign HEX5       = 7'h7f;
    assign HEX6       = 7'h7f;
    assign HEX7       = 7'h7f;

endmodule


Top module instantiation in the wrapper provided by Terasic. Note unused ports:
Top module de2_115_user RTL schematics:
Clock divider has to be modified to accomodate 50 MHz input frequency instead of 100 MHz: module clock_divider_50_MHz_to_1_49_Hz ( input clock_50_MHz, input resetn, output clock_1_49_Hz ); // 50 MHz / 2 ** 25 = 1.49 Hz reg [24:0] counter; always @ (posedge clock_50_MHz) begin if (! resetn) counter <= 0; else counter <= counter + 1; end assign clock_1_49_Hz = counter [24]; endmodule
Module clock_divider_50_MHz_to_1_49_Hz RTL schematics:
Added enable signal to shift register, made it wider (18 bits) and changed its reset value for simplicity: module shift_register_with_enable ( input clock, input resetn, input in, input enable, output out, output reg [17:0] data ); always @ (posedge clock or negedge resetn) begin if (! resetn) data <= 18'b10_0000_0000_0000_0000; else if (enable) data <= { in, data [17:1] }; end assign out = data [0]; endmodule
Module shift_register_with_enable RTL schematics:
Module shift_register_with_enable post synthesis schematics:
Module shift_register_with_enable post synthesis schematics - fragment:
Terasic DE2-115 board uses static display, so we don't need a dynamic display. We just instantiate several single digit displays. Moreover, this static display does not have a dot, so we can remove unused signals. module single_digit_display ( input [3:0] digit, output reg [6:0] seven_segments ); always @* case (digit) 'h0: seven_segments = 'b1000000; // a b c d e f g 'h1: seven_segments = 'b1111001; 'h2: seven_segments = 'b0100100; // --a-- 'h3: seven_segments = 'b0110000; // | | 'h4: seven_segments = 'b0011001; // f b 'h5: seven_segments = 'b0010010; // | | 'h6: seven_segments = 'b0000010; // --g-- 'h7: seven_segments = 'b1111000; // | | 'h8: seven_segments = 'b0000000; // e c 'h9: seven_segments = 'b0011000; // | | 'ha: seven_segments = 'b0001000; // --d-- 'hb: seven_segments = 'b0000011; 'hc: seven_segments = 'b1000110; 'hd: seven_segments = 'b0100001; 'he: seven_segments = 'b0000110; 'hf: seven_segments = 'b0001110; endcase endmodule
Module single_digit_display RTL schematics:
Altera Quartus II screenshot with area report
Altera Quartus II timing report - Fmax
Altera Quartus II timing report - slack
Board on reset
Board after reset
Entering input
A new sequence started after entering input:
Created by Yuri Panchul


Господа, насколько бы приветствуете мою инициативу?

Очень! Готов написать статью с примером реализации протокола I2C для соединения ПЛИС-а с датчиком эхолокации
1(1.8%)
Очень! Готов написать статью с примером реализации протокола MESI для когерентности кэшей многоядерных систем
2(3.5%)
Очень! Готов написать статью с примером реализации алгоритма Томасуло для простого суперскалярного процессора
0(0.0%)
Я тащусь от Натальи Поклонской! И тягу Панчула к Радуловой уважаю, хотя и не разделяю!
22(38.6%)
Я тащусь от эндемичной флоры и фауны Крыма! Даешь биоисследовательскую станцию!
19(33.3%)
(Скрежеча зубами) Ничего, мы еще научим крымчан скакать!
5(8.8%)
Из-за бугра плоюете?
8(14.0%)
LinkReply

Comments:
Page 1 of 4
<<[1] [2] [3] [4] >>
[User Picture]From: georg_pik
2015-03-28 06:43 am (UTC)
А как сложилась судьба младшего брата?
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 06:45 am (UTC)
Он живет в Техасе и работает программистом
(Reply) (Parent) (Thread)
[User Picture]From: leolion_1
2015-03-28 06:54 am (UTC)
Очень приветствую, хотя и ничего не готова написать, кроме того, что Панчул - молодец и матерый человечище :)
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 07:04 am (UTC)
Спасибо за комплимент!
(Reply) (Parent) (Thread)
From: bowhill
2015-03-28 06:55 am (UTC)
Силиконовая долина бывает в некоторых декольте.

Невежество -- сила ещё та.
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 07:01 am (UTC)

Споры "Силиконовая" vs "Кремниевая" - дурной тон

Большинство людей, которые начинают длинные ветки обсуждений, что якобы правильно "Кремниевая" вместо "Силиконовой" - как правило ничего не понимают ни в кремнии, ни в силиконе. Такие споры - это просто aboutism и дурной тон.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: blaster2009
2015-03-28 06:59 am (UTC)
Не снимут они санкции, для них это категорический императив:-) а без снятия все это прожектерство, не более.
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 07:03 am (UTC)
Все фигня, они могут напрямую работать с Зеленоградом и КНР, которые никаких санкций не вводили. Там правда есть нюанс про американский экспортный контроль при реэкспорте, но тем не менее. Может наконец разработают суверенный RTL-to-GDSII маршрут.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: bestysst
2015-03-28 07:03 am (UTC)
пухленький ты в детстве был:)
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 07:05 am (UTC)
Зато я был худенький в 22-23 года из-за несчастной любви
(Reply) (Parent) (Thread)
[User Picture]From: fabless
2015-03-28 07:23 am (UTC)
Просто сайта мало. Нужна соцсеть ASIC-FPGA разработчиков
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 07:25 am (UTC)
А как вы себе ее представляете?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: livejournal
2015-03-28 07:33 am (UTC)

Я тоже силиконовый крымчанин

User info_infanterie referenced to your post from Я тоже силиконовый крымчанин saying: [...] Originally posted by at Я тоже силиконовый крымчанин [...]
(Reply) (Thread)
[User Picture]From: red_army_1917
2015-03-28 07:57 am (UTC)

нужно экспертное мнение


А что Панчул думает об использовании российскими учеными софт-архитектур (Soft-Architecture Description Language SADL) при программировании больших вычислительных систем на основе FPGA?

Наши ученые пишут, что время синтеза загрузочного файла для плотно заполненного кристалла ПЛИС с ростом интеграции ПЛИС растет нелинейно и уже сейчас составляет от 3 до 10 суток, а применение кластерных вычислительных систем для синтеза многокристальных задач ситуацию не спасает, т.к. задач одновременно несколько и узлов кластера не хватает. По их опыту цена ошибки программиста велика: результат ее исправления будет только через 3 суток.

Поэтому они применяют софт-архитектуры - вычислительная структуры, содержащая макрообъекты, в которых можно без перезагрузки файлов конфигурации FPGA вычислительного поля с помощью программной настройки изменять коммутацию между устройствами и создавать необходимые вычислительные структуры для решения прикладных задач.

вот у меня как у дилетанта возникает вопрос:

Если Гугл ничего не знает о Soft-Architecture Description Language это новое слово в индустрии или использование нового термина взамен существующему и общепринятому?

(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 08:09 am (UTC)

Re: нужно экспертное мнение

Я подобные слова слышал в индустрии много раз с 1995 года. Разбираться в этом прямо сейчас лень и вообще я иду спать. Как-нибудь потом.
(Reply) (Parent) (Thread) (Expand)
From: raygo
2015-03-28 08:38 am (UTC)
"Замечу, что крымчане, с их ограниченными ресурсами, могут довольно просто переиграть как минимум Министерство Образования Украины. В мой визит в Киев в 2012 году я изучил, какие учебники МинОбр Украины рекомендует для изучения электроники и ... Короче, я не хочу никого обижать, но в учебниках МинОбра Украины просто не представлены многие базовые мейнстримные технологии последних 25 лет, включая использование языков описания аппаратуры для разработки цифровых схем на уровне регистровых обменов, микроархитектуру конвейерных процессоров и другие вещи, которые там должны были быть минимум с начала 1990-х."

насколько я понял из новостей крымчане могут переиграть только сами себя теперь. потому что например никаких дипломов об окончании вуза ни украинского образца, ни российского им теперь не положено.В калифорнии котируются дипломы непризнанных территорий?(я конечно понимаю что некоторых спецов берут просто потому что у них есть послужной список работ за спиной, но вот что делать выпускникам)


"Но переиграть Киев - это не достижение. Реально крымчане должны вписаться в мировой рынок, работать с компаниями из Калифорнии, Японии, Южной Кореи, Великобритании, российского Зеленограда, Шанхая, Тайваня и т.д. Конечно, сейчас есть всякие санкции, но когда-нибудь их снимут, и до этого в Крыму должно сформироваться сообщество инженеров с навыками в разнообразных silicon-овых технологиях."

Из новостей опять же-весь ит сектор крыма работавший с западом массово валит из крыма. Во первых не дают визы в российские паспорта с крымской пропиской.второе-западные да и восточные компании просто не хотят брать компании из крыма в аутсорс по причине рисков. Третье-карты визв и мастер кард обналичить в крыму проблема, а значит и получать денюжку с запада тоже проблема.

В итоге помоему Юрий вы мечтатель-революционер не хуже майдановцев. Вы предлагаете в таких условиях крымчанам изучать электронику в надежде большой перспективы где-то впереди и то если в процессе движения туда они не передохнут с голодухи? я уж даже не говорю о нулевой перспективе любого электронного производства в крыму.


(Reply) (Thread)
From: raygo
2015-03-28 08:42 am (UTC)
ну и для разбавления затхлой говорильни о радуловой, подкину фоток молодой фашисточки


Edited at 2015-03-28 08:43 am (UTC)
(Reply) (Parent) (Thread)
From: raygo
2015-03-28 08:44 am (UTC)
(Reply) (Thread)
From: raygo
2015-03-28 08:47 am (UTC)
(Reply) (Thread)
From: raygo
2015-03-28 09:15 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: dutchman07
2015-03-28 09:28 am (UTC)
К сожалению в Крыму не работают Windows и Apple, не думаю что без них возможно создание серьёзного научно-инженерного центра.
(Reply) (Thread)
From: andreyi
2015-03-28 01:23 pm (UTC)
работают
(Reply) (Parent) (Thread)
(Deleted comment)
(Deleted comment)
[User Picture]From: maxdz
2015-03-28 09:40 am (UTC)
С огнём играетесь, Юрий. :)

Амеры ведь против "крымнаша" довольно серьёзные санкции ввели и на всю совместную деятельностъ с "крымнашем" тоже. А ну как, не разберутся в суматохе, что там за silicon-crimea такой и почему на нём ваши материалы вашей компании лежат - оштрафуют вашу фирму за ведение консультационной деятельности в "крымнаше".

Потом, понятно, ваши юристы будут писать бумаги, что "невиноватые мы, ничего не делали, никого не консулътировали, никаких денег в "крымнаш" не вкладывали и оттуда не получали, есть у нас сотрудник-юродивый с его личным сайтегом итд итп" - куча человекочасов на это уйдёт (и куча зарплатного баблоса). И баблос тот, вычтут из вас... :)
(Reply) (Thread)
[User Picture]From: red_army_1917
2015-03-28 11:24 am (UTC)

эти уже доигрались, с огнем

Рейд карательных батальонов  по общежитиям Киевского политехнического института 25.03.15



Алкоголики, наркоманы и просто идиоты на Украине близятся к концу (плюс какая-то часть долбодятлов без копья в кармане выброшена обратно из бомж-армии), поэтому переможники начали в поисках дармового пушечного мясца шерстить институты. На видео - итоги облавы в общежитиях Киевского политехнического института - несколько десятков ботанов будут превращаться в "киборгов" в зоне "А" (вместо изучения методов программирования ПЛИС). Не исключено, что это последняя прижизненая видеосъемка несчастных.


Edited at 2015-03-28 11:25 am (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: kamarado_anton
2015-03-28 11:36 am (UTC)
Чтобы помочь Крыму по части силикона, я зарегистрировал вебсайт

представляю, что скажет товарищ Псаки...

(Reply) (Thread)
From: raygo
2015-03-28 11:38 am (UTC)
ей все равно-она крым на карте не найдет.
(Reply) (Parent) (Thread)
[User Picture]From: parallel_real
2015-03-28 12:01 pm (UTC)
Вообще очень интересны блоги где что-то узнаешь. А то надоели эти "фашисты", политота, бабские слезы, фотоблоггеры и новости которые и так можно увидеть в новостниках.

Афтор пиши исчо!
Хотим изучать разработку цифровых микросхем!
(Reply) (Thread)
[User Picture]From: panchul
2015-03-28 03:40 pm (UTC)
Обязательно!
(Reply) (Parent) (Thread)
Page 1 of 4
<<[1] [2] [3] [4] >>