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

 
 
> RISC, with Verilog
Egel
сообщение Apr 3 2009, 16:32
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 28-07-08
Из: Химки
Пользователь №: 39 244



Здравствуйте. Чисто в учебных целях нужно создать RISC- процессор с порядка 20-ти командами. Представление на этот счет есть. Вопрос вот какой - как лучше организовать ассемблер к нему? Т.е. вот, что я имею в виду: будет описана модель ПЗУ - просто как статическая память в FPGA. Хотелось бы, чтобы некоторая программа компилировала исходный ассемблер и вставляла по нужным адресам коды команд для процессора в нужные строки модели ПЗУ, написанной на Verilog. Т.е. сделать нечто вроде реализации для PicoBlaze.
Суть вопроса - как это лучше сделать, на каком языке писать эту программу и сложно ли (последнее конечно относительное понятие).
В дальнейшем модель ПЗУ будет просто цепляться к проекту и синтезироваться с ним вместе.

Если есть какие-нибудь советы по RISC тоже очень буду рад выслушать. На опенкорки не отсылать - не люблю пользоваться чужими проектами.

Спасибо за потраченное время
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Serhiy_UA
сообщение Apr 3 2009, 17:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Советую выбрать 20 команд из системы команд AVR. Хоть там их больше сотни, но для некоторых простых алгоритмов хватит и 20 команд.
Вы сможете использовать уже готовый ассемблер и, например, AVR-Studio. Первый легко позволит формировать код и размещать его по адресам, а второй делать параллельную проверку Вашего проекта в режиме симуляции проверенными средствами.
Работа сложная, но интересная.
Правильная постановка задачи - уже половина ее решения, похоже, с этим у Вас все в порядке.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 3 2009, 18:11
Сообщение #3


Профессионал
*****

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



Цитата(Serhiy_UA @ Apr 3 2009, 20:36) *
Советую выбрать 20 команд из системы команд AVR. Хоть там их больше сотни, но для некоторых простых алгоритмов хватит и 20 команд...

Реально у АВР как раз около 20 команд, это маркетологи раздули число мнемоник cranky.gif
Ниже таблица всех(вроде) команд AT90S1200 - для моего первого ассемблера. Для своих первых софт-процессоров я просто менял эту таблицу - без переделки программы.
Код
;AT90S1200
0001 11sd dddd ssss : ADC Rddddd,Rsssss;
0000 11sd dddd ssss : ADD Rddddd,Rsssss;
0010 00sd dddd ssss : AND Rddddd,Rsssss;
0111 kkkk dddd kkkk : AND R1dddd,kkkkkkkk;
1001 010d dddd 0101 : ASR Rddddd;
0001 01sd dddd ssss : CMP Rddddd,Rsssss;
0011 kkkk dddd kkkk : CMP R1dddd,kkkkkkkk;
1001 010d dddd 0000 : COM Rddddd;
0000 01sd dddd ssss : CPC Rddddd,Rsssss;
1001 010d dddd 1010 : DEC Rddddd;
1001 010d dddd 0011 : INC Rddddd;
1100 kkkk kkkk kkkk : JMP @kkkkkkkkkkkk;
1111 01kk kkkk ksss : JMP(Fsss=0)@kkkkkkk;
1111 00kk kkkk ksss : JMP(Fsss=1)@kkkkkkk;
1101 kkkk kkkk kkkk : JSR @kkkkkkkkkkkk;
1001 010d dddd 0110 : LSR Rddddd;
1001 0100 1ddd 1000 : MOV Fddd,0;
1001 0100 0ddd 1000 : MOV Fddd,1;
1000 001d dddd 0000 : MOV @R11110,Rddddd;
1000 000d dddd 0000 : MOV Rddddd,@R11110;
0010 11sd dddd ssss : MOV Rddddd,Rsssss;
1001 1000 dddd dsss : MOV P0ddddd.sss,0;
1001 1010 dddd dsss : MOV P0ddddd.sss,1;
1011 1ssd dddd ssss : MOV Pssssss,Rddddd;
1011 0ssd dddd ssss : MOV Rddddd,Pssssss;
1111 101d dddd xsss : MOV F110,Rddddd.sss;
1111 100d dddd 0sss : MOV Rddddd.sss,F110;
1110 kkkk dddd kkkk : MOV R1dddd,kkkkkkkk;
1001 010d dddd 0001 : NEG Rddddd;
0000 0000 0000 0000 : NOP;
0010 10sd dddd ssss : OR Rddddd,Rsssss;
0110 kkkk dddd kkkk : OR R1dddd,kkkkkkkk;
1001 010d dddd 0111 : ROR Rddddd;
1001 0101 0xx1 1000 : RTI;
1001 0101 0xx0 1000 : RTS;
0000 10sd dddd ssss : SBC Rddddd,Rsssss;
0100 kkkk dddd kkkk : SBC R1dddd,kkkkkkkk;
1001 1001 dddd dsss : SKP(P0ddddd.sss=0);
1001 1011 dddd dsss : SKP(P0ddddd.sss=1);
1111 110d dddd xsss : SKP(Rddddd.sss=0);
1111 111d dddd xsss : SKP(Rddddd.sss=1);
0001 00sd dddd ssss : SKP(Rddddd=Rsssss);
1001 0101 100x 1000 : SLP;
0001 10sd dddd ssss : SUB Rddddd,Rsssss;
0101 kkkk dddd kkkk : SUB R1dddd,kkkkkkkk;
1001 010d dddd 0010 : SWP Rddddd;
1001 0101 101x 1000 : WDR;
0010 01sd dddd ssss : XOR Rddddd,Rsssss;
;


Сообщение отредактировал Leka - Apr 3 2009, 18:12
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Egel   RISC   Apr 3 2009, 16:32
- - Leka   Цитата(Egel @ Apr 3 2009, 19:32) ...Если ...   Apr 3 2009, 17:24
- - Egel   Да команды простенькие - у меня завалялось хитрое ...   Apr 3 2009, 17:54
- - yes   ну если только для ПЛИС - то у ксайлинса (и наверн...   Apr 6 2009, 11:22
- - Egel   А где про это можно почитать? я не первый раз слыш...   Apr 6 2009, 19:03
|- - iosifk   Цитата(Egel @ Apr 6 2009, 22:03) А где пр...   Apr 7 2009, 04:48
|- - Скопидор   Цитата(Egel @ Apr 6 2009, 23:03) понимаю,...   Apr 8 2009, 07:13
|- - Mahagam   Цитата(Скопидор @ Apr 8 2009, 10:13) Вы п...   Apr 8 2009, 08:33
- - tolik1   Цитата(Egel @ Apr 3 2009, 19:32) Здравств...   Apr 7 2009, 06:02
- - Egel   Спасибо за ответы. Живу в Москве и Химках Обяза...   Apr 7 2009, 18:21
|- - iosifk   Цитата(Egel @ Apr 7 2009, 21:21) Спасибо ...   Apr 8 2009, 05:15
- - Egel   Господа следите пожалуйста за ходов разговора, что...   Apr 8 2009, 10:33
|- - Leka   Цитата(Egel @ Apr 8 2009, 13:33) ...про п...   Apr 8 2009, 11:14
- - Egel   Во во! я так и хотел сделать сначала! т.е....   Apr 8 2009, 12:27
- - Leka   Цитата(Egel @ Apr 8 2009, 15:27) Во во...   Apr 8 2009, 14:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 08:34
Рейтинг@Mail.ru


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