Emulera mikroprocessorer/mikrokontrollanter i SPICE...

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Emulera mikroprocessorer/mikrokontrollanter i SPICE...

Inlägg av Seven11 »

Är det någon som vet hur en mikrokontrollant/mikroprocessor emuleras i SPICE? Det borde ju vara så att komponenten byts ut ben för ben mot något motsvarande, typ ett input ben motsvaras av några komponenter, ett output ben av några andra komponenter osv... eller vad tror ni?
pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Mer komplicerade digitala kretsar som t.ex. en uC skulle jag tro simuleras med hjälp av VHDL, ett språk utvecklat för att simulera avancerade digitala kretsar och sedan vidareutvecklat för att även kunna skapa avancerade digitala kretsar.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

självklart används VHDL för att simulera µC men verkligen inte i SPICE applikationer. För att överhuvudtaget kunna infoga en komponent i SPICE så måste den kunna modelleras som en kombination av enklare krets element, tex (o)beroende ström och spänningskällor, induktorer, kapacitorer, resistorer eller liknande. Så med andra ord borde det vara så att varje ben modelleras beroende på om det är satt som ingång/utgång eller liknande...
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Proteus VSM (Virtual System Modelling) http://www.labcenter.co.uk/index_uk.htm kan simulera massa olika mikrokontrollrar i en mixad SPICE modell.
De gör en speciell DLL för varje typ av mikrokontroller som sedan anropas av deras spice version.
På så vis kan man testa både sitt program OCH elektroniken innan man byggt något. 8)
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

jo jag känner till Proteus, använde det ett tag... men vad jag undrar över är hur det fungerar rent matematiskt och programmeringsmässigt. Håller nämligen på med en egen SPICE version där jag vill ha stöd för att kunna infoga µC...
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

TJa, det beror väl på... Redan nu finns det väl stöd i open-source versionerna för mixed simulation. Det borde väl finnas ett gränssnitt hur en digital krets skall kopplas i källkoden. Eftersom du själv håller på med en SPICE version kan du väl berätta om hur du lagt upp det.

Att simulera en MCU är ju i princip inte speciellt svårt (beror ju givetvis på grad av sofistikering). Man får modellera upp register, adressbuss, databus, programräknare mm. Sedan får man göra ett program som kan tolka och exekvera maskinkodsinstruktionerna.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

Jag gör precis som orginal SPICE gör... bygger upp en systemmatris som löses med LU Decomp. för linjära fallet och Newton-Raphson metoden för icke linjära scheman. Problemet är att man i båda fallen ställer upp nodanalys former (även om det i LU D och NR är förenklingar av nodanalysen) men det är svårt att skriva en formel för en µCPU :lol: så vad jag antar att man för en Output pinne tex använder en modell med en kondensator, en resistor och en oberoende ström eller spännings källa. Men sen vet jag inte om det gäller för alla fall av Output pinnar, om det finns olika typer samt hur man skriver för Input pinnar osv. När man väl fått reda på dom modellerna (om det är som jag tror) så borde det ju inte vara så svårt att fortsätta...
Jag har redan skrivit hyffsade modeller för en x86 CPU, PIC och 65xx MCU men det måste fyllas på i alla 3 fallen med rutiner som kopplas till SPICE delen.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

I det flesta fall är det effektivare att bygga protoyper än att simulera då simuleringen ändå aldrig ger säkra svar och riskerar att dra in nya felkällor.

Använd hellre bara simulering på just den pinnen eller den funktionen du vill ha svar på och se till att skapa en bra modell för just detta.

Proteus VSM är aning bättre än totalt värdelöst.... Det är för mycket fel i miljön för att den skall kunna ge några svar du inte kan få på annat sätt.
pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Jag vet inte om jag missar frågan, men PSpice gör iallafall en helt digital simulering av digitala kretsar, endast 1,0,H,L,Z m.fl. dvs. de logiska nivåerna i VHDL. Inga spänningar/strömmar är inblandade där, endast digitala fenomen som propagation delay m.m.. Sen i övergången från den digitala domänen till den analoga (dvs när man hakar på en analog komponent på en digital nod eller vice versa) så modeleras en utgång med t.ex. utresistans drivförmåga och en digital ingång med incapacitans m.m. Först iomed övergången tar den vanliga spice simulatorn vid.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

pagge: är du säker på det? källa?
pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Min lärare :). Det var vad han påstog under våran elektronikkonstruktionskurs. Det stämmer ju även om du testar att simulera nån digital krets. Sätt en prob på utgången på en digital krets då det bara är andra digitala ingångar kopplade till den. Då blir simulerings tracen bara 0,1,X m.m. Kopplar du däremot dit ett 10Megs motstånd paralellt mot jord (som inte borde göra nån skillnad praktiskt) så är det helt plötsligt en analog spänning du får ut som simuleringstrace på den noden.

Edit: Lägger till en liten test simulering. Notera hur det är digitala traces på nod 1 och 3 som inte har analoga komponenter men hur det blir analog simulering av nod 2.

Bild
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

jag tror snarare att det emuleras som analoga signaler och skrivs ut som digitala värden... här verkar det dock som om det är analoga signaler hela vägen.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Hmm. Jag ser inte anledningen till varför de skulle simuleras som analoga signaler. Göra en heldigital simulering ger ju tillförlitliga resultat och är otroligt mkt snabbare. Men jag vet ju som sagt inte, posta gärna vad du kommer fram till. Jag är nyfiken hur det ligger till.
Användarvisningsbild
ucadv
Inlägg: 203
Blev medlem: 29 januari 2007, 23:13:49

Inlägg av ucadv »

pagge>>
visst simuleras en del digitala kretsar analogt. Det gör man när man utvecklar avancerad ASIC. Hur skulle vi annars kunna klocka en processor i 5GHz??


dock får vi vanliga dödliga förlita oss på "mixad" simulering (om du nu inte råkar ha en superdator i källaren). Det finns varianter av Spice som även hanterar digitala nätlistor (skapade från VHDL eller Verilog).


/uc
Skriv svar