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

 
 
9 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Порекомендуйте какое-нибудь softcore, Для Altera
Leka
сообщение Oct 2 2008, 17:14
Сообщение #46


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

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



Цитата(Mahagam @ Oct 2 2008, 18:57) *
про возможности кеширования не забывай. и выборку данных из флешки по подряд идущим адресам быструю...

Это понятно, задумался о другом - микропрограммной эмуляции стандартных микроконтроллеров. Например, при 50МГц тактовой имеем более 50 микрокоманд на каждую эмулируемую команду - можно неторопясь объехать все колдобины(неудобные для FPGA особенности архитектуры МК). В идеале - для эмуляции разных МК меняем только микропрограмму в блочной памяти FPGA. От "подносчика патронов" большая скорострельность не требуется.
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Oct 3 2008, 09:43
Сообщение #47


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



эээ. то есть получить аналог х51 машинки? по 50 тактов на команду? но зато эмулируем любой камень? а смысл?

з.ы. дописываю мсп430 ядро. осталось только INT/RETI пару дописать. как допишу - стану оптимизировать, а может и жтаг попробую слепить.
Go to the top of the page
 
+Quote Post
Builder
сообщение Oct 3 2008, 11:36
Сообщение #48


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(Mahagam @ Oct 3 2008, 12:43) *
з.ы. дописываю мсп430 ядро. осталось только INT/RETI пару дописать. как допишу - стану оптимизировать, а может и жтаг попробую слепить.

А какой смысл в этом (з.ы. дописываю мсп430 ядро.)?
Для души или есть необходимость по совместимости бинарно?
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Oct 3 2008, 14:15
Сообщение #49


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



а какой смысл делать несовместимым? у меня как-то нет желания корячить GCC для новой системы команд, или писать свой компилятор асма.

пишу как альтернативу микроблейзу. да и поупражняться вот хочется. хобби такое.
Go to the top of the page
 
+Quote Post
Leka
сообщение Oct 3 2008, 16:21
Сообщение #50


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

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



Свой настраиваемый ассемблер желателен, имхо, если от софт-процессора требуется компактность и быстродействие - стандартные архитектуры плохо ложатся на FPGA. У меня тоже хобби - кучу архитектур перепробовал, пока не надоело. Остановился на той, которая позволяет хоть как-то приблизить синтаксис ассемблера к синтаксису ЯВУ. Например,
Код
loop: ...
  ...
  loop(i<imax); i++

вместо стандартного:
Код
loop: ...
  ...
  INC i
  CMP i, imax
  JGE loop

Но ассемблер(любой) - имеет смысл лишь для маленьких программ. Вот и подумал - микропрограммная эмуляция какого-либо стандартного микроконтроллера, чтобы использовать готовые компиляторы ЯВУ, и свой ассемблер - для критичных к скорости участков.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 5 2008, 16:48
Сообщение #51


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Leka @ Oct 1 2008, 21:53) *
Скорости сопоставимые, и напрашиваются софт-ядра, ориентированные на исполнение инструкций из SPI flash...
Спасибо, об этом как-то не подумалось.

Цитата(Leka @ Oct 2 2008, 20:14) *
Это понятно, задумался о другом - микропрограммной эмуляции стандартных микроконтроллеров. Например, при 50МГц тактовой имеем более 50 микрокоманд на каждую эмулируемую команду - можно неторопясь объехать все колдобины(неудобные для FPGA особенности архитектуры МК).
А об этом уже думалось - для задач индикации/неторопливого управления/общения с внешним миром выжимать "100МГц одна команда за такт и ради этого RISC" как-то не очень нужно. Многотактовость команды позволяет разменять скорость на компактность (~ "не торопясь объехать все колдобины") и сделать имеющий бОльшую плотность кода CISC. В свете чтения кода непосредственно из SPI FLASH увеличение плотности кода несколько повысит эффективную скорость работы из этой SPI FLASH (а лимитирующей становится именно она).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Oct 6 2008, 14:34
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



Цитата(ReAl @ Oct 5 2008, 19:48) *
А об этом уже думалось - для задач индикации/неторопливого управления/общения с внешним миром выжимать "100МГц одна команда за такт и ради этого RISC" как-то не очень нужно. Многотактовость команды позволяет разменять скорость на компактность (~ "не торопясь объехать все колдобины") и сделать имеющий бОльшую плотность кода CISC. В свете чтения кода непосредственно из SPI FLASH увеличение плотности кода несколько повысит эффективную скорость работы из этой SPI FLASH (а лимитирующей становится именно она).

для задач управления оптимальным будет использовать что-то максимально просто запускаемое. чтобы оно имело компилятор/отладчик. picoblaze тут - одно из простейших решений по трудозатратам.

но идея "сгородим жуткого монстра, чтобы не тормозить из флешки" - мне не по душе.

простейший оптимизатор в виде "поточное чтение без подачи адреса если команды читаются по подряд идущим адресам" даст на частоте SPI в 16MHz для 16-ти разрядного ядра ~1MIPS. пусть в среднем из-за переходов и данных скорость падает до 0.7MIPS, да такую же производительность имел Z80 в своё время. и какие игрушки на нём при этом летали. (спектрум все видели? smile.gif ага )
Go to the top of the page
 
+Quote Post
Leka
сообщение Oct 6 2008, 15:51
Сообщение #53


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

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



Попалось: PB8051 - эмуляция 8051 на PicoBlaze.
http://www.roman-jones.com/PB8051Microcontroller.htm

