|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 9:46 pm
Симулация на проект за CPLD
| Автор |
Съобщение |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 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 |
|
 |
|
Balkana
Ранг: Популярен
Регистриран на: Чет Дек 01, 2005 10:42 pm Мнения: 301
|
Значи, на цял проект не съм правил.
Симулация в ModelSim съм правил. Сорса беше на Verilog, testbench-a също.
Според мен е трудно и почти няма смисъл да се прави пълна симулация на целия проект, особено ако е сложен. Като казваш CPLD, изглежда не е много обемисто и сложно.
Според мен най-оптималното е да се раздели проекта на относително самостоятелни функционални блокове, които да се изтестват, по възможност, напълно, с метод blackbox. В този случай, идеалният вариант е да може да се извъртят всички възможно комбинации на входовете и да се проверят за валидност изходите във всичките случаи на комбинации от входни сигнали.
После, като се съберат фунционалните блокове- направо експериментална проверка на цялата система.
Мои познати, които пишат на VHDL, си пишат тестбенчовете на Verilog, защото е по-удобно.
|
| Съб Мар 18, 2006 1:22 pm |
|
 |
|
BrainStorm
Ранг: Почетен член
Регистриран на: Пон Юли 04, 2005 11:51 pm Мнения: 651 Местоположение: София
|
И аз процедирам по същия начин ..... пишеш testbench'a линкваш и тестваш (на Verilog)....
досега само по модули съм го правил .... за цели проекти наистина е почти невъзможно (или по скоро прекалено трудоемко че да си заслужава времето ...).
_________________ От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?
|
| Съб Мар 18, 2006 1:36 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Аз не правя симулации. Обикновено ако е добре замислено, тръгва поне от втория път. Правя реални тестове, по-лесно е. Понякога си извеждам на един-два тестови пина по-интересните вътрешни състояния и зяпам на скопа какво става. Методът е да се строи и тества на етапи, където е възможно.
|
| Съб Мар 18, 2006 2:01 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Ясно значи и при вас е така.
Като поработих с ModelSim-а се оказа че не е толкова трудно да се правят и по-сложни симулации. Та реших че някой може да има повече опит. Явно трябва да се вложат повече усилия и време ...
А някакви отзиви за симулатора в новия WebPack? Доколкото ми е известно вече не е ModelSim, а някаква разработка на Xilinx. Тези дни ще го качвам при мен.
|
| Съб Мар 18, 2006 7:26 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 ако питаш за уебпак8...
там има малко шит ама го фиксват с упдейти. а моделсим има пак xilinxedition.
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Чет Юни 22, 2006 1:29 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 а за CPLD
при ниски скорости симулациите се припокриват с дизайна. за повисоки почва т.н. състезание на сигналите.....и си е..ло мамата. така че най-добре правиш квот правиш( проектираш,симулираш,прочие) после от важни места вадиш контролни точки на свободните крака на CPLD-то и дебъгваш
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Чет Юни 22, 2006 1:33 pm |
|
 |
|
asp
Ранг: Популярен
Регистриран на: Сря Фев 22, 2006 6:27 pm Мнения: 376 Местоположение: plovdiv
|
Аз от няколо дена разучавам тея хави и не мога да схвана някои работи. Значи в WEB PACK 8 си има възможности за симулация. Аз сложих и някакъв MODEL SIM SE 6 na MENTOR той за кво ми е?
|
| Чет Юни 22, 2006 10:36 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3849
|
За сьщото, ако не се льжа предните версии на WebPack нямат собствен симулатор и използват менторския.
|
| Чет Юни 22, 2006 11:58 pm |
|
 |
|
FiTTiLA
Ранг: Професионалист
Регистриран на: Сря Май 11, 2005 3:47 pm Мнения: 534
|
 Re: Симулация на проект за CPLD
Аз изпозвам първо ModelSim, веднага лъсват някои работи в дизайна, но и аз преди използвах метода изливам, и гледам с осцилоскопа, обече не е печалившо. Симулирам през всичките нива от поведеческото до последното, търся "червени жици", получават се при състезание на сигнали. Едно съм разбрал ако работи на ModelSim-а на последното ниво на симулация ще работи и на живо, иначе не е ясно какво става. Затова според мене е по добре да се симулира първо.
|
| Пет Юни 23, 2006 10:14 am |
|
 |
|
asp
Ранг: Популярен
Регистриран на: Сря Фев 22, 2006 6:27 pm Мнения: 376 Местоположение: plovdiv
|
 Re: Симулация на проект за CPLD
какви са тези нива на симулация и червени жици можеш ли да поясниш за незрящите
|
| Пет Юни 23, 2006 1:13 pm |
|
 |
|
nickich
Ранг: Почетен член
Регистриран на: Вто Ное 01, 2005 10:23 am Мнения: 704 Местоположение: Limerick, Ireland
|
 Re: Симулация на проект за CPLD
...и откъде може 4овек да се сдобие с едно копие 
_________________ "640 К са достатъчни на всеки за всичко." Бил Гейтс
|
| Пет Юни 23, 2006 1:25 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
@fitila въпросът ми първоначално беше по скоро дали правите симулация на целия проект като цяло и как.
В конкретният случай ставаше въпрос за едно CPLD което се използва като мост между 8 битова ISA шина и няколко периферни устройства. Всичко това беше проверено при други проекти и нямаше никакви проблеми. Във въпросният случай обаче вътре в CPLD-то беше решено да има още и 16 битов таймер вързан към шината. Та проблемът идваше от там че четенето на таймера става асинхронно спрямо такта който цъка таймера. Софтуерът който чете от таймера го ползва като "free running timer" и засича само интервали без да се интересува от абсолютната стойност. При четене първо се засича моментната стойност в един 16 битов регистър и след това се чете последователно LSB-MSB. Да обаче се оказа, че поради асинхронните събития, понякога във вътрешния регистър се прехвърля грешна стойност, когато прехвърлянето съвпадне с момента на инкрементване на таймера. Отделните битове на таймера не се променят едновременно, а с някакво малко закъснение един спрямо друг и когато сигналът за запис на думата от таймера дойде точно по времето, когато един през друг се променят отделните битове, някой от битовете ще бъде прехвърлен във регистъра със старата си стойност редом до новите стойности на другите битове. И когато това е някой по-старши бит ...
Това е конкретният случай. Може би за по-опитните колеги това е тривиална грешка на аматьор. И точно такъв бях аз тогава  Това беше третият ми проект с програмируема логика.
Причините да се допусне такава грешка са не една и две и са свързани и със организацията на работа и с опита на разработчика.
Но си мисля че ако имаше една достатъчно дълга фаза в която се симулира работата на целия проект и човек има възможност да помисли за всички възможни варианти, това нямаше да се случи.
След този случай реших сериозно да вложа повече време в изучаването на начините за тестване в симулатора.
Вътрешни сигнали не съм извеждал на крачета защото винаги крачетата са ми били кът. Така че нищо не може да замени напълно, чистия разсъдък и внимателното обмисляне на подробностите.
|
| Пет Юни 23, 2006 2:23 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
никак даже не е "тривиална грешка"...
Въпреки че клок домейните трябва да се учат в първи клас, подобни грешки съм виждал при доста "големи" специалисти
За тоя проблем, обаче не е нужна симулация - просто напоследък почти всички среди си го дават като warning още при компилиране.
Относно симулациите... на времето бяха доста неточни и се правяха трудно. Сега modelsima бачка доста добре, ама не е чак толкова необходим, щото подобни тривиални грешки, както и състезания на сигнали, проблеми със сетъп и холд времена се виждат още при компилиране. Едно време за тия проблеми симулацията помагаше понеже извеждането на контролни сигнали както казва мухата променя рутването и от там всички времена...
Напоследък до симулация стигам, само ако има по-сериозна логическа грешка и по-сложен проект и не ми се мисли много. Просто като видя проблем на практика, проигравам на симулатора същата ситуация.
Бтв като се работи с VHDL няма нужда да се учи нищо за симулатори, просто си описваш проблемната ситуация...
|
| Пет Юни 23, 2006 3:16 pm |
|
 |
|
FiTTiLA
Ранг: Професионалист
Регистриран на: Сря Май 11, 2005 3:47 pm Мнения: 534
|
Първо не съм голям специалист, това незнам кой може да го каже, но съм похабил бая време с 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 |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|