Чтобы получить трехмерный массив numpy, вы можете сделать это:
yourlist=[]
for i in range(30):
yourlist.append([(0, None),(0, 1000),(0, 3000)])
yourarray=np.asarray(yourlist)
Это основано на ваших комментариях, так как ваш вопрос задает 2d матрицу.
Я использовал процессор Altera Nios II, встроенный на FPGA. Altera обеспечивает набор инструментальных средств для моделирования ЦП (с его программным обеспечением) вместе с Вашей пользовательской логикой в средстве моделирования. Я предполагаю, что подобная установка может быть достигнута путем загрузки ядра VHDL/Verilog ЦП (Вы пробовали opencores? У них есть много материала там).
Но имейте в виду, что это будет медленным умом-bogglingly, не ожидайте моделировать целые процессы комплекса этот путь. Лучшее, на которое можно надеяться, моделирует прекрасные точки столкновения аппаратных средств программного обеспечения для отладки проблем. Если Вы нуждаетесь в более глубоком моделировании, рассматриваете выполнение его на FPGA со встроенным контрольным кодом.
Для "моделируют целую плату" подход, Свободный Образцовый Литейный завод имеет большое количество моделей, некоторых в других VHDL в Verilog, которые доступны теперь.. но необходимо будет заплатить, чтобы создать новые модели. Они очень полезны в том, чтобы быть уверенным, что плата создается правильно.
Но я думаю, более общий подход при отладке PIC должен просто создать плату, затем работать над встроенным микропрограммным обеспечением. В мире микросхемы (где встроенное микропрограммное обеспечение работает на микропроцессоре в микросхеме, которая еще не перешла к потрясающему) люди часто обращаются к очень дорогим системам (или аренда времени на них), которые позволяют компилировать часть дизайна в эмулятор, в то время как остальная часть дизайна работает в нормальной среде средства моделирования. Без барьера дорогого комплекта масок для микросхемы стоимость просто не допустима для Печатной платы. Хотя я услышал о некоторых творческих приложениях Simulink (MathWorks) с FPGA, но мое воспоминание - то, что один или выполнил систему на компьютере, или запрограммировал устройство и выполнил то же самое в в реальном времени.
Я верю, обе Cadence (спросите о палладии), и Mentor Graphics имеют то интегрированное решение, если у Вас есть деньги для расходов на него.
Что я сделал, недавно, создают интерфейс между средой симуляции и хост-системой. Различные hdl средства моделирования имеют различные интерфейсы, и получение средства моделирования НЕ думает в пакетном режиме, традиционная имитационная модель, вместо этого выполненная навсегда как реальный дизайн, является половиной проблемы.
Затем от хоста с помощью C (или безотносительно) можно создать абстракции, которые могут или не могут позволить Вам писать свое прикладное программное обеспечение для любой цели (в зависимости от того, какой язык и поддержку компилятора Вы имеете). Например, можно заставить дженерик ввести по абсолютному адресу и посмотреть, функция и на заключительной цели имеет, они на самом деле вводят по абсолютному адресу и посмотрели память или ввод-вывод, но для моделирования посредством абстракции Вы говорите с испытательным стендом на моделировании, которое моделирует тот же цикл памяти.
Я пошел один шаг вперед и использовал (Беркли) сокеты между хостом и испытательным стендом так, чтобы моделирование могло продолжать бежать, в то время как хост-приложения останавливаются и запускаются. Мало чем отличаясь от наличия реального процессора с ОС, что Вы запускаете приложения и выполняете их к завершению и запускаете другого. По крайней мере, для тестовых приложений, для доставки у Вас, вероятно, только есть одно приложение.
Путем создания этих уровней абстракции я могу записать реальные приложения, которые будут использованы на цели, когда она будет создана. По пути можно использовать программное моделирование логики первоначально, затем если Вам нравится, создают fpga с интерфейсом абстракции (выбросьте логику), скажите uart, например. Замените контейнер между уровнем абстракции приложений и средством моделирования с интерфейсом uart, или что бы то ни было. Затем, когда Вы соединяете процессор и логику в той же микросхеме или на той же плате, заменяете уровень абстракции снова прямыми вызовами любых интерфейсов, они всегда имеют, хотя они говорили. Если что-то повреждается, и Вы сохранили уровень абстракции, можно забрать приложение к имитационной модели и иметь доступ ко всем логическим внутренностям.
Конкретно на этот раз я использую hdl язык cyclicity cdl, который находится на SourceForge, документация нуждается в некоторой помощи, но примеры могут получить Вас движение, и это производит синтезируемый verilog, таким образом, Вы получаете дополнительную победу там. Я вывел весь материал пакета сценариев кроме абсолютного минимума, должен был соединить и запустить имитационную модель C. Таким образом, мой испытательный стенд находится в C (хорошо C++ технически), слой сокетов был сделан там. Вывод может быть .vcd файлами, которые использует gtkwave. В основном можно сделать объем дизайна HDL с помощью программного обеспечения с открытым исходным кодом без лицензий и т.д. Путем добавления одной или двух строк кода к первой части моделирования CDL смог иметь выполненный как бесконечный цикл, который я могу сказать, что работы вполне хорошо, там, кажется, не утечки памяти, и т.д.
и modelsim и тактовый сигнал имеют стандартизованные способы соединяющегося хоста C программы к миру моделирования, и оттуда можно использовать IPC для получения до хост-приложений, говорящих с API уровня абстракции.
это - вероятно, путь излишество для рис., я бросил рисунки только что для быстрее и дружественная рука C базирующийся micros так или иначе. Существует открытый базовый рис., который Вы могли просто включить в свое моделирование, даже при том, что это не то, что Вы пытаетесь сделать здесь.
Не то, чтобы я видел. Ваш лучший выбор состоит в том, чтобы правильно определить интерфейсы и поведение между uC и FPGA и затем определить серию тестовых форм сигнала, которые могут быть применены с помощью автоматизированного тестера. Необходимо было бы сделать автоматизированный тестер (или возможно анализатор логики может иметь некоторую такую функциональность) из FPGA, или uC (примените форму сигнала, наблюдайте прерывания, точки останова, и т.д.). Если Вы действительно хотите, я знаю, что Opencores.org имеет PIC и подобные AVR 8-разрядные uC ядра, определенные как VHDL, таким образом, Вы могли реализовать свой весь проект на FPGA и затем просто отладить это.
Обычно нет потребности смоделировать ЦП на уровне RTL. Так как Вы действительно не заботитесь о том, что это делает поразрядно; Вы обычно заботитесь о том, что это делает, например, регистрирует значения, памяти и доступ к шине.
Самое простое, заходят в Функциональную модель Шины. Это просто генерирует чтение и пишет, что ЦП делает, часто на основе текстового файла. Они доступны для некоторых центральных процессоров и многих популярных шин (например, PCI, PCIe). Они моделируют супер быстро.
Следующие повышаются, функциональная точная циклом модель. Они моделируют быстро. Они часто шифруются.
В последний раз полная модель RTL. Это обычно только доступно, если Вы работаете в тесном сотрудничестве с поставщиком ЦП, например, используете их ядро в Вашем ASIC. Обычно они шифруются, если Вы не огромная компания.
Модели памяти обычно точны циклом (например, Микрон).
Мои коллеги от аппаратного отдела используют программное обеспечение моделирования FPGA довольно часто, чтобы найти ошибки синхронизации и проследить вниз странные поведения.
Моделирование одной или двух миллисекунд может занять несколько часов, таким образом использование средства моделирования для чего-либо кроме очень мелочей не выполнимо.
Можно хотеть взглянуть на SystemC все же. http://en.wikipedia.org/wiki/SystemC