Цитата(Mahagam @ Oct 6 2008, 18:34) *
для задач управления оптимальным будет использовать что-то максимально просто запускаемое. чтобы оно имело компилятор/отладчик. picoblaze тут - одно из простейших решений по трудозатратам.

Для picoblaze сам Xilinx дает только ассемблер.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 6 2008, 16:01
Сообщение #54


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Mahagam @ Oct 6 2008, 17:34) *
но идея "сгородим жуткого монстра, чтобы не тормозить из флешки" - мне не по душе.

простейший оптимизатор в виде "поточное чтение без подачи адреса если команды читаются по подряд идущим адресам" даст на частоте SPI в 16MHz для 16-ти разрядного ядра ~1MIPS. пусть в среднем из-за переходов и данных скорость падает до 0.7MIPS, да такую же производительность имел Z80 в своё время. и какие игрушки на нём при этом летали. (спектрум все видели? smile.gif ага )
При чём тут "монстра"? Я имел ввиду только то, что если уж всё равно нечто многотактовое (минимум 8 тактов на команду, если команды могут быть однобайтовые, при двухбайтовой гранулярности имеем аж 16 тактов), то лучше сделать микропрограммно что-то со сложными командами, грубо
Код
L:
   mov (R2)+, (R1)+
   sob R0, L

это четрые байта во флешке, а
Код
L:
    ld R0, X+
    st Y+, R0
    dec R16
    brne L

это восемь байт, которые будут читаться из SPI-флешки дольше и, соответственно, дольше выполняться.
Лимитирует не скорость выполнения команд, которая на более простом ядре выше, а скорость чтения из флеша.
То, что мы согласились на сильное падение скорости, ещё не означает, что не стоит её теперь при почти тех же затратах попытаться поднять :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Oct 6 2008, 16:51
Сообщение #55


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



в любом случае - универсал, который сменой микропрограмм эмулирует почти любое ядро - утопия.

а ваш пример экономии - это всего лишь развитая система адресации. что есть у PDP-11. и это одна из мелких причин, почему я отписал своё ядро MSP430.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 6 2008, 21:01
Сообщение #56


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Mahagam @ Oct 6 2008, 19:51) *
в любом случае - универсал, который сменой микропрограмм эмулирует почти любое ядро - утопия, а ваш пример экономии - это всего лишь развитая система адресации. что есть у PDP-11. и это одна из мелких причин, почему я отписал своё ядро MSP430.
Я не говорю про такого универсала. И операционный блок, и набор микрокоманд - делается с ориентацией на конкретную архитектуру, "нельзя объять необъятное" да и места меньше займёт, быстрее напишется/отладится.
Наличие заведомо большого числа тактов на каждую команду даёт возможность не экономить на методах адресации (которых у PDP11 всё же больше, чем у MSP430), и каких-то других усложнениях ядра, которые при подходе "тактовая повыше, по возможности в потоке один такт на команду" лежат поперёк дороги.

Я сам MSP430 независимо от метода реализации считаю более правильным ядром для впихивания, чем AVR. В том числе потому, что 8 или 16 бит ядро - мало меняет число ячеек, занимаемое проектом, но програма покороче будет. Да и набор команд поортогональнее, должен приятнее реализовываться.
Когда недавно с товарищем обсуждали вопрос "если пихать, то что?", как раз 430-ый и вспоминался.
Если вдруг Ваше ядро будет доступно для свободного использования - с удовольствием поковыряюсь и приму участие в развитии.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Leka
сообщение Oct 6 2008, 23:20
Сообщение #57


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

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



Может, с другой стороны подойти к этой задаче - сначала подобрать подходящую виртуальную стековую машину для имплементации в FPGA? Тогда меньше проблем будет с ЯВУ. Поковырялся с Pascal-S - что-то ни одна реализация у меня не заработала...
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Oct 7 2008, 09:53
Сообщение #58


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



Цитата(ReAl @ Oct 7 2008, 00:01) *
Да и набор команд поортогональнее, должен приятнее реализовываться.

как мне показалось - совсем наоборот. например регистр PC. он же - R0. в нормальных ядрах его изменяет выделенная команда джамп, и автоинкремент. и обычно хрен его прочтёшь. в итоге регистр с такими ограничениями реализовывать проще. а у MSP430 каждый xor умеет использовать его и как источник, и как приёмник. в итоге логика управления этим регистром - страшная и непонятная.

однотактовое исполнение команд приводит ещё и к другому неудобству: три записи в регистровый файл за такт. это, например, приводит к тому, что все регистры не положишь компактно в ксайлинксах.

что касается выложить ядро для доступа... думаю. поменял бы полностью отлаженное ядро на инфу о том как к нему жтаг прикрутить. а эта инфа - под NDA.
Go to the top of the page
 
+Quote Post
Leka
сообщение Oct 8 2008, 11:46
Сообщение #59


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

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



Пришел к выводу, что имеет смысл делать софт-процессор под псевдокод какого-либо компилятора ЯВУ, в моем случае это подмножество Паскаля. Исходники компилятора и интерпретатора виртуальной машины Pascal-S открыты(1..2К строк), можно приспособить к своим нуждам(изменить набор/интерпретацию псевдокодов, реализуемое подмножество языка, и тд и тп).
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 8 2008, 12:03
Сообщение #60


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
Пришел к выводу, что имеет смысл делать софт-процессор под псевдокод какого-либо компилятора ЯВУ,

Все примерно так и делают smile.gif Большинство софт ядер явно или косвенно соответствуют языку C.
Go to the top of the page
 
+Quote Post

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

 


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


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