Вопросы по SDK-6.1

Учебный лабораторный комплекс SDK-6.1 на базе ПЛИС семейства Cyclone фирмы Altera.

Вопросы по SDK-6.1

Сообщение MIX@ » 21 янв 2009, 10:05

Доброго времени суток!

Анализировал схемку SDK-6.1 и возникли пара вопросов:
1) К FPGA подводится несколько синхросигналов, в частности от осциллятора - CLK2 и CLK3. На схеме подписано - 40MHz. В мануале по осциллятору сказано, что частота плавает в зависимости от величины приложенного напряжения, тока и индуктивности выхода. На схеме указан лишь вольтаж - сколько MHz на выходах CLK2 и CLK3. И если величины одинаковы - зачем "запитаны" два вывода ПЛИС?
Вопрос в догонку: каков диапазон частот, при которых Cyclone (EP1C6T144C8) будет обеспечивать требуемое быстродействие безо всяких трассировочных оптимизаций.
2) Не совсем ясно, как вырабатывается сигнал внутреннего системного сброса, который бы инициализировал систему после заливки файла конфигурации. Вроде бы судя по докам должен быть некий супервизор IMP705_13, который и занимается в том числе выработкой сигнала сброса - его на схеме я не его не нашёл.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 21 янв 2009, 12:19

1) По первому вопросу:
- Да, подводится;
- правильно подписано;
- раз сказано, значит так и есть;
- при чем здесь вольтаж? и я всегда думал, что вольтаж - это по-нашему "напряжение" :D, или слово "напряжение" теперь не модное?
- CLK2 и CLK3 - это входы;
- "запитаны" два, т.к. теоретически это может облегчить жизнь при необходимости иметь в проекте кучу разных тактовых сигналов;
- в догонку: думаю, что не больше 10-20 МГц, при хоть сколько-нибудь большом размере проекта.

2) По второму вопросу: внешнего сигнала сброса (который и должен был бы формировать некий супервизор) нет, т.к. в "Циклоне" нету входа сброса, поэтому и сигнал подавать некуда. Нужно читать документацию на микросхему - там должны быть указаны все задержки, имеющие отношение к конфигурированию. В простейшем случае достаточно добавить к проекту сигнал внутреннего сброса и счетчик, который считает такты вплоть до некоего значения, после чего убирает этот сигнал. Предполагая, что начальное значение счетчика будет равно нулю, можно рассчитывать, что в течение некоторого времени наш внутренний сигнал сброса будет активен, и всё, что нужно, успешно инициализируется.
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение Интегральный вычислитель » 23 янв 2009, 00:10

Соратник слонопотама писал(а):2) По второму вопросу: внешнего сигнала сброса (который и должен был бы формировать некий супервизор) нет, т.к. в "Циклоне" нету входа сброса, поэтому и сигнал подавать некуда. Нужно читать документацию на микросхему - там должны быть указаны все задержки, имеющие отношение к конфигурированию. В простейшем случае достаточно добавить к проекту сигнал внутреннего сброса и счетчик, который считает такты вплоть до некоего значения, после чего убирает этот сигнал. Предполагая, что начальное значение счетчика будет равно нулю, можно рассчитывать, что в течение некоторого времени наш внутренний сигнал сброса будет активен, и всё, что нужно, успешно инициализируется.

Ох, я тоже со сбросом долго парился пока не изучил исходники тестовой прошивки. Надо этот способ указать в следующей версии документации, если таковая когда-нибудь появитсья :Search:
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 23 янв 2009, 01:28

По поводу сброса: исходник по этой части я тоже смотрел, но он мне не показался убедительным по нескольким причинам:
1) В папках с доками лежало описание супервизора, который "умеет" вырабатыватывать сигнал сброса. Если на схеме его нет, думаю и на диске ему не место.
2) Судя по всему, тестовая прошивка писалась на коленке за пару часов - вот и подумал, что сброс, описанный на HDL, от недостатка времени.

С другой стороны, отсутсвие входа сброса на FPGA - решает все вопросы. Кстати, этим грешит только Cyclone?
Этот вопрос совершенно точно нужно отобразить в официальной документации.

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

Возник ещё вопрос насчёт тактирования: вроде бы в FPGA есть блок (PLL), который умеет умножать частоту на нецелый коэффициент. Вопрос - как его пользовать? Было бы очень полезно использовать такой вариант для UART, чтобы baud (частота обмена) не плавала при больших коэффициентах семплирования.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Интегральный вычислитель » 23 янв 2009, 03:04

MIX@ писал(а):2) Судя по всему, тестовая прошивка писалась на коленке за пару часов - вот и подумал, что сброс, описанный на HDL, от недостатка времени.

Моя ставка - не меньше недели.

Возник ещё вопрос насчёт тактирования: вроде бы в FPGA есть блок (PLL), который умеет умножать частоту на нецелый коэффициент. Вопрос - как его пользовать?

Через мегафункции. Подробности можешь покурить в cyclone handbook :D
Сразу предупреждаю: как их прикрутить к сторонним симуляторам/синтезаторам - для меня загадко.
I Have Seen The Truth And It Doesn't Make Any Sense
Аватара пользователя
Интегральный вычислитель
 
Сообщения: 561
Зарегистрирован: 02 апр 2008, 16:04
Откуда: из Леса

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 23 янв 2009, 12:02

Интегральный вычислитель писал(а):
MIX@ писал(а):2) Судя по всему, тестовая прошивка писалась на коленке за пару часов - вот и подумал, что сброс, описанный на HDL, от недостатка времени.

Моя ставка - не меньше недели.

Еще варианты? :ROFL: :ROFL: :ROFL:

MIX@ писал(а):С другой стороны, отсутсвие входа сброса на FPGA - решает все вопросы. Кстати, этим грешит только Cyclone?
Этот вопрос совершенно точно нужно отобразить в официальной документации.

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

А что, есть желающие править документацию? :)
Кстати, уж частота генератора-то должна быть в документации.

Интегральный вычислитель писал(а):
MIX@ писал(а):Возник ещё вопрос насчёт тактирования: вроде бы в FPGA есть блок (PLL), который умеет умножать частоту на нецелый коэффициент. Вопрос - как его пользовать?

Через мегафункции. Подробности можешь покурить в cyclone handbook :D
Сразу предупреждаю: как их прикрутить к сторонним симуляторам/синтезаторам - для меня загадко.

Во-первых, он умеет не только умножать, но и делить (в некоторых пределах, разумеется), кстати, в EP1C6 их два, вроде бы. Вставляешь его как обычную мегафункцию, а чтобы использовать со сторонним софтом - надо где-то какие-то библиотеки компилировать.
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 24 янв 2009, 10:10

Соратник слонопотама писал(а):Еще варианты? :ROFL: :ROFL: :ROFL:

А каковы ставки? Не уж-то новая документация? :D

А что, есть желающие править документацию? :)

Так есть embeddedwiki - туда можно перенести текущую документацию и вносить поправки по мере необходимости. Так сделано, например, для SDK-1.1

Кстати, уж частота генератора-то должна быть в документации.

В документации нету. Есть только на схеме, в подписи под осциллятором, _мелким_ шрифтом.

Интегральный вычислитель писал(а):
MIX@ писал(а):Возник ещё вопрос насчёт тактирования: вроде бы в FPGA есть блок (PLL), который умеет умножать частоту на нецелый коэффициент. Вопрос - как его пользовать?

Через мегафункции. Подробности можешь покурить в cyclone handbook :D
Сразу предупреждаю: как их прикрутить к сторонним симуляторам/синтезаторам - для меня загадко.

Во-первых, он умеет не только умножать, но и делить (в некоторых пределах, разумеется), кстати, в EP1C6 их два, вроде бы. Вставляешь его как обычную мегафункцию, а чтобы использовать со сторонним софтом - надо где-то какие-то библиотеки компилировать.


Спасибо за совет - значит PLL использовать не буду.
Я желаю уйти от использования мегафункций - хочу максимальной портабельности.
Нашёл альтернативный алгоритмический вариант - Direct Digital Synthesis.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 26 янв 2009, 14:52

MIX@ писал(а):А каковы ставки? Не уж-то новая документация? :D

Нет, чисто спортивный интерес ;)
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 12 фев 2009, 22:29

Моргает светодиод Config и вся линейка светодиодов рядом с движковыми переключателями.
В каких случаях такое возможно?

Не сработал второй вариант загрузки конфигурации из 0-й страницы - нажимал RESET при удерживаемом CONTROL.

Сколько отводится под одну конфигурацию - 128 или 64 Кбайт?
В 1-ом пункте доков написано - 16 конфигураций при размере FLASH 1 МБ, во втором пункте - 8 при тех же объёмах.

Почему на схеме перепутаны адресные ноги SRAM?
Вложения
SDK61r2_sch_extconf.pdf
Схема расширенной версии
(284.58 Кб) Скачиваний: 531
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 13 фев 2009, 14:56

