Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan 3E SK
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
Георгий 2
Доброго времени суток, подскажите пожалуйста, на платке Spartan 3E SK есть флешка, как я понимаю в нее можно залить прогу и программировать ПЛИСину с нее без подключения к компу. Програмить ПЛИСину можно через обычный USB там есть JTAG эмулятор. Подскажите как зашить прогу во флешку, возможно ли это через USB или необходимо через JTAG?
at89c51ed2
2 Георгий 2
А я Вас тоже самое спрашиваю в другой ветке (про ISE). Насколько я понимаю ситуацию, и исходя из здравого смысла и логики, такая возможность должа быть. Думаю, что сделать это можно и через USB (на "ките" есть специальный загрузчик из процессора Cypress и CPLD XC2C256) Схема усиленно скрывалась, но её расковыряли и сейчас можно такой загрузчик приобрести (здесь где то я об этом читал). Как видно из картинки (это 14 лист схемы "кита") тут приведена схема JTAG цепочки. Если открыть в ISE iMACT (слева, где iMPACT Flows) Boundary Scan, то откроется как раз эта цепочка - XC3S500E->XCF04s->XC2C64. Т.е. надо выбрать файл *.mcs и залить в XCF04. Всё заливается, верифицируется, скачивается обратно, но грузиться не хочет. Режим М0-М2 стоит как MS (все перемычки установлены). Думаю, что можно и через внешний JTAG - установить М0-М2 в положение JTAG (стоит только перемычка М1) и на внешний JTAG подавть от программатора. Программатор такой можно сделать самому, даже слегка переделав ByteBlaster, у меня были такие мысли, но хозяин дал "родной" программатор ХИЛЫХ, через LPT. У меня вопрос - а каким типом файлов шить CPLD XC2c64 (то, что у альтеры было *.pof)? У меня сейчас там стоит "bypass", т.е. видимо я исключил этот девайс из цепочки. Может это глупый вопрос, а куда в цепочку включён JTAG Header? И что такое в цепочке FX2 (замкнутое перемычкой)? А можно ли где нибудь нарыть ответную часть к большому разъёму, и как она хотя бы называется то?
Георгий 2
Что за ошибка?

WARNING:iMPACT:2257 - Startup Clock has been changed to 'JtagClk' in the bitstream stored in memory,
but the original bitstream file remains unchanged.
XVR
Цитата(at89c51ed2 @ Jan 19 2010, 18:29) *
Т.е. надо выбрать файл *.mcs и залить в XCF04. Всё заливается, верифицируется, скачивается обратно, но грузиться не хочет. Режим М0-М2 стоит как MS (все перемычки установлены). Думаю, что можно и через внешний JTAG - установить М0-М2 в положение JTAG (стоит только перемычка М1) и на внешний JTAG подавть от программатора.
Внешний JTAG у платы припаян параллельно внутреннему (от USB) (насколько я понял). Включайтесь через USB
Цитата
У меня вопрос - а каким типом файлов шить CPLD XC2c64 (то, что у альтеры было *.pof)?
Выбирите ее в iMPACT для програмирования, он скажет, каким файлом он хочет

Цитата
У меня сейчас там стоит "bypass", т.е. видимо я исключил этот девайс из цепочки.
Угу

Цитата
Может это глупый вопрос, а куда в цепочку включён JTAG Header?
JTAG/USB Download

Цитата
И что такое в цепочке FX2 (замкнутое перемычкой)?
Выход на разъем FX2 (тот самый 100 ногий разъем)
Цитата
А можно ли где нибудь нарыть ответную часть к большому разъёму,
Заказать в Штатах (через Mouser или ABN Univarsal у нас)
Цитата
и как она хотя бы называется то?
FX2BA-100SA-1.27R или FX2B-100SA-1.27R
(см http://www.hirose.co.jp/cataloge_hp/e57220088.pdf )


Цитата
Что за ошибка?

WARNING:iMPACT:2257 - Startup Clock has been changed to 'JtagClk' in the bitstream stored in memory,
but the original bitstream file remains unchanged.
Это не ошибка, это предупреждение - iMPACT поменял стартовый клок для FPGA на JTAG клок (TCK). Это для непосредственной заливки FPGA через JTAG
at89c51ed2
2 XVR
Большое спасибо! Уважаю людей, дающих исчерпывающие точные и правильные ответы, а не всякий флуд! Теперь стало понятно, почему на схеме имена цепей многие FX2... Будет теперь легче разбираться, что куда идёт.
at89c51ed2
Всё, мои мысли закончились! Срочно нужен дельный совет или бубен для шаманских плясок вокруг S3ESK. Вчера (точнее уже сегодня) до 5 утра пытался сконфигурить ФПГА из ФЛЭШ. Теперь однозначно уверен, что это возможно (или было возможно в моём случае, в любом случае такая возможность на "ките" есть), потому как в описании на "кит" такая процедура описана. Всё честно делаю, как там, с точностью до того, что там описан более старый ИМПАКТ, чем у меня. Но похоже. Выкладываю лог заливки ФПГА - сначала сессия заливки только ФПГА (работает), потом PROM Formatted - всё удачно (файл untittled.mcs), потом попытка заливки ФЛЭШ с последующей конфигурацией ФПГА. Заливка проходит, но при попытке конфигурации ФПГА, последняя слетает. Нажимания на кнопку "Prog" ни к чему не приводят. Если снять галку "Load FPGA", то как и положено ФЛЭШ льётся и потом выдаётся сообщение об успешном выполнении. Проблема начинается при попытке конфигурации ФПГА из ФЛЭШ! В логе есть такая запись:
----------------------------------------------
'2': Starting FPGA Load with Prom Data...INFO:iMPACT:563 - '2':Please ensure proper connections as specified by the data book ...
----------------------------------------------
Проанализировав последовательность этих басурманских букоф, получается что эта бестолковая последовательность команд (всмысле программа ИМПАКТ) знает о том, что у меня на плате не правильно соединена ФЛЭШ и ФПГА, а вот где не правильно это она скрывает!
В связи с этим вопросы:
1. Может ли какакя либо опция при создании *.bit файла криттично на это влиять. В смысле, если *.bit файл правильно грузится в ФПГА, может ли быть в нём проблема, что бы не конфигурилось из ФЛЭШ. Там, в ИСИ, есть куча галочек. Я сейчас поставил CCLK и 25 МГц, там есть ещё "подтяжки". Влияют ли они?
2. Перемычки на J11. Влияют ли они на это? Мне достался "кит" без этих перемычек, а в описании, на картинках, они есть. Как я понял это для SPI ROM, но у них там есть "общие ресурсы" (как сказано в описании), в том смысле, что клоки у них объединены.
3. Режим ставлю MS (M0-M2 установлены), так правильно?
4. При открытии *.bit файла мне говорят о том, что к ФПГА приаттачена ФЛЭШ ПЗУ и предлагают выбрать *.mcs файл для неё. Это не влияет?
4. Ну и последнее. Если бубен не поможет, можно ли сконфигурить ФПГА из других ПЗУ, имеющихся на плате - SPI, или эта же флэш?
Спасибо!
Георгий 2
Цитата(at89c51ed2 @ Jan 21 2010, 16:10) *
Проблема начинается при попытке конфигурации ФПГА из ФЛЭШ! В логе есть такая запись:
----------------------------------------------
'2': Starting FPGA Load with Prom Data...INFO:iMPACT:563 - '2':Please ensure proper connections as specified by the data book ...
----------------------------------------------
Проанализировав последовательность этих басурманских букоф, получается что эта бестолковая последовательность команд (всмысле программа ИМПАКТ) знает о том, что у меня на плате не правильно соединена ФЛЭШ и ФПГА, а вот где не правильно это она скрывает!


Есть такая же проблема, в логе точно такая же запись, один в один... Так что есть мысле что не могут два разных спартана косячить одинаково, есть мысль про кривые руки (мои) или софт

Цитата(at89c51ed2 @ Jan 21 2010, 16:10) *
В связи с этим вопросы:
1. Может ли какакя либо опция при создании *.bit файла криттично на это влиять. В смысле, если *.bit файл правильно грузится в ФПГА, может ли быть в нём проблема, что бы не конфигурилось из ФЛЭШ. Там, в ИСИ, есть куча галочек. Я сейчас поставил CCLK и 25 МГц, там есть ещё "подтяжки". Влияют ли они?
2. Перемычки на J11. Влияют ли они на это? Мне достался "кит" без этих перемычек, а в описании, на картинках, они есть. Как я понял это для SPI ROM, но у них там есть "общие ресурсы" (как сказано в описании), в том смысле, что клоки у них объединены.
3. Режим ставлю MS (M0-M2 установлены), так правильно?
4. При открытии *.bit файла мне говорят о том, что к ФПГА приаттачена ФЛЭШ ПЗУ и предлагают выбрать *.mcs файл для неё. Это не влияет?
4. Ну и последнее. Если бубен не поможет, можно ли сконфигурить ФПГА из других ПЗУ, имеющихся на плате - SPI, или эта же флэш?
Спасибо!


1 Возможно, хотя все сделано как Xilinx учит, так что непонятно где косяк, тут ничего вразумительного пока ответить не могу

2 На не конфигурацию флеш J11 они не влияют, но по умолчанию стоят, причем рядом подписано что по умолчанию "Default CSO_B/SEL; ROM_CS/CSO_B

3 Да должен быть установлен именно режим 1 когда М0-M2 установлены все 3 джампера, остальные режимы это конфигурация SPI, BPI, и с помощью JTAG программатора

4 В руководстве вроде так и написано

5 Опять же в руководстве пишут что сконфигурировать можно из любой флеш, BPI, SPI и Platform flash
at89c51ed2
Бубна я конечно не нашёл, но удалось частично решить проблему загрузки ФПГА, - из SPI 08.gif . На плате "кита" есть М25Р16 - 16МБит флэш. Процедура аналогичная - из *.bit делаем formatter-ом *.mcs файл, в режиме BS приаттачиваем к ФПГА эту SPI, снимаем на "ките" М0 и программируем. После загрузки флэш, автоматически происходит конфигурация ФПГА. Также автоматически стартует загрузка и при включении питания "кита" и при нажатии на кнопку "Prog". Остаётся открытым вопрос с XCF04S, потому как собираюсь в дальнейшем на плате проекта использовать её для загрузки, потому надо разобраться в этом вопросе. Думаю потыркаться осциллоскопом в управляющие сигналы (типа INIT, CS, OE всякие) - может это наведёт на мысль. Пока своих мыслей по поводу XCF04S нет 01.gif . Неужели больше никто не сталкивался с этой проблемой. Хоть у кого то работает загрузка из XCF04? Люди, отзовитесь у кого грузится, как Вы этого добились? laughing.gif
Георгий 2
Цитата(at89c51ed2 @ Jan 23 2010, 18:55) *
На плате "кита" есть М25Р16 - 16МБит флэш. Процедура аналогичная - из *.bit делаем formatter-ом *.mcs файл, в режиме BS приаттачиваем к ФПГА эту SPI, снимаем на "ките" М0 и программируем. После загрузки флэш, автоматически происходит конфигурация ФПГА. Также автоматически стартует загрузка и при включении питания "кита" и при нажатии на кнопку "Prog".


Не могли бы Вы описать как программируете SPI подробнее? Я делаю так:
1 Ставлю в опциях 12 МГц
2 Захожу в импакт создаю mcs файл для SPI
3 Выбираю 16 Мбит
4 Генерирую файл
5 выбираю Direct SPI configuration
6 выбираю сгенеренный файлик mcs
7 выбираю флеху m25p16
8 тыкаю программировать....
а эта сволочь (импакт) показывает мне cranky.gif и говорит "Device validation teminated" как говорит мой продвинутый в английском товарищ сия последовательность буржуйских букоф говорит о том что определение устройства прервано...

Что я делаю не так?

Кстати вы программите через usb или через jtag?
at89c51ed2
2 Георгрий 2.
Сейчас попробую вспомнить, так как ИСИ я снёс, а до установки пока не дошло. В п.1 я ставил "дефолт", потому как не знаю какая там должна быть частота. Всё сделал "наскоком" - методом тыка и интуитивно, т.е. описание "кита" на эту тему я не чиатл. По моему ошибка начинается с п.5. Я программирую в режиме BS, так же как и конфигурить ФПГА или XCF. Я ж писал: "в режиме BS приаттачиваем к ФПГА эту SPI, снимаем на "ките" М0 и программируем". Когда она приаттачится, то над картинкой ФПГА появится картинка SPI Flash. Вот её надо выделить зелёным, или правой конопкой по ней. И программировать. Перемычки М0-М2 влияют только на последующую конфигурацию ФПГА. СПИ зальётся и при любой их комбинации, а вот ФПГА загрузится из СПИ только если М0 убрать, а оставить М1 и М2. Все конфигурации и заливки я делал как с USB так и с CableIII (у меня есть родной от ХИЛЫХ, хозяин прикупил вместе с "китом"). Вот только не рискнул их вместе включить, потому как мне писали где то здесь, что JTAG Header подключён параллельно USB загрузчику (в цепочке JTAG). Через ЖТАГ дольше это происходит и долго стирается сама СПИ (около 40 сек. весь процесс). Попробуйте, как установлю ИСИ попробую Вашу лицензию, тогда можно будет прямо по шагам, что бы я видел ИМПАКТ.
Георгий 2
Цитата(at89c51ed2 @ Jan 25 2010, 16:11) *
Я ж писал: "в режиме BS приаттачиваем к ФПГА эту SPI, снимаем на "ките" М0 и программируем". Когда она приаттачится, то над картинкой ФПГА появится картинка SPI Flash.


Вот в этом то и вопрос что значить приаттачить СПИ? поконкретнее можно как это реализовать?
at89c51ed2
2 Георгий 2.
В режиме BS, если правой кнопкой на ФПГА (или на пунктрирный контур выше ФПГА) шлёпнуть, то в появившемся меню будет "Add SPI/BPI Flash". Вот туда то и надо подсунуть сделанный ранее *.mcs файл. Потом выбрать М25Р16 и всё. Можно её программить.
Георгий 2
Все разобрался со SPI и пришел к выводу, что есть смысл ставить 11 ISE так как 9 у меня не распознала SPI флешку, но начинающим совет ставить сначала 9, она дружелюбнее для обучения, много где написано, а вот потом уже ставить 11 и уже интуитивно понятно че делать и куда тыкать... мое мнение, теперь еще modelsim нужно освоить и вообще нормально будет, кстить по поводу платформ флеш она у меня зашилась, в логе не было сообщения о косяке, но сделать с ней ничего не получилось...
at89c51ed2
Непонятно laughing.gif . Я так полагаю, что этому "киту" s3esk уже минимум года два. В любом случае, он появился раньше, чем ИСИ 11.1. Может быть тогда надо было делать это с помощью утилиты XSPI и надевать JP8? Ну да ладно, это дело прошлое, главное, что теперь грузится. С заливкой XCF проблем то не было - она льётся, верифицируется, стирается, читается. Но законфигурить с неё ФПГА не получается. Если галочку снять в ИМПАКТе "Load FPGA", то и не будет загрузки и не будет ошибки. Не знаю по поводу 9 или 11, я поставил сразу 11.1. И после 5 летнего перерыва в общении с ФПГА (а общался я ранее только с АСЕХ) мне потребовалась почти неделя, что бы сделать свой проектик и залить его в "кит". Правда занимался я этим в октябре, на даче, без сети и вечером после работы на строительстве. Так что в моём распоряжении было 3-5 часов в день. Да, с МоделСимом ещё будет "гимор". Я до сих пор пока боюсь в это залезать даже и с какого конца не знаю. Подумываю - а может пока попробовать посимулить в "родном" симуляторе? Говорят он тормозной и менее функционален, но может он полегче в начальном освоении? А BPI режим не пробовали? Думаю, тема себя исчерпала, потому как все вопросы загрузки мы решили, XCF не победили, а в наш "междусобойчик" никто не вмешиватся (то ли "китов" нету ни у кого, то ли молчат -вопросов нет или не хотят делиться ответами). Потом, если ещё будут вопросы по "киту" можно будет сюда и написать (заодно "up - нуть тему, может кто свежим глазом, что и посоветует), там ещё много "железок" для освоения. Я бы очень хотел сделать UART, потому как в моём проекте аж целый проц (PIC24) будет присутствовать только для того, что бы принять - передать инфу в комп. Ещё б не хило было бы освоить ethernet, но это вообще лженаука и это выше моего понимания.
Георгий 2
Цитата(at89c51ed2 @ Jan 26 2010, 17:54) *
Непонятно laughing.gif . Я так полагаю, что этому "киту" s3esk уже минимум года два. В любом случае, он появился раньше, чем ИСИ 11.1. Может быть тогда надо было делать это с помощью утилиты XSPI и надевать JP8?


Вполне возможно, но я думал что все равно можно было наблюдать саму флеху из импакта

Цитата(at89c51ed2 @ Jan 26 2010, 17:54) *
Да, с МоделСимом ещё будет "гимор".


В этом не сомневаюсь, но стандартного то толком и нету в 11, поэтому придется освоить моделсим, что говорить про 9 то очень тупая хрень стандартный ейный симулятор...

Цитата(at89c51ed2 @ Jan 26 2010, 17:54) *
Думаю, тема себя исчерпала, потому как все вопросы загрузки мы решили, XCF не победили, а в наш "междусобойчик" никто не вмешиватся (то ли "китов" нету ни у кого, то ли молчат -вопросов нет или не хотят делиться ответами). Потом, если ещё будут вопросы по "киту" можно будет сюда и написать (заодно "up - нуть тему, может кто свежим глазом, что и посоветует), там ещё много "железок" для освоения.


Вполне согласен если у кого-то будут предложения или вопросы, пишите, вместе мы их быстрее одолеем

Цитата(at89c51ed2 @ Jan 26 2010, 17:54) *
Я бы очень хотел сделать UART, потому как в моём проекте аж целый проц (PIC24) будет присутствовать только для того, что бы принять - передать инфу в комп. Ещё б не хило было бы освоить ethernet, но это вообще лженаука и это выше моего понимания.


Для меня пока и то то выше понимания, сейчас продолжаю изучение VHDL дается очень тяжко и со скрипом, но будем учить, его если понять, то писать на нем гораздо лучше чем схемки чертить, хотя на настоящий момент схемки понятнее, но шеф говорит VHDL и точка, вот и скрипим...
at89c51ed2
По поводу top-level конечно не место здесь для дискуссии, тем более, что наверняка это уже ранее обсуждалось. Но, это моё мнение и моя привычка, я считаю, что top-level должен быть схемой, а может быть и даже крупные блоки. Но это всё предпочтения индивидуальные. Возможно, если когда то и получится освоить какой нибудь ХДЛ, моё мнение и изменится. Но мне сейчас легче для понимания видеть квадратики со стрелками и связями, чем кучу строчек с непонятными словами и символами.
max77
По поводу схемного представления проекта для FPGA. На курсах по VHDL говорили, что он толком не поддерживается то ли с 5, то ли с 6 версии. Преимущество программирования на VHDL в том, что часть текста написанного при описании модулей (процессов) можно использовать для временных симуляций.
С Spar3E500kit не работал. Но с Spar3DO kit работал с программированием на VHDL.
Еще, при выводе схемного решения после синтеза описанной конструкции, бывают неправильное отображение некоторых сигналов, особенно это заметно на больших блоках. Иногда не показывает цепи синхронизации, которые должны заходить в блок или еще какие нибудь сигналы. Поэтому схемное (символьное) отображение можно использовать только для собственного понимания написанного кода на начальном этапе обучения.
XVR
Цитата(at89c51ed2 @ Jan 26 2010, 14:54) *
Я бы очень хотел сделать UART, потому как в моём проекте аж целый проц (PIC24) будет присутствовать только для того, что бы принять - передать инфу в комп.
Жирновато будет для UART'а. В FPGA можно собрать процессор (MicroBlase или PicoBlase)
Цитата
Ещё б не хило было бы освоить ethernet,
Тогда MicroBlase однозначно rolleyes.gif
at89c51ed2
2 XVR
Ещё как жирно, но есть ограничения на время передачи, короче нужна скорость под 1МБ/сек. В "родных" 51 ЦПУ не нашёл такого UART-a, к тому же хозяин крепко на них "сидит" - есть спецы у него в этих процах, да "кит" для ethernet-a купленный с этими процом. Хотя и утверждалось ранее: "Делайте на чём хотите, лишь бы был конечный результат", но факт налицо - вместо знакомой Альтеры сказали делать на ХИЛЫХ (наличие "кита" опять таки) и вместо знакомых АТ89 надо изучать PIC24. Не, я к хозяину не в претензиях, требования то логически обоснованы и я с этим согласен. Просто он требует результат, а у меня время уходит на обучение, а не на написание и отладку. Вопрос по встраиваемым процам - я порылся в документе s3esk_startup_rev2.pdf, и не увидел там UART-a. Я склоняюсь к мысли, что это облегчённая версия процессора для этого "кита". А возможно ли нарыть полные (если конечно существует такая сборка) версии? На самом деле мне нужен только UART со скоростью до 1МБ/сек.
XVR
Цитата(at89c51ed2 @ Jan 26 2010, 18:45) *
Ещё как жирно, но есть ограничения на время передачи, короче нужна скорость под 1МБ/сек.
Это вроде не проблема

Цитата
В "родных" 51 ЦПУ
Для SPARTAN'а это далеко не родной проц smile.gif
Цитата
Вопрос по встраиваемым процам - я порылся в документе s3esk_startup_rev2.pdf, и не увидел там UART-a
Вам нужен другой документ - по EDK
Цитата
А возможно ли нарыть полные (если конечно существует такая сборка) версии?

EDK поновее. С платой идет trial версия какого то весьма древнего EDK
Цитата
На самом деле мне нужен только UART со скоростью до 1МБ/сек.
Вроде это там есть
at89c51ed2
2 XVR
Я имел ввиду, что "родной" 51 ЦПУ - давно знакомый (уже 10 лет сидим на нём) и переходить с него на PIC24 не хотелось. В более менее известных девайсах УАРТ-а с 1 МБит не нашли, а садиться на мелковыпускаемый и труднодоставаемый не позволили. Я как то рылся на опенсорсе и видел там проекты 51 ЦПУ для ХИЛЫХ. Так что может быть имеет право на жизнь и такой вариант. Спасибо за наводку, буду иметь ввиду EDK.
Георгий 2
Цитата(max77 @ Jan 26 2010, 20:19) *
На курсах по VHDL говорили, что он толком не поддерживается то ли с 5, то ли с 6 версии. Преимущество программирования на VHDL в том, что часть текста написанного при описании модулей (процессов) можно использовать для временных симуляций.


По поводу курсов. Где Вы их проходили не поделитесь ссылочкой на них или контактами? на сколько качественно учат? и чему самое главное?
XVR
Цитата(at89c51ed2 @ Jan 26 2010, 22:11) *
Спасибо за наводку, буду иметь ввиду EDK.
Только учтите, что в EDK процессор - это не 'знакомый 51', и даже не PIC24. Это 32х битный RISC (клон MIPS'а). Насколько я знаю, на него даже Linux ставят rolleyes.gif
А вот PicoBlase - это 8ми битный RISC, из языков на него только ассемблер
des00
Цитата(Георгий 2 @ Jan 26 2010, 06:31) *
Для меня пока и то то выше понимания, сейчас продолжаю изучение VHDL дается очень тяжко и со скрипом, но будем учить, его если понять, то писать на нем гораздо лучше чем схемки чертить, хотя на настоящий момент схемки понятнее, но шеф говорит VHDL и точка, вот и скрипим...

крайне рекомендую SV + V %) и шефу вашему также передайте %)
Георгий 2
Цитата(des00 @ Jan 27 2010, 16:39) *
крайне рекомендую SV + V %) и шефу вашему также передайте %)


