МАРСОХОД

Open Source Hardware Project

FPGA & Verilog БлогFPGA chips

САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


Разворот бит в шине на Verilog

Казалось бы простая задача: как развернуть биты в шине так, чтоб младший бит стал старшим, а старший самым младшим? Первое, что приходит на ум: написать вот так:


reg [7:0]src;
//reverse?
wire [0:7]re1; assign re1 = src; //does not work..


Но это так не работает!
Какие есть работающие варианты?

Modelsim под Windows и Verilog VPI

Когда-то давно я написал статью "Интерфейс Verilog VPI".
В ней рассказывалось, как во время симуляции проекта Verilog вызывать функции пользовательской библиотеки, написанной на языке C. В статье использовался симулятор Icarus Verilog под Ubuntu Linux.

Связка языка Verilog и языка C хоть и получается немного мудреная, но дает дополнительные возможности для симуляции. Получается можно определить свою системную функцию Verilog и делать в ней что хочешь: хоть читать файлы с произвольным доступом, хоть получать изображения из камеры и передавать их верилогу, хоть обращаться к какой-то плате для получения реальных данных, передаваемых симулятору.

Недавно мне самому потребовалось сделать доступ к двоичному файлу очень большого размера из тестбенча Verilog и я, чтобы сделать это, перечитывал свою же статью и брал ее за основу своей новой программы-библиотеки.

В этой статье я покажу:

  • как скомпилировать библиотеку C/С++ с использованием Verilog Procedural Interface (VPI) под Windows;
  • как использовать библиотеку с Icarus Verilog под Windows;
  • как использовать библиотеку с ModelSim под Windows.

Как вернуть скрипту результат симуляции Verilog?

result

Появилась простая задача - нужно из скрипта (batch/Windows или bash/Linux) проанализировать результат симуляции Verilog. Причем желательно, чтобы решение работало с разными симуляторами: icarus и modelsim (или другими). Как это сделать?

Проект FTDI-POF

ftdi pof

FTDI-POF - это наш экспериментальный проект для исследования возможностей пластикового оптического волокна (Plastic Optical Fiber). Плата сделана на основе нашего программатора MBFTDI, а значит использует ту же самую микросхему FT2232H. Теперь эта новая плата, конечно, никакого отношения к JTAG программированию не имеет. Плата FTDI-POF - это USB-to-COM, то есть устройство, которое представляет два последовательных порта на шине USB2. При этом первый последовательный порт оснащен оптическим приемником и передатчиком для POF. Далее подробное описание проекта.

Астротрекер

tracker3

На прошлой неделе вдруг вспомнил, что август - это время звездопада. Прочитал, что ночью с 11-го на 12-е августа будет максимум "Персеид". Планета Земля в своем движении вокруг Солнца пересекает шлейф пылевых частиц хвоста кометы Свифта-Таттла. Пылевые частицы попадая в атмосферу Земли сгорают, как будто падают звезды. Мне пришло в голову попытаться сфотографировать это чудо. Опыта фотографирования звезд у меня не много. Да и времени для подготовки к ночным наблюдениям особо не было, оставалось всего-то два или три дня.

Я подумал, что было бы не плохо по быстрому соорудить свой собственный астротрекер.

Идея астротрекера проста - нужно устройство, которое поворачивает фотоаппарат со скоростью вращения неба. Тогда на фотоаппарате можно ставить большие выдержки - несколько минут и тогда звезды все равно останутся на кадре светящимися точками, а не дугами.


ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало