Jump to content

    

Nikolas72_91

Участник
  • Content Count

    31
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Nikolas72_91

  • Rank
    Участник

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Все проблема решена, симулятор глючит походу при симуляции с задержками, а в коде оказалась немного другая, вычислил с осцилом и в сравнении со старым рабочим кодом. Ошибка в формуле была и из за нее все глючило. А то уже грешил на эти фронтдетекторы, а с осцилом посмотрел они нормально работают.
  2. Добавил описание частоты в констайнерах create_clock -period 48MHz -name {clk} [get_ports {clk}] но пока ничего не изменилось У меня и так используется триггер шмитта, это тоже не решает проблему.
  3. Ну так я попробовал синхронизировать выход all_edge по clk, толку то, от проблемы то это не избавило, другое дело как он там гуляет по кристалу. Пока чистый код просто детектора не работает как надо если.
  4. 1) Симулирую в University Program VWF в quartus, который использует modelsim, симулирую тут потому, что сигналы удобнее мне рисовать, чем разбираться с тест бенчами, так как постоянно приходится менять тестовые сигналы. 2)EPM240T100 3) Обнаружил проблему в реальной плис, потом начал смотреть в симуляторе сдвигая сигнал входной относительно клока, по несколько нс и вот вылезла это эта неопределенность. 4) Констейнеры не задавал, так как про них не слышал, сейчас читаю. 5) 5. Не находится ли первый триггер в ячейке входного буфера, а второй триггер в логический блоках ПЛИС ? Я вообще чистый проект сделал, чтобы отладить в нем чисто детектор фронтов. Тут больше ничего нет. Ну я код скинул на первой страничке, уже цепочку тригеров пробовал, и все равно та же проблема.
  5. Сам не знаю как так. edge_detector : process(clk) begin if(rising_edge(clk)) then shift_reg(0) <= signal_in; shift_reg(1) <= shift_reg(0); shift_reg(2) <= shift_reg(1); shift_reg(3) <= shift_reg(2); end if; end process edge_detector; all_edge <= shift_reg(3) xor shift_reg(2); end Behavioral; Уже даже так попробовал, все равно то же самое получается, ерунда какая то.
  6. У меня входной сигнал синхронизируется с клоком с этого же синхронизатора снимаются данные для детектора фронтов. Выход зачем еще синхронизировать то с клоком? Скинь пожалуйста где про это можно почитать? Я просто про это вообще не в курсе.
  7. Что это даст? Так вписал вообще ошибку выдает. Я так понял это нужно, временного анализатора. А правильность работы схемы задается констрейнами - как это сделать, где прочитать можно про это?
  8. Вот увеличил, чтобы видно было, тактовая частота 48 МГц. Так а как мне симулировать, если в реальном устройстве так же работает с косяками. Поэтому и проверяю с реальными задержками, тактовая частота у меня 48 МГц.
  9. Всем здравствуйте, подскажите как то можно побороть это явление, детектор фронтов иногда сваливается в неопределенное состояние, от чего все остальное в моем коде криво работает. Входной сигнал синхронизируется в сдвиговом регистре и с этого же регистра сигнал снимается на детектор фронтов. На картинке 2 момента где детектор фронтов выдает неопределенное состояние, симуляция в плис с учетом задержек. library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use ieee.std_logic_unsigned.all; entity edgedetector is port ( clk : in std_logic; signal_in : in std_logic; all_edge : out std_logic ); end edgedetector; architecture Behavioral of edgedetector is signal shift_reg : std_logic_vector(1 downto 0); begin edge_detector : process(clk) begin if(rising_edge(clk)) then shift_reg <= shift_reg(0) & signal_in; end if; end process edge_detector; all_edge <= shift_reg(0) xor shift_reg(1); end Behavioral;
  10. Мне просто один тип сказал, что запускал этот код на стм и много там не пришлось менять в ардуино среде. Если все это переписать или написать с 0 или переписать, только на stm32 сколько это будет стоить примерно вообще в ide keil например? На стм32 потому, что на авр если честно он херово работает.
  11. Да там изменений не сильно много я думаю надо сделать, думаю у знающих это займет минут 10 не более. Мне просто знаний не хватает как это сделать, с мк мало имел дело.
  12. Всем здравствуйте, может кто поможет в этом деле, кто сможет подсказать как правильно поправить этот код под AVR c Arduino IDE под STM32 чтобы его скомпилировать в ARDUINO IDE под этот мк STM32F103C8T6B Исходники кода в архиве
  13. Потом тогда поизучаю ваш код, впринципе да можно от регистра хранения можно отказаться. Получается по сигналу валидности можно сравнивать данные с константами я так понял без использования регистра хранения.