?

Log in

No account? Create an account
Секс по Калифорнийски и @n_radulova - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

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

Секс по Калифорнийски и @n_radulova [Apr. 8th, 2015|07:13 am]
Yuri Panchul
Что такое калифорнийский секс? Есть ли он вообще? В 1970-е годы был, старожилы рассказывали, что был. Народ знакомился в Сан-Франциско на дискотехах и шел заниматься сексом. А потом начался СПИД, и за 1980-е весь секс в США закончился (а в СССР он наоборот, начался). Когда я приехал в Сан-Франциско в 1991 году, жалкие угольки бывших костров страсти догорали на углу Коламбус Авеню и Бродвей Стрит, где стояло три секс-шопа с резиновыми женщинами и порнофильмами. Догорают они и сейчас - вот мои фотографии точки позавчера:













В России с сексом немного получше, скажем так, романтичнее. Недавно известная в прошлом ЖЖ-блоггерша radulova опубликовала у себя в журнале теорию, что "любовь найти очень просто. И крайне сложно в то же время. Надо как-то выйти на человека, который был бы похож на тебя, как близнец. С теми, чьи черты лица похожи на наши, мы чувствуем себя наиболее комфортно. А если и остальное совпадает - примерный возраст, мировозрение, жизненные принципы, - то вообще все сложится. На ночь или на годы - это уже другой вопрос. Но так называемая "любовь с первого взгляда", взаимная симпатия - "Ты чуть вошел, я вмиг узнала, Вся обомлела, запылала. И в мыслях молвила: вот он!" - возникнет непременно.

Сразу же после этого поста товарищ Радулова сделала юзерпик на инстаграмме, который как две капли воды похож на юзерпик на основе моей фотографии 1995 года. Тот же треугольный подбородок, форма носа, челочка набок, форма улыбки, щечки:




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

Как вы помните, по субботам я помогаю Тимуру Палташеву из графической группы AMD учить Verilog-у и FPGA-ям 35 индусов и китайцев в небольшом университете во Фримонт, Калифорния. Чтобы студенты друг у друга не списывали, я даю им индивидуальные задачки - вот первые 35 задачек, по мотивам Кама-сутры (все-таки индусов учим). Их можно использовать и чтобы развлекать Радулову:

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.

1. Modify the counter design to count in decimal instead of hexadecimal. Not 0, 1, 2, ... 9, A, B, C, D, E, F, 10, 11, ... FFFF - but 0, 1, 2, ... 9, 10, 11, ... 9999, 0, 1, 2, ... Hint: you may need to add decimal digits separately and propagate carry.

2. Modify the counter design to count signed two's complement 12-bit number backwards. Output the result in hexadecimal representation with a sign: 000, -800, -7FF, -7FE, ... -002, -001, 000, 001, 002, ... 7FF, -800, ...

3. Modify the counter design to count with three different speeds, depending on pressed button.

4. Modify the counter design to count either forward (0, 1, 2, ...) or backward (0, FFFF, FFFE, ... , 3, 2, 1, 0, FFFF ...), depending on pressed button.

5. Modify the counter design to count either adding 1, or 2, or 3, depending on pressed buttons.

6. Modify the counter design to add disable signal that pauses counting. Connect this signal to a button.

7. Modify the counter design to count separately in each digit. Not 0000, 0001, 0002, ... FFFE, FFFF, 0000 - but 0000, 1111, 2222, 3333, ... EEEE, FFFF, 0000.

8. Modify the counter design to count separately in each two digits - 0000, 0101, 0202, ... FEFE, FFFF, 0000.

9. Modify the counter design to count separately in digit 3 and digits 2:0 - 0000, 1001, 2002, ... F00F, 0010, 1011, ... EFFE, FFFF, 0000.

