[quote="Anonymous"]Zadatak je sljedeći:
Sklop ima 4 ulaza koji predstavljaju znamenke binarnog broja (x3x2x1x0) u bazi 2. Konstruirajte sklop koji će na izlazu dati binarni broj s ulaza pomnožen s 3.
Meni nije jasno dali moram taj broj prvo množit s 1, pa onda s 0 i opet sa 1 i zatim zbrojit ili mogu odmah zbrojiti x1 i x3 i x0 i x2 i tako dobiti prikaz toga broja.[/quote]
Jos jedan zadatak koji iziskuje transcedentne mentalne sposobnosti koji ukljucuju telepatiju i srodne vjestine ili pak tetku s prozirnom kuglom istineTM. Ipak, predpostavimo li da se dio [i]"dati binarni broj pomnozen sa 3"[/i] odnosi na (3)_10 kao (11)_2, onda je takodjer sigurno za predpostaviti da konacan rezultat moze biti najvice sest(o)bitni, sto je zgodno za poceti raditi sâ, iako nimalo zgodan uvjet (remember, 74283/4008 su 4 - bit FA). Takodjer, s obzirom na nacin na koji je zadatak zadan, "djon obraz" taktika za rijesavanje bi izgledala otprilike ovako:
PIC - asm code
[code:1]Y EQU 03h
...
MOVF x,W
MOVWF TMPX
MOVF y,W
MOVWF TMPY
8x8:
CLRF REZULTAT
8x8PET:
MOVF TMPX,W
BTFSC TMPY,0
ADDWF REZULTAT
BCF STATUS,C
RRF TMPY,F
BCF STATUS,C
RLF TMPX,F
MOVF TMPY,F
BTFSS STAT,Z
GOTO 8x8PET
RETURN
MOVF REZULTAT,W
MOVWF z[/code:1]
Fali jos dosta koda ali "bitno" se vidi. Sklop jest, ima cetri ulaza (ima li? -->
[code:1]STATUS EQU 03h
TRISA EQU 85h
PORTA EQU 05h
BCF STATUS, RP0
CLRF PORTA
BSF STATUS, RP0
MOVLW 0x0F
MOVWF TRISA[/code:1]
--> wow, zaista ima, i to RA0-3), pomnozit ce neki binarni broj koji doklepece na R0-3 i na izlazu (ima li izlaz? ok, dosta je bilo code taga) ce dati rezultat. Zadatak rijesen, na nimalo lijep, zgodan ili pristupacan nacin. Mislish da je hard core sklopovski nesto bolji & laksi? Think again...
Imamo dva moguca tijeka dogadjaja, hm, laksi i tezi?
Ajmo pocet s... laksim, d'oh! Ok, promotrimo donje dvije tablice, jedna je obicna binarna tablica s cetri varijable (Qn) dok je Qn+1 rezultat mnozenja prve tablice s brojem (3)10 aka (11)2. [ATTN, ovako napisano je sklono trganju, ali da se skuziti uz malko redundancije]
[code:1]
Qn
A B C D
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
Qn+1
X5 X4 X3 X2 X1 X0
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 1 0
0 0 1 0 0 1
0 0 1 1 0 0
0 0 1 1 1 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 0 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 0 1
1 0 0 1 0 0
1 0 0 1 1 1
1 0 1 0 1 0
1 0 1 1 0 1[/code:1]
N'dobro, sad jos treba "samo" minimizirati svih pet izlaznih varijabli u cemu ce nam najvise pomoci drug DeMorgan, drug Karnaugh ili drugovi Quine i McCluskey (bas tim redom), ovisno koliko smo perverzni ili koliko (ne)znamo digitalnu elektroniku. Kada smo to rijesili, treba li bi dobiti nesto u ovom stilu:
[code:1]X0 = D, X1 = CnotD, X2 = BD, X3 = AnotBnotD, X4 = AnotBnotD, X5 = AB[/code:1]
Krajnji ishod bi trebao izgledati ovako:
http://www.imagesforme.com/images/8133nacin1.gif
Za one koji se osjecaju posebnima, u svakom slucaju preporucam realizaciju sa NAND, ljepse izgleda. :D
E sad ide ona vesela metoda, s kojom su neki, neznajuc sto ih ceka, vjerojatno nadobudno pokusali rijesiti zadatak. Da, stvar se zaista moze izvesti i sa FA-ovima, ALI...
Metoda kojom se rade takvi sklopovi popularna je kao brijanje bikini zone drot kefom ili sinhronizirano plivanje u klorovodicnoj kiselini, jer zahtijeva ogroman broj zica te ostalih sklopova (ovdje je potroseno 12 AND-ova i 2 FA, sto je ugrubo najmanje 5 16 pinskih chipova, onako od oka, da ne pricam o pullupovima, napajanju i ostalim divotama). Postupak je univerzalan i jednostavan za ispricat, no malo tezi za izvest (*pogotov* nekome kome je dig. terra incognita): bitovi mnozenika grupiraju se te se onda sa po dva bita mnozitelja stavljaju u AND sklopove i salju na zbrajalo (carry je u nuli, pritegnut na masu). I dalje se svaki bit mnozitelja, no ovaj puta pojedinacno (ne vise po dva) kombinira sa AND sklopovima i salje na FA, dok se zbrojeno iz predhodnog FA takodjer salje na slijedeci FA, pri cemu carry postaje LSB a S1 ide kao izlaz. U svakom koraku princip se ponavlja, a kada se "potrose" svi bitovi mnozitelja, izlaz carryja postane najvisi bit u produktu.
http://www.imagesforme.com/images/6470nacin2.gif
Huh, sitan je sat, valjda nisam nesto (previse) pogrijesio. Drvlje i kamenje, kuka i motika na onoga tko je ovako "precizno" zadao zadatak (da smo na FER-u, ajde de...). Ioako sami asistenti/profesori priznaju "kako je ovo "najtezi" predmet, da mu se ne posvecuje dovoljno paznje, truch truch yada yada" (ne kazem da to nije tako...), ali uz ovkva veselja koje matematicara *stvarno* (ali to bez trunke ustrucavanja, STVARNO) interesiraju jednako kao predsjednika Istocnog Timora kriza u Piranu, zar je za cudo? OTOH, sto se mene osobno tice, citav kolokvij moze biti ovakav, ali hej, it's only me... :)
Guest, HTH, uzivaj,
Anonymous (napisa): | Zadatak je sljedeći:
Sklop ima 4 ulaza koji predstavljaju znamenke binarnog broja (x3x2x1x0) u bazi 2. Konstruirajte sklop koji će na izlazu dati binarni broj s ulaza pomnožen s 3.
Meni nije jasno dali moram taj broj prvo množit s 1, pa onda s 0 i opet sa 1 i zatim zbrojit ili mogu odmah zbrojiti x1 i x3 i x0 i x2 i tako dobiti prikaz toga broja. |
Jos jedan zadatak koji iziskuje transcedentne mentalne sposobnosti koji ukljucuju telepatiju i srodne vjestine ili pak tetku s prozirnom kuglom istineTM. Ipak, predpostavimo li da se dio "dati binarni broj pomnozen sa 3" odnosi na (3)_10 kao (11)_2, onda je takodjer sigurno za predpostaviti da konacan rezultat moze biti najvice sest(o)bitni, sto je zgodno za poceti raditi sâ, iako nimalo zgodan uvjet (remember, 74283/4008 su 4 - bit FA). Takodjer, s obzirom na nacin na koji je zadatak zadan, "djon obraz" taktika za rijesavanje bi izgledala otprilike ovako:
PIC - asm code
Kod: | Y EQU 03h
...
MOVF x,W
MOVWF TMPX
MOVF y,W
MOVWF TMPY
8x8:
CLRF REZULTAT
8x8PET:
MOVF TMPX,W
BTFSC TMPY,0
ADDWF REZULTAT
BCF STATUS,C
RRF TMPY,F
BCF STATUS,C
RLF TMPX,F
MOVF TMPY,F
BTFSS STAT,Z
GOTO 8x8PET
RETURN
MOVF REZULTAT,W
MOVWF z |
Fali jos dosta koda ali "bitno" se vidi. Sklop jest, ima cetri ulaza (ima li? →
Kod: | STATUS EQU 03h
TRISA EQU 85h
PORTA EQU 05h
BCF STATUS, RP0
CLRF PORTA
BSF STATUS, RP0
MOVLW 0x0F
MOVWF TRISA |
→ wow, zaista ima, i to RA0-3), pomnozit ce neki binarni broj koji doklepece na R0-3 i na izlazu (ima li izlaz? ok, dosta je bilo code taga) ce dati rezultat. Zadatak rijesen, na nimalo lijep, zgodan ili pristupacan nacin. Mislish da je hard core sklopovski nesto bolji & laksi? Think again...
Imamo dva moguca tijeka dogadjaja, hm, laksi i tezi?
Ajmo pocet s... laksim, d'oh! Ok, promotrimo donje dvije tablice, jedna je obicna binarna tablica s cetri varijable (Qn) dok je Qn+1 rezultat mnozenja prve tablice s brojem (3)10 aka (11)2. [ATTN, ovako napisano je sklono trganju, ali da se skuziti uz malko redundancije]
Kod: |
Qn
A B C D
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
Qn+1
X5 X4 X3 X2 X1 X0
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 1 0
0 0 1 0 0 1
0 0 1 1 0 0
0 0 1 1 1 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 0 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 0 1
1 0 0 1 0 0
1 0 0 1 1 1
1 0 1 0 1 0
1 0 1 1 0 1 |
N'dobro, sad jos treba "samo" minimizirati svih pet izlaznih varijabli u cemu ce nam najvise pomoci drug DeMorgan, drug Karnaugh ili drugovi Quine i McCluskey (bas tim redom), ovisno koliko smo perverzni ili koliko (ne)znamo digitalnu elektroniku. Kada smo to rijesili, treba li bi dobiti nesto u ovom stilu:
Kod: | X0 = D, X1 = CnotD, X2 = BD, X3 = AnotBnotD, X4 = AnotBnotD, X5 = AB |
Krajnji ishod bi trebao izgledati ovako:
http://www.imagesforme.com/images/8133nacin1.gif
Za one koji se osjecaju posebnima, u svakom slucaju preporucam realizaciju sa NAND, ljepse izgleda.
E sad ide ona vesela metoda, s kojom su neki, neznajuc sto ih ceka, vjerojatno nadobudno pokusali rijesiti zadatak. Da, stvar se zaista moze izvesti i sa FA-ovima, ALI...
Metoda kojom se rade takvi sklopovi popularna je kao brijanje bikini zone drot kefom ili sinhronizirano plivanje u klorovodicnoj kiselini, jer zahtijeva ogroman broj zica te ostalih sklopova (ovdje je potroseno 12 AND-ova i 2 FA, sto je ugrubo najmanje 5 16 pinskih chipova, onako od oka, da ne pricam o pullupovima, napajanju i ostalim divotama). Postupak je univerzalan i jednostavan za ispricat, no malo tezi za izvest (*pogotov* nekome kome je dig. terra incognita): bitovi mnozenika grupiraju se te se onda sa po dva bita mnozitelja stavljaju u AND sklopove i salju na zbrajalo (carry je u nuli, pritegnut na masu). I dalje se svaki bit mnozitelja, no ovaj puta pojedinacno (ne vise po dva) kombinira sa AND sklopovima i salje na FA, dok se zbrojeno iz predhodnog FA takodjer salje na slijedeci FA, pri cemu carry postaje LSB a S1 ide kao izlaz. U svakom koraku princip se ponavlja, a kada se "potrose" svi bitovi mnozitelja, izlaz carryja postane najvisi bit u produktu.
http://www.imagesforme.com/images/6470nacin2.gif
Huh, sitan je sat, valjda nisam nesto (previse) pogrijesio. Drvlje i kamenje, kuka i motika na onoga tko je ovako "precizno" zadao zadatak (da smo na FER-u, ajde de...). Ioako sami asistenti/profesori priznaju "kako je ovo "najtezi" predmet, da mu se ne posvecuje dovoljno paznje, truch truch yada yada" (ne kazem da to nije tako...), ali uz ovkva veselja koje matematicara *stvarno* (ali to bez trunke ustrucavanja, STVARNO) interesiraju jednako kao predsjednika Istocnog Timora kriza u Piranu, zar je za cudo? OTOH, sto se mene osobno tice, citav kolokvij moze biti ovakav, ali hej, it's only me...
Guest, HTH, uzivaj,
_________________ Biolozi misle da su kemičari. Kemičari misle da su fizičari. Fizičari misle da su bogovi. A Bog misli da je matematičar...
§ http://math2.ath.cx §
|