цифровая электроника
вычислительная техника
встраиваемые системы

 

Verilog. Базовый курс. Часть IV

Автор: Mike(admin) от 5-02-2014, 09:15

Циклы в Verilog


В предыдущей части мы на простом примере познакомились с принципом модульной конструкции в Verilog и создали RS-триггеры с помощью концепции модуля-экземпляра.


Но что нам делать, если потребуется создать много (например, 50) D-триггеров, которые должны быть соединены между собой в соответствии со схемой делителя частоты? Мы уже знаем, как сделать общий модуль для D-триггера, поэтому нужно сделать 50 экземпляров этого модуля и соединить входы тактового сигнала каждого модуля с выходом предыдущего, также подвести сигнал Сброс (Reset) ко всем модулям и вывод D через инверсию соединить с выходом Q. В общем, нужно сделать всё то, что показано на рисунке:


verilog

Вручную писать столько экземпляров (50 штук по 6 строк в каждом – 300 строк!) – не практично. Поэтому в Verilog для генерации большого числа одинаковых модулей мы можем воспользоваться циклом контроллера счетчика, который является чем-то вроде цикла for. Но, чтобы этот цикл работал правильно, мы должны тщательно продумать структуру делителя частоты.

Verilog. Базовый курс. Часть III

Автор: Mike(admin) от 3-02-2014, 08:30

Модульная конструкция


Модульная конструкция проекта – это, пожалуй, базовый принцип построения схем на ПЛИС, поэтому этой теме стоит уделить пристальное внимание.


verilog

Ранее мы уже касались термина «модуль», но теперь мы уточним некоторые важные нюансы. Каждый исходный файл Verilog содержит один и только один раздел определения модуля. Тогда как мы можем создавать сложные проекты, которые включают в себя множество мелких модулей? Давайте в качестве примера возьмем создание цепи управления светодиодом с использованием таймера. Что нужно для нашей схемы, чтобы светодиод мигал каждую секунду при нажатии, например, какой-нибудь кнопки, которая подавала бы на вход лог. «1»? Также на входе у нас есть таймер 50 МГц.

Verilog. Базовый курс. Часть II

Автор: Mike(admin) от 31-01-2014, 18:16

В первой части мы создали простой проект на Verilog типа «Hello World» и рассмотрели некоторые базовые моменты. В этой части мы углубимся в дело изучения этого языка и в сам процесс проектирования на ПЛИС.


Подготовка к программированию платы


В данном случае воспользуемся платой Digilent Basys 2 с ПЛИС Xilinx Spartan 3-E FPGA.


Digilent Basys 2

Итак, о чем же нам нужно в первую очередь позаботиться? Правильно, о UCF-файле. Следует помнить, что в зависимости от модели платы выводы могут иметь различное функциональное значение, то есть могут быть «привязаны» к светодиодам, кнопкам и т.п. Перед использованием платы стоит внимательно изучить схему.


Для данной платы назначение вывода будет следующим:

Беспроводная связь и статический IP на Raspberry Pi

Автор: Mike(admin) от 31-01-2014, 02:43

Если у вас есть Raspberry PI, WLAN USB-модуль Wi-Pi и вы не знаете как настроить статический IP для беспроводной связи, то эта статья поможет вам разобраться в данном вопросе. Проделав, описанное в ней, вы избавитесь от проблемы установки нового IP после каждой перезагрузки.


WiPi

Вначале вам нужно подключиться к SSH, залогиниться и затем использовать следующие команды:

Verilog. Базовый курс. Часть I

Автор: Mike(admin) от 30-01-2014, 07:20

Проектирование схем на ПЛИС представляет собой не менее увлекательное и творческое занятие, чем программирование микроконтроллеров. Поэтому ниже будут показаны основы основ проектирования на языке Verilog, которые, возможно, станут отправной точкой для новичков в этом деле.


verilog

Перед началом изучения Verilog читатель должен иметь базовые представления о булевой логике и уметь решать хотя бы простейшие логические выражения. Например, чему будет равна функция F в выражении F = (A • B), если A в лог. «1», а B в лог. «0»? Если читатель знаком с языком C/C++, то ему будет легче понимать некоторые вещи, поскольку Verilog имеет схожий синтаксис. В целом, Verilog достаточно прост в изучении, поэтому поехали…

JTAG-адаптер для Arduino Micro

Автор: Mike(admin) от 17-01-2014, 15:25

Большинство Ардуин построено на микроконтроллерах типа ATmega, поэтому при желании они могут программироваться и отлаживаться с помощью стандартных средств для таких контроллеров. Если отладка посредством консоли не вызывает у вас никакого удовольствия, то можно попробовать другой способ отладки. Например, взять AVR JTAGICE3. Только вот не со всеми Ардуинами отладчик будет общаться стандартным образом через коннектор ISP (In-System-Programming).


JTAGICE3

Коннектор Atmel ISP сочетает в себе линии шины SPI и сигнал сброса RESET. SPI используется для загрузки прошивки, а благодаря RESET реализуется система отладки debugWire компании Atmel. debugWire представляет собой довольно необычный протокол, в котором для отладки используется только одна линия RESET. ATmega328p поддерживает debugWire, поэтому на Arduino UNO для отладки можно использовать ISP-коннектор. Но Arduino Micro основан на чипе ATmega32U4. В документации на него нет никаких упоминаний о debugWire, зато JTAG в списке имеется.

Программная симуляция SPI

Автор: Mike(admin) от 13-01-2014, 11:36

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


SPI

Ниже представлен код на ассемблере, симулирующий работу интерфейса SPI (функции записи и чтения) для микроконтроллера PIC16F877A.

Дистанционное управление для Arduino

Автор: Mike(admin) от 10-01-2014, 13:30

Управлять Arduino с помощью инфракрасного пульта ДУ действительно просто. Сегодня можно найти довольно дешевые и простые ИК-пульты для таких целей.


дистанционное управление Arduino

Ниже мы разберем, что нужно сделать для того, чтобы ваш Arduino понимал команды с пульта.

Делаем настенный google-календарь с помощью Raspberry Pi

Автор: Mike(admin) от 6-01-2014, 09:16

Если вы считаете, что календарь от Google очень удобен и практичен, и у вас есть ненужный монитор и Raspberry Pi, то вы можете сделать свой собственный google-календарь, который будет смотреться куда более стильно на вашей кухне, чем обычный календарь из бумаги.


Календарь на Raspberry Pi

Сам процесс изготовления календаря не слишком сложный, но вы должны иметь общее представление о домашних сетях и вычислительной технике, опыт работы с ОС Linux также пригодится. Если вы что-то не до конца понимаете, то помните, что поисковик Google – ваш надежный друг и помощник!

Сигнализация на Arduino, оповещающая об исчезновении напряжения сети

Автор: Mike(admin) от 4-01-2014, 08:37

Порой бывает необходимо знать, не обесточено ли помещение в данный момент. А если все же оно было обесточено, то желательно быть своевременно проинформированным о его появлении. Ведь такие электроприборы как, например, холодильники не стоит надолго оставлять без света, и в случае его исчезновения нужно принимать соответствующие действия.


Arduino

Столкнувшись с подобной проблемой, инженер Lauters Mehdi изобрел несложную сигнализацию на базе Arduino и телефона Nokia 3310, оповещающую об исчезновении и появлении сетевого напряжения. Она отсылает sms-сообщения на определенные номера и стоит дешевле своих коммерческих аналогов.