10. Modify the counter design to count separately in each digit with different speed: 0000, 1234, 2468, 369C, 48C0, 5AF4, ... In other words one digit 0, 1, 2, ... F, 0; second 0, 2, 4, 6, ... E, 0; third one 0, 3, 6, 9, C, F, 2, 5, 8, B, E, 1, 4, 7, A, D, 0, fourth 0, 4, 8, C, 0, ...

11. Implement the design that generates Fibonnacci numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... The next number is found by adding up the two numbers before it.


12. Modify the shift register design to make LED lights moving not from left to right, but from right to left. Not 10011000, 01001100, 00100110, 00010011, 00001001, 00000100, ... - but 10011000, 00110000, 01100000, 11000000, ...

13. Modify the shift register design to make LED lights moving either from left to right or from right to left - depending on pressed button.

14. Modify the shift register design to make LED lights moving with different speed - depending on pressed button.

15. Modify the shift register design to make LED lights circularly: 10011000, 01001100, 00100110, 00010011, 10001001, 11000100, 01100010, 00110001, 10011000, ... Use one button as input, and a second button as input enable.

16. Modify the shift register design to make LED lights moving circularly and either from left to right or from right to left - depending on pressed button. Use one button as input, second button as input enable, and third button to control the direction of movement.

17. Modify the shift register design by splitting it into two independent 8-bit wide shift registers, with inputs coming from two different buttons.

18. Modify the shift register design by splitting it into two independent 8-bit wide shift registers, with inputs coming from the same button and with different speeds of shifting. The first should shift with the speed of one bit per clock cycle, the second - with the speed of two bits per clock cycle.

19. Modify the shift register design by splitting it into two independent 8-bit wide shift registers, with inputs coming from the same button and with different speeds of shifting. The first should shift with the speed of one bit per clock cycle, the second - with the speed of one bit every other cycle.

20. Implement a variant of exercise (18) with circular movements of LED lights. Use one button as input, and a second button as input enable.

21. Implement a variant of exercise (19) with circular movements of LED lights. Use one button as input, and a second button as input enable.

22. Implement a variant of exercise (18) with LEDs connected to the first shift register moving from left to right and LEDs connected to another one - from right to left.

23. Implement a variant of exercise (19) with LEDs connected to the first shift register moving from left to right and LEDs connected to another one - from right to left.

24. Implement a variant of exercise (22) with circular movements of LED lights. Use one button as input, and a second button as input enable.

25. Implement a variant of exercise (23) with circular movements of LED lights. Use one button as input, and a second button as input enable.

26. Modify the state machine design below by counting the occurrences of "01" sequences (i.e. counting the number of event when moore_out and mealy_out asserted). Output the number of moore_out events to the digits 3:2 of seven-segment display and the number of mealy_out events to the digits 1:0 of seven-segment display.

27. Modify the state machine design below to recognize the sequences of "0101" instead of "01". You need to implement only Moore machine.

28. Modify the state machine design below to recognize the sequences of "010101" instead of "01". You need to implement only Mealy machine.

29. Implement a variant of exercise 27 where you count the number of sequences instead of just recognizing them. Output the value of the counter to seven-segment display.

30. Implement a variant of exercise 28 where you count the number of sequences instead of just recognizing them. Output the value of the counter to seven-segment display.

31. Implement a variant of exercise 26 with fast clock (using 100 MHz clk instead of 1.49 Hz clock) for the shift register and state machines. When you press the input button once, the design may detect several "01" sequences because of bouncing. Try different buttons and switches on FPGA board as inputs. Report the results - are you able to detect bouncing?

32. A variant of exercise 31 modified to recognize the sequences of "0101" instead of "01". You need to implement only Moore machine.

33. A variant of exercise 31 modified to recognize the sequences of "010101" instead of "01". You need to implement only Mealy machine.

34. Modify the counter design to use ripple-carry adder built using logical operations instead of the adder created by synthesizing Verilog "+" operation.