Если не ошибаюсь вы имеете ввиду System Veriliog + Verilog?
des00
Цитата(Георгий 2 @ Jan 27 2010, 04:42) *
Если не ошибаюсь вы имеете ввиду System Veriliog + Verilig?

да, только правильно пишется System Verilog + Verilog. (V вошел в SV, так что сразу начинайте с SV).
at89c51ed2
2 des00
Ваша квалификация и авторитет здесь не поддаются сомнению a14.gif , но когда Вы что то крайне рекомендуете, можно ли услышать ещё какие то логические доводы. Я нахожусь примерно в такой же ситуации, как и "Георгий 2", поэтому проблема выбора стоит очень остро. Насколько я смог сделать для себя выводы (после некоторого времени изучения данного форума) на сегодняшний день из широко используемых языков описания аппаратуры разработчику доступны VHDL, Verilog, System C, System Verilog. Видимо первые два уже достаточно давно используются, есть даже некие стандарты (по моему 2000 г.). Последние два новее. Читал что System C - "мертворожденное дитя" и закладываться на него не стоит. Не первый раз слышу, что будущее за System Verilog. Всё это только мои домыслы, возможно я и не прав, поправьте кто знает. Хотелось бы для себя попытаться классифицировать эти языки (классифицировать по каким то критериям качества) и иметь в голове некую сравнительную таблицу что ли. Ведь если есть некое кол-во продуктов (в данном случае языки описания), то чем то должны они отличаться. И видимо из за отличий этих, имеют друг перед другом достоинства и недостатки. Хотя, я сам немного знаю С и (только видел) Паскаль, но сравнения - объективного, дать не могу laughing.gif этим двум языкам. Возможно, это можно сделать только на субъективном уровне, но всё равно, мнение (даже и субъективное) специалиста знать полезно. Коль скоро и предстоит погружение в эти дебри, хотелось бы изначально правильно взять направление! Думаю, что этот вопрос здесь не однократно поднимался, но как такового сравнения я пока не нашёл. Так (в кратце, если можно), почему именно SV?
XVR
SV является расширением V (и с некоторого времени это уже один и тот же язык - IEEE объединила их стандарты в один)
Отношение между SV и V примерно такое же, как между C++ и C. Огромное преимущество SV больше всего ощущается когда начинаешь писать тесты (для SV есть библиотеки/framework'и для тестирования) Единственный недостаток - ограниченная поддержка со стороны производителей тулов (Xilinx например до сих пор не поддерживает SV ни в каком виде)

Отношение между VHDL и V/SV примерно такое же, как между ADA (Pascal) и C/C++. В основном это вопрос личных пристрастий, плавно (и неотвратимо) перетекающий в нескончаемые холивары smile.gif
Георгий 2
Цитата(XVR @ Jan 27 2010, 17:23) *
SV является расширением V (и с некоторого времени это уже один и тот же язык - IEEE объединила их стандарты в один)
Отношение между SV и V примерно такое же, как между C++ и C. Огромное преимущество SV больше всего ощущается когда начинаешь писать тесты (для SV есть библиотеки/framework'и для тестирования) Единственный недостаток - ограниченная поддержка со стороны производителей тулов (Xilinx например до сих пор не поддерживает SV ни в каком виде)

Отношение между VHDL и V/SV примерно такое же, как между ADA (Pascal) и C/C++. В основном это вопрос личных пристрастий, плавно (и неотвратимо) перетекающий в нескончаемые холивары smile.gif


Если я правильно понимаю, то к примеру если у меня есть счетчик на VHDL и занимает он к примеру 30 строчек и хренову гору операторов и головоломок, то если я пишу на SV, количество строчек будет например 15 и уменьшится количество операторов, и все соответственно будет гораздо проще?
at89c51ed2
2 XVR
Цитата
Единственный недостаток - ограниченная поддержка со стороны производителей тулов (Xilinx например до сих пор не поддерживает SV ни в каком виде)

А зачем мне тогда это laughing.gif ? И что мне дальше делать с этими красивыми конструкциями языка и удобными тестами, живущими только виртуально!? Моя конечная цель - работающее железо. Думаю, что раз это один язык, то есть смысл начать с Verilog, а потом уже (если получится освоить в достаточном качестве) переходить на расширения SV. Наверное это также как С-С++. Можно писать на стандартном ANSI C, а потом (при необходимости) переходить на объекты и т.п. присущее С++. Возможна ли такая ситуация - писать проект на SV, отладить и просимулировать, а на этапе синтеза и последующей разводки "облегчить" проект удалив из него не поддерживаемые ИСИ 11.4 конструкции? Или это будут совсем разные проекты, написанные на разных языках, живущие в разных средах, но описывающие одну и ту же железяку? Как то мне это не понятно. А кто тогда поддерживает SV? ALDEC, MODELSIM ...??? Извините за глупый вопрос, а что такое "нескончаемые холивары"?
2 Георгий 2
Я думаю, что в силу нашего с Вами не знания сути вопроса, Ваш вопрос несколько не корректен. В том смысле, что уровни проектов где железо - счётчики, дешифраторы, КЦА - это уровень 5 летней давности, где всё просто решалось на уровне графических примитивов. Сейчас всё стало гораздо сложнее. Железо очень сильно усложнилось, что позволило делать гораздо сложные проекты. Что в свою очередь, требует от разработчиков чёткого понимания, что они делают и как это верифицировать, а к разработчикам тулов предъявляет ещё более повышенные требования. К тому же, думаю, в сложных проектах труднее поддерживать иерархичность и осуществлять связь между различными компонентами проекта. Видимо все эти причины и приводят к появлению более сложных языков, предназначенных для облегчения жизни разработчикам в сложных проектах. Так что сравнивать только по количеству строк, как то не корректно. Если Вам нужен только счётчик, то это CPLD и графический примитв, если счётчик в составе более сложного проекта, то видимо ВХДЛ и Верилог для ФПГА, а если Вам нужен RISC процессор с Ethernet и LVDS с 622МБ/с и какая нибудь ЦОС (БПФ или свёртка, к примеру), то может быть и SV Вам покажется раем небесным, по сравнению с ВХДЛ.
Но, это только пока мои домыслы.
Георгий 2
Я тут еще мимоходом решил еще и LCD прикрутить к проклятому киту, и обнаружил, насколько я понял, что сделать это можно лишь с помощью микропроцессорного ядра MicroBlaze... если я не прав подскажите об этом, но если я прав, то где лучше всего про это почитать и какой язык программирования использутся при программровании самого MicroBlaze? Если я не ошибаюсь то самое веселое только начинается? как я понял в PicoBlaze использутся ассемблер? а тут что-то другое видимо С?

Цитата(at89c51ed2 @ Jan 27 2010, 18:02) *
2 Георгий 2
Я думаю, что в силу нашего с Вами не знания сути вопроса, Ваш вопрос несколько не корректен. В том смысле, что уровни проектов где железо - счётчики, дешифраторы, КЦА - это уровень 5 летней давности, где всё просто решалось на уровне графических примитивов. Сейчас всё стало гораздо сложнее. Железо очень сильно усложнилось, что позволило делать гораздо сложные проекты. Что в свою очередь, требует от разработчиков чёткого понимания, что они делают и как это верифицировать, а к разработчикам тулов предъявляет ещё более повышенные требования. К тому же, думаю, в сложных проектах труднее поддерживать иерархичность и осуществлять связь между различными компонентами проекта. Видимо все эти причины и приводят к появлению более сложных языков, предназначенных для облегчения жизни разработчикам в сложных проектах. Так что сравнивать только по количеству строк, как то не корректно. Если Вам нужен только счётчик, то это CPLD и графический примитв, если счётчик в составе более сложного проекта, то видимо ВХДЛ и Верилог для ФПГА, а если Вам нужен RISC процессор с Ethernet и LVDS с 622МБ/с и какая нибудь ЦОС (БПФ или свёртка, к примеру), то может быть и SV Вам покажется раем небесным, по сравнению с ВХДЛ.
Но, это только пока мои домыслы.


В общем и целом не это понятно, но я в принципе за время обучения в институте не мог нормально этому всему обучится, и поэтому начал с 0. про счетчик это просто к слову пришлось, но моей коечной целью является пресловутый ЦОС и я начавший учить VHDL и пишущий на нем тольо несерьезные мелочи, должен для себя сразу решить, VHDL или Verilog взять для ЦОС иначе время будет потрачено впустую, а видимо для ядер (пост выше) еще придется учить и С...
at89c51ed2
2 Георгий 2
Цитата
Я тут еще мимоходом решил еще и LCD прикрутить к проклятому киту

Как это? Он же там есть в явном виде! И все управляющие сигналы заведены прямо на порты ФПГА! Там обычный 4 битный обмен и 3 управляющих сигнала. Для того что бы его включить надо просто разобраться в интерфейсе и сделать микропрограммный автомат - обычный state mashine, который будет выдерживать тайминги (нужные времена и порядок подачи управляющих сигналов) и выдавать информацию из входного буфера (в общем случае, а в частности можно записать константы, как в примере с PicoBlaze - XILINX Spartan3 и т.д.) в память индикатра. Я сейчас выскажу своё мнение, только без обид maniac.gif . Думаю, нам больше не нужно заниматься изучением "кита", тем более, что Вы собираетесь заниматься ЦОС, а у меня задачи не соприкасающиеся с символьным двухстрочным индикатором. Нам это ничего не даст, кроме того, что немного изучим устаревший PicoBlaze. С точки зрения освоения ФПГА и языков - это тупик для нас. Лучше сосредоточиться на изучении Verilog (я уже принял для себя решение - сначала Verilog, потом SV. Потому как V имеет "продолжение" - SV, а VHDL как то не очень. А между собой VHDL~Verilog. Поправьте, если не так.) и научиться реализовывать для начала простые цифровые устройства - счётчики, КЦА, автоматы и их симулировать. С прицелом, опять таки, на наши задачи. Нужна Вам ЦОС - учите аккумуляторы, умножители, счётчики адресные, память всякую и т.д. Мне вот сейчас нужен Делитель частоты с переменным коэффициентом деления. Я знаю как его сделать "в железе", но как его описать laughing.gif . Ну загрузите Вы конфигурацию готовую процессора, увидите на индикаторе надпись, сможете в ассемблере другую "сгенерить", даже можно попонтоваться - вывести логотип фирмы и реквизиты, а дальше то что? Если бы можно было использовать индикатор для отладки, но он медленный, можно туда вытаскивать результат вычислений, но придётся переводить форматы двоичные в двоично-десятичне и потом формировать строки. Короче, думаю, результат не стоит усилий.
Цитата
а время обучения в институте не мог нормально этому всему обучится, и поэтому начал с 0.

Поверьте мне, как человеку не понаслышке знающему, как и чему учать сейчас в ВУЗах, ситуация с Вами - это нормально. Если Вы сами не будете к этому стремиться во время обучения в институте, то Вас ничему не научат. НЕЛЬЗЯ НАУЧИТЬ, можно помочь научиться! Я начал осваивать программируемую логику самостоятельно в ВУЗе, на примере ещё ИНТЕЛ-овских iFX740(780) в PLDShell. И сделал диплом на ней - RLE алгоритм сжатия. НЕ бог весть какой сложности проект, но полностью и с симуляцией. Потом альтеру сам осваивал. Думаю, что в С я многого не знаю, но смог сделать процессор свёртки и без этого. Хотя, что бы проверить алгоритм и просчитать его сначала на компе пришлось написать простенькую программку на С, а потом уже эти входные данные перенести в симулятор МАХ. Всё дело в задачах и в умении инженера адекватно задаче выбрать инструментарий. Хорошо, ели Вы знаете C/С++, VHDL/Verilog/SV, владеете MATLAB и MODELSIM и можете потом развести плату в PCAD или Mentor Grapfics. Тогда у Вас нет проблем, Вы везде почётный сотрудник, почти любые задачи может решать самостоятельно и "гнуть пальцы" перед шефом, потому как адекватной замены Вам нет (при адекватной зарплате). А если не знаете, то нужно пытаться решить задачу тем инструментарием, которым владеете или изучать новый, если этот инструмент не решает той задачи. К сожалению, мы с Вами находимся в том положении, когда просто изучать что то, уже поздно. Потому как от нас требуют результат. И никто не будет нас учить за свои деньги. Делать это нужно тихо, с постепенной выдачей "на гора", что бы хозяин видел, что процесс обучения налицо и идёт он не впустую.
Георгий 2
Цитата(at89c51ed2 @ Jan 27 2010, 19:10) *
Как это? Он же там есть в явном виде! И все управляющие сигналы заведены прямо на порты ФПГА! Там обычный 4 битный обмен и 3 управляющих сигнала. Для того что бы его включить надо просто разобраться в интерфейсе и сделать микропрограммный автомат - обычный state mashine, который будет выдерживать тайминги (нужные времена и порядок подачи управляющих сигналов) и выдавать информацию из входного буфера (в общем случае, а в частности можно записать константы, как в примере с PicoBlaze - XILINX Spartan3 и т.д.) в память индикатра. Я сейчас выскажу своё мнение, только без обид maniac.gif . Думаю, нам больше не нужно заниматься изучением "кита", тем более, что Вы собираетесь заниматься ЦОС, а у меня задачи не соприкасающиеся с символьным двухстрочным индикатором. Нам это ничего не даст, кроме того, что немного изучим устаревший PicoBlaze. С точки зрения освоения ФПГА и языков - это тупик для нас. Лучше сосредоточиться на изучении Verilog (я уже принял для себя решение - сначала Verilog, потом SV. Потому как V имеет "продолжение" - SV, а VHDL как то не очень. А между собой VHDL~Verilog. Поправьте, если не так.) и научиться реализовывать для начала простые цифровые устройства - счётчики, КЦА, автоматы и их симулировать. С прицелом, опять таки, на наши задачи. Нужна Вам ЦОС - учите аккумуляторы, умножители, счётчики адресные, память всякую и т.д. Мне вот сейчас нужен Делитель частоты с переменным коэффициентом деления. Я знаю как его сделать "в железе", но как его описать laughing.gif . Ну загрузите Вы конфигурацию готовую процессора, увидите на индикаторе надпись, сможете в ассемблере другую "сгенерить", даже можно попонтоваться - вывести логотип фирмы и реквизиты, а дальше то что? Если бы можно было использовать индикатор для отладки, но он медленный, можно туда вытаскивать результат вычислений, но придётся переводить форматы двоичные в двоично-десятичне и потом формировать строки. Короче, думаю, результат не стоит усилий.


По поводу индикатора я еще не успел разобраться, и мне не за что обижатся на вас, посмотрю еще, по поводу того что он н понадобится вы не правы, так как моей основной задачей является цифровая связь а там это необходимо задействовать: вывод различной информации например о частотах, да и начальство ставит задачу полностью разобратся в ките, так что как-то так еще помурыжу его...
По поводу ВУЗа вполне с Вами согласен, тут возразить нечего, пока сам сам не сделаешь учить никто не будет...
А по поводу языка я еще глубоко в раздуиьях, если Verilog лучше, то почему все примеры на VHDL написаны? я еще некоторое время подумаю и между делом попробую написать что-нибудь посерьезнее чем тупое мерцание ледов по счетчику или подобное...
Хотя все еще не ясно на чем стоит заострить внимание в данный момент, просто в любой теории все вроде просто, а когда садишся за реальныйц проект на пути появляется огромная куча заморочек, как в том как все реализовать и как разобратся в куче басурманских букоф и еще куча всего..... Пока как то так....
at89c51ed2
2 Георгий 2
Что ж, хозяин - барин, Вам видней Ваши задачи. Я б тогда всё таки разделил мух и котлет. Так как мне знаком 51 проц, я бы индикатор повесил на него, а заодно и если нужно - взаимодействие с оператором (различные меню, пользовательские настройки, вывод информации, ввод). А ФПГА заставить заниматься сугубо её задачами, где проц не справится - ЦОС. Но если Вам не знаком никакой проц, то тогда не могу Вам ничего посоветовать. Потому как сам ядер процовых для ФПГА не юзаю, не изучал и не знаю, во что это Вам выльется. Про ВХДЛ не могу ничего Вам сказать, кроме предположения - возможно он появился ранее Верилога и многие изучив первый уже не стали смотреть в строну второго? А может быть ВХДЛ для обучения и построения примеров проще? Для меня это тоже пока большая загадка 01.gif
Георгий 2
Цитата(at89c51ed2 @ Jan 27 2010, 21:49) *
2 Георгий 2
Что ж, хозяин - барин, Вам видней Ваши задачи. Я б тогда всё таки разделил мух и котлет. Так как мне знаком 51 проц, я бы индикатор повесил на него, а заодно и если нужно - взаимодействие с оператором (различные меню, пользовательские настройки, вывод информации, ввод). А ФПГА заставить заниматься сугубо её задачами, где проц не справится - ЦОС. Но если Вам не знаком никакой проц, то тогда не могу Вам ничего посоветовать. Потому как сам ядер процовых для ФПГА не юзаю, не изучал и не знаю, во что это Вам выльется. Про ВХДЛ не могу ничего Вам сказать, кроме предположения - возможно он появился ранее Верилога и многие изучив первый уже не стали смотреть в строну второго? А может быть ВХДЛ для обучения и построения примеров проще? Для меня это тоже пока большая загадка 01.gif


Все это так на самом деле, просто мне самому пока не ясно чего надо шефу, он хочет то ли все выпускать на этом ките, просто не будет сильно уж массовых заказав у нас как мне кажется, но с другой стороны, если ему не надо нахрена козе баян и все это учить, собрать тестовый стенд где будет все попроще, про 5 проц мне он частично знаком, возможно так и бужем делать, просто пока перспективы рисуются мне слишком туманно, а шеф все держит в секрете и ничего конкретного не говорит..... Про ядра могу сказать одно, если их изучить мне кажется, что будет очень много толку, так как например тот же самый LCD моно повесить на него и не использовать еще дополнительный проц....Про сравнение ВХДЛ и Верилог тоже ничего не могу ответить, так как выслушал уже кучу мнений и каждый стоит на своем, но в одном уверен кто хорошо знает любой язык, может без проблем написать с одинаковой простотой какое-нить устройство.....
at89c51ed2
2 Георгий 2
Шефы бывают разные и задачи у них тоже разные. Но ВСЕ шефы хотят одно - продать как можно больше и как можно дороже свою продукцию. У нас на производстве был похожий случай. Тогда "кит" (какого то клона 51 проца) решил проблему выпуска первой партии. Но, ИМХО, во время выпуска первой партии разработчики должны успеть сделать свою плату, и это должно быть временным явлением (выпуск "кита"). Я считаю, что "киты" не для этого. Тем более s3esk. А ремонт? ВЫ что будете его менять если что? А вдруг они кончатся? Возможно шеф не знает всех технических тонкостей. Попытайтесь ему объяснить. Но Вы должны сами всё понимать в таком случае.
Георгий 2
Спасибо большое за разьяснения, я постараюсь все осмыслить и придти к какому-либо выводу, но так как я сейчвс учусь в магистратуре и лет мне еще не так много, опяты толком и нет никакого в разработке, только в сборках в различных, то я еще на мой взгляд мелочь, на деле проблем мало представляю пока не столкнусь с ними. Вот как-то так, в любом случае необходимо еще все конкретно осмыслить, когда я шел как сказали "программить на ПЛИС" я еще вообще ничего об этом не знал, я думал что это не сложнее чем 51, токо синтаксис другой, а обернуось вон все как, так что буду разбиратсядальше))))
at89c51ed2
2 Георгий 2
Цитата
когда я шел как сказали "программить на ПЛИС" я еще вообще ничего об этом не знал, я думал что это не сложнее чем 51, токо синтаксис другой, а обернуось вон все как