MIX@ писал(а):Моргает светодиод Config и вся линейка светодиодов рядом с движковыми переключателями.
В каких случаях такое возможно?

Не сработал второй вариант загрузки конфигурации из 0-й страницы - нажимал RESET при удерживаемом CONTROL.

Сколько отводится под одну конфигурацию - 128 или 64 Кбайт?
В 1-ом пункте доков написано - 16 конфигураций при размере FLASH 1 МБ, во втором пункте - 8 при тех же объёмах.

Почему на схеме перепутаны адресные ноги SRAM?


1. это науке не известно
2. возможно, в 0-ой странице ничего нет?
3. зависит от типа микросхемы - EP1C3 или EP1C6, вообще насчет числа конфигураций - дело тёмное
4. что значит - перепутаны? что шина A[20:1] попадает на ножки A[19:0]? так это для удобства, ибо микросхема по умолчанию работает в 16-битном режиме, а её входы A[19:0] выбирают 16-битные слова, а не байты. для байтов есть специальный вход A[-1], совмещенный с DQ[15]
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 15 фев 2009, 17:01

Соратник слонопотама писал(а):1. это науке не известно
2. возможно, в 0-ой странице ничего нет?
3. зависит от типа микросхемы - EP1C3 или EP1C6, вообще насчет числа конфигураций - дело тёмное
4. что значит - перепутаны? что шина A[20:1] попадает на ножки A[19:0]? так это для удобства, ибо микросхема по умолчанию работает в 16-битном режиме, а её входы A[19:0] выбирают 16-битные слова, а не байты. для байтов есть специальный вход A[-1], совмещенный с DQ[15]


1. Я такое иногда наблюдаю и, вероятно, должно же быть этому какое-нибудь объяснение.
Прилагаю RBF-файл на котором иногда вылезают обозначеннные симптомы. Чтобы их увидеть нужно сделать следующее: загрузить конфигурацию в любую страницу FLASH, загрузить её в Cyclone, отсоединить RS-232 кабель и подождать пару минут.
top.zip
Зазипованый RBF
(6.06 Кб) Скачиваний: 317

2. При использовании 1-го способа (выбор номера страницы и Reset) из нулевой страницы грузится конфигурация загрузчика по последовательному каналу.
3. Судя по схеме - EP1C6, FLASH 2-х метровая, DIP-переключателей для выбора страниц - 4. Там не может быть перекрытия? Скажем, 15 страницы с 8-ой?
4. Благодарю за пояснения, но я спрашивал про SRAM. Нумерация адресных выводов SRAM идёт как-то непоследовательно.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 15 фев 2009, 20:04

MIX@ писал(а):1. Я такое иногда наблюдаю и, вероятно, должно же быть этому какое-нибудь объяснение.
Прилагаю RBF-файл на котором иногда вылезают обозначеннные симптомы. Чтобы их увидеть нужно сделать следующее: загрузить конфигурацию в любую страницу FLASH, загрузить её в Cyclone, отсоединить RS-232 кабель и подождать пару минут.
top.zip

2. При использовании 1-го способа (выбор номера страницы и Reset) из нулевой страницы грузится конфигурация загрузчика по последовательному каналу.
3. Судя по схеме - EP1C6, FLASH 2-х метровая, DIP-переключателей для выбора страниц - 4. Там не может быть перекрытия? Скажем, 15 страницы с 8-ой?
4. Благодарю за пояснения, но я спрашивал про SRAM. Нумерация адресных выводов SRAM идёт как-то непоследовательно.

1. SDK-6 у меня нет, так что проверить я не могу =) ;
2. Т.е. если выставить на переключателях 0-ую страницу и нажать "ресет", прошивка грузицца, а если выставить какую-нибудь ненулевую страницу, в которой нет прошивки, и нажать "контрол" и "ресет" - то не грузицца? Кстати, сначала надо жать "контрол", а уже потом, не отпуская её - "ресет";
3. В некоторых конфигурациях стендов перекрытие бывает: старший из 4-х DIP-переключателей не используется и не влияет на выбор страницы (т.е. 8-ая страница перекрываеца с 0-ой, 9-ая - с 1-ой, ...., 15-ая - с 7-ой);
4. Т.е. про нумерацию выводов на самой микросхеме? Это надо спросить у производителя )))) Насколько мне известно, в схеме ошибки нет (на всякий случай можно сравнить с документацией на микросхему).
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 05 мар 2009, 22:16

Забыл написать вовремя - проблемы решены.

