|
|
  |
Lattice бросился вдогонку за альтерой, LatticeMico32 Open, Free 32-Bit Soft Processor |
|
|
|
Oct 4 2006, 07:09
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(des00 @ Oct 4 2006, 08:55)  Всем: Думаю достаточно клаву греть Если кто-то хочет поучаствовать в разработе подобного проца, то давайте каждый подготовит описание типовых задач, которые он решал/решает в текущее время и выдвинет свои требования к процу. Затем, за несколько on-line встреч (можно в irc), можно обсудить идеи и выработать концепцию проца и стратегии разработки. А дальше остаеться только определиться с назначением работ по разработке и реализовать, как сам проц, так и софт для разработки на нем. Здравствуйте, Денис! Готов участвовать - HDL, "немного" софт  , есть скромные наработки. А софт(асм) имхо на перле лучше писать
--------------------
Cogito ergo sum
|
|
|
|
|
Oct 4 2006, 10:23
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(des00 @ Oct 4 2006, 08:55)  Цитата(Leka @ Oct 3 2006, 05:54)  Имхо. Одна из главных проблем софт-процессора: "правильный" многопортовый регистровый файл с асинхронным чтением. Блочная память не допускает асинхронное чтение, распределенная - многопортовую запись. Обход этого ограничения выливается либо в неортогональность системы команд, либо к дополнительным тактам/ступеням/логике(+задержке).
вы правы, но даже такая задача решаеться достаточно просто. 1. Честный двухпортовый регистровый файл у ксайлов делаеться на 2-х RAM16D. При этом мы можем читать 4 числа и писать 2 числа. Если не нужен доступ одновременно к 4 м числам, то все еще проще. Нужно использовать 2 однопортовки. Но при таком подходе возникает не возможность отмапливания регистров на внешние устройства. ... У меня "красиво" не получилось. True dual port у меня реализуется на 2-х RAM16D и дополнительной логике, но тактовая падает вдвое при 8-кратном росте числа LUT --> теряется всякий смысл. На 2-х однопортвках однотактовый true dual port не реализуется, имхо. Можно примеры? Цитата Всем: Думаю достаточно клаву греть Если кто-то хочет поучаствовать в разработе подобного проца, то давайте каждый подготовит описание типовых задач, которые он решал/решает в текущее время и выдвинет свои требования к процу. У меня проект - многоядерный микроконтроллер, с прицелом на перевод в ASIC, отсюда все требования к ядру. Проверка софт-процессора "на вшивость": чисто программная (т.е. без использования каких-либо аппаратных костылей) реализация цветного текстового контроллера VGA (640*480 @25МГц) - задача управления в чистом виде со строгим таймингом. Для 8 цветов у меня с этим справляются 2 ядра(по 300..400 LUT) @50МГц (starter kit spartan3e).
|
|
|
|
|
Oct 12 2006, 14:46
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
После выходных не получилось  работы много навалилось. Цитата(Leka @ Oct 4 2006, 05:23)  У меня "красиво" не получилось. True dual port у меня реализуется на 2-х RAM16D и дополнительной логике, но тактовая падает вдвое при 8-кратном росте числа LUT --> теряется всякий смысл. На 2-х однопортвках однотактовый true dual port не реализуется, имхо. Можно примеры? да, я реализовывал регистровый файл на 2-х RAM16D + мультиплексоры на выходе, но зная "такую особенность" я реализовывал 3-х стадийный конвейер, отделяя отдельно стадию write back (за счет чего получил простое декодирование условных комманд) поэтому уложился в требования по производительности Насчет однопортовых true dual port не возможен, но мы же решаем задачу в ограниченном базисе (FPGA), поэтому можно наложить небольшие ограниченя на используемые командами адреса операндов А можно узнать подробнее про ваше ядро ? интересует система комманд (остальное следует из нее  ) Меня же тема процов интересует с точки зрения управления и заворачивания битстрима в NAL unit (т.е. медленной математики), что бы экономить ресурс ФПГА. А для быстрой математики есть обычная логика + ДСП слайсы в помошь по процу я почти закончил формировать блок-схему, выложу на днях. (постараюсь выкроить время, что бы ее закончить).
--------------------
|
|
|
|
|
Oct 13 2006, 08:53
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(des00 @ Oct 12 2006, 18:46)  ... А можно узнать подробнее про ваше ядро ? интересует система комманд (остальное следует из нее  ) ... по процу я почти закончил формировать блок-схему, выложу на днях. (постараюсь выкроить время, что бы ее закончить). Детали раскрывать не хочу - возможно, будет использоваться в коммерческом проекте. Ядро: spartan3e, ~300LUT, гарвардская архитектура, 36-разрядная инструкция, 18-разрядные данные, 2х-ступенчатый конвейер, 1 такт на инструкцию, 1 клок без фаз, ~100МГц (по данным P&R, пока отлаживаю на 50МГц). До 3х операций на инструкцию: условный переход+арифметика+пересылка (память/устройство <--> РОН). Все управление, пуск-останов, загрузка программы - через com-порт. Те с железом и с ассемблером (низкоуровневым компилятором) - проблем у меня нет (пройденный этап). Но - писать на ассемблере очень не понравилось --> хочу ввести элементы языка высокого уровня. Предлагаю сосредоточится именно на аспекте высокоуровневого программирования, поскольку железо+ассемблер делается и модифицируется легко и быстро (при наличии опыта, конечно). Те _конкретизировать_ пути получения высокоуровневой среды программирования для _произвольного_ софт-процессора.
|
|
|
|
|
Jun 18 2008, 14:22
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Doka @ May 6 2008, 19:35)  это очень интересно помимо уже упомянутого DSPuva16 и заброшенного на этапе АЛУ проекта С5400 (TI) что-нибудь реально есть??? LEON поддерживает SPARC v8e - то есть 32х32 МАС 40бит можно иметь каждый такт при регистровых операндах если использовать раздельные памяти, то наверно 0.5 МАСа на такт, upd : про 0.5 МАСа я не подумавши написал, дтя свертки векторов надо загрузить с индексом один отсчет, второй, MAC декрементировать счетчик перейти то есть 5 инструкций, при раздельных шинах и использовании делей-слотов 5 тактов у меня получалось для спартана 50МНz, для В4 до 100 но так как неоптимизирован "по LUTам" проигрывает по площади блейзу имхо, самое важное, что есть ГЦЦ (то есть С С++ АДА ФОРТРАН и т.п.)
|
|
|
|
|
Sep 8 2008, 18:20
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 17-06-04
Пользователь №: 39

|
Цитата(Vitaliy_ARM @ Sep 5 2008, 15:01)  Народ! Кто уже использует этот проц, просьба поделиться впечатлениями.
А то глядя на среду разработки ispLevel закрадывается сомнение, что проц тоже очень кривой Процессор как процессор, работает без нареканий. А вот отладчик программистам не нравится. Часто глючит при пошаговой отладке, если есть обращение к аппаратуре (UART, SPI etc.) Если тот же код пробежать по команде Run, то все работает.
|
|
|
|
|
Sep 9 2008, 21:06
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767

|
Цитата(vetal @ Sep 29 2006, 16:49)  сайт изменился :-(( если у кого есть материалы по dspuva16, прошу поделиться - интересно глянуть Заранее спасибо
|
|
|
|
|
Sep 10 2008, 11:24
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(vladz @ Sep 8 2008, 22:20)  Процессор как процессор, работает без нареканий. А вот отладчик программистам не нравится. Часто глючит при пошаговой отладке, если есть обращение к аппаратуре (UART, SPI etc.) Если тот же код пробежать по команде Run, то все работает. Хорошо. Есть еще пара вопросов. Вы его на других ПЛИС пробовали? Если да, то как он себя ведет после компиляции (размер кода, тактовая частота)?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|