Перейти к содержанию

Flip-fl0p

Свой
  • Публикаций

    745
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Flip-fl0p

  • Звание
    В поисках себя...
  • День рождения 03.01.1990

Контакты

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

Информация

  • Город
    Санкт-Петербург

Старые поля

  • skype
    Flip-fl0p
  • Vkontakte
    https://vk.com/id4024060

Посетители профиля

4 438 просмотров профиля
  1. Прибор хороший, но я слабо представляю как данный прибор поможет проанализировать качество сигнала....
  2. Вот тут я к сожалению не могу ответить на Ваш вопрос. Поэтому скажу просто: не знаю. Мне в своей, пока ещё не большой практике, не доводилось заниматься измерением высокоскоростных сигналов. Я всегда считал что для измерения таких сигналов достаточно правильного осциллографа, который умеет строить глазковую диаграмму что-то типа: А как уже там корректируются искажения вносимые щупами - могу только предполагать. А так на данный момент у нас нет ни одного из вышеперечисленных Вами приборов... Поскольку сейчас появилась возможность заказать что-то из измерительного оборудования и возникла данная тема. Ибо хочется посоветоваться с более опытными коллегами, а на что обращать внимание. Пока предварительно я понял что нужно покупать осциллограф + щуп + набор тестов для тестрования DVI(но это неточно).
  3. Конечно я представляю на каких частотах они работают. Но в первую очередь нам нужно PCE и DVI\HDMI. В первую очередь интересует возможность анализа целостности этих сигналов и соответствие их стандартам DVI\HDMI. Как ещё можно оценить качество таких вот высокоскоростных интерфейсов без глазковых диагрмм ? А если ещё что-то не работает кого винить ? Соисполнителя работ, который сделал "кривой" источник сигнала, нарушающий DVI стандарт ? Или это мы виноваты, что у нас где-то ошибка в схемотехнике\трассировке. А если ошибка плавающая, что в одном случае все работает, а в другом случае не работает ? Вот приведу реальный пример из практики : есть некое изделие, которое выдает DVI сигнал. Этот несчастный DVI в изделии имеет несколько переходов между платами, и в конце концов попадает на DVI соединитель. Далее есть наше изделие с нашим кабелем. Работают все разрешения, кроме 162 Mhz 1600:1200. Всех собак, спускают на нас - это наше изделие кривое, а они молодцы и у них все работает. При этом если "поиграться" с длиной кабеля, расположением ферритового фильтра и размером экранированной части дифф пар, то это разрешение начинает работать. Если вместо наших использовать покупные кабели, то попадаются некие "удачные" кабели, на которых все работает. При этом на дешевом нонейм китайце может все работать, а на дорогом фирменном DVI ничего.... Однако, если поменять источник DVI сигнала то работает на всех разрешениях на любых кабелях.
  4. Добрый день уважаемые посетители форума ! И снова я прошу помощи более опытных коллег. У нас создается план развития предприятия и каждое подразделение вносит в этот план свои "Хотелки". И вот одной из "хотелок" нашего подразделения - попробовать в этот план развития внести осциллограф, который позволит работать с высокоскоростными интерфейсами такими как SATA, DVI, HDMI, PCIE. "Хотелка" возникла не просто так, а в связи с тем, что имеющийся старенький Tectronix с полосой пропускания всего 100 MHz не позволяет работать с высокоскоростными интерфейсами. На данный момент нас особенно интересует возможность проверить среду передачи данных на соответствие стандартов DVI/HDMI, т.к. у нас(а возможно не у нас) на высоких разрешениях проявляются проблемы при приёме сигнала, и без анализа целостности этого сигнала проблему выявить так и не удается. Как я понимаю, для того чтобы проверять такие высокоскоростные дифференциальные интерфейсы необходимо чтобы осциллограф позволял строить глазковые диаграммы. Я сейчас сижу и читаю сайты и буклеты от Tectronix, и Keysight, и что-то окончательно запутался. Если верить каталогу от Tectronix - то они рекомендуют брать полосу пропускания в 5 раз выше, чем частота измеряемого сигнала("Правило: полоса пропускания >5x максимальная частота сигнала"). Так-же для поддержки многих интерфейсов требуется ещё покупать дополнительное ПО и щупы. Вот и хотелось бы услышать мнение более опытных коллег, как правильно выбрать осциллограф для работы и анализа работы высокоскоростных интерфейсов.
  5. А дома вообще modelsim запускается ? Обычно такая ошибка бывает когда путь до модельсима неправильный. Там по-умолчанию ошибка в пути: в конце нет слеша
  6. Значит этот компонент написан так, что он синтезируется правильно. Но в его описании есть ошибка, которая приводит к неправильному моделированию. Может где в списке чувствительности в компоненте U_MASTER_SPI ошибка. А вообще странно, что Вы применяете компонент который неправильно моделируется. Обычно "в железе" идет тестирование тогда, когда моделирование прошло удачно. Во всяком случае у меня всегда идет тестирование в железе только тогда, когда моделирование работает как надо. P.S. А вообще я уже могу назвать одну неприятную ошибку. У вас есть в проекте gated clock. Т.к Ваш модуль формирует клок либо системный, если делитель равен одному, либо деленный клок. И по этому "некрасивому" клоку у вас тактируются триггеры. Я бы так не делал. UPD. Хотя тут не совсем gated clock. Тут клок сформированный на делителе. Он будет Gated если в процессе работы будут меняться коэфициенты делителя. Я бы сформировал необходимый деленный клок. Затем выделил бы фронт этого клока детектором фронта. И весь проект бы тактировал от одного системного клока. А сформированный клок применял в качестве сигнала разрешения. Результат тот-же. Но Вы не уродуете тактовое дерево клоком, сформированным на делителе. И у вас нет никаких пересечений клоковых доменов, т.к все работает на едином клоке. Да и без особых причин лучше не заводить в тактовое дерево клок полученный делителем на логике. Н а крайний случай лучше уж PLL переконфигурирвоать в процессе работы и получать необходимый деленный клок,
  7. А при чем тут тест, если сигнал s_mspi_clk формируется в компоненте U_MASTER_SPI ? Если этот сигнал формируется неправильно логично предположить, что проблема в этом компоненте.
  8. Так и как мы можем помочь Вам ответить на поставленный вопрос ?
  9. Я правильно понял, что в результате симуляции Вы ходите увидеть s_mspi_clk равный s_clk ? Но тогда при чем тут тестбенч, который Вы здесь выложили. ? Если s_mspi_clk неправильны, значит модуль, который формирует этот сигнал делает это неправильно... И ещё один вопрос. Как у Вас используется в дальнейшем s_mspi_clk ? Как клок для тактирования триггров ?
  10. Его не стоит избегать, а надо просто понимать что inout - это двунаправленный порт доступный только на выходных пинах. И применяется именно в качестве двунаправленного порта. Например шина данных DRAM памяти. Внутри самой ПЛИС никаких двунаправленных портов нет и попытка описать логику через такой порт - банальная ошибка в проектировании.
  11. Всё просто: REG_OUT_SEL1 : out std_logic_vector(5 downto 0); REG_OUT_SEL2 : out std_logic_vector(5 downto 0); signal out_sel1 : std_logic_vector(5 downto 0); signal out_sel2 : std_logic_vector(5 downto 0); signal iREG_OUT_SEL1 : std_logic_vector(5 downto 0); -- Внутренний сигнал для выдачи наружу и чтения signal iREG_OUT_SEL2 : std_logic_vector(5 downto 0); -- Внутренний сигнал для выдачи наружу и чтения out_sel1 <= iREG_OUT_SEL1; -- Читаем наш внутренний сигнал out_sel2 <= iREG_OUT_SEL2; -- Читаем наш внутренний сигнал REG_OUT_SEL1 <= iREG_OUT_SEL1; -- Выдаем наш внутренний сигнал наружу REG_OUT_SEL2 <= iREG_OUT_SEL2; -- Выдаем наш внутренний сигнал наружу when ST_WORD_READ => when X"0022" => sspi_data_out <= "0000000000" & out_sel1; when X"0023" => sspi_data_out <= "0000000000" & out_sel2; when ST_WORD_WRITE => when X"0022" => iREG_OUT_SEL1 <= sspi_data_in(5 downto 0); when X"0023" => iREG_OUT_SEL2 <= sspi_data_in(5 downto 0); Вообще VHDL 2008 вроде как поддерживает и чтение выходных портов внутри архитектурного тела. Но работает криво и не всегда.
  12. Через промежуточный сигнал надо все делать.
  13. Это и есть причина. Sel не формируется. Поэтому выражение не выполняется. Поэтому всегда у нас работает ветка когда sel = 0 т.е на выход присваивается константа. Вот только странно. В первом сообщении нужен обычный мультиплексор. А сейчас Вы хотите, чтобы он тактировался, т.е чтобы где-то ещё стоял триггер. Так как вам надо то сделать ?