Я хотел бы написать интерфейс VPI / PLI, который будет открывать аудиофайлы (например, wav, aiff и т. д.) и представить данные симулятору Verilog. Я использую Икарус в данный момент и хочу используйте libsndfile для обработки форматов входных файлов и преобразования типов данных.
Я не совсем уверен, что использовать в коде C ... просмотрел IEEE 1364-2001 и все еще запутался, какие функции я должен использовать.
В идеале я хотел бы иметь модуль verilog с портом данных (последовательный или параллельный), вход часов и пин-стоп штифт. Я хотел бы реализовать два модуля, один для воспроизведения из файла, а другой для записи вывода из тестируемого фильтра.
Могу ли я сделать все это на C и просто создать экземпляр модуля в моем тестовом стенде или я нужно написать
функция (скажем, $ read_audio_data
) и модуль-оболочка для вызова ее при каждом тактовом импульсе ??
Хм, или, может быть, мне нужно создать модуль, а затем получить его дескриптор и передать значение / vect к дескриптору?
Меня не совсем беспокоит, как будут установлены имена файлов, поскольку я, вероятно,
в любом случае не будет делать этого из кода Verilog.
И я, вероятно, пока буду придерживаться 24-битных целочисленных выборок и
libsndfile
должен довольно хорошо обрабатывать преобразование.
Пожалуй, пока буду придерживаться серийника (может быть, даже в стиле I2S) и
при необходимости десериализуйте его в Verilog.
Также я просмотрел плагин Icarus , который реализует видеокамеру, которая читает файлы PNG, хотя есть гораздо больше аспектов обработки изображений, чем аудио. Следовательно, этот код на данный момент кажется мне слишком сложным - ни мне, ни мне не удалось получить его запустить.