А я думал, только я встрял в такую авантюру smile3046.gif . Правда у меня есть некий опыт разработки. И я знал уже тогда, когда начинал говорить с хозяином, что ФПГА это на порядок сложнее, чем 51 проц. Хотя, конечно, смотря какие задачи решать.
XVR
Цитата(Георгий 2 @ Jan 27 2010, 14:43) *
Если я правильно понимаю, то к примеру если у меня есть счетчик на VHDL и занимает он к примеру 30 строчек и хренову гору операторов и головоломок, то если я пишу на SV, количество строчек будет например 15 и уменьшится количество операторов, и все соответственно будет гораздо проще?
Не будет. На уровне отдельного счетчика это будет незаметно. Разница начнется на уровне всего дезайна в целом.

Цитата(at89c51ed2 @ Jan 27 2010, 15:02) *
А зачем мне тогда это laughing.gif ? И что мне дальше делать с этими красивыми конструкциями языка и удобными тестами, живущими только виртуально!?
'Ограниченная поддержка' != 'Отсутствие поддержки' MODELSIM понимает SV

Цитата
Моя конечная цель - работающее железо. Думаю, что раз это один язык, то есть смысл начать с Verilog, а потом уже (если получится освоить в достаточном качестве) переходить на расширения SV.
Рекомендую писать синтезируемую часть на V, а тесты на SV. Такая связка будет работать.

