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

 
 
> Помогите разобраться с внешней шиной и таймингами., Cyclone III
inco
сообщение Nov 5 2009, 19:04
Сообщение #1


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

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



Не могу понять почему не работает двунаправленная шина данных?
Вернее она работает но такое ощущение что выходной порт сконфигурирован на работу с открытым стоком.

Порт объявлен так:
inout [15:0] mcu_bus, // Input/output data from/to MCU

// Output pin block
assign mcu_bus = oe ? data_out : 16'hzzzz;

далее в другом модуле:
input [15:0] mcu_bus, // Input/output data from/to MCU
output reg oe, // Output enable

reg [24:0] rdin;

далее rdin <= {WR, RD, address, mcu_bus};

rdin объявлен как fast input register
oe объявлен как fast output enable register
data_out пдключено к регистру rdout, который тоже объявлен как fast output register

в результате всего этого в recource property editor получилась такая конфигурация:
файл d_bus,
однако картинка на шине поучилась ужасная:
файл print_00

Не пойму что я делаю не так? Вроде и частота не большая!
Шина данных подключена к процессору Silicon, (клон 51) его шина всё время настроена на ввод, без подтяжки! Когда силикон передаёт в плис сигнал очень хороший все фронта чёткие и ровные, а ввод из ПЛИС полный бред!

Выходные порты ПЛИС работают от 3.3В.
Выходные буферы шины также объявлены как 3.3v-lvcmos. current strength 2ma



И вопрос по расстановке выходных констрейнов. Расскажите идеологию их расстановки, не сам синтаксис. Кино от Альтеры смотрел, примеры читал, но всё не то. Ни как не могу въехать в идеологию!

Вот например если рассмотреть такие варианты:

На выходы плис подключен светодиод, для индикации, по идее время установки не играет роли. Какое время писать?
На выходы плис подключена клавиатура - по идее как и для светодиода?
На выходе подключено устройство с шиной SPI частота 13 МГц какое время писать для clk и данных? Сейчас время не задано. Весь проект работает на 80 МГц затем частота делиться на 6 и регистры шины SPI вынесены в io-cell register с частотой clk 80 MHz.
Аналогично внешняя шина рассмотренная выше, какое время писать!

Я не пойму как это время рассчитывать? Из каких соображений?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shivers
сообщение Nov 24 2009, 14:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Я бы все же указал тайминги. Во-первых, надо указать оба клока с fmax 80 и 14 Мгц. А для внешнего интерфейса указал бы tsu равный 1/4 периода, т.е. около 35нс, и tco гденибудь около 1/2 периода, т.е. 70нс.
Все цифры можно и с запасом указать.

Сообщение отредактировал Shivers - Nov 24 2009, 14:36
Go to the top of the page
 
+Quote Post
inco
сообщение Nov 24 2009, 18:19
Сообщение #3


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

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



Ничего не задавать не хочется, так-как в таком случае квартус возмущается. Хочется его ублажить. 8-)

Теперь насчет SPI ничего не понял! Хочется всё-таки разобраться досконально! SPI взят просто для примера.

Итак: имеем системную частоту, в данном случае например 80 МГц, имеем делитель на 6 для получения частоты SPI clk 13.(3) МГц.

Теперь допустим с выхода делителя на 6 идет некая связь (синтезированная квартусом) к триггеру, который формирует clk и находится непосредственно на выводе io. Соответственно на D вход io триггера идёт выход делителя на 6, а на вход clk io триггера идёт частота 80 МГц. Собственно вопрос, какая мне разница сколько получится задержка по линии связи с делителя на 6 до D входа триггера (лиш бы успела за период системной частоты 80 МГц). Теперь по сигналу sdi - выдачу данных из плис в SPI тоже самое, триггер для sdi тоже находится в io, тоже работает на частоте 80 МГц, рассинхронизации между SPI clk и sdi нет, так как работают на одном клоке и сидят прямо в io. Вопрос какие задавать задержки? Теперь по sdo входу (выход внешних микросхем, тактируемых с выхода плис SPI clk). Триггер фиксации значений тоже на частоте 80 МГц тоже непосредственно в io. Задержка от фронтов сигнала SPI clk до выдачи данных на sdo внешними микросхемами известна из их документации, плюс задержка по плате, но каким боком эта задержка влияет на проект в плис, по моему никаким образом, кроме того что она должна быть меньше периода SPI clk или пол периода, если работа по фронту и по спаду. Вот собственно и всё.
Исходя из таких параметров дизайна не понимаю как выбирать задержки? По логике вроде мне никакие задержки не мешают. А максимальная задержка на sdo просто ограничивает максимальную частоту шины SPI.

Общая частота дизайна естественно задана - 80 МГц.
Вот я и не пойму как всё-таки задавать эти задержки в случае когда частоту на выходе задаёт плис!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:44
Рейтинг@Mail.ru


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