реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ПЛИС без внешней синхронизации
Arlleex
сообщение Mar 4 2017, 14:47
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 12-11-11
Пользователь №: 68 264



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

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



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

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

Однако при 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; >
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 4 2017, 15:23
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 3 599
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 4 2017, 15:45
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 799
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Arlleex @ Mar 4 2017, 17:47) *
Я только прикоснулся к ПЛИС (Spartan 6) с программной точки зрения. Начинаю со схемотехнического метода - рисую схему - смотрю результат. Плата есть, т.е. проверять собираюсь на реальном железе. И для начала хотел проверить всякие простые штуки типа триггеров, счетчиков и т.д.
Разберитесь с примитивами ПЛИС. В частности, что такое BUFG и для чего он нужен.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Mar 4 2017, 15:47
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(Arlleex @ Mar 4 2017, 17:47) *
Однако при Implementation сразу посыпались ошибки, вот одна из них (всего три похожих):

Если буферы мешают уберите их.
А вообще использовать кнопку в качестве тактового сигнала может быть чревато последствиями.
Кнопка даёт дребезг контактов и потому вместо одного тактового импульса может придти целая пачка и Ваш счётчик вместо одного инкремента сделает несколько.
Посмотрите на Ютубе курс лекций, может что-то полезное для себя найдёте:
https://youtu.be/aGMfFezjVnQ
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 4 2017, 15:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 204
Регистрация: 17-02-06
Пользователь №: 14 454



ну вам пишут что вы клок ведет по очень длинному пути, так не очень хорошо.
Но поскольку вы знаете что делаете напишите ему
PIN "XLXI_2.O" CLOCK_DEDICATED_ROUTE = FALSE;
и он уймется.

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

А так никто не мешает вам и просто логику сделать, вообще без клока.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Mar 4 2017, 20:38
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата(iosifk @ Mar 4 2017, 18:23) *
Подход довольно странный... Как-то не тем путем идете, товарищ...


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

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

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

Сообщение отредактировал Arlleex - Mar 4 2017, 20:40
Go to the top of the page
 
+Quote Post
likeasm
сообщение Mar 6 2017, 09:35
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 143
Регистрация: 15-04-10
Пользователь №: 56 673



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.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Mar 6 2017, 13:03
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 12-11-11
Пользователь №: 68 264



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

Не знаю как насчет схемных багов, одно пока что напрягает - работать в схематике очень неудобно чисто с эстетической точки зрения (то названия не цепляются к проводам, то еще что-нибудь). А в целом - светофор вон работает biggrin.gif. Дальше буду SPI Slave поднимать, опять же чисто ради спортивного интереса, никакие Verilog/VHDL не интересуют (пока что, в дальнейшем - изучение VHDL).
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 6 2017, 13:17
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 3 599
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
likeasm
сообщение Mar 6 2017, 17:00
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 143
Регистрация: 15-04-10
Пользователь №: 56 673



Цитата(Arlleex @ Mar 6 2017, 16:03) *
никакие Verilog/VHDL не интересуют (пока что, в дальнейшем - изучение VHDL).

Хардкора хотите rolleyes.gif
Цитата(Arlleex @ Mar 6 2017, 16:03) *
можно реализовать антидребезг на RS триггере и использовать кнопочку для "пошаговой отладки".

У вас микросхема, которая поддерживает внутрисхемную отладку через анализатор ChipScope, количество каналов которого ограничены воображением и доступными аппаратными ресурсами.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th September 2017 - 07:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016