Как преобразовать большой дизайн Chisel в модель C++ с помощью Verilator?
Я столкнулся с проблемой неправильного выделения памяти при компиляции большого аппаратного дизайна долота в модель C++ с использованием бэкэнда верилятора.
Когда я хочу создать большой PE-дизайн (например, 36x36), я пишу свой код следующим образом
PEArray = Seq.fill(height)(Seq.fill(width)(Module new PE).io)
и верилятор вылетит, а затем выбросит
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
Что-то вроде нехватки памяти вызывает эту проблему. Есть ли встроенная функция Chisel3 для повышения эффективности памяти или другие способы решения этой проблемы?