calmar skrev:Grymt! Har alltid velat bygga en enklare dator själv från diskreta kretsar.
Har du satt upp nån site med dokumentation nånstans? Kan man få veta mer om arkitekturen?
Fler (porr)bilder?

Hej & tack!
Vet du vad som är extra roligt?
Jag har programmerat alltihop med hjälp av grindteknik! Xilinx har nämligen ett gratis (obs!) utvecklingsverktyg som heter ECS inbyggt i utvecklingsmiljön (som heter ISE).
Med ECS kan man alltså cadda mha diskreta grindar. Helt sanslöst roligt för jag suger vad beträffar programmeringskunskap. Assembler är det enda jag gillar även om jag förstår vissa fördelar med C.
Men i det här fallet kunde jag alltså nyttja gamla grindkunskaper från 80-talet
Jag har alltså caddat rubbet mha diskreta grindar. Det enda lilla undantaget är att ECS vägrade erkänna min grindlösning för klockade vippor (SR-vippa). Efter diskussioner med supporten hänvisades jag till att i stället använda befintliga "optimala" vippor såsom en fördefinierad JK-vippa. Men ack vad det skar sig i stolthetsbröstet när jag tvingades göra det. Nu kan jag nämligen inte fullt ut säga att alla register, räknare och adderare är byggda med hjälp av grindar
Jag har ovan bifogat en bild på arkitekturen men gör det igen. Ett försök till förklaring får bli:
FA: Full Adder (det är här addition och subtraktion sker)
CCR: Condition Code Register (det är här utfallet av en aritmetisk operation tas till vara mha flaggor)
SP: Stack Pointer register (håller reda på vart i minnet stacken befinner sig)
SR: Shift Register (är en del av Ackumulatorn. Två SR krävs pga vänster/högerskift)
PC: Program Counter (håller reda på vart i programmet det exekveras kod)
IR: Instruction Register (detta är hjärnan i CPU'n)
IRR: Instruction Register Register (här latchas alla OP-koder in).
BR: Branch Register (sniffar flaggvärdena av en aritmetisk operation. N=Negative, Z=zero).
IRC: Instruction Register Counter (håller reda på delmomenten i en instruktions realisering)
OE står för Output Enable och innebär att data läggs ut på den interna bussen (A eller D)
LD står för Load som innebär att registret laddas synkront med data.
CP står för Clock Pulse och är huvudklockan.
E står för E-clock och är inversen av CP pga tidsmässiga aspekter.
Resten hoppas jag är självförklarande.
Övrig information finns att läsa på:
http://sv.wikibooks.org/wiki/CPU_design
Men jag varnar dig. Jag svamlar inledningsvis ganska mycket både om vilken typ av CPU man skulle kunna bygga och om hur. Fast lite senare i boken är det mesta sakligt och relevant. En hel del av informationen är f.ö kopierad från Wikipedia och artikeln Digitalteknik som jag till stora delar också skrivit själv.