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

 
 
> В какой форме лучше передавать алгоритмы фронт-энд дизайнерам?, вопрос о правильном техмаршруте проектирования (сбор мнений)
Dragon-fly
сообщение Jul 12 2012, 10:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-10-11
Из: Москва
Пользователь №: 67 720



Интересует мнение RTL-щиков, каковым я сам не являюсь.

Допустим, есть сложный проект с большим количеством математики, а в аппаратном выражении тянущий на миллион гейтов (без учета SRAM).

У постановщиков задачи есть программная модель, которую они готовы как угодно перелопатить, лишь бы последующее кодирование на verilog прошло как по маслу.Разумеется, все обильно документировано.

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

Вопрос: в какой форме и до какой степени разжеванности хотели бы видеть входные материалы исполнители (те, кто будет кодировать схему на verilog)?

Исходим из того, что программисты азы языков описания аппаратуры знают, и схемотехнике тоже слегка обучены, а будущие дизайнеры участвуют в проработке общей архитектуры микросхемы.

В качестве доп. вопросов:
- кому логичнее озаботиться вопросом clock-gating и соответствующей модификацией алгоритмов?
- до какой степени программисты должны дробить код на псевдо-процессы?

Специально обращу внимание, что вопрос не о SystemC, CatapultC, матлабных тулзах и пр..
Речь лишь о золотой референсной модели, но с максимальным приближением к RTL. В какой форме ее лучше всего организовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Torpeda
сообщение Jul 12 2012, 14:47
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Цитата(Dragon-fly @ Jul 12 2012, 13:12) *
Интересует мнение RTL-щиков, каковым я сам не являюсь.

Допустим, есть сложный проект с большим количеством математики, а в аппаратном выражении тянущий на миллион гейтов (без учета SRAM).

В качестве доп. вопросов:
- кому логичнее озаботиться вопросом clock-gating и соответствующей модификацией алгоритмов?
- до какой степени программисты должны дробить код на псевдо-процессы?

Специально обращу внимание, что вопрос не о SystemC, CatapultC, матлабных тулзах и пр..
Речь лишь о золотой референсной модели, но с максимальным приближением к RTL. В какой форме ее лучше всего организовать?

1) Я вас правильно понял, что у вас фактически есть С модель будущего устройства? Если да - то хорошо, верификаторы такое любят.
Только надо её подключаемой к симулятору сделать.
Verilog напр. может работать напрямую с чистым С. А есчё лутше сразу SystemVerilog референс модель делать.
2) Есть внятное описание - удивительно, но этого может и хватить.
3) Есть сложные циклограммы взаимодействия модулей - нарисуйте их в виде автоматов Мура\Мили - поможет
4) clock-gating в лутшем случае начинается на этапе RTL, а то и бекенда.
5) Что такое "псевдо-процессы" не очень понимаю.
Математику лутше добить до уровня аппаратно реализуемых блочков - сумматоров, умножителей...
Незабудьте указать розрядность и оптимизировать формулу под быстродействие.
Да и simulink модель на таком уровне поможет сильно.
6) Что внутри вашей програмной модели - никого не интересует (см. п.1)).
Читать С код (даже детализированный) чтобы что-то понять - тупик.
Go to the top of the page
 
+Quote Post
Dragon-fly
сообщение Jul 12 2012, 15:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-10-11
Из: Москва
Пользователь №: 67 720



Torpeda, спасибо за ответ

Цитата(Torpeda @ Jul 12 2012, 18:47) *
5) Что такое "псевдо-процессы" не очень понимаю.


имитация на Си процессов в терминологии VHDL/always в verilog. Только процессы не обязательно разжеванные до манной каши..

Цитата(Torpeda @ Jul 12 2012, 18:47) *
Незабудьте указать розрядность и оптимизировать формулу под быстродействие.


да, разумеется. В CatapultC есть шикарный инклудник под это дело. Там все типы от int/uint1 до int/uint63. Те же возможности предоставляются SystemC.

Цитата(Torpeda @ Jul 12 2012, 18:47) *
Читать С код (даже детализированный) чтобы что-то понять - тупик.


почему тупик? С Си на асм ведь переводят?
а здесь как бы с Си на verilog.. Не впрямую, но близко к тексту..
и алгоритмы гарантированно отлажены, только не совсем циклоаккуратны в силу недостаточности синтаксиса обычного Си

Go to the top of the page
 
+Quote Post
Torpeda
сообщение Jul 13 2012, 07:41
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Цитата(Dragon-fly @ Jul 12 2012, 18:15) *
Torpeda, спасибо за ответ
имитация на Си процессов в терминологии VHDL/always в verilog. Только процессы не обязательно разжеванные до манной каши..

да, разумеется. В CatapultC есть шикарный инклудник под это дело. Там все типы от int/uint1 до int/uint63. Те же возможности предоставляются SystemC.

почему тупик? С Си на асм ведь переводят?
а здесь как бы с Си на verilog.. Не впрямую, но близко к тексту..
и алгоритмы гарантированно отлажены, только не совсем циклоаккуратны в силу недостаточности синтаксиса обычного Си

1) "имитация на Си процессов" - ну не знаю - не видал такого. Немогу оценить простоту трансляции такого С описания в verilog.