Цитата
Извините за глупый вопрос, а что такое "нескончаемые холивары"?
Это выяснения того, что лучше - C/Pascal/Assembler или Verilog/VHDL. Масса эмоций со всех сторон и отсутствие какой либо конструктивной дискуссии smile3009.gif
at89c51ed2
2 XVR
Спасибо a14.gif . Исчерпывающе. Я до этого же тоже додумался. Только вот
Цитата
если Verilog лучше, то почему все примеры на VHDL написаны?
Или это не так? Или это уже на уровне "холиваров" biggrin.gif !?
dspx
Цитата(at89c51ed2 @ Jan 27 2010, 22:08) *
2 XVR
Спасибо a14.gif . Исчерпывающе. Я до этого же тоже додумался. Только вот Или это не так? Или это уже на уровне "холиваров" biggrin.gif !?


Каждый из языков имеет свои преимущества, но в целом это тонкости. Лучше владеть обоими, потому что , например , в EDK - нативный язык VHDL, не всегда удобно делать кросс платформенные проекты.
Георгий 2
Цитата(dspx @ Jan 28 2010, 02:49) *
Каждый из языков имеет свои преимущества, но в целом это тонкости. Лучше владеть обоими, потому что , например , в EDK - нативный язык VHDL, не всегда удобно делать кросс платформенные проекты.


