
Сообщение от
Vslav
Только для данной модели надо будет два метода - нарастающий и ниспадающий фронты тактовой.
Это не проблема адаптера. Адаптер вызывает Clock(), а асинхронная модель уже реализует его ( например ) так:
Код:
void VM1::Clock()
{
m_CPU.eval_p(); // отработаем передний фронт ТЧ
m_CPU.eval_n(); // отработаем задний фронт ТЧ
m_nClk++;
}
---------- Post added at 21:34 ---------- Previous post was at 21:09 ----------
Адаптеру можно без проблем добавить интерфейс "виртуального логического анализатора", поэтому для полноты кайфа можно добавить к списку сигналов МПИ текущее время шины в наносекундах, а при подключении интерфейса к адаптеру передавать модели процессора callback SignalsChanged(), который можно вызывать внутри V-модели в любой момент для отображения изменений сигналов МПИ. Тогда на экране виртуального осциллографа сигналы будут выглядеть более натурально:
Код:
void VM1::Clock()
{
m_CPU.eval_p(); // отработаем передний фронт ТЧ
m_nTimeNS += 100; // первая половина такта заняла 100 нс
SignalsChanged(); // сообщим осциллогафу об изменениях
m_CPU.eval_n(); // отработаем задний фронт ТЧ
m_nTimeNS += 100; // вторая половина такта заняла 100 нс
m_nClk++;
}