-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
На днях соберу систему с vjtag, и начну выкладывать.
Упор в открытой части проекта решил сделать не на получение какой-либо законченной практической SoC, а на получение базовой платформы тестирования и сравнения разных самопальных ядер, и компиляторов для них. Поэтому vjtag + tcl. Можно будет загружать разные ядра, прошивки для них, запускать/останавливать, выводить результаты и счетчики тактов - без пересборки дизайнов, без программных загрузчиков, без лишних пинов (только jtag + клок ядра), без дополнительного ПО на стороне ПК.
Открытую SoC на базе самопальных ядер, по многолетним наблюдениям, делать не имеет смысла.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Заработало в железе(de0-nano) - Tcl-скрипт загружает hex-прошивку(N-ферзей) по vjtag, запускает ядро, и выводит результаты(правильные!). Не получается пока в нормальном виде вывод делать, тк Tcl очень поверхностно освоил. И надо отладить ожидание передачи по vjtag из ядра в ПК, это не работает пока - молотит без остановки.
Обнаружилась логическая ошибка - неправильно работает приостановка ядра по внешнему сигналу (из-за конвейера). Это легко делается с сигналом разрешения клока, но тогда не будет синтезироваться верилоговское (без примитивов) описание памяти для Альтеры. А с примитивами придется делать раздельные модули памяти для синтеза и симуляции.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Tcl пока не освоил нормально, поэтому сделал упрощенный обмен ПК <---> ПЛИС, см исходники.
top.qsf и top.sdc у меня для DE0-nano, для других плат/чипов надо подправить:
1) семейство, чип, имя и пин входного клока в top.qsf
2) имя и период входного клока в top.sdc
3) имя входного клока в top.v
Возможно, для некоторых семейств(Cyclone V и тп) надо будет поменять исходники примитивов.
top.bat запускает синтез
sof.bat загружает прошивку в плату по jtag
f.bat запускает tcl-скрипт, который загружает программу по vjtag и запускает ее.
Ассемблер пока не выложен, тк он в нескольких исполняемых файлах. Соберу в один, выложу .exe Исходники на Паскале, поэтому пока не выкладываю.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka. Причина: Добавил измененный symbolic.c и пример вывода для f.c
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Убрал некоторые синтезаторо-зависимые оптимизации, поэтому число ЛЕ возросло (Квартус неправильно "оптимизирует" некоторые модули).
Пробовал запускать на 150 МГц, невзирая на отчет STA - программа загружается и правильно исполняется. На 200 МГц не заработало.
Кстати, я обычно всегда правлю файлы, генерируемые мегавизардом - добавляю параметры и выкидываю лишнее.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
alman
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 263
-
Спасибо получено: 41
-
-
-
-
-
|
Таки сколько логических элементов и что есть кроме ядра процессора?
Да, я понимаю что можно посмотреть самому, но... быстрее и легче спросить. :)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от alman.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
А у меня Квартус с рабочими проектами вообще на другом компе.
~220 ЛЕ ядро + память + Virtual JTAG (число ЛЕ зависит от разрядности посылок) + некоторая логика связи ядра с vjtag. В сумме ~500 ЛЕ.
Можно сделать 200 ЛЕ из принципа, если вернуть addressstall и другие оптимизации. Но для открытого проекта решил отказаться от этого.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Уф! vjtag странно работает, чтобы правильные значения получить, в программе со стороны ядра надо дважды читать порт...
Заработал счетчик тактов. N-ферзей при N=13 считает за 300млн тактов ---> 3 сек при 100МГц, и 2 сек при 150МГц.
Кстати, отчет STA - 110МГц, но прогон на 150 МГц не выявил сбоев. Либо "разгонный" потенциал велик, либо надо задать констрейны, исключающие "ложные" пути, чтобы STA мог правильно подсчитать частоты.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Тем более, что процессоры - тупиковая ветвь эволюции вычислительных средств.
Меня это давно занимало, см давнишнюю тему на другом форуме: electronix.ru/forum?showtopic=72901 .
И, похоже, сам себе сделал подарок на НГ - наметился новый способ высокоуровневого описания FSM, зачем это - см в другой теме:
marsohod.org/forum/razdel-predlozhenij/3...ki?limitstart=0#3098
...Зачем все это? Затем, что будущее не за процессорами, а за реконфигурируемыми вычислениями. И составил для себя такой план практической проверки этой идеи:
1) Проработать методику использования одного из распространенных языков программирования для низкоуровневого описания схем. Выбор пал на Си: "Си как HDL, или Verilog без always". Текущий этап.
2) Перейти к высокоуровневому описанию схем. Для этого в первую очередь надо обеспечить возможность описывать FSM в стиле структурного программирования. Следующий этап, есть некоторые наработки.
3)...
Буду делать.
Так что эту тему сворачиваю. Могу выложить *.exe ассемблера, но без исходников (тк не "причесаны", и на Паскале), если кому интересно. Если нужны какие пояснения, по системе команд и тп, спрашивайте сейчас, потом все вылетит из головы.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Что-то не так сделал, хотел просто процитировать кусочек собственного предыдущего поста, а в результате стер его, заменив новым...
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
*.v
lcc.exe + symbolic.c
asm.exe
В архиве для de0-nano, для марсоходов легко подправить, см предыдущий пост с исходниками.
Добавил в топ-модуль счетчик тактов, и подправил f.tcl.
Тест N-ферзей - из-за особенностей virtualjtag-а нужно дважды читать порт, см f.c.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
Время создания страницы: 0.180 секунд