# A-C4E6E10_exemple

Примеры кода для A-C4E6E10.

Далее кратко расскажу о том что делать если вы в линухе:

## Установка Quartus

1) Скачать файл [отсюда](https://fpgasoftware.intel.com/20.1.1/?edition=lite&platform=linux) либо те пакеты которые нужны, либо все сразу. Нужно регистрация, но [это](https://tempmail.plus/ru/#!) работает.

2) Распаковка установка:

```bash
tar -xvf Quartus-lite-20.1.1.720-linux.tar
./setup.sh
# Тыкаем нужные кнопки
# Софт необходимо установить в директорию вашего юзера, это поможет избежать проблем с обновлением, например: /home/zen/intelFPGA_lite/20.1
rm -r setup.sh readme.txt components/ Quartus-lite-20.1.1.720-linux.tar
```

Для того чтобы иметь возможность запускать квартус из консоли, необходимо в ```~/.bashrc``` добавить следующие строки:

```bash
alias quartus='nohup $QSYS_ROOTDIR/quartus > /dev/null &'
#nohup нужен для того чтобы приложение продолжило работу после закрытия терминала
```

Также у меня возникла следующая проблема (эта ошибка высветится в терминале если запускать через него без alias):

```txt
Gtk-Message: 12:28:39.404: Failed to load module "canberra-gtk-module"
```

Решается очень просто:

```bash
sudo apt install libcanberra-gtk-module
```

> Обратите внимание что не стоит бездумно копировать команды отсюда т.к. они для МОЕГО пользователя и МОЕЙ версии quartus.

Также у меня не заработала прошивка через usb blaster. Она связанно с тем что мы ставили программу не от рута, а значит скрипт установки не смог прописать udev rules, а значит это нужно сделать в ручную.

Для этого в UBUNTU создаем файл ```/etc/udev/rules.d/51-usbblaster.rules``` и заполняем его:

```txt
# USB Blaster
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"

# USB Blaster II
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
```

После чего отключаем и снова подключаем blaster к usb. Подробнее [тут](https://rocketboards.org/foswiki/view/Documentation/UsingUSBBlasterUnderLinux).

3) Тут ставим икарус и gtk-wave но это в другой раз.

## Работа с Quartus

В данном репозитории вы найдете ```tamplate``` который нужно использовать как заготовку проекта, по своей сути это просто пустой проект в котором уже расставлены все пины в соответствии с платой.

Так-же в этом репозитории есть папка ```docs``` в которой будет лежать схема отладочной платы и распиновка.