35. Modify the counter design to use carry-lookahead adder built using logical operations instead of the adder created by synthesizing Verilog "+" operation.



Reference materials:
/--------------------------------------------------------------------

// Sequential building block: counter with load and better display

module counter_with_load
(
    input             clock,
    input             resetn,

    input             load,
    input      [15:0] load_data,
    output reg [15:0] count
);

    always @ (posedge clock or negedge resetn)
    begin
        if (! resetn)
            count <= 0;
        else if (load)
            count <= load_data;
        else
            count <= count + 1;
    end

endmodule

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

module clock_divider_100_MHz_to_95_4_Hz_and_1_53_KHz
(
    input  clock_100_MHz,
    input  resetn,
    output clock_95_4_Hz,
    output clock_1_53_KHz
);

    // 100 MHz / 2 ** 20 = 95.4 Hz
    // 100 MHz / 2 ** 16 = 1.53 KHz

    reg [29:0] counter;

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

    assign clock_95_4_Hz  = counter [19];
    assign clock_1_53_KHz = counter [15];

endmodule

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

module display
(
    input             clock,
    input             resetn,
    input      [15:0] number,

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

    function [6:0] bcd_to_seg (input [3:0] bcd);

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

    endfunction

    reg [1:0] i;

    always @ (posedge clock or negedge resetn)
    begin
        if (! resetn)
        begin
            seven_segments <=   bcd_to_seg (0);
            dot            <= ~ 0;
            anodes         <= ~ 'b0001;

            i <= 0;
        end
        else
        begin
            seven_segments <=   bcd_to_seg (number [i * 4 +: 4]);
            dot            <= ~ 0;
            anodes         <= ~ (1 << i);

            i <= i + 1;
        end
    end

endmodule

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

module basys3_7
(
    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;

    wire clock;
    wire display_clock;

    clock_divider_100_MHz_to_95_4_Hz_and_1_53_KHz clock_divider
    (
        .clock_100_MHz  ( clk           ),
        .resetn         ( resetn        ),
        .clock_95_4_Hz  ( clock         ),
        .clock_1_53_KHz ( display_clock )
    );

    wire [15:0] count;

    counter_with_load counter_with_load
    (
        .clock      ( clock  ),
        .resetn     ( resetn ),
        .load       ( btnC   ),
        .load_data  ( sw     ),
        .count      ( count  )
    );

    assign led = count;

    display display
    (
        .clock          ( display_clock  ),
        .resetn         ( resetn         ),
        .number         ( count          ),

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

endmodule

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

// Sequential building block: shift register

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

module basys3_8
(
    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

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

// Smiling Snail FSM derived from David Harris & Sarah Harris

module pattern_fsm_moore
(
    input  clock,
    input  resetn,
    input  a,
    output y
);

    parameter [1:0] S0 = 0, S1 = 1, S2 = 2;

    reg [1:0] state, next_state;

    // state register

    always @ (posedge clock or negedge resetn)
        if (! resetn)
            state <= S0;
        else
            state <= next_state;

    // next state logic

    always @*
        case (state)

        S0:
            if (a)
                next_state <= S0;
            else
                next_state <= S1;

        S1:
            if (a)
                next_state <= S2;
            else
                next_state <= S1;

        S2:
            if (a)
                next_state <= S0;
            else
                next_state <= S1;

        default:

            next_state <= S0;

        endcase

    // output logic

    assign y = (state == S2);

endmodule

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

module pattern_fsm_mealy
(
    input  clock,
    input  resetn,
    input  a,
    output y
);

    parameter S0 = 0, S1 = 1;

    reg state, next_state;

    // state register

    always @ (posedge clock or negedge resetn)
        if (! resetn)
            state <= S0;
        else
            state <= next_state;

    // next state logic

    always @*
        case (state)

        S0:
            if (a)
                next_state <= S0;
            else
                next_state <= S1;

        S1:
            if (a)
                next_state <= S0;
            else
                next_state <= S1;

        default:

            next_state <= S0;

        endcase

    // output logic

    assign y = (a & state == S1);

endmodule

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

module basys3_10
(
    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 [15:0] shift_data_out;

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

    wire fsm_in = shift_data_out [8];
    assign led = shift_data_out;

    wire moore_out;

    pattern_fsm_moore pattern_fsm_moore
    (
        .clock  ( clock     ),
        .resetn ( resetn    ),
        .a      ( fsm_in    ),
        .y      ( moore_out )
    );

    wire mealy_out;

    pattern_fsm_mealy pattern_fsm_mealy
    (
        .clock  ( clock     ),
        .resetn ( resetn    ),
        .a      ( fsm_in    ),
        .y      ( mealy_out )
    );

    assign seg [0] = ~  moore_out;
    assign seg [1] = ~  moore_out;
    assign seg [2] = ~  mealy_out;
    assign seg [3] = ~  mealy_out;
    assign seg [4] = ~  mealy_out;
    assign seg [5] = ~  moore_out;
    assign seg [6] = ~ (moore_out | mealy_out);

    assign dp  = 1'b1;
    assign an  = 4'b1110;

endmodule




Вот этого, вышеперечисленного, у нас будет на ночь или на годы?

На ночь
2(18.2%)
На пару ночей
0(0.0%)
На 4-7 ночей
1(9.1%)
В принципе, можно расширить хоть на годы
7(63.6%)
Из-за бугра плюете?
1(9.1%)
LinkReply

Comments:
From: erovobian
2015-04-08 02:16 pm (UTC)
Не пойму:Радулова не дала себя Вам или Вы не дали себя ей?
(Reply) (Thread)
[User Picture]From: panchul
2015-04-08 02:22 pm (UTC)
Это сложно - сначала radulova написала, что я ей "удовольствия много доставил", а потом типа "если бы я жила в Америке, то заявила бы на Панчула в полицию, чтобы он ко мне не приближался" (понимаете - сначала приехать через 10000 километров, а потом требовать, чтобы не приближался).

Но нечего прошлое перемалывать - будущее впереди.
(Reply) (Parent) (Thread)
[User Picture]From: murmau
2015-04-08 09:28 pm (UTC)

Правильнее сказать не дадуд ни ему ни ей, да.

(Reply) (Parent) (Thread)
[User Picture]From: pavlius
2015-04-08 02:20 pm (UTC)

Скажите, а вы в Москву не планируете съездить?

(Reply) (Thread)
[User Picture]From: panchul
2015-04-08 02:23 pm (UTC)
Планирую, но не прямо сейчас - участвую в проекте MIPS I6400 который требует много ресурсов
(Reply) (Parent) (Thread)
[User Picture]From: alexey_zharikov
2015-04-08 08:20 pm (UTC)

MIPS I6400

Неужели ещё один "криэйтор"?
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2015-04-08 08:57 pm (UTC)

MIPS I6400 - это совсем другое

Это совсем другое, чем Ingenic в Creator. Во-первых, Ingenic в Creator - это не наш родной процессор, его спроектировали в китайской компании Ingenic. Т.е. у Ingenic архитектура - MIPS, а микроархитектура - их собственная.

А вот MIPS I6400 - это 1) наш родной чип 2) суперскалярный 3) многоядерный 4) с поддержкой hardware multithreading 5) с поддержкой виртуализации 6) с векторным расширением.

