Последний раз редактировалось Сергей0308; 31.12.2018 в 01:37.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Вы не догоняете (наверное только учили ,а не практиковали)- в зависимости от того ,что нужно разработчику линии задержки ставятся или нет им самим и только он знает что ему нужно . Ранее ,когда не было линий задержек вы (мы) не могли сделать Т-триггер или регистр сдвига или стек на классических D- триггерах ,а теперь легко . И не потому ,что D- триггера работали не так как надо ,а потому что не было задержек в программных реализациях его,которые есть в любом "железном" элементе. А то что при использовании "...ЛОГ. ИЛИ", "ЛОГ.И", "НЕ" и тому подобное..." нет гонок в эмуляторе ,в отличии от реальных схем так это принцип работы такой эмулятров . Но при использовании "времязависимых" ФБ в ряде случаев нужно помнить о линиях задержки и использовать (или не использовать) их осознанно. И речь об автоматизации процесса их расстановки быть не может ,ибо только разработчик знает что ему нужно получить .... Пример - подайте ,например 1) на двода XOR один и тот же сигнал и 2) на один из входов подайте задержанный на цикл этот же сигнал - результат будет совершенно разный , а какой вам нужен ,выбираете только вы ...причем тут ОЛ (инструмент) - микроскопом можно и гвозди забивать и микробов наблюдать (кому что нужно)
электронщик до мозга костей и не только
OlegM .В дискретных (цифровых) системах потому и говорят о дискретности времени ,потому что в некоторых точках его(времени) есть НЕОПРЕДЕЛЕННОСТЬ , что не скажешь про непрерывные (аналоговые) сигналы(системы) .Это без философии ,а просто как электронщик.....Если вам сложен FBD (своя специфика) ,то используйте текстовые языки ...И тут когда говорят о времени имеют ввиду характеристику последовательной смены их состояний в процессах и самих процессов ,буть то временем выполнения команды процессора или цикла выполнения программы итп , и говорить какое значение принимает переменная и в какое время между (внутри) цикла не имеет особого смысла...Например команда MOV R1,R2 ( 010102 - в машинных кодах ,если память не изменяет ) пока не исполнится ,нет смысла говорить о содержимом R2 даже если она выполняется в цикле ,так как есть первый после включения питания цикл и тем более во время выполнения самой команды ...Значит значение R2 истинно только в определенном отрезке времени (дискрете).
Последний раз редактировалось rovki; 31.12.2018 в 00:11.
электронщик до мозга костей и не только
Похоже ваши знания в цифровой схемотехнике ограничиваются простейшими логическими элементами. Вот типовые форматы и состав команд микроконтроллера общего назначения:
Ввод/Вывод: INR3, $16; OUT $16, R12
Арифметические команды:
Сложение: ADDR0,R1,суммирование с учетом переноса: ADCR0,R1 (R0R0+R1+C)
Вычитание: SUBR0,R1;вычитание с учетом переноса: SBCR0,R1 (R0R0-R1-C)
Произведение:MUL – беззнаковое,MULS – знаковое
Деление: DIV – беззнаковое,IDIV – знаковое
PUSH- загрузит в стек,POPвыгрузить из стека
Сдвиги: циклический сдвиг:ROL,RON;
Логические операции: AND,OR,IOR-исключающее ИЛИ,NAND,NOR; операция сравнения –CP
Вызов: RCALL– относительный вызов,ICALL– косвенный вызов,CALL–абсолютный вызов
Переходы: относительный безусловный переход –RJMP, косвенный переход –IJMP, абсолютный безусловный переход –JMP; условные переходы:Skip,Branch
Служебные и спец команды:NOP,SLEEP
Как видите никаких D-триггеров НЕТ и "гонкам" случиться просто НЕГДЕ!
Поэтому кривожопорукость создателей ОвенЛоджика заключается в неспособности создать нормальный компилятор.
Так там нет и RS триггеров -основы дискретной техники (ячейка памяти)
Вы даже не отличаете программируемые автоматы(с их системой команд и языками) от того что мы рисуем в проекте "железные схемы" с жесткой логикой в не зависимости от того что их реализация конечно же программная . НО сама схема (проект) базируется на искусстве схемотехники ,а не программирования (спасибо Овен и FBD) .
Тогда так и скажите (вы не первый) - не хочу FBD , а хочу ST ...или еще чего , но тогда это в другой теме уже реализовано.
Гонки ,как результат не учета времени задержки сигнала в дискретной технике не только зло ,но и добро - на нем основан принцип работы синхронных регистров сдвига , d & t -триггеров
Последний раз редактировалось rovki; 31.12.2018 в 00:22.
электронщик до мозга костей и не только
Я не против FBD. Как раз наоборот - он мне нравится больше других. Но когда в среде разработки мы составляем программу из логический блоков, то это не реальные ("железные") логические элементы, а их идеальные модели, лишённые недостатков свойственным "железным" компонентам типа "гонок". И как сделать логические элементы идеальными это задача для разработчиков ОЛ. К сожалению, на текущих момент они с ней не справились.
Это не возможно в априоре и я это показал на примере с XOR .Если вы помните ,то раньше линии задежки назывались обратными связями и их разработчики ввели ,в том числе по моим спорам с ними (на примере D-триггеров) .Потому что как я показал выше ,некоторые ФБ без них не работали в ОЛ ( гонки не только вред ,но и польза в некоторых случаях) и только разработчик проекта может знать ,что ему нужно получить на выходе .Так вот ,в случае с обратными связями разработчики ранее заложили на автомате задержку на цикл обработку этих обратных связей ,что в большенстве случаев было оправдано, но есть ситуации где они (задержки) не нужны и тут автомат не может за вас рещить ,потому это и отдано на откуп разработчику проектов. В большенстве случаев можете ни как не реагировать на сообщения о наличии обратных связей ,все будет работать , но не всегда ...
электронщик до мозга костей и не только