Сообщение от
gid
Если посмотреть на файлы MPI_VM1_V.h и MPI_VM1_V.cpp - это обёртка для вызова "родной" Verilog-модели ( каталог MPI_module\vm1cpu\ ), взятой из файла VM1CPPr006.rar
Всем хороша Verilog-модель, но слишком она медленная, поэтому в файлах MPI_1801VM1.h и MPI_1801VM1.cpp находится потактово эквивалентная абстрактная модель с таким же интерфейсом, но в 100 раз более быстрая.
Если вспомнить, как работает модель из файла VM1CPPr006.rar, то легко понять и как работает вызывающая эту модель обёртка.
Но абстрактная модель имеет точно такой же интерфейс, как обёртка для Verilog-модели, поэтому там вообще ничего "выцеплять" не надо - весь внешний интерфейс состоит в обоих случаях из двух строк:
Код:
VM1_bus_type *pVM1_bus;
virtual void Clock();
pVM1_bus указывает на массив bool состояний линий шины, а функция Clock() вызывается для эмуляции фронтов тактового сигнала:
Код:
void MPI_VM1_V::Clock()
{
getPins();
if( !pVM1_bus->CLC ) core.eval_n( nClk ); //отработаем передний фронт ТЧ
else core.eval_p( nClk ); //отработаем задний фронт ТЧ
nClk++;
setPins();
}