Короче - http://blog.imgtec.com/mips-processors/meet-mips-i6400-warrior-cpu-for-64-bit-computing-revolution
(Reply) (Parent) (Thread)
[User Picture]From: Виталий Чуксин
2015-04-09 09:57 pm (UTC)
А в Киев?
(Reply) (Parent) (Thread)
[User Picture]From: raydac
2015-04-08 02:21 pm (UTC)
хорошо что у тебя жена японка... а не скажем абхазка с большой родней как у знакомого украинца
(Reply) (Thread)
[User Picture]From: rdia
2015-04-08 02:54 pm (UTC)
Так японка ещё хуже - вот внезапно выяснится, что она овладела навыками google-translate и готова сделать харакири мужу! И кто же будет рассказывать про FPGA?
(Reply) (Parent) (Thread)
[User Picture]From: raydac
2015-04-08 03:02 pm (UTC)
ну это всеж лучше чем "брат зарэжет как собаку!"
(Reply) (Parent) (Thread)
[User Picture]From: rdia
2015-04-08 03:19 pm (UTC)
Не факт. Панчуловская жена, которая, кстати, значительно симпатичнее Радуловой, может проявить чудеса японской изобретательности по мотивам нанкинских выступлений.
(Reply) (Parent) (Thread)
[User Picture]From: woelfhen
2015-04-08 04:01 pm (UTC)
Любимец счастья и хан удачи - нечего сказать! Не вовремя в Америку уехал: теперь только регистры сдвигать остается, а известную блоггера дергают за титьки другие.
(Reply) (Thread)
[User Picture]From: artinventor
2015-04-08 04:22 pm (UTC)
Юра, хватит радовать Америку, переезжай к нам жить, в Новосибирск.
Тут и климат помягче стал последние годы, даже орхидеи будут расти. :)
А уж желающих позаниматься контроллерами и пр. полным полно.
(Reply) (Thread)
[User Picture]From: fatoff
2015-04-08 05:56 pm (UTC)
(Reply) (Thread)
[User Picture]From: alexey_zharikov
2015-04-08 05:58 pm (UTC)
Тут дело не в спиде - а в демографии. Согласно недавней переписи населения, в Bay Area на одну незамужнюю женщину приходится девять неженатых мужчин. А в России (про Москву не знаю - Москва - не совсем Россия) наоборот, незамужних женщин больше, чем неженатых мужчин. Среди бывших одноклассников моей жены в Москве половина мужчин уже спились и умерли - в возрасте до 43 лет! А в остальной России с этим ещё хуже, чем в Москве - там вообще пьют не просыхая.
(Reply) (Thread)
[User Picture]From: red_army_1917
2015-04-08 07:58 pm (UTC)

