Перейти к содержанию
    

Actel ProAsic3L 3000 сформировать внутри память

День добрый,

 

Извиняюсь за чайниковский вопрос, но всё когда нибудь делаешь впервые.

Подскажите, есть необходимость сформировать в сабжевом кристалле микроконтроллерное ядро. При этом обойтись только плисиной.

Т.е. и память программ и ОЗУ создать внутренними ресурсами без использования внешних компонентов. Озу достаточно до килобайта, "флеша" пара десятков килобайт.

Можно ли это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, есть необходимость сформировать в сабжевом кристалле микроконтроллерное ядро. При этом обойтись только плисиной.

Т.е. и память программ и ОЗУ создать внутренними ресурсами без использования внешних компонентов. Озу достаточно до килобайта, "флеша" пара десятков килобайт.

Можно ли это сделать?

 

естественно можно, берете у Гейслера GRLIB http://gaisler.com/index.php/products/ipcores/soclibrary и вперед, процессор в достаточно мощной конфигурации занимает ~30% 3000L тактовую можно выжать до 30МГц

у Гейслера в новых версиях убраны примеры для актела (в предыдущих были) - либо ищите старую версию, либо я могу выложить пример для актела (по существу, достаточно config.vhd)

 

процессор наверно излишне мощный, но зато нажал кнопку и готово, к тому же есть с/с++ отладчик и т.п.

 

проблему вижу в том, что память в актеле не загружается, то есть ПЗУ (как в ксайлинсе/альтере) сделать нельзя. память программ придется синтезировать в виде декодера на логике (в grlib называется AHBROM), ну и соответственно она не может быть большой. из остальной памяти - убираете все, кроме AHBRAM

 

-----------

 

ну или как вариант - рышите на opencores.org или какие-то стековые процессоры типа zpu (на опенкоресах есть ссылка)

но с флаш проблему это не решит

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тут две нетехнические проблемы.

Первая, процессора достаточно уровня 8051. Сейчас проект крутится в меге 2560, выбранной из за 4х уартов и достаточного количества ножек IO.

По организационным причинам, которые совершенно нет желания обсуждать, проект нужно сначала перенести в 3000, а затем в её несколько более экзотическую разновидность.

Вторая, в команде нет плисовода. Но есть некоторое время, чтобы либо пригласить его, либо разобраться самим.

Вот мне и нужна подсказка более сведущих людей, о возмоности это сделать. Т.е. на Ксайлинксе попадались реализации с набортной памятью, на Актеле нет.

Возможности использовать внешнюю память, повторюсь, нет. А выбрать сейчас кристалл и упереться через пару месяцев в мёртвое железо, смерти подобно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну я какбы опытный плисовод :) советую взять отлаженный дизайн со средствами отладки софта и т.п.

если же в ПЛИС нет места и нужно очень компактно - посмотрите на zpu или какую-то еще opencores-овскую разработку (там и 8051 есть), но при этом могут быть проблемы с разработкой софта, глюками, несовместимостью со стандартным ядром и тулзами для него. еще есть компактные процессоры (типа пикоблейза) с писанием на ассемблере и минимумом ресурсов.

 

дело в том, что у актела нет своего фирменного дизайна процессора, типа ниоса или блейза

 

---------

 

несколько более экзотическая разновидность не RTPA3 случаем?

 

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

также в РА3 / RTPA3 есть 1кбит флаши - мелочь, но что-то можно туда запихать, а потом переписывать в ОЗУ

то есть нужно уже конкретно решать задачу, а не теоретизировать

 

----------

 

в рамках озвученного кажется, что решается, но какой-то плисовод скорее всего понадобится :)

 

=======

 

ради эксперимента засунул декодер на 12кБ (некая программка для SPARCa) - результат занял 20% ПЛИС РА3 3000L и тактовая 50МГц (15 уровней логики), время синтеза разумное (возможно трассировать будет долго, это уже некогда проверять)

для процессора с более плотным кодом (того же 51) может результаты будут похуже, синтез это процесс типа "эвристического архиватора", но не намного

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы вариант Smartfusion2 с набортным Кортекс м3, флешью, рамом и прочими вкусностями не рассматривали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну я какбы опытный плисовод :) советую взять отлаженный дизайн со средствами отладки софта и т.п.

если же в ПЛИС нет места и нужно очень компактно - посмотрите на zpu или какую-то еще opencores-овскую разработку (там и 8051 есть), но при этом могут быть проблемы с разработкой софта, глюками, несовместимостью со стандартным ядром и тулзами для него. еще есть компактные процессоры (типа пикоблейза) с писанием на ассемблере и минимумом ресурсов.

 

дело в том, что у актела нет своего фирменного дизайна процессора, типа ниоса или блейза

 

Спасибо за информацию, поскольку сей момент передо мной стоит принципиальный вопрос да/нет, ваша помощь более чем!

 

---------

 

несколько более экзотическая разновидность не RTPA3 случаем?

 

:)

 

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

также в РА3 / RTPA3 есть 1кбит флаши - мелочь, но что-то можно туда запихать, а потом переписывать в ОЗУ

то есть нужно уже конкретно решать задачу, а не теоретизировать

 

----------

 

в рамках озвученного кажется, что решается, но какой-то плисовод скорее всего понадобится :)

 

Исчо раз спасибо, будем трусить это дерево.

Тем более есть разработка, с внешней памятью правда, на 600. Ну а тут 3000, надеюсь в разницу "флешка" впишется.

 

А вы вариант Smartfusion2 с набортным Кортекс м3, флешью, рамом и прочими вкусностями не рассматривали?

Увы, нужен именно сабж.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ЕМНИП Актель бесплатно предоставляет ядро 51 проца, а так же периферийные модули, плюс вменяемый графический редактор, что бы все это собрать в кучу. Но бортовой ПЗУ-шки тут нет, разве что на регистрах ее сделать (их можно инициализировать в заданное значение), но это имхо извращение уже, да и много не сделать.

Если вам нужен именно RT, то по информации от представителя Актель - Smartfusion2 в перспективе будет переведен в эту категорию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А... ну пока что он как я понимаю и вовсе в категории "комнатной температуры" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исчо раз спасибо, будем трусить это дерево.

 

я бы подумал над внешней памятью - если RT, то можно взять MRAM (3DPLUS, Aeroflex) - у нее до 1МРад [обещают, сейчас есть на 75кРад, что заведомо больше флашевого проазика] и устойчивость к ТЗЧ

ну или отечественные RT ПЗУшки делает тот же Миландр, но это не рекомендация, я не пользовал

 

также можно последовательную память поискать (я не интересовался RT), если экономия места важна, а "захардкодить" в ПЛИС только загрузчик, ОЗУ то есть и достаточно много

 

-----------------------------

 

сжигать ресурсы дорогостоящей ПЛИС (RTPA3 3000 баксов 20к где-то стоит) на тупую ПЗУшку как-то жаль :)

 

-----------------------------

 

кстати, если делать не на декодере, а на регистрах, как предлагает Flexz (у которых reset подключен к сбросу или установке), то получится вроде бы похуже - то есть если мы возьмем 10кБ кода = 80кБит 1 триггер это 1 ячейка, а всего ячеек 75тыс, то есть 10кБ уже не влезут в 3000 проазик.

но это я никогда не пытался сделать ПЗУ на регистрах, так как такую память применял для АЗИКов, где логика сильно меньше триггеров по площади, может и вру/не понял идею

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А... ну пока что он как я понимаю и вовсе в категории "комнатной температуры" :)

В диджикее есть c коммерческим диапазоном http://www.digikey.com/scripts/DkSearch/dk...100&cur=USD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати, если делать не на декодере, а на регистрах

То получится тоже самое :) Если регистры фиксированы, и задаются только на ресете - при синтезе они заменятся на комбинаторику.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То получится тоже самое :) Если регистры фиксированы, и задаются только на ресете - при синтезе они заменятся на комбинаторику.

 

Как вариант, не кормить программиста до тех пор, пока он не освоит VHDL и не опишет на на нём нашу задачку без всяких заморочек с эмуляцией ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати, если делать не на декодере, а на регистрах, как предлагает Flexz (у которых reset подключен к сбросу или установке), то получится вроде бы похуже - то есть если мы возьмем 10кБ кода = 80кБит 1 триггер это 1 ячейка, а всего ячеек 75тыс, то есть 10кБ уже не влезут в 3000 проазик.

но это я никогда не пытался сделать ПЗУ на регистрах, так как такую память применял для АЗИКов, где логика сильно меньше триггеров по площади, может и вру/не понял идею

 

Добрый день! Простите за ламерство, а чем различаются реализации на декодере и регистрах? Если можно - приведите пару строк кода для лучшего понимания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...