Работа с ПЛИС начинается с программы для работы с ней. Я использую камни фирмы ALTERA и ее программу Quartus на домашнем ПК работаю с 12.0(сразу оговорюсь работает она коряво, возможно криво установилась, на недели думаю руки дойдут и поставлю нормальную версию) версией на работе с 14.1( она только 64бит). Ну что приступим
Вот мы запустили Quartus II WEB Edition, нажимаем File / New Project.
Это окошко можно отключить, кто хочет. Нажимаем сразу же кнопку NEXT.
Как вы все видите путь к папке с проектом некорректно отображается( да Quartus не любит Кириллицу , пишем на Латинскими)
Вот сейчас отображается все хорошо. нажимаем NEXT
В этом окне вы можете добавить файл к проекту , если он у вас есть лично у меня его нету. Вы можете создать не проект а просто файл и в нем что либо сделать , а потом включить в проект , к примеру создать отдельные модуль.
Тут мы выбираем наш камень. Я использую камни Max7000s EPM7128STC100-15 и Cyclone IV E EP4CE6E22C8N(обратите внимание на питания ядра 1.2В) даже если вы не знаете какой камень купить, вы можете тут в Quartus посмотреть характеристики и определится.
Обычно на этом шаге я ничего не меняю. В глубь тут не вникал.
Вот и все мы закончили создавать проект. В котором мы видим какой у нас камень, его питание, название проекта и отладочник ModelSim. После создание в Левом верхнем углу у нас появится вот такая штука.
Дальше нажимаем кнопку NEW и там выбираем , где мы хотим и что мы хотим создать. Я Выбираю Block Diagram(Schematic) и нажимаем OK ,
далее на верху примерно по центру есть такой значок нажимаем его,
Вот у нас появилось окошко в котором мы можем выбрать элемент который хотим вставить в проект, там и логика есть , в папке Primitives в Other есть практически вся библиотека 74 логики. Как пользоваться той или иной микросхемой открываем даташит в интернете. Либо можем собрать элемент под свои нужды. Но это будет рассмотрено в следующей статье.
Я для этого урока выбрал элемент 2И-НЕ теперь нажимаем ОК ставим его
потом рядом с ним нажимаем на вот такую кнопку в которой мы устанавливаем входы, выходы и Bidir(двунаправленный)
На вход элемента мы ставим 2 входа и на выход соответственно Output
Потом мы переименовываем порты(вход и выход) для того, чтоб нам было легче ориентироваться в проекте
когда мы все установили нажимаем кнопку Start compiler программа запустит компилятор, и одновременно проверит проект на наличие ошибок. Если все сделанно правильно то программа выдаст вот такое окно
Так в окне будет видно, сколько ресурсов камня вы заняли.
Далее мы нажимаем на кнопку Pin Planner у нас появляется наш камушек, с входами где сразу видно где у нас питание , а где корпус. А также ноги для генератора, и т.д. сразу обратите внимание внизу где указаны наши вход/выход программа выдает нам питание на ноге и ток, т.к. у меня ноги запитаны от 3.3В и мне нужны TTL сигналы я устанавливаю 3.3В и ток максимальный который она может выдать. На практике скажу так когда плата сильно нагружена на выходы ПЛИС лучше ставить подтягивающий резистор на ток 4-6мА чтобы ПЛИС работала как нужно и не сгорела. Встроенными преобразователями ПЛИС лучше не пользоваться, а использовать то питание которое подключено к питанию ног. ПЛИС не микроконтроллер очень капризная в этом плане. По поводу разводки платы для ПЛИС будет тоже все описано в следующей статье
Вот я установил наши вход и выход они помечены темными кругляшками.
Далее просто закрываем это окно .Нажимаем еще раз на Compiler для того , чтобы программа проверила правильно ли мы установили ножки. И не заняты ли они другими делами. Также в том окне где мы устанавливаем ножки можно поставить один режим в котором неиспользуемые ноги отключаются, бывает нужно
И вот у нас прошла компиляцию и нажимаем на кнопку programmer в котором мы выбираем наш программатор нажав на кнопку Hardware setup(у меня он не подключен) далее выбираем режим прошивания. Я использую JTAG и на этом все нажимаем кнопку Start и можно работать. На плате с камнем должно быть питание, чтобы ПК увидел нашу плату.
Про плиски — это хорошо, это одобрям =)
Ждем продолжения!
Какие планы дальше?
Я вот уже перелопатил кучу статей, кучу всего и не могу пока понять. В чем прикол этих ПЛИС. Для себя лишь понял одно, если надо что-то анализировать на частотах выше 75-100 МГц, какие-либо фильтры, обмен данными и т.д. Но в остальном-то куда проще все это написать на той же AVR. И мигнуть, и ШИМ, и счетчики и черт знает что.
В чем прикол ПЛИС для домашних самоделок ?
Олег. прикол в ПЛИС, самый главный , она все делает параллельно. не последовательно. то есть ты можешь на ней в одном проекте создать 2 схемы независимых друг от друга, и они у тебя будут работать параллельно. ты на ПЛИС можешь сделать тоже самое , что на АВР. на ПЛИС ты можешь и монитор к ней подключить, и Марио запустить(если камень хороший, как у меня) с USB работать на раз два. когда ты к примеру захочешь сделать робота или , что то похожее , то на ПЛИС это лучше сделать. Я до сих пор пользуюсь АВР и СТМ32. на АВР я простые действия делаю и все. а уже масштабное на ПЛИС. найди в инете статью «ПЛИС VS AVR» там более менее описано. все что ты можешь сделать на АВР . тоже ты можешь и на ПЛИС сделать
как скачать можна на офицаллни сайт у мне не поличилса
я там не понял там мне закирвали офицаллни сайт
Переходишь на оф сайт альтеры, а там в раздел загрузки. Скачать можно с помощью их проги AKAMAI, которая умеет докачивать и походу скорость побыстрее или качаешь по прямой ссылке, как мы обычно привыкли
только лучше выбрать DVD-files и его скачать.
Здравствуйте уважаемый admin, начинаю изучение ПЛИС, в процессе повторения DDS генератора, по следам вашей публикации возникла проблема, можно обратиться к Вам за помощью?
можно
Добрый вечер, я немного изменил код сделал параллельную загрузку сумматора 32-бит, добавил обратную пилу,прямоугольник, но все сигналы на ЦАП есть, а синуса нет. Файл таблицы синуса состоит из столбца шестнадцатиричных чисел подряд, адреса не указывал. Пробовал сделать таблицу синуса через CASE в синхронном и асинхронном режимах, тот же результат — сигнал на выходе ЦАП стоит в среднем значении и не меняется, в обоих вариантах пила появляется после модификации кода, может дело в настройках Quartus_а?Проекты создавал Wizardom для EPM240T100C5N, добавлял файлы Verilog HDL. Я не знаю куда выложить опробованные варианты кода.
посмотрите идею http://avr-start.ru/?p=2848 сделайте какой нибудь фиксированный вывод одной частоты, а потом уже придумывайте как будете менять.
Идея мне абсолютно понятна, частота меняется, проблема этого проекта — нет синуса.
как то не вяжется ваше утверждение с вопросом, 1. выводите на ноги число — смотри осциллом, меняется ли напряжение на выходе. 2. пробуете менять это число опять смотрите осциллом, 3. добавляете изменение этих чисел со временем, например меандр, опять смотрите осциллом. Думаю дальше понятно?
Похоже мы друг друга не понимаем, я взял упрощенное ядро вашего проекта ( без загрузки сумматора по SPI , фиксированная частота ). После загрузки прошивки в CPLD синуса нет, если упростить код пила есть, не выводится именно синус ( табличные значения ).
а собственно файл data.txt с табличными значениями то создан?
Файл создан и включен в проект, данные идут подряд, без указания адресов (пробовал и с указанием через @ ) в 16-ричном виде (80828488…), пробовал бинарные (огромные), количество соответствует массиву sinLUT — синуса нет, пила есть. По-этому и решил попробовать через конструкцию с CASE. У меня вопрос- нужно как то менять настройки Quartus_а при создании проекта или каклибо дополнительно инициализировать элемент ROM, у меня не работает (нет синуса, а пила есть) даже проект в виде Schematic design. Не знаю куда копать, хотя точно знаю что подобные проекты работают и подобные ( на epm240) и с меньшей разрядностью на более мелких CPLD.
Андрей, мне сложно что то посоветовать, без кода и схемы. Можете закинуть на какой нить файлообменник а сюда ссылку.
Хорошо, только завтра, пришел поздно. Спасибо за внимание.