«« ( Date ) »» // «« ( Thread ) »» // vlsi-nastava - 2005

RE: Pitanje za asistenta , a iz za druge koji bi pomogli ;)

by Zoran Horvat
četvrtak, 21. april 2005 - 12:08.

1. Koristi dimenzije oblika 2^n, pa je tada ceil(log2(2^n))=n
2. Ako insistiras na ne-2^n brojevima, onda je ocigledno:
ceil(log2(2^n+k))=n + sign(k), k >= 0
, sto se svodi na pravilo: ako broj ima jednu jedinicu, onda je rezultat
pozicija te jedinice; ako ima vise jedinica, onda pozicija najteze
jedinice uvecana za 1.

Problem (2) je slozenosti O(n) ako se resava shift operacijom. Moze da
se resi u O(1) ako bi se napravio modifikovani tezinski koder koji
izdvaja najtezu jedinicu, uz modifikaciju da dodaje +1 na rezultat ako
najteza jedinica nije jedina - suludo komplikovan pristup u odnosu na
obican koder koji se koristi za resavanje problema (1) u O(1) vremenu.

Ako bi pravio da ti svi elementi imaju dimenziju 2^n, cak i tamo gde ih
ne koristis do kraja, nece glava da te boli. Npr. ako koristis 20 bita u
ROM memoriji, mozes slobodno da iskoristis ROM sa 32-bitnom sirinom reci
- jedan modul, nesto zica visi, i gotovo. Ako hoces da stedis, tj. da
nemas neiskorisceni prostor u ROM modulu: uzmes 3 modula sa 8-bitnom
sirinom reci ili 5 sa 4-bitnom. U oba slucaja - vise posla i vece
zauzece prostora na ploci. Euklid ne vazi u racunarstvu...

pozdrav,
zoranh

-----Original Message-----
From: Alic Bojan [mailto:nrider@panet.co.yu]
Sent: Tuesday, April 19, 2005 7:17 PM
To: vlsi-nastava@titan.etf.bg.ac.yu
Subject: [vlsi-nastava] Pitanje za asistenta , a iz za druge koji bi
pomogli ;)

Koju biblioteku da koristim da bih mogao iskoristiti operaciju 
Log2Upper ( broj) , tj. hteo bih da izracunam logaritam sa osnovom 2..
Mozda i ne koristim dobru definiciju matemeticke operacije...
 
Unapred hvala