Перейти к содержанию
    

ПЛИС без внешней синхронизации

Добрый вечер!

 

Я только прикоснулся к ПЛИС (Spartan 6) с программной точки зрения. Начинаю со схемотехнического метода - рисую схему - смотрю результат. Плата есть, т.е. проверять собираюсь на реальном железе. И для начала хотел проверить всякие простые штуки типа триггеров, счетчиков и т.д. Соответственно, рисую схему:

 

image.png

 

И в Plan Ahead-е назначил портам реальные ножки микросхемы.

 

Но можно ли так делать? Т.е. обычно ПЛИС тактируется от генератора, и от него вся логика пляшет. А я хочу тактировать триггер от своей внешней кнопочки :rolleyes: (условно).

 

Однако при Implementation сразу посыпались ошибки, вот одна из них (всего три похожих):

ERROR:Place:1136 - This design contains a global buffer instance, <XLXI_2>,

driving the net, <XLXN_13_OBUF>, that is driving the following (first 30)

non-clock load pins.

< PIN: XLXN_13.O; >

This is not a recommended design practice in Spartan-6 due to limitations in

the global routing that may cause excessive delay, skew or unroutable

situations. It is recommended to only use a BUFG resource to drive clock

loads. If you wish to override this recommendation, you may use the

CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote

this message to a WARNING and allow your design to continue.

< PIN "XLXI_2.O" CLOCK_DEDICATED_ROUTE = FALSE; >

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я только прикоснулся к ПЛИС (Spartan 6) с программной точки зрения. Начинаю со схемотехнического метода - рисую схему - смотрю результат. Плата есть, т.е. проверять собираюсь на реальном железе. И для начала хотел проверить всякие простые штуки типа триггеров, счетчиков и т.д.

Подход довольно странный... Как-то не тем путем идете, товарищ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я только прикоснулся к ПЛИС (Spartan 6) с программной точки зрения. Начинаю со схемотехнического метода - рисую схему - смотрю результат. Плата есть, т.е. проверять собираюсь на реальном железе. И для начала хотел проверить всякие простые штуки типа триггеров, счетчиков и т.д.
Разберитесь с примитивами ПЛИС. В частности, что такое BUFG и для чего он нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако при Implementation сразу посыпались ошибки, вот одна из них (всего три похожих):

Если буферы мешают уберите их.

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

Кнопка даёт дребезг контактов и потому вместо одного тактового импульса может придти целая пачка и Ваш счётчик вместо одного инкремента сделает несколько.

Посмотрите на Ютубе курс лекций, может что-то полезное для себя найдёте:

https://youtu.be/aGMfFezjVnQ

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но поскольку вы знаете что делаете напишите ему

PIN "XLXI_2.O" CLOCK_DEDICATED_ROUTE = FALSE;

и он уймется.

 

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

Подключи вы кнопку к ножкам допускающим вход клока вы такого бы предупреждения не увидели бы. Но сути проблемы это не изменило бы:)

Как вам сказали выше кнопка как источник клока и правда может наделать много бед.

 

А так никто не мешает вам и просто логику сделать, вообще без клока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подход довольно странный... Как-то не тем путем идете, товарищ...

 

У каждого подхода есть свои достоинства и недостатки. Можете считать, что я предпочитаю сложные пути вникания во что-то новое :rolleyes:

 

Jackov, насчет кнопки в качестве тактового я написал условно, я понимаю что будет, если использовать ее без элементов стабилизации сигнала. За ссылку благодарю, однако у меня есть некоторый багаж знаний в цифровой схемотехнике. Я на бумаге могу разрисовать и математически записать нужную логику работы какого-либо конечного автомата, и зарисовать его на логике. Но для проверки купил отладочную плату с FPGA и собираюсь на ней отлаживать подобные методы вникания во взаимодействие с ПЛИС... Пусть эти методы не кажутся кому-то правильными, это мой спортивный интерес. Я могу, естественно, выучить VHDL и писать только на нем, однако, как подсказывает опыт окружающих, описание логики на языках описания аппаратуры без четкого понимания принципов работы узлов ПЛИС на уровне регистровых передач я считаю неоправданным - при отладке довольно сложно будет разобраться что к чему и почему что-то может не работать. И это довольно философская тема, я не считаю уместным здесь обсуждать мою точку зрения. Возможно, я не прав, но это мой путь, так сказать :laughing: Jackov, это я не Вам, а в общем обрисовал ситуацию.

 

Golikov A., да, это примерно то, чего я желал услышать, благодарю.

Изменено пользователем Arlleex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Если хочется очень, то можно частоту взять из примитива STARTUP_SPARTAN6, частота будет кривая и нестабильная, но это лучше кнопки.

2. Обычные сигналы в схемном редакторе выводятся на ножки через специальные примитивы, например IBUF и OBUF, а не через BUFG. Для вашего примера между FD:D и XLXN_12 выкидываете BUFG и ставите на его место IBUF, между XLXN_11 и BUFG добавляете IBUF, между FD:Q и XLXN_13 выкидываете BUFG и ставите на его место OBUF.

3. Схематик в ISE штука довольно кривая, лучше начните изучать всякие штуки с Verilog.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

likeasm, спасибо, да, я уже третий день с успехом реализую свои идеи и тесты, почитав где какие буферы ставят в апноуте Xilinx :rolleyes:. Частоту взял от кварцевого генератора 50 МГц, предварительно поделив на много. В конце концов если очень хочется - можно реализовать антидребезг на RS триггере и использовать кнопочку для "пошаговой отладки".

 

Не знаю как насчет схемных багов, одно пока что напрягает - работать в схематике очень неудобно чисто с эстетической точки зрения (то названия не цепляются к проводам, то еще что-нибудь). А в целом - светофор вон работает :biggrin:. Дальше буду SPI Slave поднимать, опять же чисто ради спортивного интереса, никакие Verilog/VHDL не интересуют (пока что, в дальнейшем - изучение VHDL).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю как насчет схемных багов, одно пока что напрягает - работать в схематике очень неудобно чисто с эстетической точки зрения (то названия не цепляются к проводам, то еще что-нибудь). А в целом - светофор вон работает :biggrin:. Дальше буду SPI Slave поднимать, опять же чисто ради спортивного интереса, никакие Verilog/VHDL не интересуют (пока что, в дальнейшем - изучение VHDL).

Вот это уже лучше. Рисовать картинки - это только увеличивать гемморой. Да и много есть вещей, которых в картинках делать сложно.

Изучать рекомендую Верилог. И моделсим...

И научитесь симулировать тестбенчи..

Потому как SPI Slave без автоматов - будет ерунда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никакие Verilog/VHDL не интересуют (пока что, в дальнейшем - изучение VHDL).

Хардкора хотите :rolleyes:

можно реализовать антидребезг на RS триггере и использовать кнопочку для "пошаговой отладки".

У вас микросхема, которая поддерживает внутрисхемную отладку через анализатор ChipScope, количество каналов которого ограничены воображением и доступными аппаратными ресурсами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...