В частности, самое интересное по первому пункту - оказалось, что нужно обязательно конфигурировать неиспользуемые выводы, как входы с третьим состоянием, иначе проявляются описанные выше симптомы, а на некоторых стендах конфигурация не грузится в FPGA в принципе. По дефолту, они конфигурируются как выходы с нулём.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 06 мар 2009, 11:44

MIX@ писал(а):Забыл написать вовремя - проблемы решены.

В частности, самое интересное по первому пункту - оказалось, что нужно обязательно конфигурировать неиспользуемые выводы, как входы с третьим состоянием, иначе проявляются описанные выше симптомы, а на некоторых стендах конфигурация не грузится в FPGA в принципе. По дефолту, они конфигурируются как выходы с нулём.


Хм, дааа. Неужели это не описано в юзер-мэньюале к стенду?
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 06 мар 2009, 15:31

Соратник слонопотама писал(а):Неужели это не описано в юзер-мэньюале к стенду?

Именно так - не описано
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 06 мар 2009, 16:45

бедные студенты )))))) ладно, мож щас созреет какая-никакая методичка по лабам для SDK-6.1
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 15 мар 2009, 04:31

Как так получается, что в доках на SRAM значится 18-ти разрядная адресная шина (A0-A17), а на схеме она 19-ти разрядная (A0-A18)?
Все выводы SRAM выведены на ножки FPGA, кроме одного - CE (Chip Enable), который выведен на ножку CPLD. Доступа к CPLD я не имею, так что резонно узнать - там всегда активный уровень?
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57

Re: Вопросы по SDK-6.1

Сообщение Соратник слонопотама » 16 мар 2009, 02:14

MIX@ писал(а):Как так получается, что в доках на SRAM значится 18-ти разрядная адресная шина (A0-A17), а на схеме она 19-ти разрядная (A0-A18)?
Все выводы SRAM выведены на ножки FPGA, кроме одного - CE (Chip Enable), который выведен на ножку CPLD. Доступа к CPLD я не имею, так что резонно узнать - там всегда активный уровень?


SRAM'овский CE в первой ревизии был заведен на FPGA, а во второй его убрали, так как не хватало ножек. его перенесли в CPLD, внутри которой реализована маленькая схемка управления чип-селектами SRAM-а и Flash-а. Она проста до ужаса - берет старший разряд шины адреса (вроде бы, A[20] или A[21] - надо схему смотреть), и в зависимости от её значения (0 или 1) чип-селектит либо то, либо другое. Что именно - не помню ;) Осциллограф в помощь )))

Про шину адреса SRAM-а, а так же про сигнал A[-1] я уже объяснял выше ;)
Аватара пользователя
Соратник слонопотама
 
Сообщения: 250
Зарегистрирован: 16 апр 2008, 13:18

Re: Вопросы по SDK-6.1

Сообщение MIX@ » 16 мар 2009, 20:03

Соратник слонопотама писал(а):SRAM'овский CE в первой ревизии был заведен на FPGA, а во второй его убрали, так как не хватало ножек. его перенесли в CPLD, внутри которой реализована маленькая схемка управления чип-селектами SRAM-а и Flash-а. Она проста до ужаса - берет старший разряд шины адреса (вроде бы, A[20] или A[21] - надо схему смотреть), и в зависимости от её значения (0 или 1) чип-селектит либо то, либо другое. Что именно - не помню ;) Осциллограф в помощь )))


Стало быть - A[21].
Осциллографом не располагаю. Нельзя ли уточнить?

Соратник слонопотама писал(а):Про шину адреса SRAM-а, а так же про сигнал A[-1] я уже объяснял выше ;)

A[-1] и вход BYTE есть только на FLASH. Со SRAM же, если верить официальной документации, ситуация несколько иная. Байтовый обмен там контролируется исключительно сигналами UB (Upper Byte) и LB (Low Byte), соответсвенно, при активации первого обмен ведётся только через старший байт шины данных (I/O 8-15), при активации последнего через младший байт шины данных (I/O 0-7). Адресация же всё равно идёт словами. И A[-1] для байтовой адресации и обмена приходится реализовывать уже в контроллере на FPGA. Собственно, этот самый A[-1] и определяет состояние сигналов UB и LB (мультиплексор). Итак, судя по документации на стенд - объём памяти SRAM 512 Кб => для адресации словами хватит 256 Кб адресного пространства, т.е. в аккурат в 18 бит (A0-A17), что и значится в официальной документации. Теперь снова вопрос - почему на схеме лишний адресный вход.
Аватара пользователя
MIX@
 
Сообщения: 115
Зарегистрирован: 08 апр 2008, 11:57


Вернуться в SDK 6.1

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron