Отговори на тема  [ 32 мнения ]  Отиди на страница 1, 2, 3  Следваща
Симулация на проект за CPLD 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Симулация на проект за CPLD
Правите ли подобно нещо?
Досега съм ползвал симулатора само за да се уверя, че отделни блокове работят така както очаквам. За симулацията на целия проект винаги съм смятал, че усилията и времето ще бъдат почти равни на тези отделени за създаването на проекта. Придържал съм се към принципа да не правя сложни описания на VHDL, а да ползвам така да го наречем "структурен" подход. Чертая проекта като схема така както бих я направил с TTL-ки. Останалото оставям на компилатора и оптимизатора. И ... тестване върху прототип.
До скоро този подход не ме бе подвеждал.
Издъни се един проект, който правих преди около 3 години и от който има произведени около 200-300 устройства пръснати по широкия свят. Издънката се прояви само при две от устройствата, но успяхме да я провокираме и при нас в работилницата. Оказа се недомислица при проектирането на структурата в едно CPLD. Ако бях проиграл всички варианти на симулатора това нямаше да се случи.
Та темата която отварям е:
Симулирате ли проектите си за CPLD, FPGA?
Споделете някакъв опит.
Какъв подход и инструменти използвате? Пишете си тестови сорсове на VHDL(Verilog), проигравате вариантите върху прототипи, ползвате някакви улесняващи редактори за съставяне на "test bench waveform", ползвате готови вече проверени сорсове ... ???


Съб Мар 18, 2006 1:38 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Дек 01, 2005 10:42 pm
Мнения: 301
Мнение 
Значи, на цял проект не съм правил.

Симулация в ModelSim съм правил. Сорса беше на Verilog, testbench-a също.
Според мен е трудно и почти няма смисъл да се прави пълна симулация на целия проект, особено ако е сложен. Като казваш CPLD, изглежда не е много обемисто и сложно.

Според мен най-оптималното е да се раздели проекта на относително самостоятелни функционални блокове, които да се изтестват, по възможност, напълно, с метод blackbox. В този случай, идеалният вариант е да може да се извъртят всички възможно комбинации на входовете и да се проверят за валидност изходите във всичките случаи на комбинации от входни сигнали.

После, като се съберат фунционалните блокове- направо експериментална проверка на цялата система.

Мои познати, които пишат на VHDL, си пишат тестбенчовете на Verilog, защото е по-удобно.


Съб Мар 18, 2006 1:22 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пон Юли 04, 2005 11:51 pm
Мнения: 651
Местоположение: София
Мнение 
И аз процедирам по същия начин ..... пишеш testbench'a линкваш и тестваш (на Verilog)....
досега само по модули съм го правил .... за цели проекти наистина е почти невъзможно (или по скоро прекалено трудоемко че да си заслужава времето ...).

_________________
От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?


Съб Мар 18, 2006 1:36 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Аз не правя симулации. Обикновено ако е добре замислено, тръгва поне от втория път. Правя реални тестове, по-лесно е. Понякога си извеждам на един-два тестови пина по-интересните вътрешни състояния и зяпам на скопа какво става. Методът е да се строи и тества на етапи, където е възможно.


Съб Мар 18, 2006 2:01 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
Ясно значи и при вас е така.
Като поработих с ModelSim-а се оказа че не е толкова трудно да се правят и по-сложни симулации. Та реших че някой може да има повече опит. Явно трябва да се вложат повече усилия и време ...

А някакви отзиви за симулатора в новия WebPack? Доколкото ми е известно вече не е ModelSim, а някаква разработка на Xilinx. Тези дни ще го качвам при мен.


Съб Мар 18, 2006 7:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение ако питаш за уебпак8...
там има малко шит ама го фиксват с упдейти. а моделсим има пак xilinxedition.

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Чет Юни 22, 2006 1:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение а за CPLD
при ниски скорости симулациите се припокриват с дизайна. за повисоки почва т.н. състезание на сигналите.....и си е..ло мамата. така че най-добре правиш квот правиш( проектираш,симулираш,прочие) после от важни места вадиш контролни точки на свободните крака на CPLD-то и дебъгваш

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Чет Юни 22, 2006 1:33 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Фев 22, 2006 6:27 pm
Мнения: 376
Местоположение: plovdiv
Мнение 
Аз от няколо дена разучавам тея хави и не мога да схвана някои работи. Значи в WEB PACK 8 си има възможности за симулация. Аз сложих и някакъв MODEL SIM SE 6 na MENTOR той за кво ми е?


