|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 6:09 am
Тестване на Верилог дизайн на FPGA
| Автор |
Съобщение |
|
medeamona
Ранг: Новодошъл
Регистриран на: Нед Сеп 23, 2007 7:30 pm Мнения: 118
|
 Тестване на Верилог дизайн на FPGA
Здравейте,
от около 3 дни се въртя около един Virtex 6 (ML605) Emulation Kit и съм изпаднала в душевна криза. Трябва да имплементирам един дизайн (верилог код) и да го тествам. Досега съм правила само верификация на симулационно ниво (DVE, Specman). Въпросът ми е какви са стъпките и процедурата. Май е намесен и ChipScope някак си в цялата история, но не мога да навържа верижката и логиката.
Благодаря предварително!
_________________Айде сега и на инженери ли ще се правим? 
|
| Сря Апр 28, 2010 9:35 am |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
доколкото разбирам си ползваш ИСЕ-то на xilinx?
chipscope не ти трябва задължително, по-скоро ако имаш проблем - тогава ще го ползваш (да си призная - аз не съм го ползвал).
на какво ниво е сорса ти? добавени ли са специфичните ДСМ-и и буфери? ако не са :
за начало си оправяш всички буфери по дизайна - клоци-те по принцип, а на някой сигнали ако случайно се явяват на клок линия, пък не са такива (обикновенно при асинхронните интерфейси се получават, при работа по pos/negedge), то по принцип ИСЕ-то бута такива буфери, ама е добре ти изрично да опишеш къде какво трябва.
кофигурираш си ДСМ-те според желанията ти и си ги навързваш (в даташита прилично е описано как се прави).
след синтеза четеш репорта внимателно да видиш дали няма нещо изменено. може да си поиграеш със суичовете, ако нещо ти се стори нередно за имплементация на структура (муксове, шифтове, стейт машини и компания...)
ще трабва да си направиш ucf файл в който да опишеш кой сигнал къде се нахожда по краката на чипа и какво да представлява пина - тип, лог. нива и т.н. предполагам ги знаеш тези неща спорд това кой къде се вързва отвън чипа (внимавай със рейт-а който се сложиш, че има ядове с него). после го имплементваш - стъпка по-стъпка.
пак четеш внимателно репорта и си изясняваш кой ворнинг може да преглътнеш и кой не, ако има проблем - редизайн или донастройваш с конфигуриращи думи това което не те устройва (обикновенно и това ти се подсказва от репорта).
можеш да направиш плейс анд руут симулацията след това (трябва да си генерираш PAR simulation model-a), но по принцип ако има проблем то ИСЕ-то ще ти подскаже.
ако те устройва генерираш си бит файла и си почти готов.
от къде ще кофигурираш ФПГА-то? памет или директно през jtag-а?
ако е през jtag-a можеш директно да го налееш през ИМПАКТ-а, ако не - си правиш ПРОМ/АЦЕ файл според типа памет като там ще трябва да четеш какво казва визърта - няколко щрака и си готов. после наливаш по jtag-a в паметта, правиш си конфигурацията на спартана да е да се конфигурира по съответният мод и ресетваш
не съм ползвал спартан 6, не съм стигал това ниво, но тази схема на имплементация се спазваше до сега от ксайлинкс, съмнявам се сега да има нещо ново.
не на последно място пращаш поздрави на хората от ASIC Depot 
|
| Сря Апр 28, 2010 7:35 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
@head_up, колежката изглежда като да е наясно как се компилира и как се прави симулация
иначе по темата, на сайта на xilinx има доста филмчета в които полазват всичко от игла до конец... и ако не ме лъже паметта в някои обясняваха и за тестванията.
Честно казано аз вече съм позабравил какво и къде съм зяпал а и нямам практически опит с xilinx, но това което ми е останало е следното:
Значи първо пишеш, симулираш на екран и в даден момент стигаш до реалния хардуер.... Зареждаш и пускаш. Сега зависи какъв е дизайна, ако примерно е нещо с видео компресии и на екрана се покаже вярната картина, това е най-добрия тест че нещата бачкат.
Но в общия случай, като пуснеш дори не знаеш дали работи или не работи и трябва да го провериш. Как?
Най-добрият вариант е, да вземеш един логически анализатор и да се закачиш и да гледаш всички сигнали. Ако получиш същата картинка като при симулацията, значи ОК.
Тоя подход е най-сигурният, обаче има следните проблеми:
1) Трябва да разполагаш с готин и скъп логически анализатор
2) Трябва да го свържеш със сигналите дето те интересуват. На кит-а тия сигнали може да са изведени на конектор, но ако не са.... примерно връзка между два BGA чипа дето минава по вътрешните слоеве на платката става трудничко..
3) Не може да се закачаш на вътрешни сигнали от fpga-то, само пинове...
Та тогава идва на помощ Chipscope предполагам
Първо не съм сигурен че през него ставаше, но xilinx даваха някаква възможност кой да е вътрешен сигнал да се изкара на определен пин (без при това да се променя дизайна). Тъй че си оставаш няколко удобни за наблюдения изхода и през тях изкарваш ония сигнали дето те интересуват за да ги видиш през лог. анализатор.
Второ, (то май това му е основното) чипскопа може да замести в някаква степен външния лог. анализатор. За целта имаше някакви модулчета (IP cores) които се добавят към дизайна и те играят ролята на лог. анализатор, демек те могат да семплират кой да е сигнал и резултата през JTAG-a го гледаш на компютъра си
Но тъй като през JTAG-а няма как да наблюдаваш всичко в реално време и реална скорост, то посредством настройките задаваш тригери, т.е. кога да почне да семплира, какво да се семплира и т.н Но с повечко късмет може и да успееш да го настроиш, така че да ти изкара точния сигнал в точния момент...
|
| Сря Апр 28, 2010 9:05 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
@miro_atc, колежката не е уточнила, че е на ясно какво да прави за да стигне от синтез->имплементация на верилогския код (но пък е на ясно как да го симулира, очевидно е работила верификация), а така поставен въпроса ми се видя, че иска да знае как се стига от верилогски код до жив, правилно работещ спартан 
|
| Сря Апр 28, 2010 9:44 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
чети малко по-внимателно
и не е спартан, а виртекс...
|
| Сря Апр 28, 2010 9:59 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
съжалявам, моя грешка за виртекса, в главата ми се въртят спартани  кой знае защо....
айде колежката да си каже къде й е болката - че не е на ясно как да процедира със верилогският код или че не е знае как да ползва chipscope-а, пък после ще продължим ръфането за крачолите, ако се налага.
|
| Сря Апр 28, 2010 10:15 pm |
|
 |