То что лучше владеть обоими это понятно, но так и нет мнения с обьяснением с какого начать лучше и если я уже немного пишу на VHDL стоит ли переходить на Verilog?
at89c51ed2
2 Георгий 2
Похоже, мы заходим уже на 3 круг обсуждения bb-offtopic.gif ! Я думаю, никто Вам здесь конкретно не скажет: "Учи ВХДЛ, Верилог отстой", или "Только Верилог, ВХДЛ старьё", или ещё что то подобное. Большинство согласится с этим
Цитата
Каждый из языков имеет свои преимущества, но в целом это тонкости.

Ну, пИшите вы уже на ВХДЛ, и пишите себе на здоровье biggrin.gif . Больше будете теперь сомневаться cranky.gif . Я думаю, наши задачи можно решить и на VHDL и на V. К тому же, когда Вы спрашиваете: " с какого начать лучше...", Вы сами то понимаете, с какими критериями качества Вы их собираетесь классифицировать, что лучше, а что хуже laughing.gif ? Я думаю, что когда Вы изучите оба языка (искренне Вам желаю, что бы так оно и случилось), Вы сами себе на этот вопрос однозначно не ответите! Возможно у Вас и появятся субъективные предпочтения. Я для себя решил так (с Вашей точки зрения): пишИте проект на ВХДЛ, но когда будете изучать новые конструкции, заглядывайте в Верилог (а как это там делается?) и постепенно у Вас будет складываться картина, рисующая Вам эти проблемы (отличия языков и удобства и недостатки) и откладываться что то про V. Я например, пытаюсь почитывать сейчас XST, так там все примеры сразу для VHDL и V.
Ладно, у меня сегодня разъездной день, смогу нарисоваться в сети только к вечеру к 17-18 (GMT+3), если будет что сказать, то только после этого времени.
XVR
Цитата(at89c51ed2 @ Jan 27 2010, 22:08) *
Только вот
Цитата
если Verilog лучше, то почему все примеры на VHDL написаны?