пьют не просыхая

в своем подъезде последнего пьяного видел лет 7 назад

алкоголизация была немерено усугублена в 90-ых и это на совести тех младореформаторов, вроде немцова и чубайса

И в том числе по этому, пока мы пережившие 90ые помним и живы, у "либеральной" оппозиции нет электоральных шансов на честных выборах в России.
(Reply) (Parent) (Thread)
[User Picture]From: alexey_zharikov
2015-04-08 08:12 pm (UTC)

Re: пьют не просыхая

А почему на совести? Вы полагаете, Немцов и Чубайс лично насильно вливали водку в одноклассников моей жены? Которые, между прочим, восьмой класс школы (в девятый они не пошли) закончили ещё в СССР при Горбачеве, в 1987 году, за годы до ГКЧП - и уже тогда регулярно пили водку.
(Reply) (Parent) (Thread)
[User Picture]From: red_army_1917
2015-04-08 08:42 pm (UTC)

Re: Немцов и Чубайс лично

Сталин тоже не лично

или есть варианты?

Edited at 2015-04-08 08:44 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: knyasa_o
2015-04-09 07:46 am (UTC)
в возрасте до 35 вообще пить не принято теперь.
(Reply) (Parent) (Thread)
[User Picture]From: ammosov
2015-04-08 07:32 pm (UTC)
Панчул, смотри - доиграешься, как мистер Пиквик.
(Reply) (Thread)
[User Picture]From: alexey_zharikov
2015-04-08 08:14 pm (UTC)
"Pardon me, Mr. Partner. Who is this мистер Пиквик?"
(Reply) (Parent) (Thread)