|
medeamona
Ранг: Новодошъл
Регистриран на: Нед Сеп 23, 2007 7:30 pm Мнения: 118
|
Колежката е потресена и в див ужас. (Ще предам поздрави на колегите  )
В момента наливам готови блокове (които за капак са със на Синопсис модели) в ИСЕ-то. Наливането в чипа ще е през JTAG. Дефакто на мен обърквацията ми идва от няколко места. Ако беше само ниво симулация - все ще напиша един смотан тестбенч да го изсимулира.
Но, да се върна на драмата - взимам аз значи готовия блок, пригаждам го да е XILINX съвместим (памети, модули и прочие) след което идва моментът с програмирането.
Ок, през Импакта създавам подходящите файлове (днес за н-ти път четох ръководства, задълбочават объркването ми) и някак си успявам да го пъхна вътре и да конфигурирам пинове, крака и прочие неща на Виртекса.
След което идва моментът как да го накарам да работи и да го проверя че прави нещата които искам, по начина по който искам.
Тук всъщност е проблема.
Трябва да създам хардуерен модул тестов, който да обхваща отвън блока и да му генерира неща?
(Не знам какво е ДСМ и за какви буфери иде реч)
Трябва по някакъв начин да захраня чудовището с пакети данни, да прочета пакетите на изхода и да ги сравня. По между другото да конфигурирам регистри и така. Самия процес на тестване или както сте казали - истински жив и дишащ Виртекс.
За логически анализатор - имали някакво нещо си дадено от Agilent и съвместимо с техен логически анализатор.
Както казах опитвам се да си изясня тази каша от вуртиално-хардуерни бози.
П.С. Съжелявам за образния си език ама вече почвам да "благославям" някои хора на 3 езика.
_________________Айде сега и на инженери ли ще се правим? 
|
| Чет Апр 29, 2010 12:17 am |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
разгледай главата за Global Clock Resources на Виртекса (ей, без малко пак да го прекръстя). там пише какво и как се ползва за клок линии (ама като не знам какво ти включва кода в оригинал не е много ясно кои от компонентите извън behavioral-a са налични при теб и какво да добавиш).
DCM = Digital Clock Managers, обърни им внимание, доста често са мнооого необходими, за да работи дизайна както с очаква (ако не е съобразено да бъдат сложени, но ти казваш че го портваш, така че ... ). освен че синтезират/делят/умножават клока правят и някой други чудеса - в User Guide-а ще да пише какво точно. Разбира се, има случай (май на рядко) когато не се ползват. но какъв е твоят - ти знаеш.
колкото до оживяването - по мое мнение най-добре си е да го сложиш тоя Виртекс на мястото му, т.е. свързан към останалите елементи и да му подаваш и вадиш данните - или ще работи коректно дълго време или не. обаче предполагам при теб това е невъзможно, защото имаш някакъв кит, но не и цялата система в която ще участва. а и това си е "българският начин" да го направиш, щото сме бедни и нямаме пари за апратура.
Предполагам цивилизованите хора ползват лог анализатора, както каза miro_atc, така че щом са ти дали нещо такова - виж как се работи с него. и той е прави, че ако имаш изводи, които са недосъпни живота ти ще стане малко по-труден, тогава ще да разчиташ на чипскопа - макар че пак казвам не съм го ползвал и не ми се вярва той да може да ти покаже какво има на съответният пад. (по-скоро преди входият/изходният буфер/вътре в ФПГА-то може да свърши работа). на какви честоти работиш всъщност? просто любопитство.
Колкото до "благославянето"на 3 езика - "благославяй" ги на родният им, да не се загуби нещо в превода.
|
| Чет Апр 29, 2010 12:56 am |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
Ей, тоя Верилог ще ти гризне главата, пробвала ли си Оверлог?
Аха, хардуерният еквивалент на тест-бенчовете - генератор на стимули, нещо което да ги събира, и анализ.
Понеже ти е много мъглив постинга, ще отговоря с мъгливи съвети. Огледай си кита и виж какви интерфейси имаш и дали някой не е достатъчно прост да го ползваш за лесно I/O към PC. Примерно USB/UART конвертор. Ако има нещо подходящо можеш да си направиш верификацията от PC както си намериш за добре и с колкото стимули искаш.
Принципно проверката не е с нищо по-различна от това ако вместо матрица имаше купчина TTL-ки или черна кутия с входове и изходи - все ти трябва методология според това какво прави тестваното устройство и мащабността на теста. В случая с матрица на кит имаш редица улеснения само, дори това да си вържеш собствени JTAG вериги и да си направиш I/O-то през JTAG.
И ако дизайнът позволява, дори да напъхаш целият тест (FSM + вектори и логика) също в матрицата и да изведеш само един LED който да казва PASS / FAIL. 
|
| Чет Апр 29, 2010 1:07 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
-Скъпи защо "трудно" влиза??? -Ами скъпа сгънал съм го на две !
Аз бих ти препоръчал да почнеш от
1.един брояч и някаква елементарна логика синтез +фитване +имплементация... Ползвай външния клок раздели си го ако искаш, където е необходимо слагай клок буфери.
2.ако искаш симулирай с модел сима ако искаш не.
3.После си харесай пинове, конфигурирай ги , и налей дизайна, като си изведеш 2-3 пина като контролни точки.
4. направи по-сложен дизайн
и пак 1..3
като това тръгне успешно, поззанимай се и с ДЦМ-то. като вече се научиш успешно го управляваш
пробвай да налееш един от блоковете за които говориш в началото и му задай входни сигнали и гледай какво има на изхода(пиша общо, защото незнам конкретно нищо за твоя дизайн)
после налей целия дизайн
Трябва да почнеш от нещо просто
и пиши за успехи 
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Чет Апр 29, 2010 1:37 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
колежке, да не те налегна депресията, та се загуби някъде? сподели до къде го докара?
|
| Чет Апр 29, 2010 1:51 pm |
|
 |
|
medeamona
Ранг: Новодошъл
Регистриран на: Нед Сеп 23, 2007 7:30 pm Мнения: 118
|
@head_up В момента усилено поздравявам майките на онея сладури от Синопсис, дето са писали рам моделите. (Напасвам рамовете и фифата за да са Xilinx съвместими и съответно гадината да ги поддържа). /Честотата, на която ще се движи блокченцето - около 400МHz.
@woody Така, ще започна от там, че ми докараха готов кит (ML605) с всичките му красоти и съответно портове - UART, JTAG, PCI и т.н.
(Преди 2 седмици се занимавах усилено с Е и Спекман, ако на някой му говори нещо). Сори, не мога да шия (но знам какво е оверлог).
Мисля, че идеята май наистина е да вкарам ФСМ/логики/PRBS (за съжаление xilinx не поддържа sуstemverilog иначе досега да съм боцнала написаните БФМ-и)
@MYXATA - не знам дали началството ще ми отпусне време, но все пак благодаря за напътствието, ще пробвам с нещо елементарно (мигане на LED).
_________________Айде сега и на инженери ли ще се правим? 
|
| Чет Апр 29, 2010 2:26 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
От тези три UART и JTAG са достатъчно лесни да ползваш за комуникация с PC. PCI го отписваш освен ако в графика нямаш излишни няколко години.
Повтарям се отново - всичко зависи от конкретната задача, няма генерални решения. SV помага за тест-бенчове, но не и за RTL дето ще го синтезираш в матрицата.
|
| Пет Апр 30, 2010 12:56 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
колежке, споделете до къде стигна историческата битка? Почва да ме гризе нездраво любопитство 
|
| Пон Май 03, 2010 1:26 pm |
|
 |
|
medeamona
Ранг: Новодошъл
Регистриран на: Нед Сеп 23, 2007 7:30 pm Мнения: 118
|
колега, битката върви so so. Sometimes win, sometimes lun.
Или казано досега, оправихме се с пригаждането на дизайна към ФПГА (единия блок, молим се дизайнерите да не го променят пак, поне не много) и работим по хардуерния тестбенч и протоколите
_________________Айде сега и на инженери ли ще се правим? 
|
| Пон Май 03, 2010 2:46 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|