[an error occurred while processing this directive]
|
сделано НЕ корректно.
А ошибки могут быть где угодно.
Подчеркну еще раз: эта задача крайне неудобная для реализации в синхронном режиме. Поскольку необходимо организовать сложный обмен между измерительным счетчиком, регистром и ДПКД. Да еще и рестартовать (ресетить) эти счетчики тоже корректно надо.
В синхронном режиме - это целая процедура, требующая НЕСКОЛЬКИХ тактов. "Технологически потерянные" такты необходимо учесть при формировании коэффициента пересчета ДПКД. Его нужно корректировать. Это сделано?
У тебя получаются частоты ниже расчетных. Это говорит о том, что твой ДПКД делит опорную частоту на коэффициент, больший, чем нужно. Получается, вроде бы как, перекоррекция.
В асинхронном режиме все это может быть сделано относительно корректно и за ОДИН такт, на задержках (если быстродействие ПЛИС позволяет).
Но и в том, и в другом случае очень легко попасть на грабли.
С сисмулятором что ж удивительного? Это весьма типичный случай, когда там все ОК, а на практике... Нарывались неоднократно.
Ничего более конкретного, не зная деталей проекта, сказать не могу к сожалению.
В конце концов, можно сделать ДВУХТАКТНУЮ систему, пожертвовав вдвое большими ресурсами. Т.е. ДВЕ идентичных системы, работающих ПО ОЧЕРЕДИ, одна - на четных, другая - на нечетных интервалах. Тогда времени и тактов для выполнения всех необходимых процедур на стыках интервалов будет вагон. Пока одна молотит, вторую ты НЕСПЕШНО готовишь к очередному циклу.
Ничего корректнее быть не может. Но! Ценой ресурсов ПЛИСины.
E-mail: info@telesys.ru