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

 
 
22 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Свои процессоры, Разработка своих процессоров со своей системой команд
Ynicky
сообщение Jun 13 2009, 11:04
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Чтобы не плодить новую тему, напишу сдесь. Если, конечно, автор темы не против.
Недавно прикрепили ко мне студента, а так как в связи с кризисом и мне то делать
особо нечего, то чего уж говорить про бедного студента. Поэтому решил ему дать
интересную тему (с моей точки зрения) для обучения разработке soc проектов
со встроенным процессорным ядром (чем собственно я и занимаюсь).
За основу взяли студенческое risc ядро, описанное в книге Сергиенко А.М.
“VHDL для проектирования вычислительных устройств”. Систему команд и архитектуру
немного доработали. Сделали простенький soc проект в Active-HDL81 для FPGA ф.Actel.
Его, собственно, и предлагаю для повторения всеми желающими. С некоторыми доработками
его можно реализовать и для других FPGA. Пока, для простоты,
пзу команд сделали в виде vhdl. Хотелось бы общими усилиями протестировать
процессорное ядро. Да и может кому пригодится. Оговорюсь сразу, проект сырой.
Поэтому будут исправления и доработки. Может у кого будут дельные предложения.
Готов рассмотреть. Краткое описание процессора можно найти в Директории "Doc".
Ассемблер - в директории "st16asm". Я его делал в "Microsoft Visual Studio 2008".
Еще не разобрался, как сделать, чтобы ".exe" файл запускался на других компьютерах,
где нет MSVC2008 (не программист). Компилятор сделаю попозже, после отработки
системы команд. Это будет LCC, так как есть уже опыт написания
"machine description" файлов под свою систему команд. Ну вот, собственно, пока все.
Будут вопросы, задавайте.

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 119.18 килобайт ) Кол-во скачиваний: 142
 
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jun 14 2009, 14:30
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Выкладываю новую версию проекта.
Просьба сообщить, работает ли ассемблер у кого нет "Microsoft Visual Studio".

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 155.14 килобайт ) Кол-во скачиваний: 155
 
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 14 2009, 18:27
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 993
Регистрация: 30-09-05
Пользователь №: 9 118



Команды Break и LU - что делают?

И зачем выделенный регистр SP (при отсутствии команд push/pop и аппаратном стеке возвратов)?
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jun 14 2009, 19:02
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Цитата(Leka @ Jun 14 2009, 22:27) *
Команды Break и LU - что делают?

И зачем выделенный регистр SP (при отсутствии команд push/pop и аппаратном стеке возвратов)?


LU - Load Byte Unsigned. Беззнаковая загрузка байта.
Команда Break нужна только при отладке ПО с помощью внутрисхемного эмулятора, если память программ является оперативной. Вместо команды на которой ставится точка останова заносится Break. При дальнейшем пуске Break заменяется обратно на штатную команду. Если память программ - ПЗУ, то точки останова прописываются через JTAG в специальный регистр внутрисхемного эмулятора. С помощью аппаратного компаратора сравнивается текущий адрес команды и адрес точки останова. При совпадении происходит остановка процессора. Через JTAG процессор можно снова запустить, блокировав сигнал с компаратора на один период тактовой частоты процессора.

Регистр SP - это регистр общего назначения, используемый программой в качестве указателя на стек данных.

Николай.
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 14 2009, 19:39
Сообщение #35


Знающий
****

Группа: Участник
Сообщений: 993
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Ynicky @ Jun 14 2009, 18:30) *
Просьба сообщить, работает ли ассемблер у кого нет "Microsoft Visual Studio".

Работает.
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 15 2009, 02:59
Сообщение #36


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 222
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Ynicky @ Jun 14 2009, 09:30) *
Выкладываю новую версию проекта.


для тех кто альдеком не пользуется, могли бы и vhd файл из risc_cpu.bde сгенерировать, делов то на минуту sad.gif

зачем "По сигналу RESET разряды всех регистров обнуляются." вот это сделали ? это сразу режет вам крылья, при использовании на хилой платформе + файл rfile.vhd -> R_RF4:process(CLK,RST,data_w,rfsel) вот вас прибило каждый регистр ручками описывать %)))


в файле tst_alu.asm есть такой код

Код
    imm    0xFF00
    lea    r5,0x0


но в доке Doc\to101st16.doc

команды lea нет.


--------------------
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jun 15 2009, 06:42
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Цитата(des00 @ Jun 15 2009, 06:59) *
для тех кто альдеком не пользуется, могли бы и vhd файл из risc_cpu.bde сгенерировать, делов то на минуту sad.gif

зачем "По сигналу RESET разряды всех регистров обнуляются." вот это сделали ? это сразу режет вам крылья, при использовании на хилой платформе + файл rfile.vhd -> R_RF4:process(CLK,RST,data_w,rfsel) вот вас прибило каждый регистр ручками описывать %)))

