Nu har jag börjat bygga lite :-) http://www.ludd.ltu.se/~ragge/vtc/170114/IMG_0754.JPG Det skall bli en 4-bitars ALU med AND, OR, XOR och ADD. För tillfället är endast en bit tillverkad, men addern verkar fungera bra, den är ju den mest komplexa delen. Man kan se på bilden de två glimlamporna som visar carry och sum out nere till vänster, samt den orange, vita och gröna tråden där som är signal in. Signalnivåerna är 0 till 5 volt för etta och -20 till -15 för nolla. Det som skall sitta i socklarna till höger är drivrör för MUXen där man väljer vilken funktion man är ute efter. Den här raden rör drar 3.0A 6.3V i glödspänning, 150V 30mA anodspänning, -100V 10mA för katodföljare och -20V för lågnivåreferens på signalnivåerna. Det sistnämnda är för att få snabbare omslag. Jag använder mig av ECC91 och EAA91. Det är i princip addern från BESK men med lätt omdesignade logiska kretsar, dels för att dra mindre ström och få snabbare omslag av vipporna, dels fler utgångar än bara addition. Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-) -- R
On 01/14/2017 02:49 PM, Anders Magnusson wrote:
Nu har jag börjat bygga lite :-)
Fy fan vad häftigt!! Äntligen! :D Jag har inte ägnat mig så mycket åt datorbygge just den senaste tiden. Pillat lite grann på mjukvara till Brum, som ska få lite mer hårdvara också (timer, lagring, kanske DMA och lampregister). Har också börjat bygga en EPROM-programmerare, min Dataman S3 gick sönder för några år sen och vill inte repareras. Första projektet jag ska använda den till är en ny kontroller till en stor fet LED-skylt jag fick med trasig/odokumenterad kontroller. Hittade förresten lite kärnminne i skroten på jobbet häromdan! Tror det var 50x80 bitar per plan, tre plan. Rätt udda. Men då blev jag sugen att bygga nåt med det, så vi får väl se. :)
Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-)
Jag väntar med spänning! :D Bjarni
Den 2017-01-14 kl. 15:51, skrev Bjarni Juliusson:
On 01/14/2017 02:49 PM, Anders Magnusson wrote:
Nu har jag börjat bygga lite :-)
Fy fan vad häftigt!! Äntligen! :D :-)
Jag har inte ägnat mig så mycket åt datorbygge just den senaste tiden. Pillat lite grann på mjukvara till Brum, som ska få lite mer hårdvara också (timer, lagring, kanske DMA och lampregister).
Har också börjat bygga en EPROM-programmerare, min Dataman S3 gick sönder för några år sen och vill inte repareras. Första projektet jag ska använda den till är en ny kontroller till en stor fet LED-skylt jag fick med trasig/odokumenterad kontroller.
Hittade förresten lite kärnminne i skroten på jobbet häromdan! Tror det var 50x80 bitar per plan, tre plan. Rätt udda. Men då blev jag sugen att bygga nåt med det, så vi får väl se. :) Hm, det är rätt mycket minne iallafall. Jag läste lite om hur man drev minnet till Besk och Facit EDB i Teknisk Tidskrift, det verkade vara ganska så knöligt med pulstransformatorer och sånt. Däremot i Arduino-avrianten verkade det betydligt enklare :-)
Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-)
Jag väntar med spänning! :D Återkommer :-)
-- R
Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-)
Jag väntar med spänning! :D Nu har jag testat lite :-)
Resultaten är minst sagt lite oväntade. Om vi börjar med ett schema över addern; http://www.ludd.ltu.se/~ragge/vtc/170122/VTC-adder-v2-rev2.pdf Det som behöver gå snabbt är carryn, resten borde man hinna med iallafall, om vi tänker oss att man har 1us på sig :-) Jag räknar med att "worst case" är att A är hög, B är låg och Cin togglar mellan +5 och -15 var 500:e ns. Då kommer Sout och Cout att växla, men eftersom Cout är inverterad så går dom "i fas" :-) Nåväl, efter lite debuggande så upptäcker jag att en hel del saker bär sig lite lustigt åt. Framför allt så är Sout bara skräp, och när jag kopplar in oscilloskopet så ändrar den beteende. Det visar sig vara de pF extra som proben lägger på som påverkar oroväckande mycket när man mäter på gallren... Till slut så hittar jag problemet; inte helt trivialt: U19/U20 är ju en "wired or", och gallret på U19 är konstant högt genom de statiska ingångarna, vilket ger en anodspänning på 50 volt (enligt beräkningarna). Men; när Cin blir hög kommer U20 också att börja leda, och då sjunker anodspänningen till 10V (!). När sen Cin faller så stryps U20 och anoden sprätter upp till 50V igen. Men: det gör ju att spänningen på gallret till U24 också sprätter upp med 40V på grund av kondensatorn C4, och eftersom lägsta spänningsnivån är låst till -20V av D4 så kommer U24 att börja leda vilket gör att Sout "omotiverat" blir låg. Jag löste det genom att ta bort D4 så blir defaultnivån betydligt lägre. Om nån har en bättre lösning så säg till :-) Nåväl, lite mer kurvor. Här är Cin mot Sout; http://www.ludd.ltu.se/~ragge/vtc/170122/Cin+Sout.jpg Den övre kurvan är Cin, matad från ett katodföljarsteg, den nedre är Sout. Jag har sänkt nivån på displayen för att kunna skilja dom åt. Det vi kan se är att det tar ca 300ns för signalen att gå genom addern, däremot så kan man också lägga märke till att utsignalen börjar stiga samtidigt som insignalen faller. Det här beror bara på RC-produkten och eftersom jag använt ganska stora resistanser så blir tidskonstanten stor. Jag har också Cin mot inv Cout; http://www.ludd.ltu.se/~ragge/vtc/170122/Cin+invCout.jpg Den här kurvan ser nästan likadan ut. Vi har samma gate delay, vilket är dåligt eftersom den skall propagera genom alla andra adderare. In-kurvan böjer av rätt mycket när den faller. Det är beroende på den "diod-and" som finns bestående av U9 och U4 och R30. Om man driver den med en kraftigare katodföljare skulle nog kurvorna se bättre ut; jag får testa det sen :-) -- A
Den 2017-01-22 kl. 18:59, skrev Anders Magnusson:
Till slut så hittar jag problemet; inte helt trivialt: U19/U20 är ju en "wired or", och gallret på U19 är konstant högt genom de statiska ingångarna, vilket ger en anodspänning på 50 volt (enligt beräkningarna). Men; när Cin blir hög kommer U20 också att börja leda, och då sjunker anodspänningen till 10V (!). När sen Cin faller så stryps U20 och anoden sprätter upp till 50V igen. Men: det gör ju att spänningen på gallret till U24 också sprätter upp med 40V på grund av kondensatorn C4, och eftersom lägsta spänningsnivån är låst till -20V av D4 så kommer U24 att börja leda vilket gör att Sout "omotiverat" blir låg. Jag löste det genom att ta bort D4 så blir defaultnivån betydligt lägre. Om nån har en bättre lösning så säg till :-) Hm, jag upptäckte att det inte blev bra alls, pulsen hinner inte stiga till positivt värde inom utsatt tid vid andra kombinationer av pulser...
Lösning #2 som jag provat är att ha en diod till en spänningsmatning kopplad till anoden så att spänningen aldrig kan sjunka under ca 40V. Då löste man alla problem :-) Eftersom det är så låg spänning så blir strömmen ungefär 30mA under pulstiden vilket torde vara tillräckligt för att ligga inom gränserna. Man skulle ju också kunna göra nån variant där för låg anodspänning stryper gallret, men det är nog bättre att göra så här. Andra tips mottages tacksamt :-) ...då är det bara propageringen av carryn kvar att hitta en bättre lösning på :-) -- Ragge
On Sat, Jan 14, 2017 at 02:49:32PM +0100, Anders Magnusson wrote:
Nu har jag börjat bygga lite :-)
Jäklar vad stiligt!
Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-)
Det ska bli kul att se. Hur tänkte du göra, någon mikrokontroller som kör räkneoperationer och kontrollerar resultat? (Ursäkta om du redan beskrivit detta) /P
Den 2017-01-16 kl. 09:49, skrev Pontus Pihlgren:
On Sat, Jan 14, 2017 at 02:49:32PM +0100, Anders Magnusson wrote:
Nu har jag börjat bygga lite :-)
http://www.ludd.ltu.se/~ragge/vtc/170114/IMG_0754.JPG Jäklar vad stiligt! Det blev lite klippande, borrande, bockande och målande. Jag var ju tvungen att testa hur bra det gick att få till :-)
Nästa steg är att mäta hur den bär sig åt när man börjar stressa den lite :-) Det ska bli kul att se. Hur tänkte du göra, någon mikrokontroller som kör räkneoperationer och kontrollerar resultat? (Ursäkta om du redan beskrivit detta)
Jag skall börja med att testa att man inte får alltför långa delayer. För add så har man ju ripple-carryn att ta hänsyn till, så det får inte ta allt för lång tid, annars så får man hitta på nån workaround :-) -- Ragge
participants (3)
-
Anders Magnusson
-
Bjarni Juliusson
-
Pontus Pihlgren