Цитата Сообщение от Patron Посмотреть сообщение
т.е. полный перечень публичных методов для чтения/записи сигналов на входах и выходах процессора
А их нету, так что подойдут любые.
Сейчас у меня сделано так: есть структура MPI в которой заданы все гостовские сигналы типа bool, а шина адрес-данные - слово unsigned short int, всё это в инверсном виде, для аутентичности, потому что у Vslav модель процессора тоже получает/выдаёт инверсные данные.
И есть единственная функция, отрабатывающая один такт устройства:
Код:
void tboard::maincycle()
{
	m_CPU.eval_p(&m_MPI); //отработаем передний фронт ТЧ
	m_Memory.eval(&m_MPI);
	m_IRPS.eval(&m_MPI);
	OutLog();
	m_CPU.eval_n(&m_MPI); //отработаем задний фронт ТЧ
	m_Memory.eval(&m_MPI);
	m_IRPS.eval(&m_MPI);
	OutLog();
	m_nClk++;
}
CPU получает сигналы МПИ, отрабатывает полутакт ТЧ, если есть изменения - изменяет данные сигналов структуры МПИ, затем все остальные устройства, сидящие на шине, таким же образом. Всё это теоретически. Практически работоспособность не проверена, т.к. сейчас модель процессора не работает, ищу опечатки, так что даже публиковать исходники смысла нету. Конкретно сейчас - цикл dati не завершается, после съёма внешним устройством RPLY, процессор не хочет снимать SYNC, поэтому дело дальше не идёт.

Vslav, QSync\vm1_qbus.v, строка 683 - там длинное условие получается такое
if (pin_dmgi & ... & ~pin_dmgi), т.е. никогда не true, нету ли ошибки?