Jump to content

    

Strob

Участник
  • Content Count

    190
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Strob

  • Rank
    Частый гость

Recent Profile Visitors

1679 profile views
  1. Создавал через мастер в GUI. Ну а по результату через тикль. Сходятся. С запасом 250-350 пс. Я специально для тестов выкидывал из проекта все кроме проверяемого куска. Без изменений. Вообще, по поводу времянок у меня есть подозрения, хотя и не могу их как либо проверить. Я с проблемой ila не прям сейчас сижу, но недавно было. Несмотря на запас, один из трактов обработки работающий на 250 выдавал странный сигнал. При этом он точно работал нормально раньше. Перепайка плисы решила проблему. Потом подобная ситуация на другом экземпляре появилась(пол года прошло). Вот думаю термоиспытания не гробят ли времянки кристаллов? Там довольно жёстко получается, +100, может даже больше на кристалле. Сейчас опять же проблема ушла когда переразвел на 285 МГц.
  2. Ответ очевиден )) но при прочих равных, было 2 ila на кристалле. На одной частоте и обе получали частоту сильно позже старта плисы. Одна ila стартует нормально. Вторая нет. К тому же, если после танцев с бубнами ila заводится, то уже не пропадает до выключения питания.
  3. Действительно. в такой вариации запроса ищется быстро. Значит плохо искал. Впрочем проблему это не решает...
  4. На проводах. Но все же не сопли )) Самое интересное, что проблема явно носит случайный характер. Мне удавалось запустить ila много раз перезапуская виваду, выдергивая-подключая программатор и т.д. на некоторых сборках проекта проблема вообще не проявлялась. Более того. У меня было 2 ila, обе подключены к частотам которых нет на момент запуска. Частоты одинаковые 250 МГц, но асинхронные. Одна ila стабильно запускалась, другая - нет. Пропускал частоту через clock wizard, ставил параметр safe clock startup. Не помогло. Версия 2020.1 - проблема та же.
  5. Делали. И сервер закрывали, и виваду перезапускали. И программатор переподключали. Иногда помогает. Чаще нет. А каким программатором пользуетесь? У нас digilent smt1
  6. Приходят. Уже сто раз проверялось. Может быть рэфреш в 2020.1 багованый, но иногда помогало перезапустить виваду. Раз 8...
  7. Рефреш - в смысле перезаливка плисы? Есть аналогичная проблема. Рефреш устройства(в gui) не помогает. При этом проявляется проблема не всегда. Перезаливка плисы не вариант, при перезаливке клоки пропадают. Вообще если кто знает нюансы, было бы здорово услышать
  8. В BSP settings посмотрите, что указано как std output. В частности там может стоять uart дэбагера, если он добавлен в проект.
  9. Надо глянуть, выглядит как аналог сигаси. Это хорошо.
  10. Про динамическое отключение-подключение не смогу ответить. Возможно нельзя, возможно не знаю как. Инкапсуляции в vhdl действительно нет. И наверное не будет никогда. Наследования в vhdl возможны, через ключевое слово new. Поддержку никогда не проверял. Возможно не поддержано инструментами. Полиморфизм в vhdl существует как в виде передачи через генерики(в т.ч. типов, пэкэджей и функций - vhdl 2008) так и через анонимные типы(vhdl 2019) или неопределенные типы(сейчас не помню появилось ли это в 2008, или раньше было).
  11. Данный источник мягко говоря не точен. Да по VHDL вообще русскоязычные источники как специально сделаны так, чтобы все на SV переходили. Тихий ужас. пункт 1.3.5 стандарта раскрывает смысл этой цитаты из вступления. Вот пример настоящего VHDL 2008. library ieee; context ieee.ieee_std_context; entity slave is port ( clk, reset : in std_ulogic; req : in std_ulogic; ack : out std_ulogic; ... ); end entity slave; architecture pipelined of slave is signal req_cnt, ack_cnt : unsigned(3 downto 0); default clock is rising_edge(clk); property all_requests_acked is forall C in {0 to 15}: always {req and req_cnt = C} |=> {[*0 to 99]; ack and ack_cnt = C}; begin req_ack_counter : process (clk) is begin if rising_edge(clk) then if reset = '1' then req_cnt <= "0000"; ack_cnt <= "0000"; else if req = '1' then req_cnt <= req_cnt + 1; end if; if ack = '1' then ack_cnt <= ack_cnt + 1; end if; end if; end if; end process req_ack_counter; ... assert all_requests_acked; end architecture pipelined; Догонять - как будто это плохо. Насчет костылей, вопрос крайне сложный. В VHDL по сути все представлено в виде библиотек. Это его путь. =) Консервативные языки vs. Быстроразвивающиеся языки - это еще более древний, лютый и бессмысленный спор. И для этого есть библиотека )) UVVM. Как бы там ни было, спорить бессмысленно, SV лучше поддержан в части верификации, чем VHDL, и это существенно более важная особенность, нежели выяснение чего там нет или есть в языке. VHDL 2019 вообще почти все нововведения сконцентрировал вокруг верификации. А толку то, если его поддержку мы может и увидим году в 2040.
  12. И в мыслях не было кого-то в чем то обвинять. Как раз protected types и были введены для того, чтобы максимально приблизиться к классам по функционалу. При очень большом желании найти строгие совпадения/несовпадения можно очень быстро улететь в бессмысленный холивар. Т.к. и в V/SV отсутствует ряд возможностей VHDL. Сonstraint based random verification и functional coverage присутствуют в виде библиотек. PSL именно "интегрировали" в VHDL 2008.