Jump to content

    

Dantist2k17

Участник
  • Content Count

    50
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Dantist2k17

  • Rank
    Участник

Recent Profile Visitors

586 profile views
  1. Я не вижу вариантов кроме банального сравнения каждого с каждым.
  2. Приветствую. Прошу совета в решении следующей задачки. Имеется модуль с несколькими параметрами, количество параметров произвольное, необходимо выбрать максимальный из них по значению. module main #( parameter TW1 = 100, parameter TW2 = 80, parameter TW3 = 8, parameter TW4 = 534 )( output a, output b, output c, input d, input e); endmodule
  3. Спасибо, попробую. Про DC не поспоришь.
  4. Была (есть) проблема, связанная с тем, что Yosys ругался на lib триггера, в котором при описании ff (IQ,IQB) { ... } next_state определяется выражением, например: next_state: (CE*D + !CE*IQ); а не просто как: next_state: D; Как мне рассказали программисты, проанализировавшие исходный код Yosys, там явно указано о том, что подобные выражения текущая версия не поддерживает, мол в разработке. Так что судя по всему дело не в либах. Однако сам Yosys имеет на вооружении команду dff2dffe, которая оптимизирует схему, выявляя ff с мультиплексорами в обратной связи и заменяя их на ffe. При этом в выходной netlist пишутся примитивы \$_DFFE_PP_. Всегда можно сделать автозамену, но это как-то...
  5. Добрый день. Разыскивается пример lib файла с описание FDE триггера для Yosys. Есть ли на форуме те, кто может проконсультировать по работе в Yosys?
  6. Добрый день. Собственно вопрос в названии темы. Необходимо, чтобы синтезатор не использовал инверсный выход триггеров, использую DC. Каким образом это можно реализовать? Надеялся на set_dont_use, но не прокатило.
  7. Большое спасибо, помогли. В DC я писал в файл и затем читал из него. Оказывается все просто...
  8. Приветствую! Стоит задача получить список связанных с net-ом ячеек. Не могу/не знаю как передать результат команды get_cells в переменную. Как пробовал... encounter 51> get_cells -of_objects [get_nets n400] U526 U525 U524 0x15 encounter 52> set a [get_cells -of_objects [get_nets n400]] 0x17 encounter 53> puts $a 0x17 encounter 54> get_cells -of_objects [get_nets n400] > 456 Usage: get_cells [-help] [-filter <expr>] [-hierarchical] [-hsc <char>] [-leaf] [-nocase] [-quiet] [-regexp] [ <patterns> | -of_objects <object_list> ] **ERROR: (ENCTCM-48): "456" is not a legal option for command "get_cells". Either the current option or an option prior to it is not specified correctly. encounter 55> exec echo [get_cells -of_objects [get_nets n400]] > 123 В файл 123 записывается "0x1a". Что посоветуете?
  9. И правда, спасибо. Какие еще общепризнанные методики (кроме использования кода Грея) используются при реализации FIFO? В Google не забанили, просто по запросу dual clock fifo ничего другого найти не удалось.
  10. Так я и и оперся на то, что сигнал инкрементальный, оперся при обнаружения факта ошибки распространения сигнала. Ошибка есть следствие метастабильности. Или ваша мысль в том, что код Грея лишь снижает вероятность появления ошибки, по той причине что только один бит переключается, а анализировать "историю" переключений особого смысла не имеет?
  11. Вернулся к работе и впал в ступор. Изменение 2 бит приведет к ошибочному формированию флагов FIFO, независимо от соотношения частот, ведь это фактически нарушение работы счетчика (чтения или записи) при синхронизации, следовательно флаги fifo нельзя считать достоверными...
  12. Не понял вопроса. Сами данные в FIFO никак не пострадают от этого, пострадает логика формирования флагов full и empty.
  13. Соглашусь, что не гарантирует, но почему же контроль не имеет смысла? Если я знаю, что отличие должно быть только в одном бите, то проверяя этот факт, имею право сделать вывод о возникновении сбоя... Мне видится вполне логичным.