Sida 1 av 2
uC VS VHDL
Postat: 1 september 2006, 21:03:41
av ankan
Har programmerat en del picar och har nu börjat läsa en kurs i VHDL i skolan. Min fråga är vad det är för skillnader.
Har jag fattat rätt att FPGA är själva kretsarna man programmerar med VHDL. Är de kretsarna effektivare eller används de bara till andra saker?
Vad är skillnaderna alltså?
Postat: 1 september 2006, 21:10:59
av sodjan
Grovt sätt...
PIC/AVR o.s.v programmeras med program som innehåller algoritmer för att lösa en viss uppgift.
FPGA (och alla andra liknande kretstyper) programmeras med en logikbeskrivning (skriven i t.ex VHDL) för att lösa en viss logisk funktion.
Det finns inget sekvensiellt "program" som man normalt ser det.
Grovt sett, det finns idag öven processorkärnor i FPGA o.s.v...
Postat: 1 september 2006, 21:19:50
av thepirateboy
Jag är ju ingen expert men i stora drag så programmerar du hårdvaran i VHDL (eller rättare sagt beskriver hårdvaran) medans i mikrokontrollers har du färdig hårdvara och du programmerar mjukvaran. Du kan alltså skapa en mikrokontroller i VHDL som gör exakt det du tänkt dig tillsammans med annan logik du behöver, allt i samma kapsel.
Postat: 1 september 2006, 21:36:12
av cyr
En FPGA är något förenklat en jättehög med logiska grindar och vippor, man laddar en "ritning" som säger hur alla dessa ska kopplas ihop (och ritningen kommer oftast från början från en beskrivning i VHDL eller liknande språk).
En FPGA är bäst på att utföra ganska enkla saker väldigt snabbt (och flera saker parallelt).
Postat: 1 september 2006, 22:11:47
av Seven11
Allt beror ju på hur lång utvecklingstid och hur bra din uppgift måste lösas. Ibland är det viktigare att få produkten klar snabbt än att göra den optimalt för sitt jobb. Det går att göra PIC:ar i VHDL (okej... du lär behöva VHDL-AMS frö nästan alla modeller men iaf) eller liknande mikroprocessorer men frågan är om det är värt den tid det kommer att kräva.
Postat: 1 september 2006, 22:59:02
av ankan
Vad jag har läst lite så skrivs det att företag tjänar pengar på att gå över till FPGA och använda VHDL. Det skulle tydligen gå snabbare att utveckla.
Skulle man kunna få en jämförelse genom att ni beskriver lämpliga arbetsuppgifter för en uC respektive en FPGA. För vad jag förstår så verkar de inte användas till samma ändamål riktigt.
Postat: 2 september 2006, 02:53:47
av evert2
Nja så kanske det är...men ofta är det så att man använder FPGA (eller CPLD) för klisterlogik..alltså för att förenkla interfacet mot yttervärden...på så vis att FPGA:n t ex gör en "arbeta" som annars skulle sacka ner µC:s arbete rejält...exempelvis!
EdiT: Fast FPGA används väl i (allteftersom utvecklingen går framåt inom området till att användas till) mer och mer avancerade funktioner...jag läste VHDL för mer än 5 år sedan å mycket har hänt sedan dess.
Postat: 2 september 2006, 08:14:50
av Icecap
Som jag ser det finns det uppgifter som en µC är bra på och andra som logik (grindar, flip-flop osv = FPGA) är bra på och ofta kan de hjälpa varandra. Det finns även en gråzon där det är huggit som stuckit vilket man väljer.
Att en µC ju basalt sett består av logik betyder även att det är möjligt att bygga dom i FPGA vilket också sker. Fördelen är inte att man sparar mjukvara, det ska ju ett program till hur som helst, fördelen kan vara att man kan nöja sig med 1 krets och kanske på köpet få en bättre koppling (för funktionen) mellan µC och resten av logiken.
Fördelen kan även vara rent ekonomisk och/eller effektmässig osv.
Postat: 2 september 2006, 12:10:26
av ankan
Skulle gärna vilja ha lite konkreta exempel vilket det ena lämpar sig bäst till och vilket det andra lämpar sig bäst till.
Postat: 2 september 2006, 12:56:38
av bengt-re
Skall du interfaca en bildskärm och skapa alla styrsignaler till denna är FPGA perfekt. Interfaca en bildsensor är också bra jobb for en FPGA och så skapar du register eller bussar som styr interfacet enkelt ifrån en uC. Kombinationen FPGA och uC är stark och kan göra komplexa uppgifter snabbt. En annan fördel med FPGA är att dessa ofta har en vansinnig massa ben så det räcker till för breda bussar.
Postat: 2 september 2006, 13:13:12
av Andax
Ankan, ett exempel är om du vill kunna styra en hel hög med servon. Att implementera 50 PWM kanaler är ofta inget problem i en FPGA och då med en högupplösning.
All typ av digital signalgenerering där signalen är enkel att beskriva men eventuellt har mycket hårda timingkrav på är ideala för CPLD/FPGA medan en mikrokontroller är ideal för mer komplexa signaler med lägre frekvens/timingkrav.
Postat: 2 september 2006, 14:29:27
av ankan
Så att göra en overlayer för TVn borde tex inte vara några problem med en FPGA?
Postat: 2 september 2006, 16:04:20
av sodjan
bengt-re> En annan fördel med FPGA är att dessa ofta har en vansinnig massa ben...
En annan nackdel med FPGA är att dessa ofta har en vansinnig massa ben...
En annan fördel med uC är att dessa ofta inte har en vansinnig massa ben...
So, "it depends", I guess...

Postat: 2 september 2006, 17:41:31
av bengt-re
Så sant så sant, men har man en 14bitars adressbuss och en 16 bitars databuss så blir det lite jobbigt många ben på uP. Visst är BGA-kapslar lite trista att labba med, men för labbande brukar det finnas experimentkort där man dragit alla dessa ben till stiftlister så att det går lätt att ansuta något på dem. Och visst för BGA-kapslar behöver man nästan ha 4 lagerkort för att kunna fixa någon fungerande routning och de kärver i princip också en reflowugn för att kunna lödas. Allt beror på vad man skall göra - att skapa LVDS eller ens VGA signaler med en uP är svårt ( jag tror inte att jag skulle lyckas iaf) men med en FPGA är det nästan lätt. Så...
FPGA +
Enkelt att skapa komplexa signalmösnter
Många ben
Snabba
Lätta att programera
FPGA -
Många ben
Svåra att löda
Kräver i princip 4-lagerkort (dyrt att labba med)
Svårt att skapa nästlad logik
Up+
Billiga
Lätta att skapa nästalad logig med
Lätta att löda (oftast iaf)
uP-
Svårt att skapa komplexa signaler på många ben med exakt timing
Ont om ben (nåja)
Postat: 4 september 2006, 23:52:35
av d99dan
Sen kan man väl nämna att det inte är så att man bara använder VHDL till att beskriva FPGAer utan den största fördelen ligger väl i just att FPGAer är lätta att labba med och använda i mindre serier men att det sen går att använda VHDL koden för att göra asicar om man vill få ner kostnaden i större serier. Det ställer förvisso en del krav på koden men iden är att den beskriver hårdvaran så att den ska kunna simuleras och realiseras.