в файле tst_alu.asm есть такой код

Код
    imm    0xFF00
    lea    r5,0x0


но в доке Doc\to101st16.doc

команды lea нет.


1. Эти файлы генерятся автоматически при каждой компиляции и находятся в директории compile.

2. Виноват, соврал. При использовании в качестве регистрового файла внутренней памяти исходное значение берется из файлов инициализации (r8x256_M0.mem). rfile.vhd - как пример на регистрах.

3. lea - Load Effective Address. Это псевдокоманда для занесения в регистры констант.

lea r5,0xFF00 преобразуется ассемблером в

imm 0xFF00
addi r5,r0,0

Но можно писать и как в tst_alu.asm.

Если успею, вечером добавлю в описание.

Николай.
Go to the top of the page
 
+Quote Post
SFx
сообщение Jun 15 2009, 07:34
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 756
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(des00 @ Jun 15 2009, 06:59) *
для тех кто альдеком не пользуется, могли бы и vhd файл из risc_cpu.bde сгенерировать, делов то на минуту sad.gif

смотрите файлы из архива, они как раз вам и нужны
Код
risc_st.rar\risc_st\risc_st_core\compile\risc_cpu.vhd
risc_st.rar\risc_st\risc_st_core\compile\risc_st_core.vhd
risc_st.rar\risc_st\risc_st_core\compile\risc_sync.vhd


З.Ы. пардон, страницу не обновил....
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jun 15 2009, 17:13
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Исправили ошибки загрузки/выгрузки.

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 159.02 килобайт ) Кол-во скачиваний: 100
 
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jun 17 2009, 15:07
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Подкорректировали проект.
Проверили прерывания.
Дополнил описание.

В принципе проект "готов".
Осталось доделать внутрисхемный эмулятор для работы с отладчиком (программа на PC).

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 234.29 килобайт ) Кол-во скачиваний: 107
 
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jul 1 2009, 05:52
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Написали JTAG на vhdl, чтобы можно было проект зашить в другие FPGA (останется поменять ОЗУ).
Отмоделировали команды (stop, step, run) внутрисхемного эмулятора.
Подработал ассемблер.
Написал еще несколько тестовых программок.
Проверили в железе работу с семисегментным индикатором.

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 243.73 килобайт ) Кол-во скачиваний: 89
 
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Jul 8 2009, 07:06
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Добавили 2 блока к внутрисхемному эмулятору.
Отмоделировали чтение памяти команд и данных в режиме отладки.

Остальное - после отпуска.

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 248.1 килобайт ) Кол-во скачиваний: 91
 
Go to the top of the page
 
+Quote Post
Ynicky
сообщение Sep 10 2009, 18:18
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 26-05-05
Пользователь №: 5 422



Добавили блок чтения регистрового файла в режиме отладки.

Николай.
Прикрепленные файлы
Прикрепленный файл  risc_st.rar ( 274.37 килобайт ) Кол-во скачиваний: 156
 
Go to the top of the page
 
+Quote Post
kuchynski
сообщение Oct 16 2009, 06:37
Сообщение #44


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 28-12-04
Из: Минск
Пользователь №: 1 713



Пользуюсь своим процессором 5 год, за это время и отладил до безглючности. Работает на Xilinx.
Из плюсов:
язык форт, встроенные uart, фильтры с плавающей точкой, делители, разрядность до 32 бит с/без знака, переменное число поддерживаемых команд.
Из минусов:
средний текстовый редактор, недописанный отладчик, полностью отсутствует описание.
Go to the top of the page
 
+Quote Post
Aner
сообщение Oct 16 2009, 09:58
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 4 542
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Цитата(kuchynski @ Oct 16 2009, 09:37) *
Пользуюсь своим процессором 5 год, за это время и отладил до безглючности. Работает на Xilinx.
Из плюсов:
язык форт, встроенные uart, фильтры с плавающей точкой, делители, разрядность до 32 бит с/без знака, переменное число поддерживаемых команд.
Из минусов:
средний текстовый редактор, недописанный отладчик, полностью отсутствует описание.

респект и уважение за такое.
Хотелось узнать следующее из плюсов/ минусов:
Тактовая, производительность в ~мипсах для математики, если подсчитывали.
Если сравнить с имеющимися ARM_ами то вот к какому ближе (по архитектуре) и есть ли преимущество и в чем?
По потреблению наверное проигрыш. Насколько хорош компилятор из форта получился?
Дебагер тоже наверное медленный, не реалтайм. С описанием понимаю вас, такое часто бывает. Поскольку требует много времени.
Go to the top of the page
 
+Quote Post

22 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th January 2018 - 01:43
Рейтинг@Mail.ru


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