Чет Юни 22, 2006 10:36 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
За сьщото, ако не се льжа предните версии на WebPack нямат собствен симулатор и използват менторския.


Чет Юни 22, 2006 11:58 pm
Профил WWW
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение Re: Симулация на проект за CPLD
Zdrav написа:
...


Аз изпозвам първо ModelSim, веднага лъсват някои работи в дизайна, но и аз преди използвах метода изливам, и гледам с осцилоскопа, обече не е печалившо. Симулирам през всичките нива от поведеческото до последното, търся "червени жици", получават се при състезание на сигнали. Едно съм разбрал ако работи на ModelSim-а на последното ниво на симулация ще работи и на живо, иначе не е ясно какво става. Затова според мене е по добре да се симулира първо.


Пет Юни 23, 2006 10:14 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Фев 22, 2006 6:27 pm
Мнения: 376
Местоположение: plovdiv
Мнение Re: Симулация на проект за CPLD
fittila написа:
Zdrav написа:
...


Аз изпозвам първо ModelSim, веднага лъсват някои работи в дизайна, но и аз преди използвах метода изливам, и гледам с осцилоскопа, обече не е печалившо. Симулирам през всичките нива от поведеческото до последното, търся "червени жици", получават се при състезание на сигнали. Едно съм разбрал ако работи на ModelSim-а на последното ниво на симулация ще работи и на живо, иначе не е ясно какво става. Затова според мене е по добре да се симулира първо.

какви са тези нива на симулация и червени жици можеш ли да поясниш за незрящите


Пет Юни 23, 2006 1:13 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Ное 01, 2005 10:23 am
Мнения: 704
Местоположение: Limerick, Ireland
Мнение Re: Симулация на проект за CPLD
asp написа:
fittila написа:
Zdrav написа:
...


Аз изпозвам първо ModelSim, веднага лъсват някои работи в дизайна, но и аз преди използвах метода изливам, и гледам с осцилоскопа, обече не е печалившо. Симулирам през всичките нива от поведеческото до последното, търся "червени жици", получават се при състезание на сигнали. Едно съм разбрал ако работи на ModelSim-а на последното ниво на симулация ще работи и на живо, иначе не е ясно какво става. Затова според мене е по добре да се симулира първо.

какви са тези нива на симулация и червени жици можеш ли да поясниш за незрящите


...и откъде може 4овек да се сдобие с едно копие ;)

_________________
"640 К са достатъчни на всеки за всичко."
Бил Гейтс


Пет Юни 23, 2006 1:25 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
@fitila въпросът ми първоначално беше по скоро дали правите симулация на целия проект като цяло и как.

В конкретният случай ставаше въпрос за едно CPLD което се използва като мост между 8 битова ISA шина и няколко периферни устройства. Всичко това беше проверено при други проекти и нямаше никакви проблеми. Във въпросният случай обаче вътре в CPLD-то беше решено да има още и 16 битов таймер вързан към шината. Та проблемът идваше от там че четенето на таймера става асинхронно спрямо такта който цъка таймера. Софтуерът който чете от таймера го ползва като "free running timer" и засича само интервали без да се интересува от абсолютната стойност. При четене първо се засича моментната стойност в един 16 битов регистър и след това се чете последователно LSB-MSB. Да обаче се оказа, че поради асинхронните събития, понякога във вътрешния регистър се прехвърля грешна стойност, когато прехвърлянето съвпадне с момента на инкрементване на таймера. Отделните битове на таймера не се променят едновременно, а с някакво малко закъснение един спрямо друг и когато сигналът за запис на думата от таймера дойде точно по времето, когато един през друг се променят отделните битове, някой от битовете ще бъде прехвърлен във регистъра със старата си стойност редом до новите стойности на другите битове. И когато това е някой по-старши бит ...
Това е конкретният случай. Може би за по-опитните колеги това е тривиална грешка на аматьор. И точно такъв бях аз тогава :lol: Това беше третият ми проект с програмируема логика.
Причините да се допусне такава грешка са не една и две и са свързани и със организацията на работа и с опита на разработчика.
Но си мисля че ако имаше една достатъчно дълга фаза в която се симулира работата на целия проект и човек има възможност да помисли за всички възможни варианти, това нямаше да се случи.
След този случай реших сериозно да вложа повече време в изучаването на начините за тестване в симулатора.
Вътрешни сигнали не съм извеждал на крачета защото винаги крачетата са ми били кът. Така че нищо не може да замени напълно, чистия разсъдък и внимателното обмисляне на подробностите.


Пет Юни 23, 2006 2:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
никак даже не е "тривиална грешка"...
Въпреки че клок домейните трябва да се учат в първи клас, подобни грешки съм виждал при доста "големи" специалисти ;-)

За тоя проблем, обаче не е нужна симулация - просто напоследък почти всички среди си го дават като warning още при компилиране.

Относно симулациите... на времето бяха доста неточни и се правяха трудно. Сега modelsima бачка доста добре, ама не е чак толкова необходим, щото подобни тривиални грешки, както и състезания на сигнали, проблеми със сетъп и холд времена се виждат още при компилиране. Едно време за тия проблеми симулацията помагаше понеже извеждането на контролни сигнали както казва мухата променя рутването и от там всички времена...
Напоследък до симулация стигам, само ако има по-сериозна логическа грешка и по-сложен проект и не ми се мисли много. Просто като видя проблем на практика, проигравам на симулатора същата ситуация.
Бтв като се работи с VHDL няма нужда да се учи нищо за симулатори, просто си описваш проблемната ситуация...


Пет Юни 23, 2006 3:16 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение 
Zdrav написа:
...


Първо не съм голям специалист, това незнам кой може да го каже, но съм похабил бая време с FPGAта. Да симулирам целия проект, правя testbench - малко чукано се прави ако е сложен (не малко де). Тук в България е доста трудно да се намерят специализирани курсове за програмируема логика. Аз съм почнал от ТУ-София в ECAD лабораторията имаше подготвителен курс за кандидастване в една фирма. Та там научих горе-долу основите, после ми се наложи да правя един проект ( и не само един), на едно ADC се взимат стойностите и се пишат в RAM памет, от другата страна има едно MCU с DMA, което чете RAMа през SPI интерфейс, та правя го това нещо, пишем бришем, стана една state машина за SPI ( направих го - задаваш команда, адрес и колко байта искаш и после само четеш данните), друга за ADCто и посредата написах синхроннен dual port ram controller, който има заложен преоритет за ADC машината, целия дизайн бачка на 50Mhz за VirtexE100. Бах мааму, на поведеческо ниво всичко наред, като пуснах на post-route сумулация пак наред, направих после post-place-and-route simulation леле майко ела да видиш "червени жици" = такива на който състоянието, не се знае какво е, заради състезанията. Почвам аз да боря и се оказа че като са ни учили нещо не са ни научили как се правят state машини, та като четах яко две седмици, какво е туй FSM = Finite State Machine и имали почва у нас, пренаписах стате машините и работата тръгна даже я подкарах на 100Mhz. Има състезания те са виждат обаче в момента на стробиране нещата са установени. В ModelSim има модели на поведение, с времевите закъснения и всичко което е характерно за логиката, която използвате. Т.е. би трябвало нещата да са много близко до истината.

Някой говорише за ftp, ако има такова мога да uploadна нещо, но с foudation 6 имаше зор и трябваше да кракна един .dll за да стане. Е нали сме шибани хакери, ама това е живота като искаш modelsim и xilinx. Ние имаме законно fondation 3 ама няма подръжка на новите неща, така че се наложи да прибегнеме до другия метод ...


Пет Юни 23, 2006 4:32 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 32 мнения ]  Отиди на страница 1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


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

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни