|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:44 pm
Програмируеми Логики (PAL, GAL, FPGA, CPLD)?
| Автор |
Съобщение |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
не мога
аз започнах с един док файл, който го затрих... Но със сигурност ще откриеш много ръководства в нета. Освен това всяка среда си има подробен хелп за команди синтаксис и т.н., така че търси ръководство в което накратко обесняват теорията.
|
| Вто Мар 20, 2007 3:50 pm |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
Добре. Благодаря ти. Аз имам едно много лошо печатно копие на "VHDL for Designers" на Stefan Sjoholms и Lennart Lindh.
Книгата много ми харесва, но копието е много лошо.
А би ли ми препоръчал, ако ти е възможно, някакъв tutorial или ръководство, където да са обяснени по - подробно различните PLD от системна
гледна точка, незнам дали се изразих правилно. Навремето имах едно (пак) печатно копие на TI, където подробно се обясняваше
теорията на тези устройства(PAL's), като се обръщаше внимание на еволюцията им, теоретично изхождайки от биполярните PROM'с.
За съжаление някъде съм я затрил.
За всички които се интересуват от HDL изпращам интересни ръководства, съответно за VHDL и Verilog.
|
| Сря Мар 21, 2007 11:29 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
е пак ме хващаш на тясно
Не само че не мога да ти препоръчам ами и аз даже не съм задълбавал на такова ниво. В смисъл че познавам някои конкретни CPLD-та как изглеждат отвътре - в дейташийта обикновено показват достатъчно подробни схеми на различните модули, но от чип на чип и от производител на производител идеите се резличават. Така че далеко съм от мисълта да правя някаква академична оценка на теорията и еволюцията на програмируемата логика.
Нещо повече - откакто минах на VHDL престанах да се интересувам за подробности относно конкретния хардуер. Просто когато правиш нещо на VHDL то не само може, но и е много препоръчително да е универсално и да не зависи на какъв хардуер ще се изпълнява. Примерно като правиш UART модул, то той трябва да може да се компилира за CPLD/FPGA на Altera/Xilinx/Lattice и т.н., че дори да се направи на ASIC.
Сигурно звучи абсурдно, че един хардуерист няма нужда да познава хардуера отдолу, но такъв е живота - ставаме програмисти 
|
| Сря Мар 21, 2007 12:28 pm |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
няма лошо, програмистите отдавна сме станали хардуеристи 
|
| Сря Мар 21, 2007 12:31 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
В тоя ред на мисли ми минава една "еретична" идея. Хрумна и като гледах обявата за семинара на Freescale.
Условно форумците се делят на три типа:
1. Хора с опит в дадена област (напр. програмируеми логики).
2. Хора с опит в други области, желаещи да придобият опит в областта от т.1. (например аз).
3. Хора без много опит ама навити да придобиват опит в областта от т.1. и много други точки.
Обазованието е пари. Но когато е качествено си заслужава. В БГ напрактика няма курсове за специализация в дадена област. Някой от васт знаят как е по чужбина - решавам аз утре да се занимавам с прогримируеми логики, отварям нета намирам си един интензивен 2-3 дневен курс, плащам там едни пари и готово - отивам и ми наливат готови смелни знания с фунията (образно). После сядам и почвам да работя (пак образно). Тука такова нещо нема. Губиш време - ровиш, търсиш книги, после търсиш кит, лепиш, правиш, то не тръгва. И накрая придобиваш същите знания за 2 седмици, вместо за 2 дена. В някой случаи това е добре, особенно за прохождащи. Ама има мисля много хора тука дето не им е целта да си загубят ценно време.
Та си мисля, сложно ли ще е да се организират едни такива курсове. Не смея да обявя примерни цени, за да не ме линчуват. Ама какво пък - аз например бих отделил по 100лв. за 3 дни ако има някой да ми "смели" информацията. Ако се съберем 5-10 човека - евентуалния лектор ще си заработи прилична надница.
Тука не става въпрос да обучаваш хора дето да ти откраднат хляба или нещо от сорта. Не говорим за хитрини, трикове и пр. Но всеки знае на какво ниво е обучението в унитата.
Идеята е еретична от много аспекти естествено - не се сещам например за подходяща база (помещение) за подобни лекции. Проблеми много. Все пак идеята заслужава да се помисли върху нея.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Мар 21, 2007 1:05 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Цецо, незнам от дву-три дневен курс какво ще научиш. Ако почваш от самото начало де....
този тип курсове са по-подходящи за по-напреднали, като се дискутират некви проблеми и хватки дето в нормалните хелпове, knowledgebase и по форуми неможеш да почерпиш инфо.
пък ако е 1 месец курса ... този дето го плаща ще си удари гъза в тавана като чуе цената...
Това дето си го написал, че очакваш от курса да ти налеят знания и без да четеш почваш да пишеш програмки .......... става ако пишеш програми от ниво изведи на екрана надпис "HELLO WORLD"..... ама не знам кой ще ти плаща да му работиш и по цял ден да има "HELLO WORLD" "HELLO WORLD" "HELLO WORLD"
и не знам защо всеки като нещо не му е ясно, не му се се отдава или не може да се справи обвинява образованието и системата по която е учил
Аз съм завършил ТУ-София и там Таничка Василева и Чумаченко ми дадоха основата по програмируема логика и по VHDL.(За справка машините бяха х486SX,Виндовс 95, развойната среда беше фондация 2, за фамилия спартан се говореше както сега въртекс 5 ...документация по въпрос дето те интересува почти нямаше... интернета беше на модеми 34к за 56К си мечтаеш) нататък сам! ама съм оставал след часовете и съм мрънкал да поработя допълнително на машините....и съм ги гонил да питам и т.н.
един доцент по математика на първата лекция каза едно време: тука сте за да ви научим как да учите сами!
и в Германия да си и в Щатите и Малайзия и къде ли не положението е същото питай някой дето учи там. има си студентски програми, стажове, студентски отстъпки за софтуерни пакети ама ако искаш да учиш .... никой не те гони да те научи!
и защо да правим курс като си го има този форум?
едва ли някой като попита остава без отговор
даже и за самите основи на програмиране независимо на какво:!: е да ама като някой каже начинаещ съм му се отговаря ето ти книжка - чети! и после питай
без да четеш може да миеш чинии, да метеш улици и т.н. пак се придобива опит с практика нали  за два-три дена вече няма да чупиш чинии, няма да оставяш непочистен под...
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Сря Мар 21, 2007 1:54 pm |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
Според мен Цецо има предвид, точно онова, което ти е казал учителя по математика, т.е. човек да зацепи и да разбере за какво иде реч(е поне този който може, щото то свят голям, хора мноого  ) и за това наистина няколко дена са достатъчни. Но и ти си прав, че форума... , макар че друго си е прекия контакт и получения на момента отговор.
Докато във форума малко прилича на парламента -> изказване, реплика, дуплика, триплика и т.н.
Сега някой форумен бог да не вземе да се засегне, ей.
А ето и един полезен tutrial за архитектурата на CPLDs & FPGAs, за което и ми беше питането към miro_atc.
|
| Сря Мар 21, 2007 2:13 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
е хубаво де ако съм се поувлякъл да ма прощавате  Най-вече Цецо да прощава.
ама ми се обръщат червата, като някой каже, че нивото на университетите е ниско и поради това.....онова..... и това за смилането на инфото е много хубаво ама ако не е за сметка на липсата желание.
и понеже темата почна Sharky
кабела дето ДедоБоре ти посочи работи до фамилия XCR3хххXL CPLD на Xilinx и със спартаните работи. Аз даже имам такъв без шинен буфер, и също работи- за CPLD. за Coolrunner2 не знам...не съм го пробвал....
и свободния webpack ти върши прекрасна работа. за начало. пък и за по-натам.
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Сря Мар 21, 2007 3:02 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Имам предвид точно това ковто съм написъл - 2,3 дена. Не говоря да учиш А и Б. Говоря за човек който е наясно що е то логичски елемент, що е то програматор, що е то PCB, що е то микроконтролер, шина , С и С++ и пр. и пр. да го научиш например да направи елемантарна задачка на VHDL, да си подбере матрица, да я налее вътре. Или да научиш същия тоя да оперира на Eclipse+GCC върху ARM7 например. Или да му обясниш как се проектират схеми с Sigma-Delta ацп-та. Или нещо от сорта.
На това му се вика training courses и не го говоря голословно - видял съм го и съм го изпитал. На запад (най-вече зад океана), това се практикува непрекъснато. Например почваш проект с АРМ7 - взимаш двама бачкатори и ги изритваш на хотел за 3 дена да се научат на платформата. Печелиш 2 седмици човешки труд. Кеф. Всички големи фирми организират такива курсове.
Проблема е, че за да ида на такъв курс ми излиза яко солено. Едно цената на курса, а и самолет, хотел, командировъчни.......
Та това ми беше идеята. Ама както казах е еретична.
А нивото на университетите е наистина ниско. Поне преди 5 години когато аз излязох от ТУ - София направо беше критично ниско. А и имам преки наблюдения какво е в момента - по-зле е. Не бъркайте самоуките ентусиасти с добре обучени кадри.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Мар 21, 2007 3:23 pm |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
Цецо, идеята ти изобщо не е еретична. Само че на човек трябва да му стиска да я реализира. Я вижте Светлин Наков и сие, реализирали са си я и то доста комерсиално. Е, тяхното разбира се е доста по - различно, но предполагам, че са тръгнали от подобна идея.
А самата идея няма нужда да бъде защитавана, напр. двата поста на miro_atc - научени от него неща събрани на едно място.
Ако имаш самочувствието на професионалист в дадена област, за да я реализираш ще ти трябва и малко организационни способности и икономически усет. Я виж напр. компотените курсове ги води куцо и сакато и добре си припечелват хората.
В embeded областа обаче западните компании са дошли тук точно заради евтиния труд, т.е. на тях им излиза по - евтино да ти платят двуседмична заплата от колкото да те пратят на тридневен курс.
А за самолета, хотела и другите екстри и аз съм навит 
|
| Сря Мар 21, 2007 3:40 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Цецо, идеята според мен не е еретична. Но не мисля че на теб ти трябва курс
Специално за VHDL, ако гледаш дебели книги може да ти изглежда трудно, но в действителност има само 2-3 неща дето могат да се обеснят за 10-15 минути и след това и сам ще можеш да програмираш. В началото не ти трябва да знаеш как се правят сложни йерархии и N-размерни модули (броячи/регистри и т.н).
Ако щеш вярвай имам един приятел, който е чист програмист и дори основни понятия за хардуер му куцат, но се научи и си бачка на VHDL.
Виж за ABEL - ако не си хардуерист и ако не познаваш конкретната матричка за която ще пишеш и 15 курса няма да ти помогнат.
Ето ти няколко стъпки как да научиш VHDL
1) Всичко се базира на сигнали. На сигналите трябва да зададеш тип - както е в програмирането, на всяко променлива - тип.
Обърни внимание че стандартните типове не са само с 2 стойности (0/1 или ниско/високо).
2) VHDL винаги описва "черна кутия" - която има определени входове/изходи. Тази кутия/модул се води "entity" и може да погледнеш как се декларира... Поведението (работата) на този модул се описва Behavioral секция, но може да си правиш и други секции, примерно за симулация.Естествено един модул може да съдържа/използва други модули.
3) Да опишеш работата на модула означава, разбира се, да опишеш изходните сигнали. Когато даден изходен сигнал е проста комбинаторна логика може просто да си му напишеш функцията, примерно:
S <= X and Y or Z ;
Освен това за комбинаторна логика може да използваш и т.н. "конкуренти оператори" примерно
S <= '1' when (X and Y or Z) else '0';
4) Сега стигаме до уникалното в VHDL и това е как се прави логика са памет. Ползва се "proces". Процесът има "sensivity list" и поредица от "последователни оператори".
Това нещо може да си го представиш по следния начин - всичко стои и чака докато някой сигнал от sensivity списъка не се промерни. Кагато нещо "мръдне" се изпълняват "последователно" операторите в тялото на процеса.
Пример:
DFF: process(reset, clk)
begin
if(reset = RESET_ASERTED)
Q <= '0';
elsif Rising_Edge(clk) then
Q <= D;
end if;
end process;
Последователното изпълнение е условно - може да си го представяш че се изпълнява последователно но за безкрайно малко време. В дествителност си се компилира до хардуер който работи паралелно и "последователността" се свежда до приоритет на сигналите. В примера първо се проверява нивото на ресет-а и ако има ресет нашия изход Q ще стане '0', независимо от всичко останало.
Ако при изпълнението на процеса на даден сигнал не бъде присвоена стойност, то този сигнал не се променя. Пак в примера при каква да е промяна на clk ще се изпълни процеса, но при падащ фронт нито един IF няма да сработи, т.е. нищо няма да се промени.
Принципно, ако един сигнал се променя в един процес, то е желателно той да се променя само в този процес.
Ами това е за начало... С процеси може да опишеш всякакви тригери, стейт машинки (даже не е необходимо да знаеш що е то D/T/JK тригер)... Какво повече му трябва на човек (освен среда с F1) 
|
| Сря Мар 21, 2007 4:21 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
също така е удобна дефиницията "block"
Например искаш да си дефинираш делител на честота някъде вътре в сорса а не като отделен модул
например сигнала low_clk си е дефиниран по-нагоре при всичките ти сигнали.Искаш да делиш системния такт system_clk на 8 за някой процес.
За яснота в тялото на програмата ти искаш да вмъкнеш делителя на клока на точно определено място.
тогава правиш нещо такова:
--========================Low Clock Divider====================================--
Clock_divider: block
signal div: UNSIGNED(3 downto 0);
signal div1a: STD_LOGIC;
begin
div1a<= div(3); --=======делиш на 8- 2^3 = 8;div(2) - делиш на 2^2 = 4;div(1) - делиш на 2^1 = 2; ===========--
process(system_clk)
begin
if system_clk'event and system_clk = '1' then
div<= div + 1;
if div(3)= 'U' then div<= (others=> '0');end if;
end if;
end process;
low_clk<= div1a;
end block;
--========================End Low Clock Divider==================================--
Делителя на честота може да се реализира по много начини(аз го предпочитам така, когато става дума за делене кратно на две:!:)но това не е важно:!:
примера за блока е че вътре в тялото на програмата може да си дефинираш процес или много процеси, както и други сигнали(например сигналите div и div1a),
и те са си дефинирани локално в рамките block ................end block.Най-малкото избягваш предупреждения и грешки за дупликиране на имена и т.н.
Тогава връзката на блокчето с външния свят е само чрез вход->system_clk и изход->low_clk.
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Сря Мар 21, 2007 5:20 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами аз точно ей такива неща имах предвид. Ама малко по комерсиален вид му придадох
Както и да е - идеята може и да не е "еретична" ама си е имагинерна отвсякъде.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Мар 21, 2007 7:24 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами в БГ не е прието да плащаш за да те учат, плащаш за да скатаеш казарма, за да поживееш още малко на чужда гръб, за да не бачкаш, то все ама плаща в тия случаи но ... малко са тия дето плащат з да научат, плащат за да печелят .. интересен феномен, изкарва еидн курс, взма някакво свидетелство, само за да може да иска по голяма заплата, ако иаме чалъм да плати само за свидетелството най-добре. Та .... това сигурно е една от прицините.
Иначе логиката, ами просто е за 3 дни го докарах от ниво нула до работа с памет, дисплей и клавиатура и паралелна комуникация с контролер. Просто малко четене, задължително демо платка и .. нещата си стават. Верно има области където не е толквоа лесно, има много области където два три дни кур може да е много полезен. Примерно проектиране на печатни платки, има в предивд критично опроводяване, да речем DDR, PCI, USB, Ethernet и др. подобни, неща които и да четеш няма как да ги научиш за два три дни, защото трябва опит, след един такъв курс от хора които си разбират работата съм убеден че до правилния дизайн ти остава мнго по малко път отколкото ако почнеш без тоя курс. Аз лично съм за подобни курсове, посещавам доста онлайн курсове, но повеето са на съвсем ниско ниво, и въпреки това са полезни.
|
| Сря Мар 21, 2007 7:47 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
комерсиално трудно може да стане, защото за курсове се иска и подготовка, пък и не от всеки специалист става даскал
По-скоро ръководства на български че по-леко се подготвят - вземаш няколко добри и ги преразказваш. Самото издаване не е скъпо, но съм приказвал с издатели и на тях не им се занимава с разпространение на малки тиражи. Може би биха издали само ако ръководството се казва "VHDL for dummies" а то май даже вече има такава 
|
| Сря Мар 21, 2007 7:49 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|