[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 13 июня 2006 г. 20:29
В ответ на: А мне вот архитектура AVR гораздо больше нравится :) отправлено Oldring 13 июня 2006 г. 19:26

А мне нравится интеловские ассемблеры. И 86-ой, и 51-й. А с полной ортогональностью операндов во всех командах - так вообще класс :)

Мне нужна совместимость потому как проще ядро подогнать под софт, а в софте подоптимизировать только малую часть, чем переписывать весь софт (а он большой!). С учетом того, что проц все равно делать, а софт есть. Далее, в 51-ой системе команд есть большой простор для расширения - убиваем все ACALL/AJMP и получаем 16 незадействованных кодов операций. Тем более, что в перспективе, при упаковке ПЗУ внутрь можно её сделать 32-битную, и тогда большинство команд станет однотактными за счет быстрой выборки (4 байта за такт). Сейчас они тоже, в большинстве своем, однотактные (кроме переходов, который чистит prefetch, XCHа, которому надо две записи сделать и DIV'а, который по природе своей тормоз, и ему multicycle path пришлось строить двухтактовый), но тормозит выполнение выборка из ПЗУ по байтам (хотя мы поддерживаем и 16-битные ПЗУ, но они дороговаты, но для определенных применений вполне подойдут).

Про разводку. Аналог я развожу блоками-квадратами, так как это полностью ручной процесс. Большой блок сделать технически сложно, там делается все иерархически, например операционник состоит из диф-каскада, выходного каскада и формирователя смещений. Каждый отдельный полевик внутри это тоже "блок-квадрат", правда параметризованный, я могу его сделать грубо говоря и длинным прямоугольником, и квадратом.

Цифра - тут как нравится. Можно разводить всю сразу, определив, где какой модуль примерно расположен. На границах модулей будет небольшой "бардак" в виде заползания ячеек (standard cell's) из одного в другой. При этом надо не забыть провести поперечные толстые питания, потому как может и не хватить тех, что проходят вдоль, и находятся внутри ячеек.
А можно и поблочно. Будет похуже с таймингами, с площадью, вокруг каждого блока надо будет сделать свои кольца питания. Зато потом эти блока через "copy-paste" можно пихнуть в другой дизайн. Кстати, память формируется всегда готовым блоком - он генерируется автоматом специальным компилятором памяти прямо в виде топологии и моделей.
Можно и наоборот - убить всю иерархию прямо разводчиком.
В общем, тут решать надо глядя непосредственно на план (floorplan) кристалла. Примерные площади блоков известны после синтеза, прикинуть, насколько вероятно, что этот блок на этой технологии понадобится потом отдельно, учесть как дела с таймингами и свободным местом на кристалле (оно бывает когда пинов много, и размер определен ими). Ну и решить, как жить дальше. Например сейчас я планирую развести процессор отдельно (он очень вероятно, что понадобится еще пару раз как он есть), а всю его периферию раскидать как понравится программе-размещателю.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru