-
alman
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 263
-
Спасибо получено: 41
-
-
-
-
-
|
Разрешите полюбопытствовать, зачем использовать симулятор, если устройство само может посчитать такты?
Leka пишет: Большая проблема, это стандартная библиотека Си. Минимально необходимая часть ее, применительно к софт-процессорам с маленькой памятью. Ее только самостоятельно писать на ассемблере, или можно взять/адаптировать Си-исходники? Хотелось бы, чтобы все было на Си.
Более 10 лет использую вот этот код:
github.com/l4ka/pistachio/blob/master/user/lib/io/print.cc
Его не сложно адаптировать для lcc. Однако передача аргументов в printf платформо-зависимая.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от alman.
|
-
Ynicky
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
N=11 ---> cnt1~~cnt2~~90000
Вставил два счетчика в программу.
Получилось это:
cnt1 = 0x5D7E
cnt2 = 0x5B05
Николай.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
alman пишет: Разрешите полюбопытствовать, зачем использовать симулятор, если устройство само может посчитать такты?
У меня устроство на стадии разработки, без периферии и тп.
По поводу библиотек и тп, отпишусь позже, после готовности ассемблера.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
смотрел на ПК
Главным преимуществом использования стандартного ЯВУ(даже без библиотек) для "своих" процессоров, считаю возможность проверить/отладить алгоритм на ПК. И потом сравнить результат работы "своего" процессора с заведомо правильным решением, полученным на ПК. По этой причине считаю недопустимым использование каких-либо ассемблерных вставок и библиотек, если это мешает проверке алгоритма на ПК.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Ynicky пишет: Получилось это:
Что не так?
Упрощенное 430 ядро, например, аппаратно считает ~7 сек для N=13 (75МГц, от 2тактов на инструкцию), с выводом результата в комп по uart. ~2 сек, это у меня только для архитектур с большим регистровым файлом, в котором помещаются все массивы N-ферзей.
С m16 застрял на symbolic ---> asm, проверяю на разных мелких тестах, вылавливаю логические ошибки. Только потом буду делать транслятор в машинные коды. Все-таки "безрегистровая" архитектура (те с большим регистровым файлом) плохо ложится на Си.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Ynicky
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Что не так?
Запустил эту же программу на PC.
Результат следующий:
Николай.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Ynicky.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Решения N-ферзей правильные (это главное), а показания счетчиков у меня другие (меньше, но это не так важно). Для первых 5 строк:
N : cnt : cnt1 : cnt2
0 : 0 : 0 : 1
1 : 1 : 1 : 1
2 : 0 : 1 : 2
3 : 0 : 3 : 4
4 : 2 : 8 : 8
Важно, чтобы софт-процессор правильно считал, и интересно сравнить быстродействие (в программах на Си).
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Кстати, почему на своей SoC не запускали? У меня-то система на m16 еще не готова, а вот 430 и другие свои ядра после исправлений/дополнений всегда проверял в первую очередь на программе N-ферзей.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
Автор темы
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Ура! Написал транслятор, симуляция в IcarusVerilog сразу-же(!!!) дала правильный ответ для N-ферзей.
Но число тактов что-то больше выходит, чем ожидалось "на глазок" по ассемблеру - посмотрю внимательнее.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.692 секунд