Jump to content

    

des00

Модераторы
  • Content Count

    7817
  • Joined

  • Last visited

Community Reputation

0 Обычный

About des00

  • Rank
    Вечный ламер
  • Birthday 01/14/1980

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Томск

Recent Profile Visitors

28538 profile views
  1. @MrGalaxy вы действительно не понимаете парадигму языка, на котором работаете. Вместо этого, с усердием, достойным лучшего применения, спорите
  2. ЕМНИП там нужна какая то определенная версия явы или еще какой либы
  3. Судя по коду и по суффиксу log, в названии параметра, усреднение будет по 4ем)
  4. да где-то есть на форуме) лет 10 назад обсуждали активно) я подразумевал не использовать честные однотактные делители, т.к. количество вычитателей дюже большое, по возможности обходиться делением на степень двойки)
  5. это офтопик в область идей округления, упомянули же. В вашей формуле не хватает floor ов) да и еще важный момент при округлении, необходимость блока ограничения при работе с числами с максимальным, для данной разрядности, значением. там требуется увеличить разрядность на 1 бит, потом ограничить и усечь разрядность. В общем нормальный round "дорогое" удовольствие на ПЛИС.
  6. да причем здесь код) ТС забыл что деление проверяется умножением). Берем картинку делимое 0x2820 (10272), частное 0х11EB (4587). ТС взял калькулятор виндовз, поставил режим работы "программист" ввел делимое и частное в хекс формате, получил 2 (что естественно, т.к. 10272/4587 = 2.23) и считает что он делит на два. Тогда как в школе учат проверять совсем по другому (хотя закончил школу очень давно, может что изменилось). Делаем проверку умножением частного на делитель получаем результат 0x23D6(9174). ТС ищет черную кошку в темной комнате, которой там нет. А должно быть вот так 10272(0x2820)/3 = 3424(0xD60), более того, это деление целочисленное(остаток от деления равен нулю) и более того, это правильно считается в режиме "программист" калькулятора виндовз. Резюмирую классическая ошибка всех кто в плис недавно. Деление больших чисел, на настоящем делителе(который в столбик, пишется минут за 5-10), за 1 такт(вывод судя по коду). Самый простой вариант проверки (ну кроме загнать в функциональный симмулятор, но ТС любит сразу в железе, по хардкорному, с сигналтапом подмышкой), сделать так офтопик конечно, но, как показала моя практика, если округления вида floor(num/div) + sign(num) недостаточно, то на плисах лучше все же делать floor((num+0.5*div)/div). Варианты сложного постанализа по ресурсу занимают больше)
  7. 99.5% ищите асинхронный управляющий сигнал
  8. Отнюдь, при всем уважении, но у ТС проблемы с математикой 5 го класса, а не все что описали выше коллеги)
  9. а ничего что в режиме "программист" калькулятор виндовз целочисленный? На остальное я уже ответил. ЗЫ. Просидите в состоянии деления тактов 5-6, должно помочь. На будущее, не используйте вот такую реализацию вычисления среднего. Это не МК
  10. 0x11EB*2=0x23D6, у вас вообще не так выходит) ЗЫ. возьмите нормальный симулятор, перед тем как выполнять отладку на плис ЗЗЫ. 99.9% ошибка со времянкой в делителе 32-х битных чисел
  11. Потому что нельзя. Получайте статус Свой и добро пожаловать)
  12. ну комментарии можно любые добить) но вообще, в до SV эпоху, боролись так)
  13. тогжа в альтеру писать, предьявлять что нелегальный софт работает не верно) из текущего end else if (pDAT_NUM == cCOL_BY_CYCLE) begin // no remap write data as is assign owrite = write & dwc_cnt.done; assign owfull = wfull; assign owaddr = waddr; assign owdat = dwc_dat[pDAT_NUM-1 : 0]; end else begin assign owdat[-1] = 'x; // incorrect parameter settings end endgenerate работает на любом софте и даже в древнем 95ом верилоге)