Куча говна / Говнокод #19349 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
wire tsun = clk | (~dere);
wire dere = clk | (~tsun);

always @(posedge clk) rnd <= dere;

Интересно, будет ли этот код работать как TRNG?

P.S. Узнаем на выходных, когда приедет Циклоняшка.

Запостил: bormand bormand, (Updated )

Комментарии (16) RSS

  • * ц и к л о н я ш к а *
    ц                     ц
    и  Ц А Р С К И Й  ^_^ и
    к                     к
    л  x[i<<1|i^i]=i<<1;  л
    о                     о
    н  x[i<<1|0x1]        н
    я    = i<<1|'8'^'9';  я
    ш                     ш
    к  =^_^=  А Н Р О Л Л к
    а                     а
    * ц и к л о н я ш к а *
    Ответить
  • Эх блин, циклические зависимости между wire'ами походу недопустимы... Синтезатор скажет, что я жопорукий.
    Ответить
    • Лол. Синтезатор то схавал, зато симулятор повис как только clk занулилось.
      Ответить
  • Что это? Кококод для плис?

    Вот схематехники то любят зацикливать вход на выход тригеров друг на друга и брат жив
    Ответить
    • У схемотехников бывает и такое:
      output = input AND NOT input


      Кто-то скажет, что output = 0 при любом входе? Как бы не так!

      В реальной схеме инвертор переключается с задержкой (пусть в примере это будет наносекунда). Тогда после смены низкого входного сигнала на высокий в течение 1 нс на выходе будет 1 AND 1 = 1 и только спустя 1 нс появится 1 AND 0 = 0.

      Аналогичный выброс напряжения можно поймать и в схеме output = input OR NOT input, но только на переходе с высокого уровня на низкий.
      Ответить
      • Ну да, а если надо импульс подлиннее - можно добавить ещё пару-тройку not'ов. А если написать clk = not not not clk, то получится простейший мультивибратор...
        Ответить
      • Вот кстати, а как такую фигню протащить через всякие оптимизаторы HDL'ей? Они же могут её упростить до output = false и всё испортить...
        Ответить
        • Про ring oscillator: "You can also use it as a controllable heater and make a thermostat out of it."
          Ответить
          • Видимо брат умрёт от перегрева, если из всех ячеек собрать кольцо.
            Ответить
      • Кстати, в альтеровской доке твой пример приведён как пример говнокода 🙂

        Предлагают вместо этого юзать синхронную логику, чтобы получился аккуратный импульс длиной в 1 тик генератора, а не UB-иголка. Как-то так:
        always @(posedge clk)
        begin
            delayed <= input;
            output <= input and not delayed;
        end
        Ответить
    • > Кококод для плис?
      Ага, UB для плиски. Подбрасываем RS триггер в нестабильное состояние и смотрим, на какую сторону упадёт...
      Ответить
  • Привезли няшку. Надеюсь, всё-таки осилю их IDE.
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8