2) Если вы работаете в CatapultC - то типа теоритически он вам должен с математики сгенерить реализабельный verilog насколько я его знаю....
Какраз что вы и хотите - конвертит С в verilog. Ну как минимум для DSP алгоритмов.
Неужели CatapultC не сгенерил RTL ? Поделитесь опитом работы с CatapultC...

3) Си на Асм таки переводят - компилятором......

Не вы первый програмист ум которого бударажит идея типа "конвертации" С в RTL (verilog).
Mentor даже такой (и единственный) конвертер изобрёл - CatapultC.
А практически - такое пока не работает, тем более в общем случае....

4) Всётаки, посоветую сконцентрироваться на внятно-розжёвано-доходчивом традиционном техническом задании.
Go to the top of the page
 
+Quote Post
Dragon-fly
сообщение Jul 13 2012, 10:09
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-10-11
Из: Москва
Пользователь №: 67 720



Цитата(Torpeda @ Jul 13 2012, 11:41) *
1) "имитация на Си процессов" - ну не знаю - не видал такого.


ну.. после дискуссий, типа вот этой http://electronix.ru/forum/index.php?showt...102338&st=0 не удивляюсь.. sm.gif

по мне, отлаживать псевдо-RTL на Си в сто раз проще, плюс это, как Вы правильно отметили, готовые тестовые среды.

я тоже не в впервые общаюсь с RTL-щиками и вижу, что маршрут проектирования у всех как Бог на душу положит.

Писать на verilog, основываясь лишь на документации, все равно, что ассемблерный код по ней же ваять. В случае сложных алгоритмов документация сама с ошибками будет.

Интересно, есть ли люди, бравшие за основу специально переработанные исходники на Си? Не может быть, чтобы мировая практика не знала таких примеров.

Опыта с CatapultC не имею. Использую только отдельные хэдера из этого пакета.


Цитата(Torpeda @ Jul 13 2012, 11:41) *
Немогу оценить простоту трансляции такого С описания в verilog.


По задумке, отличий процессов в обычном Си от них же, написанных на SystemC, всего три:

1) нет явно указываемых портов и списка чувствительности
2) с блоками памяти работаем, как с обычными массивами
3) мультиплексирование сигналов осуществляется "проприетарным" образом sm.gif
и 4) (опционально) параллельные процессы можно заменить последовательным вызовом при соблюдении тождественности результата (работает для однонаправленных потоков данных)

и как уже сказал, не заморачиваемся на циклоаккуратность..

вижу, с таким маршрутом проектирования никто дел не имел. Странно.. sad.gif
Go to the top of the page
 
+Quote Post
Torpeda
сообщение Jul 13 2012, 11:46
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Цитата(Dragon-fly @ Jul 13 2012, 13:09) *
Интересно, есть ли люди, бравшие за основу специально переработанные исходники на Си? Не может быть, чтобы мировая практика не знала таких примеров.

По задумке, отличий процессов в обычном Си от них же, написанных на SystemC, всего три:

1) нет явно указываемых портов и списка чувствительности
2) с блоками памяти работаем, как с обычными массивами
3) мультиплексирование сигналов осуществляется "проприетарным" образом sm.gif
и 4) (опционально) параллельные процессы можно заменить последовательным вызовом при соблюдении тождественности результата (работает для однонаправленных потоков данных)

и как уже сказал, не заморачиваемся на циклоаккуратность..

1) "Не бери дурного в голову, а тяжелого в руки" - вот никто и не брал.....

2) Опишите реализацию протокол доступа к асинхронной статической памяти "через обычный масив С" ну или хотя-бы просто тригер....
В RTL, для этого напр. нада кучу тригеров задействовать, а как в С - чесно говоря ума не приложу.

3) "не заморачиваемся на циклоаккуратность."... ну програмисту это может и можно но в RTL....
Это типа летим в соседнюю галактику, не заморачиваясь тем как сделаем антигравитационный двигвтель....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dragon-fly   В какой форме лучше передавать алгоритмы фронт-энд дизайнерам?   Jul 12 2012, 10:12
- - bestcomps4u   Бизнес проекты это отдельная тема, и раз у Вас нес...   Jul 12 2012, 10:31
|- - Dragon-fly   Цитата(bestcomps4u @ Jul 12 2012, 14:31) ...   Jul 12 2012, 10:56
|- - Dragon-fly   Torpeda, так ведь и в "Word-е" циклоакку...   Jul 13 2012, 12:47
- - yes   универсального метода, то есть гарантировано лучше...   Jul 17 2012, 11:49
|- - Dragon-fly   yes, благодарю за содержательный ответ! стало...   Jul 17 2012, 11:55
|- - Torpeda   Цитата(yes @ Jul 17 2012, 14:49) по повод...   Jul 18 2012, 11:28
|- - Gate   Цитата(yes @ Jul 17 2012, 15:49) раньше б...   Jul 19 2012, 09:07
- - vetal   ЦитатаА немогли-бы вы предоставить пример кода на ...   Jul 18 2012, 12:36
|- - yes   Цитата(vetal @ Jul 18 2012, 16:36) Писать...   Jul 18 2012, 16:46
- - vetal   ЦитатаSC просто интрумент достаточно широкого прим...   Jul 18 2012, 17:22
- - Dragon-fly   Цитата(vetal @ Jul 18 2012, 21:22) Он для...   Jul 20 2012, 10:04
- - yes   Цитата(Dragon-fly @ Jul 20 2012, 14...   Jul 23 2012, 17:47


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 09:24
Рейтинг@Mail.ru


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