Или это не так?
Это не так. Есть масса примеров и на Verilog (есть и на SV). У Xilinx в ихней доке по библиотекам и синтезатору приводятся примеры языковых конструкций, понимаемых синтезатором, на обоих языках (Verilog и VHDL)
Например (проекты на www.opencores.org)
VHDL - 197шт
Verilog - 174шт
SystemC - 4шт
Bluespec - 6шт
Other - 28шт
Георгий 2
А кто-нибудь вообще пытался реализовать LCD на данном ките? есть готовая программа (которая Кена Чепмена) на ядре пикоблейз, как я понимаю в ней есть топ-файл для проги, файл "control" (программа для для пикоблейза), несколько файлов прошивок, mcs для флехи и bit для FPGA. Даже самого ядра пикоблейза, нет, благо оно есть в XUP, и это радует, короче собрал я все хозяйство в кучу и при синтезе мне ISE выдает
ERROR:HDLParsers:3312 - "D:/Xproject/S3ESK designs/s3esk_startup/control.vhd" Line 300. Undefined symbol 'BSCAN_VIRTEX2'. - что-то вроде символ не определен? Как пишет Xilinx там должны быть библиотеки 1164 и unisim, они присутствуют во всех файлах проекта. Помогите кто столкнулся с подобной проблемой. Может быть у кого-нибудь даже есть этот самый BSCAN_VIRTEX2?
Может ли быть что у меня криво встал ISE 11 и из-за этого не определяется символ?
at89c51ed2
2 Георгий 2.
Вот не хотел заниматься этой хренью - PicoBlaze+LCD2x16, но почитав документ s3esk_startup_rev2.pdf (где как всегда обещано счастье через 30 секунд), любопытство взяло вверх. Для начала я просто загузил в "кит" файл s3esk_startup.bit. И как ожидалось, оно произошло, в смысле чудо - действительно бежит строчка "SPARTAN-3E STARTER KIT ..." led-ы горят от slide переключателей, но самая интересная игрушка - гонять бегущую точку крутилкой около LCD (уж не знаю как правильно её обозвать (Rotary Knob что ли). Вдоволь наигравшись зрелищем бегающей точки тут же возникло желание что то сломать в программе (заменить SPARTAN на SMARTAN или на худой конец на SPARTAK). Презрев очевидную истину, что "лучшее враг хорошего" (забегая вперёд, скажу, что поплатился за это 4 часами сна, так как хотел харю заплющить ещё до полуночи) погрузился в поиски истины. Ответ на вопрос
Цитата
Может быть у кого-нибудь даже есть этот самый BSCAN_VIRTEX2?
нашёлся достаточно быстро в документе sim.pdf (http://www.xilinx.com/itp/xilinx7/books/docs/sim/sim.pdf) где басурманскими буквами по белому на стр. 81 написано дословно следующее:
You can access the built-in boundary scan logic between power-up and the start of
configuration.
In a configured Virtex™, Virtex-E™, Virtex- II™, Virtex-II Pro™, Virtex-II Pro X™,Virtex-
4™, Spartan-II™ and Spartan-3™ device, basic boundary scan operations are always
available. BSCAN_VIRTEX, BSCAN_VIRTEX2, BSCAN_VIRTEX4 and
BSCAN_SPARTAN2 are instantiated only if you want to create internal boundary scan
chains in a Virtex™, Virtex-E™, Virtex-II™, Virtex-II Pro™, Virtex-4™ or Spartan-II™
device.
Призвав на помощь всю интуицию (так как знаний 0) и остатки сил, после изучения структуры PicoBlaze, пришёл к выводу, что control.vhdl есть не что иное как ПЗУ с программой. Делается этот файл автоматически при помощи ассемблер-транслятора kcpsm3.exe из исходника control.psm. Но самое главное, что оказывается можно загрузить control в блочную память до конфигурации (что и должно быть, потому как сначала ПЗУ, а потом + процессор = работающая программа из ПЗУ). И этот самый BSCAN_VIRTEX2 есть не что иное, как JTAG Loader (изображённый на структурной схеме PicoBlaze в блоке control). Дальнейшие поиски привели меня в документ lib.pdf (http://www.xilinx.com/itp/xilinx7/books/docs/lib/lib.pdf), где на стр. 155 явно сказано, что BSCAN_VIRTEX2 ну никак не желает поддерживать архитектуру Spartan3. Но там же на стр. 151 явно сказано, что архитектуру Spartan3 поддерживает BSCAN_SPARTAN3! А далее, зная, что все открытия делаются случайно и по глупости я так же тупо и глупо в файле control.vhd заменил в 299 строке v2_bscan: BSCAN_VIRTEX2 на v2_bscan: BSCAN_SPARTAN3. После чего получил компилируемый проект 08.gif с кучей варнингов - 125 wacko.gif ! Но также рабочий! А вот изменить программу *.psm не удалось. Точнее я всё сделал - изменил control.psm, получил файл control.vhd, но он какой то не доделанный получился cranky.gif . Во первых там не оказалось выхода proc_reset, а во вторых нет вообще описания загрузчика BSCAN_SPARTAN3. Я попытался вставить его (кусок программы загрузчика) из старого control, но у меня естесственно не получилось. Всё, силы кончились, пойду харю поплющу. Совсем забыл - а на Ваш вопрос (Может быть у кого-нибудь даже есть этот самый BSCAN_VIRTEX2?) я так и не ответил прямо, но думаю, теперь это уже и не нужно biggrin.gif
des00
Цитата(Георгий 2 @ Jan 28 2010, 06:11) *
Даже самого ядра пикоблейза, нет, благо оно есть в XUP, и это радует,

по моему вы не с того конца заходите, начните с www.xilinx.com. пикоблейз, его софт + все его апноты, а в некоторых случаях и сорцы свободно доступны на сайте, со всеми разъяснениями по его использованию. И для разных семейств ПЛИС он действительно разный. Также версии отличаются в зависимости от того, нужно ли перешивать память программ при работе или нет.

Цитата(at89c51ed2 @ Jan 28 2010, 19:32) *
Во первых там не оказалось выхода proc_reset, а во вторых нет вообще описания загрузчика BSCAN_SPARTAN3. Я попытался вставить его (кусок программы загрузчика) из старого control, но у меня естесственно не получилось. Всё, силы кончились, пойду харю поплющу.

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

Почитайте апноты, все станет понятно %)

PS. Ответ про языки немного позже %)
Георгий 2
Цитата(at89c51ed2 @ Jan 29 2010, 07:32) *
Но там же на стр. 151 явно сказано, что архитектуру Spartan3 поддерживает BSCAN_SPARTAN3! А далее, зная, что все открытия делаются случайно и по глупости я так же тупо и глупо в файле control.vhd заменил в 299 строке v2_bscan: BSCAN_VIRTEX2 на v2_bscan: BSCAN_SPARTAN3.


Спасибо попробую, но меня знаете что поражает? Дело в том что вся эта хрень нормально скомпилилась без переделки еще вчера на ISE 9!!!!!!! Неужели все ISE настолько отличаются друг от друга, что один хавает проект а другой нет wacko.gif непонятно же...

Цитата(at89c51ed2 @ Jan 29 2010, 07:32) *
Совсем забыл - а на Ваш вопрос (Может быть у кого-нибудь даже есть этот самый BSCAN_VIRTEX2?) я так и не ответил прямо, но думаю, теперь это уже и не нужно biggrin.gif


Да уж не нужно, спасибо еще раз за разьяснения, только еще вопрос help.gif кто-нибудь ставил апдейт ISE 11.4? У меня получаются долгие бои с ним smile3009.gif в итоге я не то что по очкам проигрываю, а оказываюсь в глубоком нокауте, видимо у него +стопиццот к нападению... Дело в том что остается только ISE Project Navigator, еще парочка прог, но больше половины он смело удаляет!!! Я вообще хз в чем проблема кто в курсе подскажите плиз smile3046.gif
at89c51ed2
2 Георгий 2
Так я всё это и делал на ИСИ 11.4. Слил апдейт с сайта и поставил "поверх" 11.1. Даже кей не нужен, он при установке сам говорит, что 11.1 (что то типа genuine или verife) и ставится. Потом, там на сайте есть ещё дополнения - common, cs, SDK, pgmtools. Получилось установить common и cs. Про остальные было сказано, что нету этого на машине. Ну да и пусть с ними. Сейчас всё работает, компилит, льёт, занимает маста на диске 13,5 ГБ - 173740 файлов в 17813 папках 07.gif (куда ему столько!?). По поводу ИСИ9 могу только предположить следующее: я думаю, что Spartan это "облегчённй" Virtex, возможно, что на начальных этапах у них был одинаковый загрузчик, ну, или в ИСИ9 предлагали пользоваться BSCAN_VIRTEX2 и для загрузки Spartan3. Потом, в поздних версиях их разделили. Но это только мои домыслы.
2 DES00
Цитата
рекомендую для начала ознакомиться что вообще такое пикоблейз и с чем его едят, он стартует всегда с нулевого адреса. Работает из ROMB, который инициализируется при конфигурации ПЛИС или по житагу на лету, поэтому ему не нужны никакие загрузчики.

Возможно я не прав, но насколько я понял, в блочной памяти находится только образ ПЗУ - описываемый файлом control.vhd. Само ядро - kcpsm3.vhd и то, что это ядро должно делать - s3esk_startup.vhd находится в конфигурационном SRAM FPGA. Так вот этот самый загрузчик BSCAN_VIRTEX2 или BSCAN_SPARTAN3, как раз и нужен, что бы по JTAG загрузить образ ПЗУ в БРАМ. Потому как позволяет это делать между стартап и конфигурацией ФПГА, т.е. до заливки самой ФПГА. А может быть позволяет потом делать это и "на лету". Во всяком случае, мне так показалось laughing.gif .
des00
Цитата(at89c51ed2 @ Jan 29 2010, 08:14) *
Возможно я не прав

прочтите доки и вы поймете что были не правы %) JTAG загрузчик нужен для смены прошивки пикоблейза на лету, если использовалась именно такая версия. Есть апнота где Ken Chapmen (папа пикоблейза) подробно описывает этот момент.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.