Где и что исправлять?Вложение 32725Вложение 32726
Где и что исправлять?Вложение 32725Вложение 32726
Этот баг из-за этой связи.
Снимок.PNG
ОЛ ее обнаружил, но подсветил не то, что надо. Лоджик обнаруживает последнюю замыкающую связь. И если она глубоко в макросе, то согласно разработанному алгоритму должен был подсветить последнюю внешнюю связь. Вот тут то и была несогласованность задуманного алгоритма и реализации. Помарка исправлена. В данном случае лоджик последнюю замыкающую внешнюю связь определил "PWM1 - fMUL".
Но прошу не забывать одного, что лоджик может только предложить "проблемную" связь, он не телепат. А в реальности Вы можете заменить на линию задержки другую связь в этом цикле. Ту, которую Вы считаете наиболее верной согласно Вашему алгоритму.
Последний раз редактировалось wal79; 21.08.2017 в 14:32.
программер
По-моему, в конкретном случае "самая сомнительная связь" это "чтение из переменной result --> fLIMIT2" и именно её ОЛ должно подкрашивать / предлагать заменить на задержку.
Объяснение следующее:
"для того, чтобы вычислить результат, который нужно записать в result" нужно выполнить fADD, а для вычисления fADD нужен результат "ЛЗ от чтения current" (тут дальнейший анализ "как вычисляется current" не нужен, т.к. значение приходит с прошлого цикла) и результат "fMUL".
Так мы разворачиваем цепочку и в итоге доходим до "для того, чтобы вычислить fLIMIT2 нужно знать результат чтения current", но ведь current ещё не вычислено, значит цикл, и как раз эту связь и объявляем как "циклообразующую".
Что по-вашему называется "последней" связью?