Огромный справочный стол в SV/UVM
Я должен построить большую таблицу поиска (~14 тыс. Записей со строками в качестве ключей) путем анализа входного файла для предиктора. Мне лучше использовать ассоциативный массив или использовать uvm_config_db с точки зрения производительности симуляции?
1 ответ
Поскольку это только один компонент, я бы использовал ассоциативный массив.
Если бы это было несколько компонентов, я был бы более склонен поместить весь ассоциативный массив в один объект класса, а затем зарегистрировать этот класс в uvm_config_db. При этом все компоненты, обращающиеся к таблице, указывают на один и тот же объект; тем самым ограничивая объем памяти.
Тем не менее, загрузка таблицы может быть небольшим ресурсным стимулом, и удержание таблицы, вероятно, потребует от вашего симулятора использования большого количества ОЗУ. Если вам понадобится только пара сотен или менее записей на тест / семя, я предлагаю загрузить только те записи, которые вам могут понадобиться в ассоциативный массив; не все это
Если вам нужна вся эта вещь, то, вероятно, стоит выяснить, как поместить таблицу в реальную базу данных и использовать DPI или VPI для доступа к моделированию формы. Типичность DPI имеет меньше накладных расходов. Некоторые наборы инструментов имеют IP для доступа к изображениям памяти и другим большим структурам данных, которые вы можете использовать.