Académique Documents
Professionnel Documents
Culture Documents
BLGSAYAR MMARS
Hafza Birimleri
- Random-access memory
- Read-only memory
- Memory Adresleme
- Saat areti (Clock)
Kontrol Birimi
Logisim
Merkezi lem Birimi (Central Processing Unit -CPU) : Merkezi lem Birimi temel olarak
Aritmetik ve mantksal ilemlerin yaplabildii birim ALU (Arithmetic logic unit), bu ilemlere
kaynak olan ve sonularnn tutulaca kaydediciler (Registers -- storage locations in the
processor) ve gerekli kontrol devrelerinden oluur. Burada hemen Akmlatr adl nemli
zellii olan bir kaydediciyi de tanmlayalm. Merkezi ilem biriminde ilemlere hem kaynak
olan hem de sonucun elde edilecei kaydediciye Akmlatr denir. Akmlatr rnein bir
toplama da toplanacak saylardan birini tutar ve sonuta yine Akmlatre yazlr.
Akmlatr (8Bit veri) + Yazc (8Bit veri) - Akmlatr (Sonu 8 Bit veri)
Merkezi ilem Birimleri bir bilgisayar mimarisinde en nemli tasarmdr, genellikle VLSI (Very
large scale integration) denilen teknikle retilmi yksek yar-iletken younluklu entegre
devrelerdir. Tm hafza, giri k, disk, monitr ve tu takm gibi evre cihazlar mikro ilemci
tarafndan kontrol edilir.
Baz uygulamalarda mikro ilemci ve zel baz evre birimleri tek bir chipe monte edilir. rnein
sadece bir grnt cihaz, yazc, tu takm, modem veya benzer elektronik kontroll devreler
aslnda bu tr mikro-denetleyici (Microcontroller VLSI chip) devreler ierir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Blok emada grld gibi merkezi ilem birimi ve hafza, giri/k devreleri gibi evre
birimleri arasnda veri, adres ve kontrol iaretlerinden oluan sistem yolu vardr. Bildiiniz gibi
bu ortak yol gsteriminde veriler, adres ve kontrol bilgileri hep "0" ve "1" lerden oluan 2'li
sistemde almaktadr. Bu amalar saysal devreler konusunda ilediimiz temel saylandrma
sistemlerini ve ikili aritmetik derslerini gzden geirmenizi dileriz.
Bilgisayar Aritmetii
Bilgisayar Mimarisi'nde toplama ve karma ilemleri 2'nin tmleyeni ynetimi ile yaplarak
yukarda bahsedilen iki nemli sorundan da arnabilir. 2"nin tmleyeni ikili dzende bir saynn "0"
lar yerine "1" 'ler gelmesi (tersinin alnmas) ve daha sonra bir arttrlmas ile salanr. Yani
tmleyen iin;
1. Tm birleri sfr veya tm sfrlar bir yap
2. Sonuca bir ekle Formulu gererlidir.
Burada tm iaretli saylarn en soldaki en arlkl bit ile temsil edildiini unutmamalyz.
rnek: +5: 0000 0101 -5'i bulmak iin: nce tm sfrlar bir ve tersini yapalm 00000101 >
11111010
Sonra bir ekleyelim 11111010+1 > 11111011: -5
En bataki 1 eksi say olduunu belirler. Daha fazla pratik yapmak istiyorsanz Saysal Devreler
notlarna bakabilirsiniz. Aada toplama ve karma rnekleri grmekteyiz. Bu ilemlerde Elde,
dn ve Tama kavramlarna da bir miktar yakndan bakalm.
Toplama:
aretsiz Saylar: aret biti yok
01110101 : 117
11111111 : 255
+ 01100011 : 99
+ 00000001 : 1
----------------
----------------
11011000 : 216
10000000 : 256
|
Carry
aretli Saylar:
11111111 : -1
11111111 : -1
+ 00000001 : 1
+ 11111111 : -1
----------------
----------------
100000000 : 0
|
111111110 : -2
Sign(+)
Sign(-)
00000101
- 1 : - 00000001 + 11111111
---------------- ----------
------
1 : 00000001
00000001
- 5 : - 00000101 + 11111011
---------------- ---------111111100 :-4 CARRY menas BORROW
imdi yandaki blok diyagramda temel Aritmetik Mantksal deverelerin tasarmn grelim. Aritmetik
ilemlerde aadaki srada ilemler yrr:
Kontrol devresi aritmetik ilem komutunu alglar. rnein belirlenmi bir hafza gzndeki veri
Akmlatr zerindeki veri ile toplanmas istenmektedir.
Toplanacak say B kaydedicisine alnr. B kaydedicisindeki veri akmlatrdeki veri ile Logic
devreler (Full Adder) ile toplanr ve sonu tekrar akmlatrde saklanr.
Akmlatr (8Bit veri) + Yazc (8Bit veri) - Akmlatr (Sonu 8 Bit veri)
Akmlatrdeki veri bir sonraki ilemlerde kullanlmak iin saklanr veya daha sonra tekrar yeni bir
hafza gzne alnr. Bu devrenin tasarmna gemeden nce ileme biraz daha yakndan bakalm.
Tek bitlik A ve B girileri olan Elde Bitini bir nceki tek bitlik toplam devresinden alan (C IN) ve
incelediimiz Tam Toplama deveresinde doacak elde bitini de bir sonraki parallel tek bitlik
toplama devresine tayan (COUT) devrenin aritmetik tablosu yandaki gibidir.
Karnough Diyagramlarn biraz aarsak toplama ileminin aritmetik kanunlar gerei aadaki
rnekle ile zmleyebiliriz.
- A ve B girileri sfr iken (A, A'nn stnde izgisi olmas ile ifade edilir) C IN sfr ise S=Toplam sfr
olmakta, CIN bir ise toplam "1" olmakta ve COUT k her iki koulda da sfr olmaktadr.
(Diyagramlarda 1. satrlar)
- A girii sfr, B girii bir iken CIN girii sfr ise S (toplam) bir olmakta ve CIN girii bir iken toplam sfr
olmaktadr. (2. satr, soldaki tablo)
- A girii sfr, B girii bir iken CIN girii sfr ise COUT k (tanan elde) sfr olmakta ve CIN girii bir
iken toplam COUT k bir olmaktadr. (2. satr, sadaki tablo)
Aadaki tabloada bunlar zetlenmitir:
Yukardaki tablolar basit 2'li dzendeki aritmetik bilgisi ile de bulabiliriz. imdi Karnough
Diyagramlarndan mantksal formln bulduumuz Tam Toplama devresinin tasarmn grelim.
Yandaki devrede FA (Full Adder) ismi verilen temel bir bitlik toplama birimi grlmektedir. Bu
devrede A ve B girilerinden giren saysal tek bitlik bilgi toplanmakta, S (Toplam k yine bir
nceki haneyi toplamada kullanlan benzer tek bitlik bir Full Adder biriminden gelen C IN verisi ile
birlikte ele alnarak belirlenmektedir.
Bu noktada artk Bilgisayar Mimarisi tasarm iin Logisim simulatrn kullanacaz. Ltfen
ncelikle Java Simulatrleri blmnden Logisim zelliklerini okuyunuz. rnek uygulamalara
baknz ve konumuz olan 2'li dzende paralel toplama devresi iin Logisim Uygulama rnekleri
iinde Logisim Temel Devreler blmn inceleyiniz.
4-Bit Ripple Carry Adder devresi (4-Bit Ripple Carry Adder devresine, View Circuit seenei ile veya
ift tk yaparak eriebilirsiniz) yukarda anlattmz gibi Full Adder deverelerinin paralel balanmas
ile elde edilmitir.
Paralel Full Adder devrelerinde elde bitinin yaylmn bu rnekte daha iyi anlayabilirsiniz.
- lk olrak t1 annda vir CLR (clear veya reset) iareti sreci balatr. Akmlatr sfrlanr.
- t2 annda 2'li dzendeki ilk verimiz 1001 B kaydedicisine yklenir.
- t3 iareti ile 1001 ve 0000 toplam tekrar A kaydedicine yklenir.
- t4 iareti ile ikinci veri 0101 B kaydedicisine hafzadan yklenir.
- t5 darbesi ile tekrar toplam klar A kaydedicisine ykelenir.
- Ve 2'li dzendeki iki verinin toplam artk Akmlatr'de hazrdr.
Toplama iin A ve B girilerindeki saysal veriler dorudan verilmekte ve Elde Biti girii Cin=0 sabit
olarak verilmektedir.
karma ilemi iin ise A girii dorudan verilmekte B'nin ise tm bitler tersine evirilerek o ekilde
verilmektedir. Elde Biti karma ileminin daha nce grdmz tanmna gre Cin=1 dir. Bu
ekilde tmleyen alnmtr. Bu iki ilemi birden tek bir Full Adder devresinde yapabiliriz.
Aadaki devreyi inceleyin. ADD simgesinin stndeki izgi o giriin "0" olmas durumunda etkin
olduunu gsterir.
girii "0" ise toplama yaplmasn, "1" ise karma ilemeni belirler.
Entegre olarak tasarlanm sadece karma ilemi yapan bir devre aada grlmektedir. Burda (AB) ileminin yaplmas iin yine 2'nin tmleyeni yntemi kullanlmaktadr. kartlacak say (B) nin
tersi alnmakta ve 1 arttrma ilemi iin C0 = 1 yaplmaktadr.
Ayn Full Adder entegre devresi ile hem toplama hem de karma ilemi yapabiliriz. Aadaki
tasarmda 4 Bit'lik tam toplama ve 2'nin tmleyeni yntemi ile karma yapan devre tasarm
grlmektedir.
Logisim simulatrn ap alu.circ dosyasn ykleyin. Aadaki devreyi elde edeceksiniz. Devreyi
altrn ve ilem seenekleri ile A ve B girileri zerinde 4 ilemin sonularn inceleyin.
ALU devreleri daha nce grdmz toplam-karma yapan devreler gibi paralel balanarak 2"li
tabandaki veriler zerinde alabilirler. Logisim simlatrnde 6bit_ALU.circ dosyasn ykleyerek
aadaki devreyi inceleyiniz. Paralel alan ALU'larn fonksiyonlarn 6Bit'lik A ve B 2'li dzendeki
veriler zerinde ilemleri inceleyiniz.
Fonksiyon tularn seerek AND, OR, TOPLAMA ve IKARMA (Giriin tersini alma, Cin giriine+1
vererek Tmleyenini alma ve toplama) ilemlerini deneyrek bulunuz.
Aritmetik ve mantksal ilemlerin temel deverelerini grdkten sonra tm bu fonksiyonlar ieren
baz entegre devrelere bakalm.
- Aadaki 74LS382 entegre devresi yine 2'li dzende alan fonksiyon belirleme ular (S) seimi
ile deiik aritmetik lojik fonksiyonlar yerine getirir.
- S0, S1 ve S2 bitlik olduundan daha once saysal devrelerde grdmz gibi 2 3 = 8 deiik
fonksiyon tanmlanmtr.
Temel 74HC382 ALU entegreleri parallel balanarak 8 Bit'lik veya daha yksek kelime
uzunluundan Aritmetik ve Lojik ilemler yaplabilir.
Bilgisayar Mimarisi blok diyagramnda dier bir temel arabirim de hafza devreleridir. Hafza
birimleri esas olarak D Tipi Flip-Flop mantk devreleridir. Saysal Devreler'de D Tipi Flip-Floplarn
alma dzenini anlatm ve kendin tasarla ve dene simulatr devresini de vermitik.
HAFIZA BRMLER
Random-access memory
Ksaca Flip Flop'larn 1 Bit'Lik hafza birimleri yazclarn ise flip-flop'lardan oluan ve belirli saat
darbeleri ile alan saklama birimleri olduunu hatrlayalm. Yar iletken teknolojisi asndan
hafza birimleri ikiye ayrlr:
- Random-access memory (RAM): Rastgele Eriimli hafza birimleri istenilen an adreslenerek
eriilebilen yazama ve okuma yaplabilen paralel eriimli devrelerdir.
- Read-only memory (ROM): Mirkro lemci tarafndan sadece okunabilen devrelerdir.
Random-access memory
- Dynamic random-access memory (DRAM): DRAM'lerde hafzada tutulan bilginin tutulabilmesi iin
periyodik tazeleme iaretleri gerekir.
- Static random-access memory (SRAM): Periyodik tazeleme iaretlerine ihtiya duymaz.
Read-only memory
- Mask-programmed read-only memory (MROM): retim aamasnda programlanlan ROM hafza
birimleri.
- Programmable read-only memory (PROM): BIOS chipleri gibi daha sonra programlanabilen hafza
birimleri.
- Erasable programmable ROM (EPROM)
1. Belirli ulara gerilim verilerek yazma konumuna geirilir ve tekrar tekrar yazlabilir.
2. Ultraviolet ile silinir.
3. Ancak tm chip bir btn olarak silinir.
- Electrically erasable programmable ROM (EEPROM)
1. Belirli ulara gerilim verilerek yazma konumuna geirilir ve tekrar tekrar yazlabilir.
2. Belirli ulara gerilim verilerek silme konumuna geirilir ve tekrar tekrar silinebilir.
3. Sadece bir hafza biti, bir sra bitler veya tm silinebilir.
- Flash memory
1. Elektriksel olarak birok defa yazlabilir.
2. Elektriksel olarak birok defa silinebilir.
3. Ancak tm bir btn olarak silinebilir.
Memory Adresleme
Yandaki ekilde bir hafza entegresi grlmektedir. Grld gibi A0-A15 aras 16 Bit adresleme biti
olduunda bu chip'te toplam 216 = 65,536 (64K) hafza gz olduunu anlyoruz.
2'li dzendeki adres bilgisi entegre iindeki De-Multiplexer (Bilgi Datclar) ile zmlenerek
sadece bir hafza gzn iaretler.
Mikro lemci ile Hafza birimleri arasndaki veri transferi adresleme yolunun iaret ettii gz ile
yukardaki ekilde grlen D0..D7 veri bitleri zerinden (Veri Yolu) olur.
KONTROL BRM
Kontrol Birimi
Bu noktaya kadar 2'li dzende alan Bilgisayar Mimarimizin aritmetik ve lojik ilemler yapan
devrelerini, yazclar devrelerini, hafza devrelerini grdk. ALU aritmetik ve lojik ilemler yannda
akmlatr devreleri zerinde dndrme ilemleri de yaparlar.
Bildiiniz gibi 2 ile arpma sadece sayy SOLA TELEME'dir.
Deneyerek grebilirsiniz: 0000 00110 (Onluk tabanda deer 6 olan 8 haneli bir say)
Bu says 2 ile arpmak iin sadece sola doru kaydryoruz. 0000 1100 (sadan sfr giriyor) ve bu
saynn deeri ise onluk dzende 12'dir, yani 6x2. 2'li dzende Binary dzen 2 ile arpmak sola
doru bir hane kaydrmak 2 ile blmek ise saa doru bir hane kaydrmaktr. Bu ilemlerin tm de
Akmlatr zerinde yaplr.
Blok diyagramdaki nc biri kontrol birimidir. Bu birim program gerei Aritmelitk lojik devrelere,
hafza birimlerine senkronize iaretler gndererek tm mimariyi ynetir.
Kontrol birimi arka arkaya dizilmi komut kmeleri ile alr. Tipik bir kontrol birimi ok deiik
komut kelimelerini zer ve gerekli iaretleri retir.
Aada buraya kadar grmz temel birimler ile tasarlanm temel bir bilgisayar grlmektedir.
Kontrol birimin retecei C0 ve C1 iki bitlik bir veri ile 22 = 4 deiik tip komut (talimat)
belirlenebilmekte bu kontrol iaretleri ALU birimine kontrol ederek ilemleri belirlemektedir. IN
veri yolundan gelen bilgi A ve B kaydedicilerine yazlarak ilemler yaplabilmektedir. OUT is
ilemlerin sonucudur.
Bir bilgisayarn nasl altn daha iyi anlayabilmek iin bir btnlk iinde katmanlar
grebilmeliyiz. Komut kmesi mimarisi (ISA) bir bilgisayar donanmnn, alt dzey programcya
(sistem programlarna) grnen yzdr.
Merkezi lem Birimi
- Adresleme Kipleri, komut yaplar. rnek MC68000, P4
- CISC (Complex Instruction Set Computer)
- RISC (Reduced Instruction Set)
- hatt (Pipeline)
- Giri/k Organizasyonu
- evre birimleri
- El skma
- Kesme
- Vektr, ncelik, i ie kesmeler
- Dorudan Bellek Eriimi (Direct Memory Access - DMA)
- Bellek Organizasyonu
- Cep bellek (Cache)
- Grnt bellek (Virtual Memory)
- Bellek Ynetim Birimi
- Kayan Noktal Saylar (Floating Point Numbers)
eitli zeliklerine gre deiik gruplara ayrmak mmkndr.
1. Komut yaplar, saylar ve adresleme kiplerine gre:
a) CISC (Complex Instruction Set Computer)
b) RISC (Reduced Instruction Set)
2. Operand saylarna gre:
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Harward Mimarisi
Komutlar ve veriler farkl belleklerde yer alrlar. Adres ve veri yollar farkldr, bylece ayn anda
komut ve operand eriimi yaplabilir.
Daha yaknda ve gereki bir bak as ile merkezi ilem birimine baktmzda:
- Veri leme Birimi: Saklayclar, aritmetik-lojik birim, kayan noktal ilem birimi, i hatt gibi
blmlerden oluur. Veriler zerinde ilemlerin yapld birimdir.
- Denetim Birimi: Komutlar zer ve yorumlar. Veri ileme birimini oluturan elemanlar ynetir.
Bir senkron ardl saysal devre yapsndadr. Devrelendirilmi (hardwired) ya da mikroprograml
olarak gereklenir.
Daha nce grdmz gibi bir Merkezi lem Birimi'nin anlaml bir i yapabilmesi icin, iki tane
eye ihtiyac vardr: Komutlar (instructions) ve Veri (Data). Komutlar Merkezi lem Birimi'ne
veriler zerinde ne gibi ilem yaplacan bildirirler. Verilerin bilgisayarda nasl temsil edildiklerini
grdk ve imdi komutlarn nasl temsil edildiine biraz daha yakndan bakalm. Komutlarda daha
nce grdmz gibi 2'li dzende temsil edilirler. Aslnda merkezi ilem birimi iin hafzada sakl
2'li dzende komut veya veri'yi birbirinden pek farkl deildir.
lkel hesaplayc cihazlar iin esnek olarak yani kolaylkla progranabildikleri dnlmezdi.
Programlar kontrol nitesi iinde her makinenin farkl bir paras olarak tasarlanr ve burdan
iletilirdi. Yeni bir gelime programlarn anabellekte depolanmas ve burdan yrtlmesinin
salanmas eklinde ortaya kt. Eer kontrol nitesi programlar ana bellekten yrtebilecek
ekilde tasarlanrsa programlar sadece ana bellekteki program kodlarn deitirebilecek dolaysyla
control nitesinin tekrar tekrar her ilev iin donanmsal olarak tasarlanmas gerekmeyecekti. Bu
depolanm program kavram bgn de kullanlan bir standart halini almtr. Bunu uygulamak iin
makinenin bit dzeyinde komutlar alglayabilecek ekilde tasarlanmas gerekir. Bu komutlarn
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
btn ve beraberinde gelen kodlama tekniine "makine dili" denir. Bu dil bizim algortimalar
aracl ile makinalarla iletiim kurabilmemizi salar.
CPU (Central processing unit, merkezi ilem birimi)' ne giri bilgisi olacak btn veriler bellekte
saklanr. Bir Merkezi lem Biriminin alma Dngs blmnde sonlu durumlu ardl makine
olarak tasarlanan merkezi ilem birimi drt durumdan birinde bulduunu grmitik:
1. Komut alma evrimi
2. Operand alma evrimi
3. Komut yrtme evrimi
4. Kesme evrimi
PIPPIN Sanal Merkezi ilem Birimi blmnde bunu biraz daha basitletirerek bir Merkezi lem
Birimi, komutu getir (fetch instruction), kodu z (decode) ve yrt (execute) ilemlerini yerien
getirdiini kabul edelim. Bu sree "fetch-decode-execute cycle" ad verilir.
PIPPIN sanal Merkezi lem Birimimizde sre komutun bellekten veri yolu ile IR (Instruction
register, komut kaydedicisi)' ne alnmas ile balar. IR'de 2'li dzendeki komut (makine dili) bir
sonraki birim olan Kod z'c de zlr. Bu bileen evrimin ikinci admndan sorumludur. Kod
zc bit paternine bakarak gerekli ilemleri yrtmek iin bu ilemler iin hazr olan donanmlar
aktif eder. Bazen komut, verinin bellekten okunmasn ve matematiksel ilemlerin
gerekletirilmesi iin ALU (Arithmetic logic unit, aritmetik mantk nitesi)' yu aktif hale getirir. Bu
ilem bir kere gerekletiinde, bu evrim bir sonraki komutla yeniden balar. Merkezi iem Birimi
her zaman bir sonraki komutu nerede bulacan bilir nk program sayac devam eden komutun
adresini tutar. Bir komut tamamlandnda her zaman program sayac bir sonraki bellek adresine
ilerler. (Kesme komutlar hari.)
PIPPIN Sanal Merkezi lme Birimi'nde her bir makine komutu iki blmden oluur. Op-code
(Operation Code, lem Komutu) ve operand. Op-Code alanndaki bit paterni rnein STORE veya
JUMP gibi hangi temel ilem kodu olduunu tanmlar. STORE veya JUMP komut tarafndan istenen
operand alannda bulunan bit dzeni op-code tarafndan belirtilen operasyonla ilgili detayl bilgi
salar. rnein STORE ilemi iin operand alanndaki bilgi hangi kaydedicinin depolanm veriyi
ierdiini ve hangi bellek hcresinin veriyi alacan belirler.
Resimde grld gibi PIPPIN'de lk bit op-code' yi gsterir ve son alt bit operan' d gsterir.
Ortadaki bit (Number Bit) Operand alanndaki 2'li dzendeki paternin bir hafza gznm
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
adreslediini veya doprudan veri ierdiinimi gsterir. Sana Mikro lemcimizde Number Bit=1 ise
Operand alanndaki veri dorudan ileme girecek bilgidir.
Aadaki tabloda PIPPIN iin baz makine kodlarnn listesi verilmitir. Btn op-code' lar
programlamay basitletirmek iin ngilizce ilk harflerinden oluan tanmlamaya "mnemonic"
(anmsatc) ad verilir. Bu mnemonic' lerin bir araya gelmesine assembly dili denir. Assembly dili ile
yazlan programlar CPU'nun anlayabilmesi iin ikili gsterim ekline dntrlmelidir. Genellikle
bu ilem assembler denen baka bir program ile yaplr.
Dikkat edilirse yukardaki makine dili gsteriminde baz operandlar # simgesi iermektedir. Bu
simge ilemcimize operand alannda memory adresi deil, dorudan bir veri olduunu gsterir.
Dolaysyla assembler komutu # simgesi ile evirdiinde sonutaki makine kodu say bitini
gsterdii konumda "1" rakam olur. Ayrca Accumulator kaydedicisinin oynad role dikkat edilirse
neredeyse btn ilemler bu kaydedicinin deerini etkiler. Accumulator devam eden hesaplama
ilemlerini geici olarak saklad bellek konumu gibi hareket eder. Makine dili tanmlamamzla
birlikte imdi baz basit programlara bakabiliriz.
rnek (Toplama): lk programn ad toplama. Bu program iki bellek blgesinde konumlanm
verileri toplamaktadr. Matematiksel olarak bu programn gsterdii forml x+y=z eklindedir. x=2,
y=5 olacak ekilde deerleri batan vermekte bunlar 13 ve 14 adresli hafza gzlerine saklamakta
ve sonra da bunlar toplamaktayz. Aada bu programn 2'li dzende ve mnemonic'ler ile makina
dilinde yazlm halini grmekteyiz.
imdi toplam programnn PIPPIN Sanal Merkezi lem Birimi tarafndan nasl yrtldn
aadaki animasyon ile grelim.
kinci programn ad sayatr. Bu program programcnn ilk komutla belirttii sayya kadar sayar.
Programn JUMP ve EQUAL komutlar ile dng yaps ierdiine dikkat edin. Her zaman
accumulator iindeki deer azaltlarak istenilen miktara ulap ulamad denenir. Aada bu
programn da 2'li dzende ve mnemonic'ler ile makina dilinde yazlm halini grmekteyiz.
imdi sayma programnn PIPPIN Sanal Merkezi lem Birimi tarafndan nasl yrtldn
aadaki animasyon ile grelim.
PIPPIN (Emlatr)
PIPPIN Sanal Merkezi lem Birimi ile Program Yrtlmesi
Artk PIPPIN Sanal Merkezi lem Birimine program yklemeyi ve bu programn yrtlmesinin
simlasyonunu grebiliriz.
Simlatr ierisinden dosya kaydetme ve/veya ykleme ileminde hata alyorsanz bu ilemleri
uygulaynz.
"C:\Program Files\Java\jre1.x.x_xx\lib\security" dizinine gidin ve "java.policy" dosyasn an.
"grant { };" ierisine "permission java.security.AllPermission;" satrn girerseniz tm izinleri aktif
etmi olursunuz. Ancak bu durumun gvenlik problemi oluturmas ihtimali vardr. Bunu
yapabileceiniz gibi "permission java.io.FilePermission "*", "read, write, delete"" anahtar ile
sadece dosya yazma izinlerini dzenleyebilirsiniz. java.policy dosyasnn konfigre edilmesi
hakknda daha detayl bilgi almak iin buraya tklayn.
rnek Uygulamalar
Aadaki Program 1, 2 ayr sayy toplayan bir algoritmadr. Mnemonic'leri aadaki PIPPIN
Simulatrne girin. ster basamak basamak her komutun yrtlmesini, bu sre iinde komut
alma evrimini, yrtme evrimini ve hafzann nasl deitiini grebilirsiniz.
Bu simulatr ile assembly dilinde yazlm programlarn 2'li dzendeki karln bulabilirsiniz.
Kontrol tularnn olduu blmdeki Seymbolic/Binary butonlarna tklayarak grebilirsiniz. Bu
noktada bilginin (2'li dzende saylarn, hafza gzlerinin veya ilem komutlarnn bilgisayar
mimarisinde gerekte nasl 2'li dzende tutulduunu ve insann anlayabilmesi iin nasl sembolik
hale dntrldne dikkat edin.
Simulatrn sa tarafnda, RAM alanndaki hafza gzlerinin (0,2,4,..14) 2'er 2'er artmas
simulatrmzn yapsndan kaynaklanmaktadr. Kontrol tular blmndeki RESET, STOP STEO,
PLAY ve RUN tular simulatrn komutlar yrtmesi iin kullanlr. STEP tuu sadece bir komutun
yrtlecei Single Step anlamndadr.
CPU simalutrmzn 0,2,4 ve 6 nolu hafza gzlerine aadaki sembolik komutlar sra ile girin.
LOD #2
ADD Y
MUL X
STO W
ykleyebilirsiniz. Hazrladnz program paracklarn kendi PC'nize de sklama imkannz var. Ancak
java uygulamalarnn varsaylan olarak diskiniz zerinde ilem yapmas gnvelik sebebiyle kapaldr.
Bu da java.io.FilePermission hatas almanza neden olacaktr. Bu hatay almamak iin simlatrn
alt tarafnda yer alan ilemleri uygulayn:
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 14 03 05 80 14 07 05 81 00 80 05 82 0F 00 00 00
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
08 03 07 0A 00 00 00 00 00 00 00 00 00 00 00 00 00
09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Not: Not: Ltfen komutlarn arka arkaya 2 hafza gzn kapladna dikkat edin. Bu sebeple PC
Program sayac her komut sonunda 2'er 2'er artmaktadr. (2-byte instructions (opcode +
operand) .
Not: Hexadecimal 80, 82...gibi hafza gzleri W, X ve Y ile simgelenmitir.
- Program 2:
Aadaki Program 2 ise, aaya doru saym yapan bir sayatr.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Farkl ve yine basit bir saya program iin LOOP1.DAT dosyasn ykleyebilirsiniz.
PIPPIN Assembly Dili ile rnek Programlar
Aadaki tabloda soldaki dosyalar, komutlar ve aklamalar ieren text formatnda programlardr.
Ayrca programlarn yrtlmesi srasnda baz talimatlar da ierir.
Sa taraftaki dosyalar PIPPIN Sanal Merkezi lem Birimimiz iin emlatr dosyalardr. Bunlar
PC'nize ykleyim daha sonra PIPPIN sanal Merkezi lem Birimi'ni altrn. Bu dosyalar PC'nizden
emulatre ykleyip makine dilinde komutlar, 2'li dzende karlklarn ve sanal merkezi ilem
birimimizin bu programlar nasl yrttn grebilirsiniz.
parity.dat program dosyas (PIPPIN emlatr iin)
primcomp.dat program dosyas (PIPPIN emlatr iin)
sort3.dat program dosyas (PIPPIN emlatr iin)
sort4.dat program dosyas (PIPPIN emlatr iin)
Description
Instruction
Binary
Hex
00 XX
ADD X
Example: Add value stored at memory address 128 (10000000 binary, 80 hex,
variable W) to contents of accumulator.
00000000 10000000
00 10
ADD W
10 XX
ADD #n
00010000 00101101
10 2D
ADD #45
01 XX
SUB X
00000001 10000001
01 11
SUB X
SUB #n
Example: Subtract the number 27 (00011011 binary, 1B hex) from accumulator:
00010001 00011011
11 1B
SUB #27
02 XX
MUL X
00000010 10000010
02 12
MUL Y
12 XX
MUL #n
00010010 00000101
12 05
MUL #5
03 XX
DIV X
00000011 10000011
03 13
DIV Z
DIV #n
Example: Divide accumulator by the number 10 (00001010 binary, 0A hex):
00010011 00001010
13 0A
DIV #10
Load the accumulator with the 8-bit value stored at referenced memory address.
Address Mode = Direct
00000100
bbbbbbbb
04 XX
LOD X
Example: Place value stored at memory address 132 (10000100, 84 Hex, variable
T1) into accumulator.
00000011 10000011
03 13
DIV Z
13 XX
LOD #n
Example: Place the number 100 (01100100 binary, 64 hex) into accumulator.
00010100 01100100
14 64
LOD #100
Store the contents of the accumulator into the referenced memory address.
Address Mode = Direct
00000101
bbbbbbbb
05 XX
STO X
00000101 10000101
05 15
STO T2
If the accumulator contains 0 then set the accumulator to 1; otherwise set the
00001001
00000000
09 00
NOT
accumulator to 1.
Assume any non-zero value = TRUE and 0 = FALSE; NOT inverts the "truth" of the
accumulator.
00001010
0A XX
CPZ X
Compare X with Zero; if the contents of the referenced memory address = 0, set
the accumulator to 1 (TRUE), otherwise set accumulator to 0 (FALSE). e.g. TRUE
bbbbbbbb
or FALSE: "Does X = 0
Address Mode = Direct
00001010 10000001
0A 11
CPZ X
Compare X with Zero; if the contents of the referenced memory address is LESS
than 0, set the accumulator to 1 (TRUE), otherwise set accumulator to 0 (FALSE).
e.g. TRUE or FALSE: "Is X < 0
Address Mode = Direct
00001011
bbbbbbbb
0B XX
CPL X
Example: Set the accumulator to 1 (TRUE) or 0 (FALSE) depending on whether
the value in memory address 130 (10000010 binary, 82 Hex, variable Y) < 0.
00001011 10000010
0B 10
CPL Y
0C XX
JMP n
00001110 00001110
0C 0E
JMP 14
0D XX
JMZ n
00001101 00000100
00001110
0E 00
NOP
0D 04
JMZ 4
00000000
00001111
00000000
0F 00
HLT
Halt execution; Control Unit does not fetch any more instructions.
LOGISIM
Logisim'e Giri
Logisim saysal mantk devrelerini tasarlamak ve simle etmek iin eitimsel bir aratr. Basit ara
ubuu arayz ve ina ettiiniz devrelerin simlasyonu ile, mantk devrelerine bal en temel
kavramlar renmeyi kolaylatrmak iin yeterince basittir. Kk alt devrelerden byk devreler
ina etme ve tek bir fare srklemesi ile kablo paketleri izme yetenei ile Logisim, eitimsel
amalar iin tm CPU' lar tasarlamak ve simle etmek iin kullanlabilir (ve kullanlmaktadr).
Logisim, bilgisayar bilimi aratrmasnn genel eitiminde mantk zerine zet bir niteden
balayarak bilgisayar organizasyon kurslarna, bilgisayar mimarisi zerine tam dnem kurslarna
kadar bir ok eit derste dnya apnda kolejlerde ve niversitelerde renciler tarafndan
kullanlmaktadr.
zellikler
Java 1.4 yada daha st destekleyen herhangi bir makinede alr; MacOS X ve Windows iin
zel versiyonlar gncellendi. apraz-platform doas, ev/yatakhane bilgisayar sistemlerinin bir
trne sahip renciler iin nemlidir.
izim arayz bir sezgisel ara ubuuna baldr. Renk-kodlu kablolar bir devreyi simle
ederken ve hatasn ayklarken yardmc olur.
Kablolama arac bileenlere ve dier kablolara otomatik olarak balanan yatak ve dikey
kablolar izer. Devreleri izmek ok kolaydr!
Tamamlanm devreler bir dosyaya kaydedilebilir, bir GIF dosyasna dntrlebilir veya
yazcdan yazdrlabilir.
Devre planlar dier devrelerin "alt devreleri" olarak kullanlabilir, hiyerarik devre tasarmna
izin verir.
Dahil edilmi devre bileenleri giri ve klar, geitleri, oklayclar, aritmetik devreleri, iki
durakllar ve RAM hafzasn ierir.
Dahil edilmi "kombinasyonel analiz" modl, devreler, doruluk tablolar ve Boole ifadeleri
arasnda dnme izin verir.
Logisim' i download etmek iin buraya tklaynz...
Logisim saysal mantk devrelerini tasarlamak ve simle etmek iin eitsel bir aratr. Basit ara
ubuu arayz ve ina ettiiniz devrelerin simlasyonu ile, mantk devrelerine bal en temel
kavramlar renmeyi kolaylatrmak iin yeterince basittir. Kk alt devrelerden byk devreler
ina etme ve tek bir fare srklemesi ile kablo paketleri izme yetenei ile Logisim, eitimsel
amalar iin tm CPU lar tasarlamak ve simule etmek iin kullanlabilir (ve kullanlmaktadr). Tm
dnyada kolejlerdeki ve niversitelerdeki renciler Logisim'i farkl amalar iin kullanmaktadr,
rnein:
Fakat kat zerinde bir anlamnn olmayaca bir gerektir. lemimizi dorulamak iin onu
Logisim'e izeceiz ve test edeceiz. Eklenmi bir bonus gibi, muhtemelen elinizle izeceinizden
daha gzel bir devre elde edeceiz.
0. Adm:
Logisim'i balattnzda aadakine benzer bir pencere greceksiniz. Farkl bir sistem kullanyor
olabileceinizden baz detaylar farkllk gsterebilir.
Tm Logisim aratrma penceresi (explorer pane), znitelik tablosu (attribute table) ve alma
alan (canvas) olarak adlandrlan paraya ayrlr. Bu ksmlarn stndekiler men ubuu (menu
bar) ve ara ubuu (toolbar) dr.
Bir devreyi ina etmek, daha sonra devreye kablolar balamak iin bir tr iskelet gibi ncelikle
geitleri ekleyerek daha kolaydr. lk yapacamz ey iki AND geidi eklemektir. Ara ubuundaki
AND aracna tklayn ( listelenmi son aracn yanndaki). Dzenleme alannda AND geidinin
konaca yere tklayn. Solda bo yer braktnzdan emin olun.
AND geidinin sol tarafndaki be noktaya dikkat edin. Bunlar kablolarn balanabilecei yerleri
gsterir. XOR devremiz iin bunlardan sadece iki tanesini kullanabiliriz; fakat dier devreler iin
ikiden daha fazla kablonun AND geidinde kullanlabilir olacan grebilirsiniz. imdi dier geitleri
ekleyin. ncelikle OR aracna ( ) tklayn; ardndan istediiniz yere tklayn. NOT aracn ( ) sein
ve alma alanna iki adet bu geitten koyun.
NOT ve AND geitleri arasnda bir miktar mesafe braktm; buna ramen eer istiyorsanz onlar
birbirinin stne koyabilir ve daha sonra kablo izme zahmetinden kendinizi kurtarabilirsiniz.
imdi diyagrama iki adet x ve y girii eklemek istiyoruz. Giri pinini( ) sein ve pinleri yerletirin.
Ayn zamanda OR geidinin kndan sonra bir k pini ( ) yerletirmelisiniz. (Yine OR geidi ve
k pini arasnda bir miktar boluk brakyorum, siz birbirine yakn yer seebilirsiniz).
Logisim kablolar geitlere ve birbirine otomatik olarak balar. Bu yukardaki gibi kablolarn
birbirine bal olduunu belirten bir T kavanda otomatik olarak daire izilmesini kapsar. Kablolar
izdiinizde baz mavi veya gri kablolar grebilirsiniz. Logisim'de mavi bu noktadaki deerin
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
"bilinmeyen" olduunu ve gri kablonun herhangi bir eye bal olmadn belirtir. Bu imdilik
byk bir marifet deildir. Fakat devrenizi tamamladnzda kablolarnzdan hi biri mavi veya gri
olmamaldr. (OR geidinin balanmam bacaklar hala mavi olacaktr: Sorun yok). Eer
balanabilecek hereyi dndkten sonra hala mavi veya gri kabloya sahip iseniz birey yanl
gidiyor demektir. Kablolar doru yerlere balamanz nemlidir. Logisim bileenler zerine
kablolarn
balanabilecei
yerleri
gsteren
kk
noktalar
izer.
lerlediinizde noktalarn maviden ak ya da koyu yeile dndn greceksiniz. Tm kablolarnz
baladnz zaman, eklediiniz kablolarn tm ak ya da koyu yeil olacaktr.
Giri pinlerinin her ikisinin de 0 ierdiine; ve bylece k pininin de 0 ierdiine dikkat edin. Bu
bize her iki giri 0 olduunda devrenin 0 hesaplayacan syler.
imdi baka giri kombinasyonlarn deneyelim. Darbe aracn ( ) sein ve girilerin zerine
tklayarak onlar darbelemeye balayn. Bir girii her darbelemenizde deeri deiecektir. rnein,
alttaki girii bir kez drtelim.
Giri deerini deitirdiinizde, Logisim size kablolarda hareket eden deerlerin ne olduunu,
kablolar 1 deeri belirmek iin ak yeil yada 0 deeri belirtmek iin koyu yeil (neredeyse siyah)
izerek gsterecektir. k deerinin 1'e dntn grebilirsiniz. imdiye kadar doruluk
tablomuzun ilk iki stununu test ettik ve klar (0 ve 1) tahmin ettiimiz klarla uyumaktadr.
Anahtarlar farkl kombinasyonlar zerinden darbeleyerek dier iki stunu dorulayabiliriz. Eer
tm tutarsa, baardk demektir: Devre alr!
Tamamlanm iinizi saklamak iin devrenizi kaydetmek yada yazdrmak isteyebilirsiniz. Dosya
mens (File menu) buna ve ayn zamanda Logisim'den kmanza izin verir. Fakat imdi neden
kasnz ki?
Artk klavuzu tamamladnz, Logisim'i kendi devrelerinizi ina ederek deneyebilirsiniz. Eer ok
karmak zelliklerde devreler ina etmek istiyorsanz, dier yapabileceiniz eyleri grmek iin
yardm sisteminin geri kalann taramalsnz. Logisim byk devreleri ina ve test etmenize izin
veren gl bir programdr; bu adm adm ilem sadece yzeyi trmalar.
Ktphaneler ve znitelikler
Bu blmde Logisim penceresinin dier iki temel alan aratrma penceresi (explorer pane) ve
znitelik tablosunun (attribute table) nasl kullanldn inceleyeceiz.
Geitler ktphanesinde seenekler boyunca bakarsanz daha nceden bir XOR devresi
gelitirmeye ihtiyacmz olmadn greceksiniz: Logisim' de ina edilir.
Bir proje oluturduunuzda otomatik olarak Temel (Base) ve Geitler (Gates) ktphanelerini
barndrr. Fakat Logisim dier baka ktphaneleri de barndrr: Bir tanesini yklemek iin
Ktphaneyi Ykle (Load Library) alt mensndeki Proje (Project) mensne gidin ve Btnleik
Ktphaneyi (Built-in Library) sein... Eklemek istediiniz ktphaneyi semenize izin veren bir
diyalog kutusu belirecektir. rnein eer Plexers seerseniz ardndan multiplexers, demultiplexers
ve decoders ekleyebilirsiniz. stediiniz kadar ok ktphane ykleyebilirsiniz.
Ktphane Ykle (Load Library) alt mensnde Logisim'in adet ktphane kategorisine sahip
olduunu grebilirsiniz.
Logisim ktphaneleri; Logisim'de ina edilmi projelerdir ve diske kaydedilmitir. Tek projede
bir devre setini gelitirebilirsiniz (Bu klavuzun Alt Devreler (Subcircuits ) blmnde
tanmland gibi) ve ardndan bu devre setini baka bir proje iin bir ktphane gibi
kullanabilirsiniz.
ktphanelerdir.
Bakalar tarafndan yazlm JAR ktphanelerini indirebilir yada bu klavuzun JAR Libraries
ksmnda anlatld gibi kendi ktphanenizi yazabilirsiniz. JAR ktphanesi gelitirmek
Logisim ktphanesi gelitirmekten ok daha zordur fakat znitelikler ve kullanc ile etkileim
gibi eyleri barndran bileenler ok ssl olabilir. Btnleik ktphaneler (built-in libraries)
(Temel (Base) den baka) JAR ktphanelerinin kullanlabildii gibi benzer API kullanlarak
yazlmtr, bu nedenle onlar JAR ktphanelerinin destekleyebildii fonksiyonellik araln
kantlar.
Bir JAR ktphanesini yklerken Logisim JAR dosyasn semeniz iin ve ardndan tr adn
yazmanz iin uyaracaktr. Bu tr ad JAR dosyasn size salayan kimse tarafndan
desteklenmelidir.
Bir ktphaneyi kaldrmak iin Proje mensnden (Project menu) Ktphaneyi Boalt (Unload
Library) sein. Logisim ara ubuunda grnen yada fare tuuna ayarlanm devrede kullanlan
bilienleri ieren ktphaneleri boaltmanz nleyecektir.
Aklma gelmiken bir ktphane teknik olarak aralar ierir bileenler deil. Bylece Base
ktphanesinde Poke Tool ( ), Select Tool ( ) ve kiisel bileenlerine direkt olarak karlk
gelmeyen dier aralar bulacaksnz. Aslnda ou ktphane kiisel bileenlerini eklemek iin
sadece aralar ierir; Base ktphanesi dndaki btnleik ktphaneler bu ekildedir.
znitelik tablosu
ou bileenin, nasl davranacan yada grneceini konfigre etmek iin seenekleri
olan znitelikleri vardr. znitelik tablosu (attribute table) bir bileenin znitelik deerlerine
bakmak ve gstermek iindir.
Grntlemeyi dndnz bileenin zniteliklerini semek iin Seme aracn (Select tool) ( )
kullanarak bileene tklayn. (Ayn zamanda bileene sa tklayp (yada kontrole tklayp) alan
pencereden znitelikleri Gsteri (Show Attributes) seebilirsiniz. Darbe arac (Poke tool) ( ) ya da
Metin arac (Text tool) ( ) aracl ile bir bileende oynama yapmak bileenin zniteliklerini
grntleyecektir).
Aadaki ekran grnts XOR devremizin stteki giriini setikten sonra bir eylerin nasl
grndn ve grnm aaya doru srklediimizde Etiket Yazm Karakteri (Label Font)
zniteliinin nasl grndn gstermektedir.
Pini evreleyen oval ak mavi renk k halkas (halo) olarak adlandrlr: Bu, znitelik tablosunda
hangisinin zniteliklerinin grntlendiini belirtir.
znitelik deerini deitirmek iin deerin zerine tklayn. znitelii deitirmek iin olan arabirim
deitirdiiniz znitelie bal olacaktr; Label Font znitelik ksmnda yeni bir font seerken bir
diyalog kutusu belirecektir; fakat baz znitelikler (Etiket (Label) gibi) metin alan olarak deeri
dzenlemenize izin verirken dierleri (Etiket Konumu (Label Location)) deerin seelecei yerde bir
aa doru alan men grntleyecektir.
Her bileen tr farkl bir znitelik setine sahiptir; ne anlama geldiklerini renmek iin Ktphane
Referansndaki (Library Reference) uygun dokmana gidiniz. Baz bileenler deitirilemeyen
znitelik deerlerine sahiptir. Buna bir rnek AND geidinin (Geit boyutu) Gate Size zniteliidir:
AND geidini oluturur oluturmaz boyutu sabitlenir. Eer AND geidini farkl bir boyutta
istiyorsanz, ara iin znitelikleri deitirmeniz gerekecektir, bunu daha sonra tartacaz.
imdi varolan iki AND geidini silip onun yerine iki yeni AND geidi ekleyebiliriz. Bu kez dar
olacaklardr. (Eer girilerin saysn 3' e indirirseniz AND geidi sol tarafnda dikey geniletmeye
sahip olmayacaktr. Fakat kablolar AND geidinin sol tarafna ulasn diye devreyi yeniden
kablolamak zorundasnz).
Baz aralarla birlikte ikon baz zniteliklerin deerlerini yanstr. Buna bir rnek Pin arac iledir, pin
aracnn ikonu Facing zniteliinin syledii gibi ayn ekilde yanstr.
Ara ubuundaki aralarn her biri aratrma penceresindeki aralara karlk gelen ayr bir
znitelik setine sahiptir. Bylece dar AND geitleri oluiturmak iin ara ubuunun AND aracn
deitirsek bile Gates ktphanesindeki AND arac, onun zniteliklerini de deitirene kadar yine
dar AND geitleri oluturacaktr.
Gerekte varsaylan ara ubuundaki giri pin ve k pin aralar Base ktphanesinin Pin
aracnn rnekleridir fakat znitelik seti farkldr. Pin aracnn ikonu "Output?" zniteliinin
deerine bal olarak daire veya kare gibi izilir.
Logisim bir ok bileenin bakt yn kontrol eden Facing zniteliini deitirmek iin faydal bir
ksa yol salar. Ara seili iken bir ok iaretine basmak otomatik olarak bileenin ynn deitirir.
Alt Devreler
ok karmak devreler ina ettiinizde, byk devrelerde ok kez kullanabileceiniz kk devreler
ina etmeyi isteyeceksiniz. Logisim'de byk devrelerde kullanlan bu ekildeki kk bir devre alt
devre (subcircuit) olarak adlandrlr.
Eer bilgisayar programlama dili biliyorsanz alt program kavramn da bilirsiniz (farkl dillerde
bu subroutines, functions yada methods olarak adlandrlr). Alt devre kavram programlamadaki
kavrama benzerdir ve ayn amala kullanlr: Byk bir ii kk-boyutlu paralara blmek iin, ayn
kavram birka kez tanmlama zahmetinden kurtulmak iin ve hata ayklamay kolaylatrmak iin.
Her Logisim projesi gerekte bir devreler ktphanesidir. En basit formunda her proje sadece bir
devreye sahiptir (varsaylan olarak - ana " main" olarak adlandrlr) fakat daha fazla eklemek
kolaydr: Project mensnden Devre Ekleyi (Add Circuit) sein ve oluturmak istediiniz yeni devre
iin istediiniz herhangi bir ad yazn.
"1x2 MUX" adnda bir 1x2 multiplexer (oklayc) ina etmek istediimizi varsayn. Devre ekledikten
sonra Logisim una benzeyecektir.
Aratrma penceresinde projenin imdi "main" ve "1x2 MUX" adnda iki devreyi ierdiini
grebilirsiniz. Logisim hali hazrda grntlenen devrenin ikonu zerine bir byte izer.
Devreyi bir 1x2 multiplexer gibi grnmesi iin dzenledikten sonra aadaki devreye ulaabiliriz.
Eer aratrma penceresinde 1x2 MUX devresine iki kere tklarsanz pencere 1x2 MUX devresini
dzenlemeye dnecektir.
Devreyi ina ettikten sonra aadaki sonuca ularz.
2x4 multiplexer iin devremiz adet 1x2 multiplexer kopyas kullanr, her biri yanlarnda pinler ile
bir kutu gibi izilmitir. Bu kutudaki pinler 1x2 MUX devresindeki giri ve ka karlk gelir.
Kutunun bat tarafndaki iki pin 1x2 MUX devresinin douya bakan iki pinine karlk gelir; kutunun
dou tarafndaki pin 1x2 MUX' un batya bakan pinine karlk gelir (k pini olacak ekilde olan);
ve kutunun gney tarafndaki pin 1x2 MUX' un kuzeye-bakan pinine karlk gelir. Kutunun bat
tarafndaki iki pinin sras alt devrede grnen yukardan aa sralamann aynsna karlk gelir.
(Eer kutunun kuzey ve gney tarafnda birka pin olsayd onlar alt devredeki sol-sa srasnn
aynsna karlk gelirdi).
Eer alt devre planndaki pinler onlarla ilgili etiketlere sahipse Logisim kullanc alt devre bileenine
karlk gelen yer zerinde fareyi durdurduunda bir tip (yani bir geici metin kutusu) ierisinde
etiket eklinde grntleyecektir. (Eer bu tipleri rahatsz edici buluyorsanz Project Options
penceresinin Canvas sekmesi aracl ile onlar kapatabilirsiniz).
Dier eitli bileenlerde bu tipleri grntleyecektir: rnein btnleik bir flip-flop' un pinlerinin
bazlar iin onun zerinde tutmak pinin ne yaptn aklar.
Aklma gelmiken bir devredeki her pin ya bir giri yada bir k olmaldr. ou retilen yonga, baz
durumlarda bir giri gibi dier durumlarda bir k gibi davranan pinlere sahiptir.
Logisim bir devrede grnen tm alt devreler iin farkl durum bilgisi salayacaktr. rnein eer
bir devre iki durakl (flip-flop) ieriyorsa ve birka kez bir alt devre gibi kullanlm ise, her alt
devrenin iki durakls byk devre simule ederken kendi deerine sahip olacaktr.
2x4 multiplexer tanmlamasna sahip olduumuzdan onu dier devrelerde kullanabiliriz. Devreler
ne kadar ok i ie olsalar da Logisim'in limiti yoktur - geri kendi ierilerinde devrelerin i ie
olmasna kar kacaktr.
Not: Bir alt devre gibi kullanlan bir devreyi dzenlemede yanl bir ey yoktur; aslnda bu tamamen
geneldir. Buna karn bir devrenin pinlerinde herhangi bir deiikliin olmas (eklemek, silmek veya
yerlerini deitirmek) onlar kapsayan devredekileri de yeniden dzenleyeceinin farknda olun.
Bylece bir devredeki herhangi bir pini deitirirseniz ayn zamanda alt devre gibi onu kullanan
herhangi devreleri de dzenlemeye ihtiyacnz olacaktr.
Alt devredeki pinlerin deerlerinin onlar kapsayan devreden gnderilen deerlerle uyutuuna
dikkat edin.
Alt devrede iken her ne ekilde istiyorsanz onu deitirebilirsiniz; pinlerin deerlerindeki herhangi
bir deiiklik kapsayan devredekine de yaylacaktr. (Darbe Aracn (Poke Tool) kullanarak bir pini
deitirmeye alrsanz Logisim size yeni bir durum oluturmak isteyip istemediinizi soran bir
diyalog kutusu aacaktr; Yes olarak cevaplamak dtaki devrenin durumundan gelen alt devre ile
gsterilen durumu ayracak iken No olarak cevaplamak deitirme isteini iptal edecektir).
Aratrma penceresine ift tklayarak yada Simulate mensnden Go Out To State alt mens
aracl ile ana devreyi grntleme ve/veya dzenlemeyi hemen tamamlarsnz.
Logisim ktphaneleri
Her Logisim projesi, dier Logisim projeleri ierisine otomatik olarak yklenebilen bir ktphanedir:
Sadece onu bir dosyaya kaydedin ve ardndan baka bir proje ierisinde ktphaneyi ykleyin. lk
projede tanmlanan tm devreler ikinci devre iin alt devreler olarak var olacaktr. Bu zellik,
projelerde temel bileenleri yeniden kullanmanza ve favori bileenleri arkadalarnzla (yada
rencilerle) paylamanza izin verir.
Her proje, Project mensndeki Set As Main Circuit seenei aracl ile geerli devreye tekabl
edecek ekilde deitirilebilecek ekilde tasarlanm bir "ana devreye (main circuit)" sahiptir.
Bunun tek anlam, projeyi ilk atnzda grntlenecek olan ana devrenin bir tane olmasdr. Yeni
oluturulmu bir dosyadaki ("main") devrenin varsaylan adnn bir anlam yoktur ve bu devreyi
silmekte veya adn deitirmekte kendinizi zgr hissedebilirsiniz.
Yklenmi bir Logisim ktphanesi ile devreleri grmeye ve durumlarnda oynama yapmaya izin
verilmisinizdir fakat Logisim onlar deitirmenizi nleyecektir.
Eer yklenmi bir Logisim ktphanesindeki bir devreyi deitirmek istiyorsanz onu Logisim
ierisinde ayr bir ekilde amanz gerekir. Onu kaydeder etmez, dier proje modifiye edilmi
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
versiyonu hemen otomatik olarak yklemelidir; fakat eer bu olmazsa, aratrma penceresindeki
ktphane klasrne sa tula tklayp Ktphaneyi Yeniden Ykle' yi (Reload Library) seebilirsiniz.
Basit Logisim devrelerinde ou kablolar sadece bir bit tar; fakat Logisim ayn zamanda ok
miktarda bit ile paketlenmi kablolar oluturmanza izin verir. Bir kablo boyunca hareket eden
bitlerin says kablonun bit geniliidir.
Kablo Paketleri
Paketler oluturmak
Devrede her bileen zerindeki her giri ve k onunla ilgili bir bit geniliine sahiptir. Logisim' in
btnleik bileenlerinin ou onlarn giri ve klarnn bit geniliklerini uyarlamanza izin veren
znitelikleri barndrr.
Aadaki ekran grnm iki adet -bitli giriin bit bit (bitwise) AND inin bulunmas iin basit bir
devre rneklemektedir; her pin -bit veri ile uramak iin uyarlanm kendi Bit Genilii (Bit
Width) zniteliklerine sahiptirler, aynen resmedilmi AND geidi zniteliklerinde olduu gibi.
Giri ve k pinlerinin bit ile izildiine ve kn girilerin bit bit AND' i olduuna dikkat edin.
Tm giri ve k bileenleri iin kendi bit genilikleri tanmlanm olmaldr. Aksine bir kablonun bit
genilii tanmlanmamtr: Onun yerine kablonun genilii eklenecei bileenlere adapte edilir.
Eer bir kablo farkl bit genilikleri gerektiren iki bileene balanrsa Logisim "Uyumsuz
genilikler"den yaknacak ve karlk gelen yerleri turuncu ile gsterecektir. Aada k pininin Bit
Width znitelii 1' e dntrlmtr ve bu nedenle Logisim kablonun -bitlik bir deerden birbitlik bir deere balanamayacandan yaknr.
Bu aratrma zellii, kablo paketleri kullanarak devrelerin hata denetimlerini yapmak iin
faydaldr.
Ayrclar
ok-bitli deerler ile alrken sklkla farkl bitleri farkl istikametlere gndermek isteyeceksiniz.
Base ktphanesinin ayrc arac (splitter tool) ( ) bunu gerekletirmenize olanak salar.
rnein sekiz-bitli bir giri alan ve onun iki parasnn (stteki drt bit ve alttaki drt bit) AND' ini
kartan bir devre ina etmek istediimizi varsayn. Giri pininden gelen sekiz-bit bir deerimiz
olacak ve biz bunu iki adet drt-bit deere ayrmak isteyeceiz. Aadaki devrede bunu
gerekletirmek iin bir ayrc kullandk.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Bu rnekte ayrc aslnda gelen bir deeri oklu kan deerlere ayrmaktadr. Fakat ayrclar ayn
zamanda oklu deerleri tek bir deere birletirebilirler. Gerekte ynszdrler: Deerleri bir
kerede bir yne ve daha sonra dier yne gnderirler ve aadaki rnekte iki deerin saa doru
ve ortadaki deerin sola doru beslendii gibi her ikisini ayn anda da yapabilirler.
Ayrclar anlamann anahtar onlarn znitelikleridir. Aadaki split end terimi bir taraftaki oklu
kablolardan birini ima ederken combined end terimi dier taraftaki tek kabloyu kastetmektedir.
Facing znitelii split end in nerede combined end e ait olacan syler. Bu, ayrc bir kez
devreye brakldnda deitirilemez.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Fan Out znitelii ka tane split end in var olduunu belirtir. Bu, ayrc bir kez devreye
brakldnda deitirilemez.
Bit x znitelii combined end in bit x ine hangi split end in karlk geldiini syler. Eer ayn
split end e ok bit karlk gelirse, onlarn ilgili sralamas combined end dekinin ayns olacaktr.
Logisim ayrclar, oklu split end lere karlk gelen combined end den bir bite sahip
olamazlar.
Fan Out veya Bit Width zniteliklerindeki herhangi bir deiikliin tm Bit x zniteliklerini
deitireceine dikkat edin, yle ki combined deerinin bitlerini mmkn olduunca split end lerin
arasnda eit miktarda datacaktr.
Kablo renkleri
Artk Logisim kablolarnn alabilecei tm gkkua renklerini zetleme konumundayz. Aadaki
kk devre bir kerede tmn rneklemektedir.
Gri: Kablonun bit genilii bilinmiyor. Bu, kablo herhangi bir bileenin giri ve kna
balanmadnda meydana gelir. (Tm giri ve klar tanmlanm bir bit geniliine sahiptir).
Mavi: Kablo bir-bitlik deeri tamak iindir fakat tad deer bilinmemektedir. Yukardaki
rnekte bu meydana gelmektedir nk NOT geidinin girii bilinmemektedir ve bu nedenle
k da bilinmemektedir.
Siyah: Kablo ok-bitlik bir deer tamaktadr. Bitleri bazs veya tm belirlenemeyebilir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Krmz: Kablo bir hata deeri tamaktadr. Bu genellikle kablodaki akma deerinden dolay
meydana gelir. (Dier bir olaslk, bir ktphane bileeninin baka bir sebeple bir hata deeri
yaymas iin programlanm olmas olabilir; geri btnleik ktphanelerde hata deerleri
sadece dier hata deerlerini yaymaktan kaynaklanr). Yukardaki rnekte akmaya neden
olan kablo zerine bir 0 verilmi ve baka bir 1 verilmi bir giri pinine sahibiz. ok-bitli
kablolar, tanan bitlerden herhangi biri hata deeri olduunda krmzya dnecektir.
Portakal: Kabloya balanm olan bileenler bit genilii kabul etmezler. Portakal bir kablo
etkin bir biimde "krk"tr: birbiri arasnda deer tamaz.
Tm devreler iyi bilinen iki kategoriden birine dahildir. Bileimsel devrelerde, tm devre klar
mevcut devre girilerinin sabit bir birleimidir, sral devrelerde, baz klar son girie gre
deiir(girilerin zamanla ardkl).
Birleimsel devreler kategorisi iki tanenin daha basitidir. Pratisyenler bu tr devrelerin davrann
toparlamak iin byk teknik kullanrlar.
Mantk devreleri
Bileimsel analizi sein ve mevcut bileimsel analiz penceresi grnr. Eer pencereyi daha nce
grmediyseniz, alan pencere hibir devre grntlemeyecektir.
Logisim de sadece bir bileimsel analiz penceresi bulunur, ka tane proje atnz nemli deildir.
ayn anda iki farkl analiz penceresi aman n hibir yolu yoktur.
Proje Mensnden
Devre dzenleme penceresinden ayn zaman da Logisim'in devreyi analiz etmesini Proje
mensnden Devreyi Analiz et opsiyonunu kullanarak isteyebilirsiniz. Pencere almadan nce
Logisim Boole gsterimlerini ve doruluk tablosunu hesaplayacak ve grmeniz iin oraya
yerletirecektir.
Analizin baarl olabilmesi iin her bir giriin giri pinine ve her bir kn da k pinine balanmas
gerekmektedir. Logisim sadece sekiz eit ve her biri tekli-pin olan devreleri analiz edecektir. Aksi
halde, bir hata mesaj alrsnz ve pencere almaz.
Bir devreye ait Boole ifade oluturmak iin Logisim nce devredeki geitlere ait Boole gsterimleri
oluturmaya alr. Fakat devre baz geitsiz bileenler kullanyorsa(oklayc gibi), ya da devre 100
seviyeden daha fazlaysa, size Boole gsteriminin karmnn mmkn olmadn syleyen bir
pencere aacakt, ve Logisim bunun yerine doruluk tablosuna dayanan bir ifade karr.
Devrenin analizinden sonra, devre ve Bileimsel Analiz penceresi arasnda hibir iliki kalmaz. Yani
devredeki deiiklikler pencereye yansmaz ya da Penceredeki Boole gsterimleri deitirmek
devreye yansmaz. Tabi ki devreyi tekrar analiz etmekte zgrsnz; ve daha sonra greceimiz
gibi, devreyi Bileimsel Analiz penceresinde grnenle deitirebileceksiniz.
Kstlamalar
Logisim ardk devreleri bulmaya almayacaktr. Eer bir ardk devreyi analiz etmesini
sylerseniz, Boole gsterimlerine bal doruluk tablosunu oluturur, Ama bu tm devrelerin
toplam davrann gstermez.(gerekte ardk devreleri alglamak imkanszdr. Tabi ki Logisim'in
en aznda bir bir teebbste bulunmasn umuyorsunuzdur- belki kablolardaki flip-flop ya d
dnglere baklmasn- ama yapmaz.) Sonu olarak, Bileimsel Analiz gelii gzel bir ekilde
kullanlmamaldr. Sadece analiz ettiinin devre bileimsel olduu zaman kullanmalsnz.
Logisim beklenmedik ekilde orijinal devrede deiiklik yapacaktr: Bileimsel Analiz sistemi her bir
giri ve kn Java tanmlayclarna uygun kendine zg bir ismi olmasn gerektirir.(Kabaca, herbir
karakter harf yada say olmaldr, ve ilk karakter harf olmaldr. Boluklara izin verilemez.) Pinlerin
mevcut etiketlerini kullanmaya alr, etiket yoksa n tanml listeden kullanr. Eer mevcut etiket
Java tanmlamalarna uymuyorsa Logisim eer mmknse etiketten doru ismi karmaya
alacaktr.
Bu arada, doruluk tablosundaki giri klarn sralamas devredeki yukardan aaya sralamayla
eleir, balantlar soldan saa doru krlr. (Ayn ey klara da uygulanr)
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Bu sayfa ilk sekmeyi aklar, Giri, k ve Tablo. Klavuzun sonraki sayfas son iki sekmeyi
aklar, fade ve Kltlm.
Giri ve k sekmeleri
Giri sekmeleri size girileri grntleme ve dzenleme izni verir. Yeni giri eklemek iin, onu
panelin altndaki alana yazn, ve Ekle dmesine basn. Eer var olan bir giriin ismini deitirmek
istiyorsanz, panonu sol stndeki listeden sein ve ismi yazarak Yeniden Adlandr dmesine
basn.
Bir girii kaldrmak iin, listeden sein ve Kaldr dmesine basn. Giri zerinde Aa al ve Yukar al
dmeleriyle girileri yeniden sralayabilirsiniz.(Doruluk tablosundaki kolonlara ve devreye etki
eder)
Tm ilemler annda doruluk tablosuna etki eder.
k sekmeleri de giri sekmeleriyle ayn ekilde ilev yapar, sadece k listesiyle yaplr.
Tablo Sekmesi
Tablo sekmesindeki tek ey o anki doruluk tablosudur. giriler sol kolonu olutururken klar sa
kolonu oluturur.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
fade Oluturmak
Her bir k deikeni iin Bileimsel Analiz penceresi iki yap gsterir - doruluk tablosunun ilgili
stunu ve Boole ifadesi - her bir kn kendi giriine bal olduunu gsterir. Doruluk tablosunu
ya da ifadeyi dzenleyebilirsiniz, dieri tutarll salamak iin annda deitirilir.
Sonraki sayfada greceimiz gibi, Boole ifadeler nemlidir nk Bileimsel Analiz penceresi o anki
duruma gre devre olutururken bunlar kullanr.
fadeleri pencerenin son sekmesini kullanarak dzenleyebilirsiniz, fade sekmesi ve Kltme
sekmesi.
fade sekmesi
fade sekmesi her bir k deeriyle ilikili gsterimi dzenlemenizi salar. Grntlemek
istediiniz k gsterimini seebilirsiniz ve "k:" olarak etiketlendirilmi seiciyi kullanarak
dzenleyebilirsiniz.
Seicinin altnda genel formatnda ifade belirir, OR da ek olarak gsterilir, ve AND oaltma olarak
gsterilir, ve NOT parann zerinde bir bar olarak gsterilir.
Yaz levhas ayn bilgiyi ASCII biimde gsterir. burada, NOT tilde(~) iareti ile gsterilir.
Yaz levhasndaki gsterimi deitirdikten sonra ENTER e basarak deiikliin olmasn
salayabilirsiniz, bunu yapmak ayn zaman da doruluk tablosunu da gncelleyecektir. Temizle
dmesi yaz levhasn temizler, evir dmesi o anki gsterimi sunmak iin levhann arkasn
evirir.
Unutmayn, doruluk tablosunu dzenlediinizde deitirdiiniz gsterimler kaybedilecektir.
AND ve OR oklama ve eklemelerine ek olarak, yazdnz ifade C/Java mantksal operatrleri
ierebilir.
Aadaki rneklerin hepsi ayn gsterimin geerli yazlmlardr. Operatrleri kartrmanzda
mmkndr.
Genelde, ardk AND ler (OR lar ya da XOR lar) deki parantezler sorun deildir.(Logisim belirtilen
devreyi olutururken parantezleri nemsemeyecektir)
Kltlm sekme
fade Olarak Ayarla dmesi sizin seili kltlm gsterimi deikene ifade olarak atamanz
salar. bu genelde gerekli deildir, ama gsterimi direk fade Sekmesinden girerseniz, bu o
kltlm gsterimler arasnda gei yapmak iin iyi bir yol olabilir.
Devre retmek
Devre olutur dmesi her bir ka ait geitlerin olduu bir devre oluturur. Devrenin giri ve
klar yukardan aaya bir sralamada gsterilir, Giri ve k sekmelerinde ki sralaryla.
Genelde oluturulmu bir devre hakknda konumak etkileyicidir ve Logisim'in Bileimsel Analiz
modl kt izilmi devreleri gzelletirir. Ama otomatik dzenleni bir devrede, insan izimi bir
devredeki yapsal detaylar ifade edemez.
Devre Olutur Dmesine tkladnzda size devrenin hangi projeye ait olduunu ve vermek
istediiniz ismi semenizi salayan bir kutu gelecektir. Eer var olan bir devrenin ismini yazarsanz
devre deitirilir. (Logisim sizin bunu gerekten yapmak istediinizi onaylamanz ister.)
Devre Olutur diyalogu iki seenek ierir. Sadece ki-Girili Geit Kullan seenei oluturacanz
geitlerin iki girilerinin olacan gsterir. (NOT geitleri, tabi ki bunun dndadr) Sadece NAND
Geitleri kullan seenei devreyi NAND geidi kullanan biime dntrmek istediinizi gsterir.
Sadece iki girili NAND geitler istiyorsanz her iki seenei de seebilirsiniz.
Logisim herhangi bir XOR operatr ieren bir NAND devresi oluturamaz. XOR ieren herhangi bi
k ifadesi iin bu seenek etkin deildir.
Men Referans
Bu ksm, balca tm Logisim penceresine elik eden alt meny aklar.
File mens
New: Yeni bir pencerede yeni bir proje aar. Proje balangta mevcut seilmi kalbn bir
kopyas olacaktr.
Open: Yeni bir pencerede bir proje eklinde var olan bir dosyay aar.
Logisim in 1.0X versiyonunda kaydedilmi dosyalar aabilirsiniz fakat karmak devrelerde baz
ufak dnm problemleri olabilir. Bilhassa ounlukla Logisim 1.0X alt devre konumlarn ok
farkl bir yolla hesaplar ve el ile tm devreyi kontrol edip alt devreleri doru yerlerine
tamanz gerekecektir.
Save: Hali hazrda grntlenen projeyi daha nceki dosyann zerine yazarak kaydeder.
Save As: Hali hazrda grntlenen projeyi kullancya farkl bir dosya ierisine kaydetmesini
syleyen bir uyar grntleyerek kaydeder.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Export As GIF: Devrelere karlk gelen GIF resmi(leri) oluturur. Konfigrasyon diyalog kutusu
aada tanmlanmtr.
Print: Devreyi(leri) bir yazcya gnderir. Konfigrasyon diyalog kutusu aada tanmlanmtr.
Circuits: GIF dosyasna dntrlmesi gereken bir yada birden ok devreyi seebileceiniz bir
listedir. (Bo devreler seenek olarak grntlenmez).
Scale Factor: Bu kaydrcy kullanarak GIF dosyalar ierisine atldklar gibi resimleri
lekleyebilirsiniz.
Circuits: Yazdrlacak bir yada birden ok devreyi seebileceiniz bir liste. (Bo devreler
seenek olarak grntlenmez). Logisim her sayfaya bir devre yazdracaktr. Eer devre sayfa
iin ok byk ise resim kltlerek sdrlacaktr.
Header:Her sayfann stnde ortalanm bir ekilde grnmesi gereken metin. Aadaki yer
deitirmeler metin ierisinde yaplacaktr.
Rotate To Fit: Eer seilirse, Logisim sayfaya sdrlamayacak kadar byk bir devre
olduunda her devreyi 90 derece dndrecektir ve 90 derece dndrldnde kltlmeye
ihtiyac yoktur.
Edit mens
Undo XX: ok yaknda tamamlanm eylemi geri almak bir dosyada devrenin nasl
kaydedileceini etkilemektedir. Bunun devrenin durumunu deitirmeyi iermediine dikkat
edin (el ile iletmenin Poke Tool ile gerekletirildii gibi).
Cut: Devrede ierisinden hali hazrda seilmi bileenleri Logisim'in panosu zerine kaldrr.
Not: Logisim'in panosu tm sistemin panosundan ayr bir ekilde dnlmtr; sonu olarak
kes/kopyala/yaptr farkl uygulamalar karsnda almayacaktr, hatta Logisim in dier
alan kopyalar dahil. Bununla birlikte eer benzer Logisim ilemi altnda ok sayda projeniz
ak ise onlar arasnda kes/kopyala/yaptr yapabilirsiniz.
Copy: Devredeki hali hazrda seilmi bileenleri Logisim'in panosuna kopyalar. (Cut men
maddesi altndaki nota baknz).
Paste: Logisim'in panosu zerindeki bileenleri mevcut seim ierisine yaptrr. (Cut men
maddesi altndaki nota baknz).
Project mens
Add Circuit: Mevcut proje ierisinde yeni bir devre ekler. Logisim yeni devreye isim vermenizi
srar edecektir. Ad projede var olan devrelerden herhangi biri ile uyumamaldr.
Load Library:Projeye bir ktphane ykler. Kullanm Klavuzunun baka bir yerinde (elsewhere
in the User's Guide) akland gibi tr ktphane ykleyebilirsiniz.
Unload Libraries: Devreden mevcut ktphaneleri kaldrr. Logisim hali hazrda kullanlan
herhangi bir proje devresinde grnen bileenleri ieren ktphaneleri barndran herhangi bir
ktphaneyi kaldrmanza izin vermeyecektir ta ki onlar aralarla birlikte ara ubuu
ierisinde yada fareye uygulanm biimde grnene kadar.
Analyze Circuit: Mevcut devreye karlk gelen bir doruluk tablosu ve Boole ifadelerini onlar
Kombinasyonel Analiz penceresinde (Combinational Analysis window) grntleyerek
hesaplar. Analiz ilemi sadece kombinasyonel devreler iin geerli olacaktr. Analiz ileminin
tam bir aklamas Kombinasyonel Analiz blmnde (in the Combinational Analysis section)
tanmlanmtr.
Set As Main Circuitt: Hali hazrda grntlenen devreyi projenin "ana devresi" olarak ayarlar.
(Bu men maddesi, eer mevcut devre zaten projenin ana devresi ise griye boyanacaktr). Ana
devrenin tek nemi, proje dosyas aldnda bu devrenin ilk grnen devre olmasdr.
Remove Circuit: Hali hazrda grntlenen devreyi projeden kaldrr. Logisim, alt devre olarak
kullanlan devreleri ve bir projedeki son devreyi kaldrmanz engelleyecektir.
Simulate mens
Reset Simulation: Mevcut devrenin durumu hakkndaki her eyi siler, yle ki tekrar dosyay
amsnz gibidir. Eer bir alt devrenin durumunu grntlyorsanz tm hiyerari silinir.
Go Out To State: Alr mens araclyla bir alt devrenin durumunu aratrdnzda (delve
into a subcircuit's state) bu men hali hazrda grntlenen devrenin durumu stndeki
devreleri listeler. Biri semek karlk gelen devreyi grntler.
Tick Once: Simlasyonu bir tklama ileri admlar. Bu, saatleri el ile admlamak istediinizde
kullanl olabilir, zellikle hali hazrda grntlediiniz devre saat ile ayn devrede
olmadnda.
Ticks Enabled: Saati otomatik olarak tklamay balatr. Bu sadece, devreler herhangi bir saat
aygt (Base ktphanesinde) ierdiinde etkili olacaktr. Seenek varsaylan olarak
kapatlmtr.
Tick Frequency: Ne kadar sklkla saniye meydana geleceini semenize izin verir. rnein, 8
Hz in anlam bir saniyede sekiz kez tklama meydana gelecek olmasdr. Bir tklama saat hz iin
lmn taban birimidir. Saat dng hznn tklama hzndan yava olacana dikkat edin: En
hzl olas saat, bir-tklama yukar dng bir-tklama aa dngye sahip olacaktr; byle bir
saat tklamalar 8 Hz de meydana geldiinde 4 Hz yukar/aa dng oranna sahip olacaktr.
Logging: Bir simlasyon ilemi gibi bir devredeki deerleri otomatik olarak not etmeyi ve
kaydetmeyi gerekletiren gnlk tutma modlne (logging module) girer.
Window mens
Help mens
Tutorial: Logisim Kullancs Olma Rehberinin (Guide to Being a Logisim User) `Balayanlar iin
Klavuz ((Beginner's Tutorial)' blm iin online sistemi aar.
User's Guide: Logisim Kullancs Olma Rehberi (Guide to Being a Logisim User)iin online
yardm sistemini aar.
Library Reference: Ktphane Referans (Library Reference)iin online yardm sistemini aar.
About: Balang ekran ierisine yerletirmi versiyon numarasn ieren bir ekran grntler.
(Mac OS sisteminde bu men Logisim mens altndadr)
ou men maddesi zellikle mevcut alm projeyle ilgilidir. Fakat baz Logisim pencereleri
(zellikle Kombinasyonel Analiz penceresi ve Uygulama Seenekleri penceresi) proje ile ilgili
deildir. Bu pencereler iin projeye-zel men maddeleri kapatlacaktr.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Hafza Bileenleri
RAM ve ROM bileenleri Logisim'in btnleik ktphanelerinde ok faydal iki bileendir. Ancak
onlar depolayabildikleri bilginin hacmi nedeni ile ayn zamanda ok karmak bileenlerden iki
tanesidir.
Devre ierisinde nasl alacaklar hakkndaki dokman Ktphane Referansnn (Library
Reference) RAM ve ROM sayfalarnda bulunabilir. Kullanm Klavuzunun (User's Guide) bu blm,
kullancnn hafza ieriini grntleme ve dzenlemesine izin veren arayz aklar.
Enter tuuna basmak ekranda (bir satr aa) onun hemen altndaki deeri dzenlemek iin
hareket ettirecektir.
Backspace tuuna basmak bir nceki adresteki deeri dzenlemek iin hareket ettirecektir.
Boluk tuuna basmak aadaki adresteki deeri dzenlemek iin hareket ettirecektir.
Edit Contents: Hafzann ieriklerini dzenlemek iin bir hex editr getirir.
Load Image: Aada tanmlanm format kullanarak bir dosya ierisinde bulunan deerlere
bal olarak hafzadaki tm deerleri sfrlar.
Save Image: Aada tanmlanm format kullanarak bir dosya ierisine hafzadaki tm
deerleri depolar.
Resim dosyalar iin kullanlan dosya format kastl olarak basittir; bu rnein hafzaya
yklenebilen hafza resimlerini reten bir evirici gibi bir program yazmanza izin verir. Bu dosya
formatna bir rnek olarak, eer ilk be byte 2, 3, 0, 20 ve -1 olan ve tm dier deerleri 0 olan bir
256-byte lk hafzamz varsa resim aadaki metin dosyas olacaktr.
v2.0 raw
02
03
00
14
ff
lk satr kullanlan dosya formatn tanmlar (hali hazrda sadece bir dosya format grlmektedir).
Dier deerler adres 0 dan balayarak deerleri hexadecimal listeler; ayn satr zerine bu ekilde
farkl deerler yerletirebilirsiniz. Logisim dosyada listelenmeyen dier deerleri sfr varsayacaktr.
Resim dosyas alma-uzunluu (run-length) kodlamas kullanr; rnein, bir stunda onalt kez 00
deerini listelemek yerine dosya 00 onalt kez tekrarlamaktan ziyade 16*00 ierebilir. Tekrarlama
saysnn 10 tabannda yazldna dikkat edin. Logisim tarafndan retilen dosyalar, en az drt
deerin almas iin alma-uzunluu kodlamasn kullanacaktr.
Hex editr
Logisim, hafzann ieriklerini grntlemek ve dzenlemek iin entegre bir hex editrn
barndrr. Ona erimek iin, hafza bileeninin alan mensn bytn ve Edit Contents i sein.
znitelik deerinin bir paras gibi hafza ieriklerine sahip olan ROM bileenleri iin, karlk gelen
znitelik deerine tklayarak alternatif bir ekilde hex editrne eriebilirsiniz.
Hafza adresinin sol ekranndaki italik saylar hexadecimal olarak yazlmtr. Dier saylar bu hafza
adresinden balayan deerleri grntler; hex editr pencereye ne kadar sacana bal olarak
bir satrda drt, sekiz yada onalt deer grntleyebilir. Saymaya yardmc olmak iin her drt
deerli grup aralarnda byk bir bolua sahiptir.
Kaydrma ubuu yada klavyeyi (ok tular, home, end, page up ve page down) kullanarak hafza
boyunca aratrma yapabilirsiniz. Hexadecimal karakterler yazmak hali hazrda seilmi deeri
deitirecektir.
Fareyi srkleyerek, fareye shift-tklayarak yada shift tuuna basl tutarken klavye ile hafza
boyunca aratrma yaparak deerlerin araln seebilirsiniz. Deerler Edit mens kullanlarak
kopyalanabilir ve yaptrlabilir; pano ayn zamanda dier uygulamalara transfer edilebilir.
Byk bir devreyi test ederken ve bir devrenin davrann dokman haline getirmek iin devre
davrannn gemiteki bir gnl. Bu, deerleri gnle kaydedilecek bileenleri semenize izin
veren Logisim'in gnlk tutma modlnn amacdr; opsiyonel olarak gnln kaydedilecei bir
dosyay belirleyebilirsiniz.
Not: Gnlk tutma modl alfa fazndadr; delice olabilir ve gelecekteki anlaml deiikliklere
tabidir. Hata raporlar ve fikirler tm Logisim iin scak karlanrken, onlar zellikle bu nispeten
yeni zellikle ilgili olarak ho karlarlar. Eer yorumlarnz gndermezseniz byk ihtimalle
deimeyecektir.
Simlate mensnden Logging seenei araclyla gnlk tutma modlne girebilirsiniz.
sekmeli bir pencere getirir.
Selection sekmesi
Selection sekmesi gnlkte hangi deerlerin barndrlacan semenize izin verir. Aadaki
pencere takip eden devreye karlk gelmektedir.
Sekme dikey alana blnmtr. lki (en soldaki), deerlerinin gnl tutulaca devredeki tm
bileenlerin bir listesidir. Btnleik ktphaneler arasnda bileenlerin aadaki trleri gnlk
tutmay destekler.
Base ktphanesi: Pin, Probe ve Clock bileenleri
Memory ktphanesi: Tm bileenler
Etiketleriyle birlikte olan bileenler iin isimleri etiketlerine karlk gelir; dier bileenlerin adlar
devredeki trlerini ve yerlerini belirtir. Herhangi bir alt devre de listede grnecektir; gnlk
tutmak iin seilecezler; fakat ierilerindeki geerli bileenler seilebilir. RAM bileeninin gnl
tutulacak hafza adresini(lerini) semenizi gerektirdiine dikkat edin; RAM sadece ilk 256 adresin
gnl tutulmasna izin verir.
Son (en sadaki) dikey alan seilmi olan bileenleri listeler. Ayn zamanda o, bileenin ok-bitli
deerlerinin gnlnn tutulaca yerin kkne (tabanna) iaret eder; kkn bir-bitli deerler
zerinde anlaml bir etkisi yoktur.
Tularn orta stunu, seimdeki maddelerin iletilmesine izin verir.
Add: sol tarafta hali hazrda seilmi maddeyi(leri) seim ierisine ekler.
Change Radix: 2 (iki tabannda-binary), 10 (on tabannda -decimal-) ve 16 (onalt tabanndahexadecimal) arasndaki seimde hali hazrda seilmi bileen iin kk dndrr.
Move Up: seimdeki hali hazrda seilmi bileeni bir nokta ileri hareket ettirir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Move Down: seimdeki hali hazrda seilmi bileeni bir adm geri hareket ettirir.
Table sekmesi
Table sekmesi mevcut gnl grafiksel olarak grntler.
Tablo seimdeki her bileen iin bir stun ierir. Seimdeki her satr, deerlerin oalmas
tamamlandktan sonra simlasyonun bir fotorafn grntler. Tekrarlanan herhangi bir satr
gnle eklenmez. Sadece en yeni 400 satrn grntlendiine dikkat edin. Baz satrlar, karlk
gelen bileen satr hesapland anda seimde olmadnda bo girdilere sahip olabilir.
Grntlenen tablo sadece gzden geirmek iindir; interaktif deildir.
File sekmesi
File sekmesi, gnln ierisine yerletirilecei bir dosyay belirlemenize izin verir.
stteki, dosya gnl tutma ilemi alyorken ve dme onu aktifletirirken yada
pasifletirirkenki durumu gsteren bir gstergedir. (Aada bir dosya seilene kadar onu
aktifletiremeyeceinize dikkat edin). Dme dosya giriini durdurmanza ve yeniden balatmanza
izin verir. Dier bir simlasyonu grntlemek iin proje penceresinde gei yaptnzda dosya
gnl tutma ilemi otomatik olarak durdurulur; orijinale dndnzde ve gnlk tutma
ileminin devam etmesini istediinizde, yukardaki dmeyi kullanarak el ile dosya gnl tutma
ilemini tekrar aktif hale getirmeniz gerekecektir.
Ortadaki hangi dosyann gnlnn tutulduunun bir gstergesidir. Onu deitirmek iin Select...
dmesini kullann. Bir dosyay seerken dosya gnl tutma ilemi otomatik olarak balayacaktr.
Eer daha nceden var olan bir dosyay seerseniz, Logisim size dosya zerine kaydedilip
edilmeyeceini yada dosyann sonuna yeni girdilerin eklenip eklenmeyeceini soracaktr.
Alttaki ile hangi maddelerin seildiini gsterecek ekilde dosya ierisine bir balk satr yerletirilip
yerletirilmeyeceini kontrol edebilirsiniz. Eer balk satrlar eklenirse, yeni bir balk satr seim
her deitiinde dosya ierisine yerletirilecektir.
File format
Girdiler, Table sekmesi altnda tam olarak ne grneceine karlk gelen sekme-listesi formatnda
dosya ierisine yerletirilir. (Tek fark herhangi bir balk satrnn alt devrelerde bulunan bileenlere
tam yol verecek olmasdr). Format kastl olarak basittir yle ki Python/Perl scripti yada bir excel
program gibi almas iin baka bir program ierisine onu ekleyebilirsiniz.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Logisim alt srada bir script dosyay altrabilsin diye Logisim her 500 ms de bir disk zerine
yeni kaytlar yazacaktr. Logisim'in ayn zamanda, simlasyon esnasnda zellikle birka saniye
getikten sonra herhangi bir yeni kayt eklenmediinde dosyas aralkl olarak kapatp daha sonra
tekrar-atna dikkat edin.
Logisim konfigrasyon seeneklerinin iki kategorisini destekler: uygulama seenekleri (application
preferences) ve proje seenekleri (project options). Uygulama seenekleri, tm ak projeleri
kapsayan seenekleri adres gsterir, oysa proje seenekleri bir proje ile ilgilidir. Bu blm
uygulama seeneklerini tartmaktadr; proje seenekleri (project options baka bir blmde
tartlmaktadr.
File mensnden (yada Mac OS sisteminde Logisim mens altndan) Preferences seenei aracl
ile uygulama seeneklerini grebilir ve dzenleyebilirsiniz, iki sekmeli bir pencere belirecektir. Bu
iki sekmeyi ayr ayr tartacaz ve ardndan komut satrndan seeneklerin nasl konfigre
edilebileceini greceiz.
Uygulama Seenekleri
Template sekmesi
Bir ablon(template), Logisim yeni bir proje oluturduunda bir balama noktas gibi kullanlan bir
Logisim dosyasdr. Ayrca garip bir ekilde konfigre edilmi ortam ile var olan bir Logisim
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
dosyasna sahipseniz, Proje Seeneklerini (Project Options) dzenlemek iin penceredeki Revert All
To Template dmesini kullanarak ortam "bataki konumuna getirebilirsiniz (reset)".
ablonlar dier durumlarda da faydal olmalarna ramen, onlar bir retmenin rencilerine
ondan itibaren balamalar iin datmay isteyebilecei bir ablonun olduu snf kullanm iin
zellikle uygundur. zellikle snfta Logisim, basit olan standart konfigrasyon ok basit kaldnda
daha gelimi zellikleri ile youn olarak kullanlrsa bu durum olabilir. Panolar, ortam nemli bir
ekilde dzenlemi bir renci tarafndan gnderilen bir dosyay retmen aarken, snf
erevesinde de faydal olabilir.
Varsaylan olarak "Plain Template" seenei, Logisim ile tanan varsaylan ablonu kullanarak seili
olacaktr. Sade-kemik konfigrasyonu istiyorsanz "Empty Template" i seebilirsiniz. Fakat ablon
olarak kullanmak iin baka dosya tasarlamak istiyorsanz Select dmesi aracl ile bir ablon
sein ve ardndan "Custom Template" seeneini sein.
International sekmesi
Bu tercihler Logisim'in birok lkede kullanlmasna izin veren seenekleri destekler.
Language: Dili deitirir. Mevcut versiyon ngilizce ve spanyolca eviri ile desteklenmitir.
spanyolca eviri spanya'dan Pablo Leal Ramos tarafndan balanmtr. Logisim'in dier
dillere evirilerini ho karlyorum! Eer ilgileniyorsanz benimle yani Carl Burch ile iletiime
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
gein. Bu bir taahht olmayacaktr: lgilendiinizi duymaktan mutlu olacam ve eer oktan
onun zerinde alan bir kii biliyorsam sizi bilgilendireceim, sizin iin alabileceiniz bir
versiyon hazrlayacam ve size talimatlar gndereceim. eviri ilemi Java dan anlamay
gerektirmez.
Replace Accented Characters: Baz platformlar 7-bitli ASCII karakter setinde grnmeyen
karakterler iin (rnein veya ) zayf destee sahiptir. aretleme kutucuu mevcut dilin
herhangi bir eiti var olmadnda (ngilizce gibi) pasifletirilir.
Shaped Gates: Mantk geitlerini izmek iin balca iki standart vardr: biimli
(shaped) ve dikdrtgen (rectangular) geitler. Aadaki tablo ayrm tanmlar.
(Bazlar bunlarn U.S. ve European sitilleriyle ilgilenirler; Geri ben bu terminolojiyi onaylamyorum
nk o dnyann her blgesinin kendi standardn bulmasn tavsiye ediyor ve bu Logisim iin
nemli problemler karacaktr!)
Logisim tam olarak her iki standard da izlememektedir; birbirleri arasnda geie izin vermek iin
aradaki topraklamay ynetir. Bilhassa biimli geitler, konu ile ilgili IEEE standard tarafndan
tanmlanm boyutlardan ok daha fazla karedir. Ve, XOR ve XNOR geitleri gerekte dikdrtgen
modelli OR ve NOR geitleriyle benzer genilikte olmas gerekirken biimli-XOR geidinin sktrma
zorluu nedeniyle deildirler.
Hali hazrda dikdrtgen OR geidi, yukarda uygun etiket tanmlanmasndan ziyade ">0" etiketi ile
izilmitir nk ou platform hala tam olarak Unicode karakter setini desteklemez.
Proje Seenekleri
Logisim konfigrasyon seeneklerinin iki kategorisini destekler: uygulama tercihleri (application
preferences) ve proje seenekleri (project options). Uygulama seenekleri, tm ak projeleri
kapsayan seenekleri adres gsterir, oysa proje seenekleri bir proje ile ilgilidir. Bu blm proje
seeneklerini tartmaktadr; uygulama seenekleri (application preferences) baka bir blmde
tartlmaktadr.
Project mensnden Options seenei aracl ile proje seeneklerini grebilir ve
dzenleyebilirsiniz. O drt sekmeye sahip Options penceresini getirir.
Canvas sekmesi
Canvas sekmesi devre izim alannn grnmnn konfigrasyonuna izin verir.
Printer View: Onay kutusu yazcda grntlendii ekilde ekranda devrenin grntlenmesini
belirler. Normalde Logisim devreyi mevcut devre durumunun iaretleriyle birlikte ekranda
grntler ve bileen arayz hakknda baz ipular grntler (zellikle OR geitleri zerine
onlarn nereye balanacan belirtmek iin bacaklar izer). Geri yazc grnm durum
iaretlerini ve bu ekildeki arayz ipularn atlar.
Show Grid: Onay kutusu zgara boyutunu gstererek arka planda noktalarn izilip
izilmeyeceini belirler.
Show Attribute Halo: Onay kutucuu nitelik arac evresine silik oval eklin mi yoksa nitelik
tablosunda gsterilen nitelie sahip aracn m izileceini belirler.
Show Ghosts: Onay kutucuu fare alma alannn zerinde dolatrldnda bileenin hafif-gri
d hatlarnn eklenip eklenmeyeceini belirler. rnein, eer AND geit aracn seerseniz ve
fareyi pencerede hareket ettirirseniz (tua basmadan), tkladnzda AND geidinin grnecei
yerde AND geidi evresinde gri bir d hat izilecektir. Onay kutucuunu iaretlememek bu
ilevi etkisiz hale getirir.
Show Component Tips: Onay kutucuu fare bileeninin zerinde gezdirildiinde "ara
ipular"nn geici olarak grntlenip grntlenmeyeceini belirler. rnein, eer fareniz alt
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
devre bileeni pininin zerindeyse, bu size o alt devredeki pinin etiketini grntleyecektir - ya
da etiketi olmayan alt devrenin ismini gsterir. Fareyi splitter'n sonlarndan bir tanesi
zerinde gezdirmek bu sona ait bitleri syleyecektir. Ek olarak, Memory ve Plexers
ktphanelerindeki tm bileenler ipular aracl ile size giri ve klar hakknda bilgi
sunacaktr.
Zoom Factor: Resmi belli bir oranla "bytmenizi" salar. Bu seenek daha ok canl snf
gsterimlerinde ekrann snfn arkalarndan grnmesi asndan znrlnn az olduu
zamanlar iin dnlmtr.
Simulation sekmesi
Simulation sekmesi, devreleri simle etmek iin kullanlan algoritmay konfigre etmeye izin verir.
Bu parametreler ayn pencerede simle edilen tm devrelere hatta proje ierisinde dier
ktphanelerde yklenmi olarak var olan devrelere de uygulanr.
Rasgele grlt olmadan, iki geit ard ardna alacandan devre salnm yapar;
ama rasgele grlt eklenerek bir geit dierinden daha hzl olur.
Iterations Until Oscillation: Birleik girdi kutucuu, bir devrenin salmn yaptna karar
vermeden nce ne kadar sre simlasyon yapacan belirler. Say, dahili gizli saatin (sadece
tek tklama alan sabit bir geit) tklamalarnn saysn gsterir. Varsaylan 1,000, byk
devreler dahil tm amalar iin yeterince iyidir. Fakat, Logisim'in hatal salnmlar rapor ettii
bir devre ile alyorsanz tekrarlamalarn saysn artrmak isteyebilirsiniz; Byle bir probleme
neden olan yukardaki kilit devrelerinin ounun birletirildii bir devre ile olan sorunlar hayal
edebiliyorum. Salnmlara yatkn bir devre ile alyorsanz ve olaand yava bir ilemci
kullanyorsanz, tekrarlamalarn saysn azaltmak isteyebilirsiniz.
Toolbar sekmesi
Toolbar sekmesi ara ubuunda hangi aralarn grneceini konfigre etmenize izin verir.
Sol taraf mevcut olan btn aralar gsteren bir taraycdr. Sa taraftaki liste ise ara ubuundaki
ierikleri gstermektedir. (Kk bir boluk olarak grlen "---", bir ayrac gstermektedir).
Tarayc ile liste arasnda be tane dme vardr:
Add Tool: Gezin ierisine, ara ubuunun solundan sonuna kadar geerli seilmi arac ekler.
Move Up: Ara ubuunun geerli seilmi maddesini bir nokta yukar/sola hareket ettirir.
Move Down: Ara ubuunun geerli seilmi maddesini bir nokta aa/saa hareket ettirir.
Mouse sekmesi
Varsaylan olarak, Logisim'in izim alannda fare ile tkladnzda, hali hazrda seili ara
kullanlacaktr. Eer sa-tklar yada kontrol-tklarsanz, farenin altnda mevcut bileen iin alr
pencere gsterecektir.
Logisim, her zaman ara ubuu ve/veya explorer a gitme ihtiyacnz hafifletirecek bu davran
deitirmenize izin verir. (Sol-el kullancs olsanz dahi bu kullanl olabilir). Fare dmesinin ve
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
deitirici tuun (shift ve/veya kontrol) her kombinasyonu farkl bir ara iin atanabilir. Mouse
sekmesi bu atamalarn konfigrasyonuna izin verir.
Bu alann altndakiler mevcut atamalarn bir listesidir. Herhangi bir kombinasyonun hali
hazrda seili arac basite kullanmas iin listelenmediine dikkat edin.
Aadaki, dme zerindeki tabloda hali hazrda seili atamay silebileceiniz Remove
dmesidir. leride fare kombinasyonu herhangi bir ara, ara ubuu yada aratrma
penceresinde seilerse ona iaret edecektir.
Bunun altndaki, atamalarn listesinde hali hazrda seili ara iin zniteliklerinin bir listesidir.
Her fare-atamal ara kendi znitelikler setine sahiptir, aratrma penceresi ve ara ubuunda
kullanlan zniteliklerden farkldr. Buradaki znitelik deerlerini dzenleyebilirsiniz.
Deer Yaylm
Devreler boyunca deerlerin yaylmn simule etmek iin Logisim'in algoritmas, normalde
hakknda endielenmeniz gereken bir ey deildir. Algoritmann geit gecikmelerini aklamak iin
yeterince tecrbeli olduunu sylemek yeterlidir fakat deien gerilimler veya yar koullar gibi
ok zor olgular aklamak iin yeterince gereki deildir.
Hala daha fazlasn bilmek istiyor musunuz?
Geit gecikmeleri
Logisim algoritmasnn tecrbe seviyesine bir rnek olarak aadaki devreyi gz nnde
bulundurun.
Bu "ak bir ekilde" daima 0 kts verir. Fakat NOT geitleri gerekte ve Logisim'de girilerine
hemen tepki gstermez. Sonu olarak bu devrenin girii 0 dan 1 e deitiinde AND geidi ksaca iki
adet 1 girii grecektir ve 1 yayacaktr. Ekranda onu grmeyeceksiniz. Fakat etki D iki duraklsnn
saati ierisine bir giri gibi AND geidinin kn kullandmzda gzle grlr.
0 giriini 1 olacak ekilde darbelemek, ayn anda D flip-flopuna bir 1 girmesine sebep olur ve
bylece girdinin deeri her 0 dan 1 e deitiinde flip-flopun deeri de deiir.
Her bileen onunla btnleik bir gecikmeye sahiptir. Logisim ierisine btnletirilmi ok ierikli
bileenler byk gecikmelere sahip olma eilimindedirler fakat bu gecikmeler bir miktar keyfidir
gerei yanstmayabilir.
Arada srada ve dengesiz frekans ile Logisim bileenin yaylmna bir gecikme ekleyecektir. Bu
gerek devrelerin dengesizliini simle etmek iin tasarlanmtr. zellikle iki NOR geidi kullanan
bir R-S kilidi her iki geidin girilerinin muntazaman alacak olmas gibi bu rasgelelik olmadan
salnacaktr. Bu rasgelelik Project Options penceresinin Simulation sekmesi aracl ile kapatlabilir.
Teknik adan bakldnda, tek bir devrede kapsamlln bu seviyesi ile ilgilenmek greceli olarak
kolaydr. Geri alt devreler zerinden geit gecikmeleri ile ilgilenmek bir miktar daha karmaktr;
Logisim bunu doru olarak adreslemeyi dener.
Logisim'in daima geit gecikmelerini iyi bir ekilde adreslediini syleyerek ksa kestiime dikkat
edin. Fakat en azndan dener.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Salnm hatalar
Herhangi bir problem olmadan normal bir ekilde sessizce alan yaylm algoritmas, salnan bir
devre oluturduunuzda ok grnr hale gelecektir.
Bu devre hali hazrda kararl bir durumdadr. Fakat eer girii 1 e dntrrseniz, devre etkin bir
biimde sonsuz bir dngye girecektir. Bir sre sonra Logisim tamamen vazgeecek ve devrenin
salndna inandn syleyen bir mesaj gsterecektir.
inanyorsanz Project Options penceresinin Simulation sekmesi aracl ile salnm meydana
gelmeden nce tamamlanacak tekrarlamalarn saysn ayarlayabilirsiniz.
Eksiklikler
Logisim'in yaylm algoritmas hemen hemen tm eitimsel amalar iin yeterince sofistikedir; fakat
endstriyel devre tasarm iin yeterince sofistike deildir. ok iddetliden az iddetliye srasyla
Logisim'in yaylm tekniinin ierdii eksiklikler unlardr:
Logisim, pinleri bazen giri gibi ve bazen k gibi davranan alt devreleri simle edemez. Buna
ramen Java kullanlarak ina edilmi bileenler byle pinlere sahip olabilir : Btnleik
ktphanelerde Memory ktphanesinin RAM devresi hem giri hem de k gibi davranan bir
D pinini barndrr.
Logisim, sabit sayda tekrarlama bir salnm hatas olduunu varsaydktan sonra simlasyonunu
keser. Makul bir ekilde salnmayan byk bir devre rahatszla neden olur.
Logisim gerilim seviyelerine kar farkl muamele yapmaz: Bir bit, ak, kapal, belirtilmemi
yada hatal olabilir.
Benim atladm sakl olan dier baz zellikler de var ve zaten bunlarn farknda olsaydnz
Logisim'in o seviyenin yanna bile yaklaamayacan bilirdiniz. U bir rnek olarak, byk bir
yonga imalatsnda alan bir arkadam var ve onun grevi yongann nanometre-genilikli
kablolarnda byyen ve rasgele balant kopmalarna yol aan "baloncuklar" iin
kayglanmaktr.
Bunun tesinde, ben bir devre tasarm uzman deilim; bu yzden yaylma tekniinde
farketmediim baz hatalarm olabilir. Uzmanlarn dzeltmelerine her zaman am.
Program Hakknda
Logisim ak-kaynak kodlu bir yazlmdr. Kaynak kodu, datlm JAR dosyasnn src altdizinine dahil
edilmitir.
Eer Logisim'i faydal buluyorsanz ltfen beni bilgilendiriniz. zellikle bunu eitim amal
yapyorsanz; bu bilgi alma iin destek almama yardmc olacaktr.
Logisim hakknda hata raporlarn, nerileri ve dzeltmeleri ieren e-mail ler alyorum. Bana e-mail
gnderirken sizden hibir cret almadan Logisim i retmeye altm ltfen hatrlayn. Eer
yazlm hakknda dzeltilme ikayetinde bulunmak istiyorsanz Logisim e rekabet plan iin para
demenizi neririm. (Logisim'in zellik setine hibir ak-kaynak kodlu rakibin yaklaamadn
biliyorum). Yine de Logisim i gelitirmeye devam etmekle olan ilgimi srdryorum ve nerileriniz
ok nemli olacaktr.
Teekkrler
Logisim'in kaynak kodu balca benim kendi almamdr; Bu program dahil almama bir profesr
gibi fon salayan patronlarma teekkr etmeliyim: Programa Saint John's University (Collegeville,
Minnesota, USA) de 2000-2004 de baladm ve onu Hendrix College (Conway, Arkansas, USA) de
2004 den bu yana srdrdm. Bu proje zerinde almama zaman ayran ve kaynak salayan bu
kolejlere ok minnettarm. Keke tm kolejler ve niversiteler bu kolejlerin yapt kadar kusursuz
eitim hakknda birlikte olsalar ve ilgilenseler!
kincisi, spanyadan yabanc renci deiimiyle Hendrix de okurken 2.1.0 versiyonunun spanyolca
evirisini gerekletiren Pablo Leal Ramos'dur.
Son olarak ve benzer ekilde nemli Logisim'in daha nceki versiyonlar boyunca alm iki
renci grubudur: Logisim gelitirilirken en temel versiyonlarnn kullanld Saint Benedict koleji
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
ve Saint John's University deki Yaz dnemi 2001 senesi CSCI 150 snflar; ve 2.0 n en eski
tekrarlarnn beta-test lerinin yapld Berkeley deki California niversitesindeki Yaz dnemi 2005
senesi CS61C snfr. Bu renciler ou hataya katlandlar ve sabrlar ve nerileri iin ok teekkr
borluyum!
Logisim'in eitli paralar Logisim'in kulland tekilerin paketlerinden gelmektedir; bu paralarn
ou Logisim'in paras olarak datlmtr.
JAR Ktphaneleri
JAR ktphanelerini Oluturmak
Bu blmn geri kalan ksm, Logisim ktphanelerini kendi banza nasl gelitireceinizi aklayan
ayrntlaryla deerlendirilen rneklerin bir serisi verilmektedir. Buna sadece deneyimli bir Java
programcs iseniz kalkmalsnz. Aka yetersiz bu rneklerin tesinde belgeler bulabileceksiniz.
Logisim Web sitesinin Links blm aracl ile Logisim ierisine adapte edilebilecek bu rneklere
izin veren bir JAR dosyas indirebilirsiniz. Bu JAR dosyas ayn zamanda bu rneklerde ihtiva eden
kaynak kodunu ierir; bu kaynak kodu kamu maldr. (Aksine Logisim'in kaynak kodu GNU Public
License altnda serbest braklmtr).
class n nesneleri arasndaki iliki Java ierisindeki bir nesne ile onun class arasndaki ilikiye
benzer.
Component ve ComponentFactory arayzleri iindeki tm metotlar direkt olarak uygulamak
baya skc ve gereksiz tekrarlar iermektedir. Pratikte onun
yerine ManagedComponent ve AbstractComponentFactory class lar geniletmek daha fazla
kullanldr.
Bileen ktphanelerini tanmlamak iin uygun class larn ou ktphane ierisinde
bulunmaktadr.
com.cburch.logisim.comp
Bileenleri tanmlamaya spesifik olarak bal yukarda
anlatlan Component, ComponentFactory, ManagedComponent ve AbstractComponent
Factory trlerini barndran class'lar ierir.
com.cburch.logisim.data
alma alanndaki noktalar temsil etmek iin Location class veya bir kablo zerinde var
olabilen deerleri gstermek iin Value class gibi bileenlere bal veri eleri ile ilikili class
lar ierir.
com.cburch.logisim.tools
Aralar tanmlamak ve bileenler ile aralar arasndaki etkileimi belirlemekle alakal class
lar ierir. (Bu sadece ok zel amala yaplan bileenler iin gereklidir).
ByteIncrementer
Bu bir bileeni tanmlamak iin kkl eleri rnekleyen asgari bir rnektir. Bu zel bileen 8-bit
girii alp 8-bit k reten ve deeri giriinkinden bir fazla olan bir artrcdr.
Bu rnein kendisi alan bir JAR dosyas oluturmak iin yeterli deildir; bu klavuzun sonraki
blmnde rneklendirildii gibi ayrca bir Library class salamalsnz.
package com.cburch.incr;
import com.cburch.logisim.circuit.CircuitState;
import com.cburch.logisim.comp.ComponentDrawContext;
import com.cburch.logisim.comp.ComponentFactory;
import com.cburch.logisim.comp.EndData;
import com.cburch.logisim.comp.ManagedComponent;
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.BitWidth;
import com.cburch.logisim.data.Location;
import com.cburch.logisim.data.Value;
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
context.drawRectangle(this, "+1");
context.drawPins(this);
}
}
ByteIncrementerFactory
package com.cburch.incr;
import com.cburch.logisim.comp.AbstractComponentFactory;
import com.cburch.logisim.comp.Component;
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.Bounds;
import com.cburch.logisim.data.Location;
/** The object that manufactures ByteIncrementers. */
class ByteIncrementerFactory extends AbstractComponentFactory {
// The AbstractComponentFactory parent class conveniently implements
// just about all the methods we need for ComponentFactory. All we really
// need are the getName, createComponent, and getOffsetBounds methods
// here.
/** The sole instance of this class. */
static final ByteIncrementerFactory instance = new ByteIncrementerFactory();
/** Constructs an instance. There is no reason to have multiple instances
* of this class, so I make the constructor method private to restrict creation
* to within this class only. */
private ByteIncrementerFactory() { }
/** Returns the name of this component class, as it is stored in a file. */
public String getName() {
return "Byte Incrementer";
}
/** Returns the name of this component class as the user should see it. */
public String getDisplayName() {
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
JAR ktphanesinin eriim noktas Library class' genileten bir class dr. Ktphanenin ana grevi,
ktphane boyunca mevcut olan aralar listelemektir; ou kez aralar tamamen eitli bileenleri
eklemek iin tanmlanm aralardr - yani farkl bileen fabrikalar ile alan AddTool class
rnekleri.
Components
package com.cburch.incr;
import java.util.Arrays;
import java.util.List;
import com.cburch.logisim.tools.AddTool;
import com.cburch.logisim.tools.Library;
import com.cburch.logisim.tools.Tool;
/** The library of components that the user can access. */
public class Components extends Library {
/** The list of all tools contained in this library. Technically,
* libraries contain tools, which is a slightly more general concept
* than component classes; practically speaking, though, there
* shouldn't be much reason to invent tools beyond new instances of
* AddTool.
*/
private List tools;
/** Constructs an instance of this library. This constructor is how
* Logisim accesses first when it opens the JAR file: It looks for
* a no-arguments constructor method of the user-designated class.
*/
public Components() {
tools = Arrays.asList(new Tool[] {
new AddTool(ByteIncrementerFactory.instance),
new AddTool(IncrementerFactory.instance),
new AddTool(SimpleCounterFactory.instance),
new AddTool(Counter.factory),
});
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
}
/** Returns the standard name of the library. Actually, this string
* won't be used by Logisim. */
public String getName() {
return Components.class.getName();
}
/** Returns the name of the library that the user will see. */
public String getDisplayName() {
return "Increment";
}
/** Returns a list of all the tools available in this library. */
public List getTools() {
return tools;
}
}
Incrementer
package com.cburch.incr;
import com.cburch.logisim.circuit.CircuitState;
import com.cburch.logisim.comp.ComponentDrawContext;
import com.cburch.logisim.comp.ComponentFactory;
import com.cburch.logisim.comp.EndData;
import com.cburch.logisim.comp.ManagedComponent;
import com.cburch.logisim.data.Attribute;
import com.cburch.logisim.data.AttributeEvent;
import com.cburch.logisim.data.AttributeListener;
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.Attributes;
import com.cburch.logisim.data.BitWidth;
import com.cburch.logisim.data.Location;
import com.cburch.logisim.data.Value;
/** Represents an incrementer that can work with any bit width. This component
* is designed to illustrate how to use attributes. */
class Incrementer extends ManagedComponent {
/** The attribute representing the bit width of the input and output. */
static final Attribute WIDTH_ATTRIBUTE = Attributes.forBitWidth("Bit Width");
/** The default value of the width attribute. */
static final BitWidth WIDTH_DEFAULT = BitWidth.create(8);
/** Listens for changes to the width attributes, because we need such
* changes to be reflected in the information about ends managed by the
* ManagedComponent superclass. */
private class MyListener implements AttributeListener {
public void attributeListChanged(AttributeEvent e) { }
public void attributeValueChanged(AttributeEvent e) {
if(e.getAttribute() == WIDTH_ATTRIBUTE) computeEnds();
}
}
/** Represents the sole instance of MyListener. (The more common
* idioms for dealing with listeners do not involve such a
* local variable, but I strongly prefer this idiom, because
* I often find it useful to store listeners in the listened-to
* object using weak references to avoid situations analogous
* to memory leaks when the listened-to object persists beyond
* the intended life of the listening object. A side effect of
* this is that the listener would die immediately if the listening
* object doesn't maintain its own strong reference; hence the
* instance variable. [It happens that the AttributeSet used here
* uses strong references, but that's no guarantee that a future
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
out = Value.createUnknown(in.getBitWidth());
}
circuitState.setValue(getEndLocation(1), out, this,
in.getBitWidth().getWidth() + 1);
}
public void draw(ComponentDrawContext context) {
context.drawRectangle(this, "+1");
context.drawPins(this);
}
}
IncrementerFactory
package com.cburch.incr;
import com.cburch.logisim.comp.AbstractComponentFactory;
import com.cburch.logisim.comp.Component;
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.AttributeSets;
import com.cburch.logisim.data.Bounds;
import com.cburch.logisim.data.Location;
/** Manufactures Incrementer components. */
class IncrementerFactory extends AbstractComponentFactory {
static final IncrementerFactory instance = new IncrementerFactory();
private IncrementerFactory() { }
public String getName() {
return "Incrementer";
}
public String getDisplayName() {
return "Incrementer (General)";
}
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
/** Creates an attribute set holding all the initial default values. This
* is the only change from the ByteIncrementerClass class, where
* we simply kept the definition implemented in the parent class. Here, though,
* we want to insert the attribute. */
public AttributeSet createAttributeSet() {
return AttributeSets.fixedSet(Incrementer.WIDTH_ATTRIBUTE,
Incrementer.WIDTH_DEFAULT);
}
public Component createComponent(Location loc, AttributeSet attrs) {
return new Incrementer(loc, attrs);
}
public Bounds getOffsetBounds(AttributeSet attrs) {
return Bounds.create(-30, -15, 30, 30);
}
}
SimpleCounter
package com.cburch.incr;
import com.cburch.logisim.circuit.CircuitState;
import com.cburch.logisim.comp.ComponentDrawContext;
import com.cburch.logisim.comp.ComponentFactory;
import com.cburch.logisim.comp.EndData;
import com.cburch.logisim.comp.ManagedComponent;
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.BitWidth;
import com.cburch.logisim.data.Bounds;
import com.cburch.logisim.data.Direction;
import com.cburch.logisim.data.Location;
import com.cburch.logisim.data.Value;
import com.cburch.logisim.util.GraphicsUtil;
import com.cburch.logisim.util.StringUtil;
/** Represents a simple 8-bit counter. This example illustrates how a
* component can maintain its own internal state. */
class SimpleCounter extends ManagedComponent {
/** The width of input and output. */
private static final BitWidth BIT_WIDTH = BitWidth.create(8);
// Note what's not here: We don't have any instance variables referring
// to the counter's state. Using instance variables to refer to state
// would be a major bug, because this component may appear in a circuit
// that is used several times as a subcircuit to another circuit. Thus,
// this single component would actually appear many times in the overall
// circuit. Any instance variables storing state would lead to weird
// interactions among the states. Instead, we need to store all state
// information in an object stashed into a CircuitState.
SimpleCounter(Location loc, AttributeSet attrs) {
super(loc, attrs, 2);
setEnd(0, loc.translate(-30, 0), BitWidth.ONE, EndData.INPUT_ONLY);
setEnd(1, loc,
BIT_WIDTH, EndData.OUTPUT_ONLY);
}
public ComponentFactory getFactory() {
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
return SimpleCounterFactory.instance;
}
public void propagate(CircuitState circuitState) {
// Here I retrieve the state associated with this component via
// a helper method. In this case, the state is in a CounterState
// object.
CounterState state = getCounterState(circuitState);
Value clk = circuitState.getValue(getEndLocation(0));
if(state.getLastClock() == null ||
(state.getLastClock() == Value.FALSE && clk == Value.TRUE)) {
// Either the state was just created, or else we're on a rising edge
// for the clock input; in either case, increment the counter.
Value newValue = Value.createKnown(BIT_WIDTH,
state.getValue().toIntValue() + 1);
circuitState.setValue(getEndLocation(1), newValue, this, 9);
state.setValue(newValue);
}
state.setLastClock(clk);
// (You might be tempted to determine the counter's current value
// via circuitState.getValue(getEndLocation(1)). This is erroneous,
// though, because another component may be pushing a value onto
// the same wire, which could lead to conflicts that don't really
// represent the value the counter is emitting.)
}
public void draw(ComponentDrawContext context) {
context.drawRectangle(this);
context.drawClock(this, 0, Direction.EAST);
context.drawPin(this, 1);
// I'd like to display the current counter value centered within the
// rectangle. However, if the context says not to show state (as
// when generating printer output), then I shouldn't do this.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
if(context.getShowState()) {
CounterState state = getCounterState(context.getCircuitState());
Bounds bds = getBounds();
GraphicsUtil.drawCenteredText(context.getGraphics(),
StringUtil.toHexString(BIT_WIDTH.getWidth(), state.getValue().toIntValue()),
bds.getX() + bds.getWidth() / 2,
bds.getY() + bds.getHeight() / 2);
}
}
/** Retrieves the state associated with this counter in the circuit state,
* generating the state if necessary.
*/
protected CounterState getCounterState(CircuitState circuitState) {
CounterState state = (CounterState) circuitState.getData(this);
if(state == null) {
// If it doesn't yet exist, then we'll set it up with our default
// values and put it into the circuit state so it can be retrieved
// in future propagations.
state = new CounterState(null, Value.createKnown(BIT_WIDTH, -1));
circuitState.setData(this, state);
}
return state;
}
}
CounterState
package com.cburch.incr;
import com.cburch.logisim.comp.ComponentState;
import com.cburch.logisim.data.Value;
/** Represents the state of a counter. */
class CounterState implements ComponentState, Cloneable {
/** The last clock input value observed. */
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Counter
package com.cburch.incr;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import com.cburch.logisim.circuit.CircuitState;
import com.cburch.logisim.comp.AbstractComponentFactory;
import com.cburch.logisim.comp.Component;
import com.cburch.logisim.comp.ComponentFactory;
import com.cburch.logisim.comp.ComponentUserEvent;
import com.cburch.logisim.comp.EndData;
import com.cburch.logisim.data.Attribute;
import com.cburch.logisim.data.AttributeEvent;
import com.cburch.logisim.data.AttributeListener;
import com.cburch.logisim.data.AttributeSet;
import com.cburch.logisim.data.AttributeSets;
import com.cburch.logisim.data.Attributes;
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
import com.cburch.logisim.data.BitWidth;
import com.cburch.logisim.data.Bounds;
import com.cburch.logisim.data.Location;
import com.cburch.logisim.data.Value;
import com.cburch.logisim.tools.AbstractCaret;
import com.cburch.logisim.tools.Caret;
import com.cburch.logisim.tools.Pokable;
/** Implements a counter for an arbitrary number of bits, whose value can be
* modified interactively by the user. The primary purpose of this example is
* to illustrate the addition of user interaction; the entry point for this
* interaction is via the getFeature method.
*/
class Counter extends SimpleCounter {
// Note that I've extended SimpleCounter to inherit all of its logic
// for propagation and drawing.
// The previous examples have included two separate classes for each
// component. In practice, though, I personally prefer having just
// one file per component type. The most convenient technique for this
// is to make a private nested class for the factory, and to include
// a constant referring to the factory.
public static final ComponentFactory factory = new Factory();
// I'll restrict the maximum width to 12, since the rectangle drawn doesn't
// have room to display more than 12 bits.
static final Attribute WIDTH_ATTRIBUTE = Attributes.forBitWidth("Bit Width", 1, 12);
static final BitWidth WIDTH_DEFAULT = BitWidth.create(8);
private static class Factory extends AbstractComponentFactory {
private Factory() { }
public String getName() {
return "Counter";
}
Base Ktphanesi
Base Library devre ierisindeki davranlar dierlerinden ayrt edilebilen bileenler ierir.(ok
seyrek olarak Logisim yaylma aracnda kullanlr)
Poke Tool
Ktphane: Base
Versiyon:
2.0 Beta 1
Davran
Poke Tool bileenlerle ilikili deerleri ilemek iin kullanlr. Poke Tool'un asl davran zerine
tklanan bileene gre deiir, bu davran 'Poke Tool Davranlar' blmnde her bir bileen iin
dkmante edilmitir. Aadaki bileenlerin hepsinin Poke Tool destei vardr.
<table >
Temel ktphane:Pin
ClockHafza ktphanesi:D/T/J-K/S-R Flip-Flop
Register
RAMKalt ktphane:Logisim 1.0 D/J-K Flip-Flop
Logisim 1.0 8-Bit Register
Kablolama Aralar sayfasnda akland gibi Poke Tool kullanarak kablo parasnn zerine
tklayarak o kablo tarafndan tanan deer grntlenir.
Nitelikleri
Yok. Poke Tool destekli bir bileenin zerine tklannca o bileenin nitelikleri grntlenebilir.
Select Tool
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Ktphane: Base
Versiyon:
2.0 Beta 1
Davran
Her bir bileenin o anki seime yerletirilmesini salar. Bu arala gelen birka ilem vardr.
Dier taraftan, bir bileenle fareye tklamak o anki seimdeki tm bileenleri drr ve
tklanan blgeyi ieren bileenleri seer.
Bileene fareye kaydrarak tklamak bileenin seimde bulunduunu gsterir. Eer birok
bileen ayn blgeyi ieriyorsa, tm bileenlerin bulunduu grntlenir. Eer kaydrarak
tklama baka bir ileme ynlendirilmise (proje seeneklerinden pencere fare sekmesiyle)
bunlarn hibiri gereklemez.
Hi bir bileen iermeyen blgede fare kaydrarak srklenirse drtgen bir seim balar. Bu
drtgen seim ierisindeki tm bileenler grnecektir. Eer kaydrarak srkleme baka bir
araca ynlendirilmise bu olay gereklemez.
Seimdeki paralar seildikten sonra Dzenle mensnden tm paralar iin
kes/kopyala/yaptr/sil ilemlerini yapabilirsiniz.
Panoyu devreye yaptrma srasnda Logisim'in davran biraz ilgintir. Bileenleri annda devreye
eklemeyecektir; bunu yerine; seim "hayali" bir toparlama olacaktr, ve baka bir blgeye
srklendiinde ya da seimden kaldrldnda devrenin iine yerletirilecektir. (bu ilgin davran
gereklidir nk yaptrldnda ilk olarak seilen kablolar devrenin dier kablolaryla
birletirilecek, ve kullanc yaptrlan bileenleri tamaya altnda bir nceki kablolarla
beraber srklenecektir)
Nitelikleri
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Wiring Tool
Ktphane: Base
Versiyon:
2.0 Beta 1
Davran
Kablolama arac bir son noktadan dierine deer tayan kablo paralar oluturmaya yarar. bu
deerlerin bit genilii herhangi bir ey olabilir; gerekte bileenin bit genilii balanan kabloya
otomatik olarak aktarlr. Eer hi bir bileene balanmamsa, bit geniliinin bilinmediini
belirtmek iin kablo gri olarak izilir, eer bileenle kablonun bit genilikleri birbirini tutmuyorsa
kablo turuncu olarak izilir, ve kablo bu akma giderilene kadar gelen deerleri geri evirir.
Farenin tek srklenmesi birden ok kablo paralar oluturur. Asl ilem bu noktada biraz kafa
kartrcdr; fakat pratikte bu sezgisel bir eydir: Eer Wiring Tool kullanarak bir kablo paras
isteminde bulunursanz, bu para oradaki bileenin bir pinine ya da mevcut kablo parasnn
sonuna balanmak iin blnr.Ayn zamanda, yeni kablo parasnn son noktas mevcut kablonun
ortasna balanyorsa, bu kablo kendisini birok paraya ayrr.
Kablolarn balanabilecei koanlar izen baz bileenler(OR kaps ya da kontroll tampon gibi),
Logisim koann sonuna atlatarak kablo oluturma iini dzeltir.
Wiring Tool kullanarak mevcut kablo parasn ksaltabilirsiniz, parann sonunu yada ban
ekerek ve mevcut parann zerine kararak.
Logisim'deki tm kablolar dikey ya da yataydr.
Kablolar ynszdr, son noktasndan baka bir noktaya deer tar. Bir kablo her iki ynde
deerleri kendiliinden tar, aadaki rnekte merkez kablo bu ilemi yapmaktadr.
Nitelikleri
Wiring Tool tek bana nitelie sahip deildir, ama oluturduu kablolar sahiptir.
Text Tool
Ktphane: Base
Versiyon:
2.0 Beta 1
Davran
Text Tool bileenlerle ilikili etiketleri dzenlemenizi ve oluturmanz salar. Etikleri destekleyen
bileenler "Text Tool Davranlar" blmnde belirtilmitir. u anki srmde yerleik
ktphanelerdeki bileen etiketleri destekler.
Temel Ktphane Pin
Clock
Label
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Bu bileenlerden birine Text Tool kullanarak tklamak bileenin etiketini deitirmek istediinize
iaret eder, etiketin bulunduu yerden baka bir yere tklamak sizin etiketi deitirmek istediinizi
gsterir, bir baka blgeye tklamak yeni bir etiket oluturacanz gsterir.
Logisim'in mevcut srmnde yaz dzenleme zellikleri olduka ilkeldir. Yaz ile etiketin olduu
blgeyi semek imkanszdr. Etikete satr sekmesi eklemenin yolu yoktur.
Nitelikleri
Bu aracn nitelikleri etiketinkilerle ayndr. Bu nitelikler mevcut bileendeki etiketin
dzenlenmesinden etkilenmezler, ama Text Tool kullanarak oluturulmu etiketle ilikilidir.
Text Tool destekleyen bileenin zerine tklandnda o bileenin nitelikleri grntlenir.
Menu Tool
Ktphane: Base
Versiyon:
2.0 Beta 1
Davran
Menu Tool kullanclarn zaten mevcut olan bileenler iin pop-up meny oluturmalarn salar.
n tanml olarak, sa-tklama ya da kontrol-tklama bu pop-up meny getirir; proje
seeneklerindeki fare sekmesi kullancnn fare dmelerini deiik alacak ekilde dzenlemesine
izin verir.
ou bileenin pop-up mens iki para ierir.
Nitelikleri Gster: Bileenin niteliklerini nitelik penceresi tablosuna aktarr ve bylece kullanc
nitelikleri grp deitirebilir.
Baz bileenler iin men ek bileenler bileenler ierir. Alt devresi (bir devreyi dier bir devreyle
"kara kutu" olarak kullanmay salar) bunun bir rneidir. Yukardaki iki bileene ek olarak pop-up
men baka bileenler ierir.
Nitelikler
Yok.
Splitter
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
Splitter oklu-bit deerlerini alt bit setlerine ayrlmasn salar. sminin aksine, oklu-bit deerlerini
bileen paralarna blebilir ya da bileen paralarn oklu-bit deerlerine birletirebilir, yad a her
ikisini bir kerede yapar. Splitter iin daha fazla aklama Kullanma Klavuzun'un ``Splitter`
blmnde bulunabilir.
Logisim splitter' deerleri devre ierisinde datrken kullanr. Tm bileenlerin davranlarnn
simlasyonunda ilemler iin hesaplanm gecikme deerleri vardr, bu deerler splitter
zerinden(kablolardaki gibi) annda yaylr.
Not: Splitter standart olmayan bir terimdir, Bildiim kadaryla Logisim'e zgdr. Bu balamda
herhangi bir standart terim bilmiyorum; tek duyduum terim bus ripper, ama bu terim bana gre
gereksiz bir iddet ieriyor.
Pinler
Splitter iin deiik balant noktalar ayrmak iin tek balant noktas iin birleik son, ve oklu
balant noktas iin blnm son kullanacaz.
Birleik son (giri/k bit genilikleri eleir Bit Genilii nitelii)Tm bitleri tayan deer
splitter zerinden dolar.Blnm son (giri/k, bit genilii Bit x niteliklerine dayanarak
hesaplanr)
Blnm son says: Fan k niteliinde belirtilir, ve her blnm sonun sfrdan byk ve
Fan k niteliinden kk bir indisi vardr. Her bir blnm son iin, Bit x indisi ile belirtilen
tm bitler o blnm sondan dolar; bu bitlerin sras birleik sondaki sralaryla ayndr.
Nitelikleri
Bit x:Blnm sonun indisi, birleik sonun bit x ine baldr. blnm sonlar 0 dan balayarak
stten indekslenir ya da 0'dan sol/batya.
Poke Tool Davran
Yok.
Text Tool Davran
Yok.
Pin
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
Bir pin devrenin girii ya da kdr, k niteliine gre. Pin iziminde, Logisim k pinlerini
ember olarak ya da yuvarlatlm drtgen ile gsterir, ve giri pinleri kare ya da drtgenle
gsterilir. Her iki durumda da, gnderilen ya da alnan deerler bileende grntlenir (yazc
grnm hari, bileen sadece pinin ne kadar bit geniliinde olduunu sylerken.)
Pin devrelerle uramak iin uygun bir bileendir, ve balang Logisim kullanclar bunu
kullandktan sonra grecektir. ama deiik alt devreler kullanarak devre oluturan bir
kullanc(Kullanm Klavuzu'nun Alt devreler balnda anlatld gibi) pinleri devreler ve alt
devreler arasnda bir arayz olarak kullanacaktr. Devre dzeninin pin bileenleri bu dzen baka
devrelerde kullanlrken alt devrede bulunan pinleri belirtir. Byle bir devrede, alt devre bileeni
zerinden gnderilen ya da alna deerler alt devre dzenindeki pinler zerine balanr.
Pinler
Pin bileeninin sadece tek pini vardr, pin k pini ise bileen iin giri, ve eer giri pini ise bileen
iin k olur. Her iki durumda da, bit genilii Bit Genilii niteliiyle eleir, ve konumu Facing
niteliiyle eleir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Nitelikler
k: Bileenin k ya da giri pini olduunu gsterir.(dikkat edin eer pin bileeni giri pini
ise devre ile arayz olarak davrand pin k olacak ya da tam tersi.)
-konum: Giri pini iin, kullancnn pini belirsiz deerleri almas iin ayarlamasn salar. Bu
nitelik sadece kullanc arayz ile alr; devre grnm alt devre olarak kullanldnda
pinin davranna hi bir etk yapmaz. k pini olarak, niteliin bir etkisi yoktur.
ekme Davran: Giri pini olarak, alt devre olarak kullanlan devreden alnan deerlerin nasl
ilem greceini belirler. "Deimemi" ile alnan deerler grnme aynen iletilir, "ekme" ile
devre grnmne yollanmadan nce 1 deerine evrilir, ve "aa ekme" ile gnderilmeden
nce 0 deerine dntrlr .
Probe
Ktphane: Base
Versiyon:
2.0.3
Grnm:
Davran
Devrenin verilen noktasndaki deeri gsteren bir elementtir.Tek bana dier bileenlerle
etkilemez.
ou durumda Probe Pin Bileeninde k pini olarak ayarlanm fonksiyonellii ikiye katlar. tek
deiiklik devre alt devre bileeni olarak kullanldnda olur, ve probe'dakinin aksine k pin'i bir
ara yz olacaktr. Grafiksel olarak benzerdirler fakat snrlarnda ufak farkllk vardr: pin'in kaln
siyah snr varken probe'un kenarlar ince ve gridir.
Pinler
Probe bileeninin giri olarak kullanlan tek bir pini vardr. Bu pinin kabul ettii genilikler
uyarlanabilir. Probe herhangi bir genilie uyuma salayacaktr.
Nitelikleri
Clock
Ktphane: Base
Versiyon
2.0 Beta 13
Grnm
Davran
Zaman kt deerini Simulate mensndeki tikler etkin olduu srece dzenli takvim zerinde
gsterir.(n tanml durumda tikler etkin deildir). "Tik" Logisim'in zaman birimidir, grnen tikin
hz Simulate mensnn Tik Frekans alt mensnden seilebilir.
Zaman dngleri Yksek Aralkl ya da Dk Aralkl olarak ayarlanabilir.
Unutmayn ki Logisim'in clock simlasyonu olduka gerekddr: Gerek devrelerde, oklu
zamanlar birinden dierine akacaktr ve asla sabit bir admda yer deitirmez. Ama Logisim'de tm
zamanlar ayn oranda vurur.
Pinler
Sadece tek bir pine sahiptir, k bit genilii 1dir. Bu tikin konumu Facing niteliinde belirtilmitir.
tik etkin olduu bir zaman da zaman deeri onun takviminde grnecektir ve Poke Tool kullanarak
tklandnda da grnecektir.
Nitelikleri
Label
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
Devrenin herhangi bir yerinde bulunabilen basit bir yaz etiketidir. Devre zerinde dolaan
deerlerle herhangi bir ekilde etkilemez, ancak devre izildii zaman grnecektir.
Dier yerleik bileenlerle karlatrldnda, etiket bileenleri devre tuvalindeki herhangi bir yere
yerleebilir; zgaraya yapmazlar.
Pinler
Yok.
Nitelikler
Etikette grnen yaz. Bu deer nitelik tablosundan ya da Text Tool kullanlarak deitirilebilir.
Etiket izilirken kullanlan font. Yatay yerleme. Etiketin resmi konumuna gre yatay yerletirme
tekniidir.(fare etiket oluturmak iin tkland yerde) "Sol" yaz yazldnda sol kenar konumda
olacak demektir; "Sa" ise onun sa kenar konumda olacak demektir. Ve "merkez" ise yaz
yazldnda ortas(yatay olarak) o konumda olacak demektir. Dikey yerleme. Etiketin resmi
konumuna gre dikey yerletirme tekniidir.(fare etiket oluturmak iin tkland yerde) "Temel"
anahat konumu ikiye blecek demektir; "Tepe" yaznn tepesini konumu ikiye blecek demektir;
"Taban" yaznn taban konumu ikiye blecek demektir; ve "Merkez" yaz ortalanacak
demektir(dikey olarak).
Yaznn tepesi ve taban fontun standart art azalna gre hesaplanr. rnein yaz uzun harfler
iermiyorsa (b gibi) ya da azalan harfler (g gibi), dikey yerletirme olacakm gibi dnlr.
Poke Tool Davran
Yok.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Gates Ktphanesi
Gates ktphanesi deiik basit bileenler ierir, hepsinin deerleri o anki girilerden olumu tek
bir k vardr.
Constant
Ktphane: Gates>
Versiyon:
2.0 Beta 1
Grnm:
Davran
Deer niteliinde belirtilen deeri alr.
Pinler
Bit genilii Bit Genilii niteliiyle eleen bir tek pin'i vardr. Bu pin'in konumu Facing niteliinde
belirtilmitir. Deer niteliindeki deer ne olursa olsun bu bileen sabit olarak bu pin zerinden
kt verir.
Nitelikler
Value: Bileen tarafndan alnan deerin hexadecimal olarak yazlm hali. Deeri tanmlamak
iin kullanlan bitlerin says bit geniliini geemez.
Poke Tool Davran
Yok.
Text Tool Davran
Yok.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
NOT Gate
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
NOT kaps giri her ne alrsa onun tamlayann yayar. NOT kapsnn doruluk tablosu aadadr.
Eer giri tanmlanmamsa (deiken gibi), ya da hata deeriyse, ktda ayn deere sahip olur.
oklu-bit NOT kaps yukardaki deiimi giriteki bitler ynnde gerekletirecektir.
Pinler
Bat kenar: Giri, Bileenin giriindeki Bir Genilii niteliine bal bit genilii.
Dou kenar: k,(Bit Genilii niteliine bal bit genilii). Giri deerinin tamamlayclarnn
deerine sahip olan k.
Nitelikler
Buffer
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
Tampon basite sol taraftan ald girii sa ka geirir. Bir-bit tampon Doruluk tablosu
aadadr.
Bat kenar: (Giri, Bileenin giriindeki Bir Genilii niteliine bal bit genilii) Bileene giri.
Dou kenar: k,(Bit Genilii niteliine bal bit genilii). Her zaman sol tarafa giri ile
eleen k.
Nitelikler
AND/OR/NAND/NOR Gate
Ktphane: Base
Versiyon:
2.0 Beta 1
Grnm:
Davran
AND, OR, NAND ve NOT geitlerin her biri srasyla girilerin fonksiyonlarn, ve ktaki sonular
yayarlar. ki-girili doruluk tablosu aadadr.
Belirsiz olan her giri geri evrilir; AND ve OR geitlerin belirli tm girilerin AND/OR larn hesaplar,
ve NAND/NOR geitleri tm belirli girilerin AND/OR larnn tamamlaycsdr. Eer tm giriler
deikense, kta deiken olur. Eer girilerden biri hata deeri ise (ayn kabloya gelen
deerlerin akmas gibi), kta hata deeri olur.
Her bir geidin oklu-bit versiyonu onun tek-bit deiimini giriteki bitler ynnde
gerekletirecektir.
Pinler
Bat kenar: (Giri, Bileenin giriindeki Bir Genilii niteliine bal bit genilii) Bileene giri.
Giri Says niteliinde belirtilen kadar oklukta olabilir.
Eer yumuatlm geitler kullanyorsanz, OR ve NOR geitlerinin bat taraf bkeyli olur.
bununla beraber, giri pinleri bir hat zerindedir. Logisim bunlar gsteren ksa paralar
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Dou kenar: k,(Bit Genilii niteliine bal bit genilii). Geidin k, deeri yukarda
belirtilmi mevcut giriler zerinden hesaplanr.
Nitelikler
Geit Boyutu: Bileenin geni ya da dar versiyonunun izilmesini belirler. Giri Says niteliiyle
belirlenmi giri saylarna etkisi yoktur; eer giri says 3 (dar bileenler iin) ve 5 (geni
bileenler iin) aarsa , geitler istenilen sayda girii karlayabilmek iin "kanat" ile izilir.
Ktphane: Base
Versiyon:
Grnm:
Davran
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
XOR,XNOR,Even parity ve Odd Parity geitlerinin her biri srasyla giri fonksiyonudur ve ktaki
sonular yayarlar. Bu geitler iin iki-girili doruluk tablosu aadadr.
x y XOR XNOR Odd Even
0 0 0
0 1 1
1 0 1
1 1 0
Grdnz gibi XOR geidi ve Odd Parity geidi iki girite ayn ekilde davranrlar, benzer ekilde
Ever Parity geidi ile XNOR geidi de ayn davranr. Ama eer iki belirlenmi giriten daha fazla giri
varsa, XOR geidi sadece bir giri varken 1 sonucu karacaktr, Odd Parity geidi ift say kadar 1
girii varsa 1 karacaktr. XNOR geidi sadece bir giri yokken 1 sonucu karacaktr, Even Parity
geidi tek say kadar 1 girii varsa 1 karacaktr.
Eer tm giriler deikense, kta deiken olur. Eer girilerden biri hata deeri ise (ayn
kabloya gelen deerlerin akmas gibi), kta hata deeri olur.
Her bir geidin oklu-bit versiyonu onun tek-bit deiimini giriteki bitler ynnde
gerekletirecektir.
Not: ou otoriteler XOR geidinin davrann Odd Parity geidine bal gsterirler, Ama bu
noktada bir anlama yoktur. Logisim'in XOR gate davran IEEE 91 standartlarna dayanr.
"Exclusive" kelimesinin altnda yatan anlam gibidir:
Pinler
Bat kenar: (Giri, Bileenin giriindeki Bir Genilii niteliine bal bit genilii) Bileene giri.
Giri Says niteliinde belirtilen kadar oklukta olabilir.
Eer yumuatlm geitler kullanyorsanz, XOR ve XNOR geitlerinin bat taraf bkeyli olur.
bununla beraber, giri pinleri bir hat zerindedir. Logisim bunlar gsteren ksa paralar
izecektir; ve eer o para zerine gemek isterseniz, sessizce zerine gemek
istemeyeceinizi varsayacaktr. "Yazc grntsnde" bu paralar kablolara bal olmadka
grnmeyecektir.
Dou kenar: k,(Bit Genilii niteliine bal bit genilii). Geidin k, deeri yukarda
belirtilmi mevcut giriler zerinden hesaplanr.
Nitelikler
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Geit Boyutu: Bileenin geni ya da dar versiyonunun izilmesini belirler. Giri Says niteliiyle
belirlenmi giri saylarna etkisi yoktur; eer giri says 3 (dar bileenler iin)
ve 5 (geni
bileenler iin) aarsa , geitler istenilen sayda girii karlayabilmek iin "kanat" ile izilir.
Kontroll Tampon/Dntrc
Ktphane: Gates
Versiyon:
2.0 Beta 1
Grnm:
Davran
The controlled buffer and inverter, often called three-state buffers/inverters, each have a one-bit
"control" input pin on the south side. The value at this control pin affects how the component
behaves:
Kontroll tampon ve dntrclere, sklkla -durumlu tamponlar/dntrcler denir, her biri
gney tarafnda bir bit "kontrol" giri pinine sahiptir. buradaki kontrol pininin deeri bileenin nasl
davranacana etki eder:
Eer pin deeri 1 ise, bileen tampon ya da dntrc olarak davranr, NOT geidi olarak
deil.
Eer deer hata deeri ise (girie geri gelen ve akan deerler olduunda meydana gelir),
kt hata deeri olur.
Kontroll tamponlar dier bileenlerin k deerleriyle eleen deere sahip bir kablonuz
(genelde bus denir) olduunda kullanl olabilir. bileen ve bus arasna kontroll tampon
yerletirerek bileenin knn bus zerine besleme yapp yapmayacan kontrol edebilirsiniz.
Pinler
Bat kenar: (Giri, Bileenin giriindeki Bir Genilii niteliine bal bit genilii) Kontrol girii 1
olduunda k hesaplayacak bileen girii.
Dou kenar: k,(Bit Genilii niteliine bal bit genilii). Kontrol girii 0 yada deiken
olduunda deiken olan, kontrol girii hata deeri olduunda kendisi de hata deeri olan ve
kontrol girii 1 olduunda bat-taraf girii zerinden hesaplanan bileen kdr.
Nitelikler
Memory Ktphanesi
Hafza ktphanesi hatrlanacak bilgileri ierir.
2.0 Beta 1
Grnm:
Davran
Her bir ikili duraklama dou tarafna Q kndan yaylan tek bitlik veri saklar. Normalde, deer bat
tarafna giriten kontrol edilebilir. Ksmen, zaman girii, her bir ikili duraklama zerinde genle
gsterilmitir, 0 dan 1 e ykseldiinde, bu ykselme kenarnda, deer aadaki tabloya gre
deiir.
D ki durakl: zaman 0 dan 1 e ykseldiinde, iki durakl tarafndan saklanan deer D giriinin
deeri(verisi) olur
R-S Flip-Flop: Zaman 0 dan 1 e ykseldiinde, R ve S her ikisi de 0 ise ikili duraklama tarafndan
saklanan deer deimeden kalr, R girii 1 ise 0 olur, ve S girii 1 ise 1 olur. Her iki girite 1
olduunda davran belirsizdi. (Logisim de ikili duraklama deeri deimeden kalr)
J-K ki durakl: Zaman 0 dan 1 e ykseldiinde iki durakl tarafnda saklanan deer eer J ve K
girileri 1 ise grnr, eer sfrsa aynen kalr, K ve J eit deilse K deerine dnr(J ve K
kelimeleri hibir anlam ifade etmez)
Pinler
Bat kenar, genle gsterilmitir (giri, bit genilii 1) Zaman girii: bu giriin deeri 0 dan 1 e
ykseldiinde (ykselme kenar), bat kenarndaki dier girilere gre deer gncellenir. Bu 0 ya da
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
1 olarak kald srece, bat kenarndaki dier giriler bir etki yapmaz.Bat kenar, dier etiketli
giri(ler) (giriler, bit genilii 1) bu giriler ikili duraklamann ykselen kenarda nasl deieceini
belirler. Gerek davran ikili duraklamaya gre deiir; Yukardaki tablo bunlarn davrann
toparlar.. Dou kenar, Q ile gsterilir, kuzey son (k, bit genilii 1) O an ikili duraklama
tarafndan saklanan deerleri kartr. Dou kenar, gney son (k, bit genilii 1) kili
duraklamada saklanan tamamlayc deerleri karr.Gney kenar, dou son (giri, bit genilii 1)
Asenkron sfrlama: 0 yada tanmlanamadnda giriin etkisi olmaz.1 olduunda ikili duraklama
deeri 1. pine gider. Bu asenkron olarak gerekleir - yle ki, o anki zaman giriine baklmakszn.1
olduu srece, dier girilerin etkisi yoktur. Gney kenar, bat son (giri, bit genilii 1) Asenkron
ayart: , 0 yada tanmlanamadnda giriin etkisi olmaz.1 olduunda ikili duraklama deeri 1. pine
gider. Bu asenkron olarak gerekleir - yle ki, o anki zaman giriine baklmakszn.1 olduu srece
dier girilerin etkisi yoktur,asenkron sfrlama girii hari,bunun ncelii vardr.
Nitelikler
Yok.
Kayt
Ktphane: Hafza
Versiyon:
2.0 Beta 1
Grnm:
Davran
Her kayt bir tek oklu-bit deeri saklar, drtgen ierisinde hexadecimal olarak gsterilir ve Q
kndan yaylr. Zaman girii(gney kenarnda genle gsterilmitir) 0 dan 1 e ykseldiinde,
kaytta saklanan deer o anda D giriinin deeri olur.
clr girii kaydn deerini asenkron olarak 0 a eitler, clr girii 1 olduu srece deer 0 a pinlenir,
zaman giriine baklmakszn.
Pinler
Dou kenar, Q ile gsterilir, kuzey son (k, k bit genilii Veri bir Genilii niteliiyle eleir)
Kayt tarafndan saklanan deerleri kartr. Bat kenar, D ile gsterilir(giri, k bit genilii Veri
bir Genilii niteliiyle eleir). Veri Girii: zaman deeri 0 dan 1 e ykseldiinde, kayt deeri D
giriindeki deere dnr. Gney kenar, genle gsterilir(giri, bit genilii 1) Zaman girii: giri
deeri 0 dan 1 e ykseldiinde , kayt deeri D giriindeki deere gncellenir.Gney kenar, clr ile
gsterilir. Asenkron sfrlama: 0 ya da tanmlanmadnda, bu giriin bir etkisi yoktur. 1 olduu
srece kayt deeri 0'a pinlenir. Bu asenkron olarak gerekleir, zaman giriine baklmakszn. 1
olduu srece dier girilerin etkisi yoktur.
Nitelikler
Veri bit genilii:Kaytta saklanan verinin bit genilii
RAM
Ktphane: Hafza
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Versiyon:
2.0 Beta 1
Grnm:
Davran
RAM bileeni Logisim'in yerleik bileenlerinden en karmak olandr. 4.096 adete kadar deer
saklayabilir. (Adres bit genilii niteliinde belirtilmitir), her biri 32 bite ierebilir(Veri bit genilii
niteliinde belirtilmitir) devre RAM ierisinde deer saklayabilir ve ykleyebilir. Ayn zamanda
kullanc Poke Arac kullanarak balang deerlerini interaktif olarak deitirebilir ya da Men
Aracndan modifiye edebilir.
O anki deer bileende gsterilir. Adresler gsterim blgesinin sol tarafnda gri renkte listelenir.
eride, her deer hexadecimal olarak listelenir. O anki seilen adresteki deer ter yaz olarak
grnr(siyah zerine beyaz)
Pinler
Bat kenarnda ki A (giri, bit genilii Adres Bit Genilii niteliindekiyle eleir) Devre tarafnda
eriilebilecek deerleri seer.Dou kenarndaki D (giri/k bit genilii Veri Bit Genilii
niteliindekiyle eleir) Eer k 1 yada tanmlanmamsa(deiken gibi),RAM D pininde seilmi
olan deeri karr. (sel zerindeki sfr bunu etkisizletirecektir.) Eer k 0 ise, D pin giritir,
zaman 0 dan 1 e ktnda deer seilen adrese yerleecektir.gney kenarndaki sel (giri, bit
genilii 1) Eer sadece bir RAM modlnz varsa, bu girii nemsemeyin.
Eer paralel olarak oklu RAM'iniz varsa, Bu girii tm RAM modllerini etkinletirmek yada iptal
etmek iin kullanabilirsiniz, deerin 0 yada 1 olmasna bal olarak Dier bir deyile deer 0
olduunda D knda hi bir deer yaylmayacak ve hafzadaki deerler deimeyecek.Gney
kenarndaki gen (giri, bit genilii 1) Zaman Girii: k sfr olduunda, ve bu giri 0 dan 1 e
ykseldiinde (ve sel 1 /tanmsz ve clr 0), bylece seilen adresteki deer D pinindeki deere
dnr. Zaman girii 0 yada 1 olduu srece,D deeri hafzada saklanmaz.Gney
kenarndaki k (giri, bit genilii 1) RAM in ( D zerinden) o anki adres(A) daki deeri yayacana
karar verir.k 1 ya da tanmszsa ise bu k davran etkindir, eer k 0 ise, zaman 0 dan 1 e
ykseldiinde deer yazacak bir giri gibi davranr. gney kenarndaki clr (giri, bit genilii 1) 1
olduunda, ve sel 1 ya da tanmszsa,dier girilerin ne olduuna baklmakszn hafzadaki tm
deerler pin 0 a ynlendirilir.
Nitelikler
Adres Bit Genilii: Adres bitlerinin bit genilii. RAM de saklanan deerlerin says
2.adresBitGenilii.
Veri Bit Genilii: Hafzadaki her bir deerin bit genilii
ROM
Ktphane: Hafza/td>
Versiyon:
2.1.0
Grnm:
Davran
ROM bileeni Logisim'in yerleik bileenlerinden en karmak olandr. 4.096 adete kadar deer
saklayabilir. (Adres bit genilii niteliinde belirtilmitir), her biri 32 bite ierebilir(Veri bit genilii
niteliinde belirtilmitir) devre ROM ierisindeki deere eriebilir ama deitiremez. Ayn zamanda
kullanc Poke Arac kullanarak balang deerlerini interaktif olarak deitirebilir ya da Men
Aracndan modifiye edebilir.
RAM bileeninden farkl olarak, ROM un ierii bileende nitelik olarak tutulur. Eer ROM ieren
devre iki kere kullanlrsa ROM bileenleri ayn deere sahip olacaktr. Ayn zamanda bu davran
yznden, o anki ROM ierii Logisim tarafnda dosyada saklanr.
O anki deer bileende gsterilir. Adresler gsterim blgesinin sol tarafnda gri renkte listelenir.
eride, her deer hexadecimal olarak listelenir. O anki seilen adresteki deer ter yaz olarak
grnr(siyah zerine beyaz).
Pinler
Bat kenarnda ki A (giri, bit genilii Adres Bit Genilii niteliindekiyle eleir) Devre tarafnda
eriilebilecek deerleri seer.Dou kenarndaki D (giri/k bit genilii Veri Bit Genilii
niteliindekiyle eleir) Eer sel 1 yada deikense o an seili olan D pinindeki adresteki deeri
kartr. Eer sel 0 ise D deiken olur. gney kenarndaki sel (giri, bit genilii 1) Eer sadece bir
ROM modlnz varsa, bu girii nemsemeyin. Eer paralel olarak oklu ROM iniz varsa, Bu girii
tm ROM modllerini etkinletirmek yada iptal etmek iin kullanabilirsiniz, deerin 0 yada 1
olmasna bal olarak. Hibir deer D zerinden yaylmayacaktr.
Nitelikler
Adres Bit Genilii: Adres bitlerinin bit genilii. ROM de saklanan deerlerin says
2.adresBitGenilii.
Veri Bit Genilii: Hafzadaki herbir deerin bit genilii
Poke Tool Davran
Kullanma klavuzunda darbe hafza (poking memory) ksmna bakn
Plexers Ktphanesi
Plexers ktphanesi kontrol bileenleri ierir. Gate ktphanesindeki gibi hepsi bileimseldir ama
amalar genelde deerleri ynlendirmektir.
Multiplexer
Ktphane: Plexers
Versiyon:
2.0 Beta 11
Grnm:
Davran
Bat kenarndaki girii dou kenarndaki ka kopyalar; kopyalanacak giri gney kenarndaki
giriten alnarak belirlenir. Multiplexer' analog demiryolu deitiricisine benzetmek yararl olabilir.
(Baz yetkililer multiplexor da der ama multiplexer baskn bir sylenitir.)
Pinler
Bat kenar, deiken says(giriler, bit genilii Veri Bit Genilii niteliiyle eleir) Veri deeri,
ka ynleneceklerden biri . Her giri veri deeri 0 dan balayarak kuzeyden numaralandrlr.
Dou kenar (k, bit genilii Veri Bit Genilii niteliiyle eleir) k deeri bat kenarnda gney
giriinde seilmi olan numara ile numaras ayn olan girile eleir.eer seim girii herhangi bir
deiken bit ieriyorsa, k tamamen deiken olur. Gney kenar(giri, bit genilii Seim Bit
Genilii niteliiyle eleir) Seim girii: Bu giriin deeri bat kenarndaki hangi giriin dou
kenarndaki ka ynlendirileceine karar verir.
Nitelikler
Seim Bitleri: Bileenin gney kenarndaki giriin bit genilii. Multiplexere giri says 2seimBitleri
olacak
Veri Bitleri: Multiplexerdan ynlendirilecek verilerin bit genilii
Demultiplexer
Ktphane: Plexers
Versiyon:
2.0 Beta 11
Grnm:
Davran
Bat kenarndaki girii dou kenarndaki ka kopyalar; kopyalanacak k gney kenarndaki
giriten alnarak belirlenir. Multiplexer' analog demiryolu deitiricisine benzetmek yararl olabilir.
(Baz yetililer demultiplexor da der ama demultiplexer baskn bir sylenitir.)
Pinler
Bat kenar, (giriler, bit genilii Veri Bit Genilii niteliiyle eleir) Dou kenarndaki ka
ynlendirilecek deer.. Dou kenar (k, bit genilii Veri Bit Genilii niteliiyle eleir) Her k
veri deeri 0 dan balayarak kuzeyden numaralandrlr. k bat giriiyle ,eer gneydeki seim
girii deeri ile eleiyorsa, eleir, aksi halde l-durumun deerine gre deeri tamamen-sfr ya
da deiken olabilir. eer seim girii belirtilmemi deer ieriyorsa tm klar deiken olur.
Gney kenar(giri, bit genilii Seim Bit Genilii niteliiyle eleir) Seim girii: Bu giriin deeri
bat kenarndaki hangi giriin dou kenarndaki ka ynlendirileceine karar verir.
Nitelikler
Seim Bitleri: Bileenin gney kenarndaki giriin bit genilii. Demultiplexere giri says
2seimBitleri olacak
Veri Bitleri: Demultiplexerdan ynlendirilecek verilerin bit genilii.
-durum: Seilmeyen klarn deiken (Evet) ya da sfr(Hayr) olmasn belirler.
Decoder
Ktphane: Plexers
Versiyon:
2.0 Beta 11
Grnm:
Davran
Gney kenarn giriinden alnan ve kts 1 olan 1'i sadece bir ktan yayar.
Pinler
Dou kenar, deiken says(klar, bit genilii 1) klar kuzeyde 0 dan balayarak
numaralandrlr. Her bir k gneydeki seim giriindeki deerin saysyla eleirse 1 olur; aksi
halde -durumun niteliine bal olarak deeri sfr ya da deiken olur. Seilen giri
belirlenmemi deer ieriyorsa, tm klar deiken olur. Gney kenar (giri, bit genilikleri Seim
Bitleri ile eleir) Seim Girii : bu giriin deeri hangi kn 1 olacan belirler.
Nitelikler
Seim Bitleri: Bileenin gney kenardaki seim giriinin bit genilii. Decoder dan k says
2seimBitleri olacak
-durum: seilmeyen klarn deiken (Hayr) ya da sfr(Hayr) olmasn belirler.
Bit Selector
Ktphane: Plexers
Versiyon:
2.0.5
Grnm:
Davran
Verilen deiik bitleri bulunan girii, bu bileen birka eit boyutlu gruba bler(dk dereceli
bitlerden balayarak) ve seim girii tarafnda seilen grubu kartr.
rnein, eer 8 bitlik bir giriimiz varsa 01010101, ve bitlik kmz varsa, grup 0 en dn
dereceli l bit 101, grup 1 sonraki bit,010 ve grup 2 de sonraki bit 001 olacaktr. (tepenin
ilerisindeki tm bitler 0 ile doldurulmutur.) Seim girii bu gruptan hangisinin ka gideceini
seen iki bitlik numaraya sahiptir; eer seim girii 3 ise, 000 k olacaktr.
Pinler
Bat kenar (giri, bit genilii Veri Bit Genilii niteliiyle eleir) k iin seilen verinin deeri.
Dou kenar (k, bit genilii k Bitleri nitelii ile eleir) Seim giriinde seilen veri deerinden
bir bit grubu. Gney kenar (giri, bit genilii Veri bitlerinin ve k bitlerinin blmnn
yuvarlanm deeridir) Seim girii: Hangi bit gruplarnn ka ynlendirileceine karar verir.
Nitelikler
Seim Bitleri: Bileenin veri giriinin bit genilii
k bitleri: Bileenin knn bit genilii
Aritmetik Ktphanesi
Aritmetik ktphane iaretlenmemi ve iki tamamlayc deerler zerine aritmetik deerler
uygulayan bileiksel bileenler ierir.
Ekleyici
Ktphane: Aritmetik
Versiyon:
2.0 Beta 11
Grnm:
Davran
Bu bileen bat girii ve kndan gelen deerlerin dou k zerinde toplar. Bu bileenin
oluturulmasyla dier bileenlerle kullanlarak daha fazla bit eklenebilir. Tayc giri toplama
eklenecek bir bit deer sunar(eer belirtilmise), ve tayc-k bir bitlik ar deer sunar ve bu
baka bir ekleyiciye beslenebilir.
Eer ekleyici sonu deiken ya da hata bitleri ieriyorsa, bileen ksmi bir ekleme yapacaktr. Yani
mmkn olan en dk biti hesaplayacaktr. Ama deiken ya da hata bitinin zerinde , sonu
deiken ya da hata bitleri ierecektir.
Pinler
Bat kenar, kuzey son: (Giri, bit genilii Bit Genilik niteliiyle eleir ) eklenen iki deerden biri.
Bat Kenar, Gney son: (Giri, bit genilii Bit Genilik niteliiyle eleir ) eklenecek iki deerden
dieri.
Kuzey kenar: C ile etiketlenir. (Giri, bit genilii 1) toplama eklenecek tama deeri. Eer deer
bilinmiyorsa(deiken gibi), 0 olarak alnr.
Dou kenar: (k, bit genilii Bit Genilik Niteliindekiyle eleir)
Nitelikler
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Subtractor
Ktphane: Aritmetik
Versiyon:
2.0 Beta 11
Grnm:
Davran
Bu bileen bat giriinden karlan deerleri ekler ve dou kndaki farkll karr.Dier
substractor lar ile birletirilerek tek bir bileenin karabileceinden daha ok bit karlmasna
olanak tanr. dn alma girileri bir farktan alnacak bitlik bir deer sunar(eer dn girii
tanmlanmsa) ve dn k bileenin st seviye den bir bit almaya ihtiyac olup olmadn
gsterir.
sel olarak, substractor basite kan zerinde bitler boyunca NOT uygular, ve bunu karlana
dn-giriin NOT boyunca ekler. (kartlan ilk olarak kartmaya st giritir, ve kan
ikincidir(dk giri).
Eer ilenen deiken ya da hata bitleri ieriyorsa, bileen ksmi bir ekleme yapacaktr. Yani
mmkn olan en dk biti hesaplayacaktr. Ama deiken ya da hata bitinin zerinde , sonu
deiken ya da hata bitleri ierecektir.
Pinler
Bat kenar, kuzey son (giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir) kartmann
kan, karlacak olan saydan. Bat kenar, gney son(giri,bit genilii Bit Genilik niteliinde
belirtilen ile eleir ) kartmann karlan, kandan karlan say. Kuzey kenar, b in ile
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
gsterilir(giri, bit genilii 1), ve 1 deiiklii verir. Deer bilinmiyorsa (deiken gibi) 0 olarak
alnr. Dou kenar (k, bit genilii Bit Genilik niteliinde belirtilen ile eleir) Farkn dk
bitGenilikli bitleri bat kenarna gelir, b in i negatifler.Gney kenar, b out ile gsterilir(k, bit
genilii 1). dn bit fark iin hesaplanr. Eer karlan deerler negatif deer karan iaretsiz
deerlerse, bu bit 1 olacaktr; aksi takdirde 0 olur.
Nitelikler
Bit Genilii: kartlacak ve sonutaki bitlerin genilikleri
oklayc
Ktphane: Arithmetic
Versiyon:
2.0 Beta 20
Grnm:
Davran
Bu bileen bat kenarndan gelen iki deeri arpar ve dou kenarna kt olarak verir. Dier
oklayclarla kullanlarak tek bir oklaycnn verecei bit miktarndan daha fazla bit verebilir.
tama-girii sonuca eklenecek oklu-bit deerini verir, tama-k ise sonucun st yarsn verir, bu
da baka bir oklaycy besleyebilir.
Eer oklanan, oklayc ve tama-giri, k girileri deiken ya da hata bitleri ieriyorsa, bileen
ksmi oklama yapacaktr. Bu mmkn olduu kadar dk-dereceli bit hesaplayacaktr. Fakat
deiken ya da hata bitleri zerinde sonu ta deiken ya da hata biti olacaktr. Dikkat edin eer
tama-giri tamamen deikene, hepsi-sfr olarak deerlendirilecektir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Pinler
Bat kenar, kuzey son (giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir) arplan,
(arpmann ilki ya da iki says). Bat kenar, gney son(giri,bit genilii Bit Genilik niteliinde
belirtilen ile eleir ) arpan(arpmann ilki ya da iki says). Kuzey kenar, c in ile gsterilir(giri, bit
genilii Bit Genilik niteliinde belirtilen ile eleir), sonuca eklenecek tama deeri. Eer tm
bitler bilinmiyorsa(deiken gibi), 0 olarak alnrlar. Dou kenar (k, bit genilii Bit Genilik
niteliinde belirtilen ile eleir) bat kenarndan gelen bitlerin dn bit geniliine sahip olanlar,
art c in deeri. Gney kenar, c out ile gsterilir(k, bit genilii 0) rnn st bitGeniliine sahip
bitleri.
Nitelikler
Bit Genilii: arplacak ve sonutaki bitlerin genilikleri
Blc
Ktphane: Aritmetik
Versiyon:
2.0 Beta 22
Grnm:
Davran
Bu bileen bat kenarndan gelen iki deeri bler ve dou kenarna kt olarak verir. Dier
blclerle kullanlarak tek bir blcnn verecei bit miktarndan daha fazla bit verebilir.st giri,
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
blnenin st bitGenilikli bitlerini sunar(eer belirtilmise), ve rem bitleri hatrlatcy sunar, baka
bir blcnn st giriini besleyebilir.
Eer blen 0 ise, blme ilemi yaplmaz(rnein blen 1 olarak alnr).
blen iaretsiz bir blme yapar. Ve hatrlatc her zaman 0 ve blen-1 arasnda olur. Blm her
zaman tamsay olur yani,
blm*blen+hatrlatc=blnen
Eer blm o anki bitGeniliine uymazsa, sadece dn bitGenilikli bitler grntlenir. Bileen
st bitGeniliklerine ulamak iin bir metot sunmaz.
Eer ilenenler deiken yada hata bitleri ieriyorsa, bileenin kts da deiken ya da hata
deerleri olur.
Pinler
Bat kenar, kuzey son (giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir) Blnenin
dk bitGeniliki bitleri, (blmenin ilk ilenenidir). Bat kenar, gney son(giri,bit genilii Bit
Genilik niteliinde belirtilen ile eleir ) blen(blmenin ikinci ilenenidir). Kuzey kenar, st ile
gsterilir(giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir), Blnenin st bitGenilikli
bitleridir(blmenin ilk ilenenidir). Dou kenar (k, bit genilii Bit Genilik niteliinde belirtilen
ile eleir) Blmn dk bitGeniliki bitleri. Gney kenar, rem ile gsterilir(k, bit genilii 1)
blmenin hatrlatcs, bu deer her zaman 0 ve blen-1 arasndadr..
Nitelikler
Bit Genilii: Blnecek ve sonutaki bitlerin genilikleri
Negator
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Ktphane: Arithmetic
Versiyon:
2.0 Beta 22
Grnm:
Davran
ki tamamlaycnn olumsuzunu hesaplar. bu olumsuzlama tm dk dereceli bitleri en dn
dereceli 1 e dzenleyerek gerekletirilir, ve bunun zerindeki tm bitlerin tamamlanmasyla.
Eer olumsulatrlacak deer daha az negatif deerdeyse, bunun olumsuzu da negatif deerde
olacaktr.
Pinler
Bat kenar, kuzey son (giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir)
olumsulatrlacak deer. Dou kenar, -x ile gsterilir (k, bit genilii Bit Genilik niteliinde
belirtilen ile eleir) giriin olumsuzu. Eer giri bitGenilii bitlerin de gsterilebilir daha negatif bir
deer oluyorsa, k girile eleir.
Nitelikler
Bit Genilii: Blnecek ve sonutaki bitlerin genilikleri
Karlatrc
Ktphane: Aritmetik
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Versiyon:
2.0 Beta 22
Grnm:
Davran
Nmerik Tip deerine gr iaretli ya da ikili-tamamlanm deeri karlatrr. normalde ktlardan
biri 1 olur, ve dieri de 0 olur.
Karlatrma her bir saynn anlaml ksmndan balatlr ve ayn olmayan yer bulunana kadar aa
doru gider. Ama bu srada hata ya da deiken ile karlalrsa tm k hata ya da deiken olur.
Pinler
Bat kenar, kuzey son (giri, bit genilii Bit Genilik niteliinde belirtilen ile eleir) karlatrlacak
iki deerin ilki. Bat kenar, gney son(giri,bit genilii Bit Genilik niteliinde belirtilen ile eleir )
karlatrlacak deerlerden ikincisi. Dou kenar, > ile gsterilir (k,bit genilii 1) birinci giri
ikinciden bykse 1, kkse ya da eitse 0 olur. Dou kenar, = ile gsterilir (k, bit genilii 1),
birinci giri ikinciye eitse 1, eit deil ise 0 olur. Dou kenar, < ile gsterilir(k, bit genilii 1)
birinci giri ikinciden kkse 1, bykse ya da eitse 0 olur.
Nitelikler
Bit Genilii: Bileenin giri ve klarnn bit genilii
Legacy Ktphanesi
Legacy Ktphanesi Logisim 1.0 ve 1.0x versiyonlaryla uyumluluu salamak iin gerekli bileenler
ierir.
Ktphane: Legacy
Versiyon:
2.0 Beta 12
Grnm:
Davran
Bu bileenin amac geriye dnk Logisim 1.0x srmleri ile uyumluluu salamaktr. Yeni devreler
iin, Hafza ktphanesini iki durakllarna gereklilik vardr.
Her iki durakl dou tarafndan yaylm iki tek bitlik veri saklar. Normalde, deer bat tarafna
giriten kontrol edilir. Ksmen, genle iaretlenmi her bir iki durakl zaman girii 0 dan 1 e
ykseldiinde deer deiir. Deer aadaki tabloya gre deiir.
D ki durakl: zaman 0 dan 1 e ykseldiinde, iki durakl tarafndan saklanan deer D giriinin
deeri(verisi) olur
J-K ki durakl: Zaman 0 dan 1 e ykseldiinde iki durakl tarafnda saklanan deer eer J ve K
girileri 1 ise grnr, eer sfrsa aynen kalr, K ve J eit deilse K deerine dnr(J ve K
kelimeleri hibir anlam ifade etmez)
Pinler
Saat girii: Bu giri annda 0 dan 1 e deiir(ykselen kenar), deer bat kenarndaki giriin
deerine gre gncellenir. Bu 0 ya da 1 olduu srece bat kenarndaki dier girilerin etkisi
yoktur.
Bu giri iki durakl deerlerin zamann ykselen kenar srasnda nasl deieceini kontrol eder.
Bunlarn asl davran iki duraklya gre deiir, yukardaki tabloda bu toparlanmtr.
Nitelikler
Yok.
Ktphane: Legacy
Versiyon:
2.0 Beta 12
Grnm:
Davran
Bu bileeni amac geriye dnk Logisim 1.0x srmleri ile uyumluluu salamaktr. Yeni devreler
iin, Hafza ktphanesinin kaytlanmas gereklidir. Kayt tek bir 8bitlik deer tutar, drtgenin
ierisinde ierisinde hexadecimal olarak grnr, ve kndan dou kenarna yaylr.(Logisim 1.0x
oklu bit deerlerini desteklemez, bu yzden kayt her bir bit iin bir pine sahip olmaldr.) Zaman
girii 0 dan bire ykseldii anda, kayt ierisinde saklanan deer bat kenar zerinde belirtilmi
sekiz dier bite dnr.
Pinler
Dou kenar, sekiz pin (k, bit genilii 1) Kaytta saklanan deeri kt olarak verir.
Bat kenar, sekiz pin (giri, her birinin bitgenilii 1 bit) zaman 0 dan 1 e ykseldiinde, kayt deeri
giri deerlerine dnr.
Bat kenar, genle gsterilir(giri, bit genilii 1) Zaman girii: bu deer 0 dan 1 e ykseldiinde
kayt deeri bat kenarndaki dier giriler ile gncellenir.
Nitelikler
Yok.
Technological Service Company tarafndan retilen 7400 serisi yongalarn Logisim devre
setleri. (2005, GPL lisans altnda yaynlanmtr)
Logisim Kullanma klavuzunda belirtilen JAR ktphanesi. Logisim 2.0 beta 20 ve sonras
versiyonlarla uyumludur. Snf ismi com.cbruch.incr.Components
Bedava grafik aralar
Umarmki program gelitiriciler bir gn Logisim gerekli klacak eyler reteceklerdir.Aada sizin
yorumlarnz iin bulduum linklerin bir listesi vardr.
Digital Works 2.0 Bedava Windows srm, ama artk gelitirilmiyor. 18 Tem 2007.
HADES cretsiz fakat ak kaynak kodlu olmayan Java tabanl bir ara Simlasyon ve
ktphane fonksiyonellii olduka iyi ama arayz biraz hantal.18 Tem 2007
JLS reticisinden bedava temin edebileceiniz Java tabanl bir ara. Ak kaynak kodlu ya da
bedava deil. oluturduunuz ekilde devreleri simle etmiyor, ama simlasyon yetenei
Logisim den daha iyi.18 Tem 2007
Logisim Ak kaynak kodlu Java arac. Sanrm bu en iyi seim. 18 Tem 2007
MultiMedia Logic Ak kaynak kodlu bir Windows program. Hiyerarik devreleri ya da kablo
gmmesini destekliyor gibi grnyor, CPU boyutunda devreler dizayn etmek iin biraz snrl,
ama elenceli giri k bileenleri sunuyor. 18 Tem 2007
TkGate Ak kaynak kodlu bir program. Logisimle karlatrlabilecek bedava bir rn.
Simlasyon zellikleri olduka iyi, arayz bana biraz hantal geldi. almak iin Tcl/Tk ya ihtiya
duyuyor; Cygwin ykl ise Windows zerinde de alabiliyor. 18 Tem 2007
xLogicCircuits Java appletler ierisinde benim favorim. rencilerinize gstermek iin 1-2
hafta harcyorsanz bu applet zamannz ksaltacak baz aralara sahip. 18 Tem 2007
Digital Works 3.0 Ticari bir Windows program. Henz denemedim, zaten iyi olan Digital
Works 2.0 dan daha esasl olmal.Aktif gelitirme iinde deil gibi grnyor.18 Tem 2007
LogicWorks Windows'a zel ticari bir program. ama devaml destei var. Henz denemedim,
ama esasl bir sistem gibi grnyor. VHDL zellikler oluturmak iin baz destekleri
ieriyor. 18 Tem 2007
Dierleri:
o
Metin-tabanl aralar
Icarus Verilog, baskn bir ak kaynak kodlu Verilog (Elektronik sistemleri modellemek iin
kullanlan bir donanm tanmlama dili ) derleyicisi.
Dierleri:
o
Esim, kaynak mevcut ama lisans anlalr deil, kiisel bir dil kullanyor.
Full Adder deverelini inceleyerek inceleyerek benzer ekilde girileri (X,Y ve Carry In), klar (Sum
ve Carry Out) bu deverelere ait doruluk tablosunu nergeyi ve Karnaugh Haritalarn inceleyiniz.
imdi 4-Bit Ripple Carry Adder devresine tklayarak (View Circuit veya ift tk) bu devreyi
inceleyelim. Dikkat edilirse bu devre 4 adet temel Full Adder 1 devresinin yan yana gelmesi ile
oluturulmutur.
Kendiniz bu oluturma ilemi srasnda devrelerin nasl ekilip eklendiini, girilerinin nasl
belirlendiini izleyiniz. Bu devrede daha nce Saysal Devrelerde anlattmz elde bitinin yaylmn
daha net olarak grebilirsiniz.
sterseniz kendiniz bu aamada Full Adder 1 devresini kullanarak 8-Bit Ripple Carry Adder devresi
tasarlayabilirsiniz. Ltfen kopya ekmeyin...
Aadaki devrede ise 2"li dzende X (X0,X1,X2 ve X3) ve Y (Y0,Y1,Y2 ve Y3) girilerinin arpm
tasarm grlmektedir. Umarm nasl altn dener ve prensibini anlarsnz.
L knn giriler ile ne mantkta altna dikkat edin. Bakalm formuluze edebilecek misiniz? 4
tane AND kaps ve 5 girili OR kapsnn fonksiyonlar nelerdir?
Daha sonra "Circuit Two" ikinci devreyi inceleyin. 8 adet girii vardr. (L0/M0, L1/M1, L2/M2, and
L3/M3) ve yine 2 adet kontrol ucu bulunmkatadr (A ve B) Bu devrede L ve M adl iki k vardr.
Dikkat edilirse bu devre "Circuit One" alt devrelerini kullanyor.
Devreyi inceleyin ve amacn belirleyin. Daha sonra "Circuit Three" nc devreye bakn. A2,A1,A0
ve B2,B1,B0 adl iki yar grup girie shiptir. Ayrca bunlar aada F adl bir ayr kontrol girii
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
tarafndan kontrol edilmektedir. S3,S2,S1,S0 adl drt adet k vardr. 4BA adl alt devre ana
devremiz iinde bulunan 4-Bit adder devresidir. Devreyi inceleyin ve sonularna gre fonksiyonu
bulun.
Sayclar
Counters.circ dosyasn Logisim simulatrne yklediinizde sayclar ile ilgili baz rnekler
greceksiniz. Flip-Flop'lar, yazclar (register) ve sayalar konularnda temel bilgileriniz yoksa sizlere
ncelikle Saysal Devreler ders notlarnda "ok Katl Titreiciler" ve "Sayalar" blmlerini
incelemenizi dileriz.
Counters.circ' nin ilk inceleyeceimiz devresi J-K Filip-Flop'lar ile yaplm bir sayatr. Bu devre
zerinde Enable giriinin nasl kullanldna, saat iaretinin tklanarak nasl deitirildiine dikkat
edin. Burda dikkat edeceiniz bir konu da simulatrn nasl resetlenecei, Tick (tklama), ve saat
frekanslarnn nasl balatlacana dikkat edin. Bu blmdeki rneklerin tmnde Logisim'in BuiltIn ktphanelerini kullandmz izleyin.
nc devremiz ise yine D-Type Flip-Flop'lar ile tasarlanm fakat Up/DOWN seenei ile ileri veya
geri sayabilen bir sayatr.
Son devremiz yine UP/DOWN seenei ile saym yapabilen bir saya olmasna ramen L0, L2 ve L3
giri ular ile saymann balayaca ikili dzendeki veri balang deeri olarak yklenebilmekte,
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
LOAD girii ile bu seenek altrlmaktadr. Saya UP/DOWN seeneinin konumuna gre saym
yapar. Sfrlanabilme zellii de ayrca devreye eklenmitir.
iareti ile
ALU Devreler
ALU Arithmetic ve Logic Unit
Bir bilgisayarda genel anlamda aritmetik ve mantksal ilemlerin yapld birime ALU ad verilir.
Daha gelimi fonksiyonlar yerine getiren ALU'lar iin tabiki daha geni seenekli kontrol devreleri
ve bu seenekleri belirleyen kontrol bitleri, daha dorusu kontrol giri kodu gereklidir. Bu noktada
Logisim paketini kullanarak daha geni aritmetik ve mantksal komutlar yrtebilen bir ALU
tasarlayalm. ncelikle komutlar belirleyelim. 4 komutumuz olsun, ve doal olarak bu 4 seenek
iin 2 bit bir komut kmemiz olacaktr.
F 1 F 0 = 00 : kt ==> A AND B
F 1 F 0 = 01 : kt ==> B 'nin tersi
F 1 F 0 = 10 : kt ==> A OR B
F 1 F 0 = 11 : kt ==> A + B
imdi aadaki devreyi inceleyin. Bu ALU devresi yukardaki 4 komutu birden A ve B girileri
zerinde yrten tek bir bitliktir.
Logisim simulatrn ap alu.circ dosyasn ykleyin. Aadaki devreyi elde edeceksiniz. Devreyi
altrn ve ilem seenekleri ile A ve B girileri zerinde 4 ilemin sonularn inceleyin.
ALU devreleri daha nce grdmz toplam-karma yapan devreler gibi paralel balanarak 2"li
tabandakiveriler zerinde alabilirler. Logisim simlatrnde 6bit_ALU.circ dosyasn ykleyerek
aadaki devreyi inceleyiniz. Paralel alan ALU'larn fonksiyonlarn 6Bit'lik A ve B 2'li dzendeki
veriler zerinde ilemleri inceleyiniz.
Fonksiyon tularn seerek AND, OR, TOPLAMA ve IKARMA (Giriin tersini alma, Cin giriine+1
vererek Tmleyenini alma ve toplama) ilemlerini deneyrek bulunuz.
Hafza Birimleri
lk olarak artk Logisim' in gml dier aralarn da tanyalm. Project>>Load Libarary>>Builtin seenekleri ile tm gml ariv fonksiyonlarn yklemenizi ve denemenizi dilerim.
Bildiiniz gibi hafza birimlerinin alma prensipleri Flip-Flop'lara dayanr. Aadaki D-Tipi bir FlipFlop devresinin Logisim Build-in fonksiyonu olarak arlmas grlmektedir. Saklanan deer hex
kod olarak hcre iinde belirtildiine dikkat edin.
Logisim programnza Memory Circuits.circ dosyamz ykleyin ve ROM devresini inceleyelim. Hex
editr ararak (ROM modul stnde sa tua basarak) hafza gzlerinin nasl deitirebildiinizi
ve 8 Bitlik adresleme bilgisi ile hazfa gznn seimini ve dorudan k izleyin.
Logisim devresindeki ROM (Read Only memory) sadece okunabilen ve devre stnde
programlayan dorudan bilgi tayan hafza birimidir. Ykleme sanal yazclar ile yaplmaktadr.
kinci devremiz ise RAM Read/Write Memory' dir. Aadaki resimden de grlebilecei gibi bu
hafza birimimizde saat, Read/Write seenekleri ve resetleme girii de vardr.
sterseniz bu aamada hafza birimimizin giri noktalarn da inceleyebilirsiniz. "A" adres girileri,
"sel" select anlamnda bu hafza biriminin seilmesini salayan giri ucu (dikkat edilirse hem RAM
hem de ROM anlatmnda bu girii dorudan "1" aktif yaptk.) "Clock" hafza biriminin almasnda
zamanlamay oluturan saat iaretidir. "Sel" girii "0" iken hafza birimi seilmeyecek ve klar
tanmsz olacaktr. Logisim POKE arac ile hafza biriminin bilgilerini deitrebilir, belirgin bir veri
kmesi ykleyebilir veya deitirdiiniz bilgileri saklayabilirsiniz.
ROM hafza birimi bilgisayar tasarmnda komut okumak iin kullanlan devredir. Aadaki devre
yklediiniz dosyadaki "Data memory" devresidir. 32 Bit' lik Veriyi 32 Bit 'lik bir hafzaya
saklamakta ve burdan okunmasn salamaktadr. Address seeneinde etkin olan bitler resimdeki
gibi iaretlenmitir. Adress organizasyonunun farkllna dikkat edin.
Bu devrede adres sayfalarnn seimi, adres gzlerinin seimi, okuma ve yazma iaretleri ile
yazclar ile hafza birimleri arasndaki veri ak grlmektedir.
Logisim Input/Output
Bu rnek uygulamada size Logisim'in biraz daha Build-In ve dardan yklenen ariv
fonksiyonlarndan bahsetmek istiyorum. ncelikle Input_Output.circ dosyasn ykleyiniz.
Aadakine benzer bir ekran greceksiniz.
Soldaki ariv fonksiyonlarndan Input/Output olan Build-In bir fonksiyondur. Sizde Main devresinde
bunlar yerletirip kullanabilirsiniz. Push Buton devreleri ve 7-Segment display denilen devreleri
deneyin.
7400-seires-rev1.circ dosyas rnek uygulamada zaten yklenmitir. Burdaki baz devreleri de
incelemenizi tavsiye ederim. 74xx47 devresi 4 Bitlik saysal bir veriyi onluk dzene amakta,
74xx590 devresi ise 8-Bit bir saya iermektedir. Kullanacanz ana devrelerde bu chipleri nasl
arabileceinizi ve sadece entegre gibi tasarmda gsterebileceinizi grn. 74LS47 devresi ise
bildiimiz 7-segment display devresinin kaplardr.
imdi Logisim'e bir .jar ariv fonksiyonu ykleme uygulamas yapalm. Ana devremize Load
Library>>JAR Library ykleme seeneinden CS316.jar dosyasn belirleyin. "Enter JAR Class"
sorusuna cevap olarak edu.cornell.cs316.Components yazn. CS316.jar ariv fonksiyonlarnn
yklendiini greceksiniz. Aadaki gibi kendi ad vereceiniz bir rnek devrede bunlar arp
deneyebilirsiniz.
Basit LED ve 7-Segment Display devrelerini aada gsterildii gibi BASE Build-In ariv
fonksiyonlarndan Pin kna balayarak deneyebilirsiniz.
Aada ise 128x128 Bit sanal bir LCD Video Ekran ve yannda ise 32 karakterli sanal bir LCD satr
ekran grlmektedir.
128x128 LCD Video Display sanal devresi 16 bpp renk geniliine sahiptir. BASE arivinden Pin
seenei Bus geniliini 16-Bit yaparak Color seeneini aktive edebilirsiniz. WE seenei aktif "1"
olduunda saatin yukarya kan kenar ile X ve Y gzne belirlenen renkte bir pixeli yazma
imkannz vardr. X ve Y seenei iin 8-Bit giri Pin seeneini kullanacaksnz. 16Bit Rengin 555RGB
denilen formatta olduuna dikkat edin. (1 kullanlmayan bit, 5 krmz bit, 5 yeil bit, 5 mavi bit).
Eer joystick devremizle balantsn yaparsanz birlikte almasn da grebilirsiniz. Accelerasyon
tablosu iin RAM devresini kullanacaksnz.
32 character LCD display ACSII kodda alan bir satr gstergesidir. Eer EW=1 ise sattin yukar
kan ucu ile belirlenen gze ACSII bilgi yazlr. Cursor' izleyin. 32 karakterli satr gstergesi iin 5Bit Pin yer seenei ve 8-Bit ascii Pin seeneini devrenize ekleyiniz. Burda Pin seeneinin ynne
ve "Output" olarak seilmi olmasna dikkat edin.
Aadaki resimde de bir Joystik ve Tu Takm kuyruk devresi bulunmaktadr.
Keyboard Queue (Tu Takm Kuyruk devresi) basitlemi bir tu takm buffer devresidir. POKE
seenei ile ekrana yazdn ASCII bilgi ASCII kodun yazcsnda "2" li dzende grlmektedir. Yine
Pin seeneinde yn ev k olduuna dikkat edin. En son girilen deer ASCII sanal yazcda
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
izlenebilir. RE aktif "1" olduunda saat iaretinin her yukarya kan ucu ile yaz sola doru
kaymaktadr. En soldaki karakterin ASCII kodu yazcda belirir.
Joystick devresi ATARI tipi klasik 3 ulu bir X/Y belirleyicidir. 2 ka bal sanal yazclardan (tabi
yine bunlar Pin seeneini 3-Bit ve "Output" olarak tanmlayarak) X ve Y deerlerini n -2 ile +2
arasnda deitiini izleyin.
7-Segment Display
Logisim programn balatn. ncelikle projenizi File >> Save komutu ile rnein 7-Segment
Display ad ile saklayn. Build-In ariv fonksiyonlarndan Input/Output' u ykleyin (Project >> Load
Libaray >> Build-In Libarary >> Input/Output) daha sonra AND OR Ve NOT kaplar kullanarak
aadaki devreyi tasarlayn. (Devrenin tm ekilde verilmemitir.)
A,B,C ve D girilerindeki verinin onluk dzende (0,1,2,3,4,5,6,7,8 ve 9) ierdii bilgi ile 7-Segment
Display' in kl gstergelerini aadaki ekilde grld gibi yakabilmek iin tasarm
yapn. Labs1.zip dosyasn aarak 7-Segment display.circ tasarm ile de balayabilirsiniz.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Bu rnekte tek haneli "BCDden 7 segmente kod zc" ler kullanlarak 2 rakaml saylar 7
segmentli ekranda gstermeyi amalyoruz.
ncelikle Logisim programn balatn. Logisim projesini bir isimle kaydedin. (Dosya>>Kaydet),
projenin ad (rnein "7-Segment Display Multiplexer") olabilir. Daha sonra kaydetmek iin uygun
bir yer sein.
Bir 2-girili veri seici/oullayc (2-input data selector/multiplexer) Sub-Circuit (Alt Devre)
oluturun ve 74LS157 adn belirleyin (rnein "74LS157").
Bir baka ikili 2-hattan 4 hata kod zc/demultiplexers (dual 2-line to 4-line
decoders/demultiplexers) Sub-Circuit oluturun ve buna da 74LS139, adn verin. (rnein
"74LS139/2")
Bir baka tampon Sub-Circuit daha oluturun ve 74LS465 adn verin. (rnein "74LS465").
Devrenin alma Frekansn 16 Hz olarak ayarlayn. (Simulate>>Tick Frequency>>16 Hz). Daha
sonra aadaki ekilde gsterilen devreyi oluturabilirsiniz.
Temel alma ekli u ekildedir. ki BCD veri ( A4A3A2A1 ve B4B3B2B1 ) oullaycnn girilerine
verilir. Veri seme hattna bir kare dalga iareti girer ve
aktif LOW olduunda A verisinin bitleri (A4A3A2A1) 74LS47 BCD den 7 segmente alnr.
Veri seme hattnn aktif LOW iaret ayrca 74LS139, 2 hattan 4de kod zcnn A1 giriini de
"LOW" yapar. Bu durumda L7LS139a giren "0" girii A hanesine ait gstergenin aktive olmasn
salayan Common (ortak terminal) ucunun aktif "0" olmasn salar. Bu anda A hanesi gstergesi
"on" (seilmi) durumda ve B hanesi "off" (seilmemi) durumundadr.
Veri seme hatt "HIGH" olduunda B bitleri (B4B3B2B1) BCD den 7 segment kod zc
girilerinden alnr. Ayrca 74LS139 kod zcnn "1" k aktif olur ve B gstergesi etkinletirir.
B says imdi "on" ve A says "off" dur. Bu evrim bylece veri seim kare dalgann frekansna gre
tekrar eder.
CPU 1-Bit
Bu uygulamada ncelikle CPU1bist.ppt sunumundaki presantasyonu incelemenizi dilerim.
Tasarlayacamz CPU 1Bit veri geniliine sahip ok snrl baz Bolean Komutlarn icra edebilen bir
devre olacaktr.
Sunumu izledikten sonra Logisim programna CPU 1 bit.circ dosyasn ykleyerek CPU'nun
tasarmn izleyebilirsiniz. Tasarm basamaklarnn anlatld sunumda da sylenildii gibi bu sanal
CPU'muz hafzada sakl sral komutlarn belirledii basit Bolean ilemleri 4 farkl yazc zerinde
yrtmektedir.
Aadaki resimde grld gibi sanal hafza birimi zerinde sa tu ile Edit Contents seeneini
bulun ve sunumdaki CPU komutlarn hafzaya girerek yrtlmesini izleyin.
En st komple devrede R0 AND R1 ilemini sonucunun tekrardan R1'e yazlmasn emule edin. R0
ve R1'e hafzann belirli gzlerinden dorudan gireceiniz bilgilerden ykleme yapmay, bunlar
zerindeki ilemleri ALU'yu ynetmeyi sonucu R0 ve R1'e yklemeyi iredeleyin.
M[0] + M[1] sonucunu M[2]'ye kaydedin. M[0] ve M[7] gzlerindeki bilgilerin deimeden birbirleri
ile yer deitirin. R0 ve R1 yazclarndaki deerlere hafzay kullanmadan sfr ykleyin.
(M[0] + M[1]) - (M[2] + M[3]) sonucunu M[4]'e saklayn ve hafza da sadece M[4] gznn
deimesine izin verin.
Her problemi zmek iin, belirlenmi hesaplamay uygulayacanz iki tabanl makine
ynergelerinin bir dizisini bulmanz gerekecektir. Son ynergenin daima Halt olduundan emin
olun. Sonraki basamak her ynergeyi onaltlk tabana (hexadecimal) dntrmek olacaktr.
Hatrlatc olarak bu tablo drt adet iki tabanl bitin nasl bir onaltl tabanda sayya
dntrleceini gsterir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Poke Toolu (parmak-ekilli ikon) kullanarak dnlen yere sol tklayp ardndan ynergelerin ikibasamakl hex deerini girerek, RAM ierisine makine ynergelerini girebilirsiniz. (lk ynergenin
RAM in daima sfr blmesinde olmas gerektiini aklnzda tutun). Veri yerlerine ayn yntem ile
deerler girebilirsiniz.
RAM zerine sa tklarsanz, RAM ieriklerini bir dosyaya kaydedebilir ya da bir dosyadaki RAM
ieriklerini dzenleyebilirsiniz. Bunu faydal bulacaksnz nk simlasyonu her yeniden
balatmanzda RAM silinir.
Logisimin Simulate mensnn anlalmas ok nemlidir. "Reset Simulation" seenei, her hafza
konumunu eski durumuna getirecek ve sfr kaydedecektir. "Tick Enabled" seenei, Logisimin
saatini aar ve kapatr. RISC F i altrmak iin almas gerekir. "Tick Frequency" seenei,
Logisimin saat hzn semenize izin verir. Ben 4 Hz hz kullanyordum.
Simlasyonu bir kere yeniden balattnzda ve programnz yklendiinizde ve test verileri RAM e
alndnda, artk simle edilmi bilgisayar altrmaya hazrsnzdr. Eer Go/SS anahtar sfra
ayarlanrsa, bir Halt ynergesi meydana gelene kadar (HALTED nn grnd nokta)
ynergeler birbiri ardna uygulanacaktr. Eer Go/SS anahtar bire ayarlanrsa, sadece sonraki
ynerge uygulanacaktr. Programnz boyunca tek-basamaklama hatalar bulmak iin mkemmel
bir yoldur. Her ynergenin ne yapmas gerektiini bilirseniz, bir ynerge yanl olduunda farkna
varabilirsiniz. Simlatrdeki RAM ile alrken elbette onaltl tabana ihtiyacnz olacaktr. Aadaki
uygulamalar son "RISC F" devresinde gerekleyin.
1. M[12] yi M[13] e depola. (Baka bir ifadeyle, hafza konumu 12 nin ieriklerini hafza konumu 13
e depola).
2. M[9] u onun tmleyeni ile yer deitirin (bir saynn tmleyeni iin, her biti evirin).
3. M[12]-M[13] M[14] ierisine depola.
4. M[16] dan M[19] a kadarki saylar topla ve sonucu M[20] ye depola.
5. M[20] nin ieriini M[23] n ierii ile deitir ve M[21] in ieriini M[22] ile deitir. Dier hafza
konumlarn deitirmeyin.
6. 20 saysn M[20] ye, 21 saysn M[21] e, 22 saysn M[22] ye ve 23 saysn M[23] e depola.
Program baladnda, tm drt hafza konumunda bir sfr olmaldr fakat M[19] da 19 olabilir.
Sistemin Blok Diyagramnn Hazrlanmas: Sistemimizin, anayolu kontrol eden krmz, sar, yeil ve
yanyolu kontrol eden krmz, sar, yeil olmak zere 6 farkl lambay kontrol etmesi gerekmektedir.
Sistemin girdileri arasnda enerji girii haricinde birde yanyol ara sensr bulunmaktadr. Girdi ve
ktlar aadaki ekilde gsterilmektedir.
Zaman aralklar (Time intervals) ve yanyol ara sensr kts, ardl mantk devremizin (sequential
logic) girdileridir. nk durumlarn sralanmas bu deikenlere baldr.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Sistemimizin hangi zamanda hangi 4 durumdan birinde olduunu kontrol eden ise mantk
devremizdir (logic circuit). Mantk devresi ayn zamanda, bu durumlara bal olarak kt vererek
klar yakar ve zaman aralklarna ilk deer atar (initiate).
Bu devrelerin haricinde sistemimizde, trafik lambas ile arayz nitesi arasnda arayz devreleri
bulunmaktadr. Bu devreler mantk devresinden aldklar ktlar voltaj ve akm seviyelerine
evirerek trafik lambalarn yakar. Tm bunlar aadaki ekilde detayl olarak gsterilmektedir.
Durum Diyagram (State Diagram): Durum diyagram sistemin durumlarnn srasn (sequance),
her durumun koullarn (conditions) ve durumlar aras geileri gstermektedir.
Deikenlerin Tanmlanmas: Durum Diyagram izebilmek iin ncelikli olarak sistemin temellerini
oluturan deikenleri tanmlamalyz. Sistemimizin deikenleri ve onlarn sembolleri aadaki
gibidir:
A) Durum Kod zc (State decoder): Ardl mantk devresinden (sequential logic) gelen 2-bit
Gray kodu zmlyerek sistemin hangi durumda olduunu belirtir.
B) Light Output Logic: zmlenmi durumlar kullanarak gerekli olan trafik lambasn aktif hale
getirir.
C) Tetikleme Devresi (Trigger Logic): zmlenmi durumlar (decoded states) kullanarak
zamanlayclar tetikler.
b) Light Output Logic Kurulumu: Bu altdevre 4 durum ktsn alarak, trafik lambalarn yakabilmek
iin 6 kt verir. Bu ktlarn anacaddeyi kontrol edenleri MR, MY, MG (for main red, main yellow,
and main green), yanyolu kontrol edenleri ise SR, SY ve SG dir (for side red, side yellow, and side
green). Altdevrenin denklemi ve doruluk tablosu aadadr.
MR = SO3+SO4
MY = SO2
MG = SO1 SR = SO1 + SO2 SY = SO4 SG = SO3
Tetikleme Devresinin (Trigger Logic) Kurulumu: Tetikleme devresi uzun ve ksa olmak zere iki
ktya sahiptir. LOW-to-HIGH geiiyle alan uzun kt sistem 00 durumundan 11 durumuna
getiinde 25 saniyelik zamanlama devresini tetikler. Yine LOW-to-HIGH geiiyle alan ksa kt
ise sistem 01 durumundan 10 durumuna getiinde 4 saniyelik zamanlama devresini tetikler.
Tetikleme devresinin ktlar ve doruluk tablosu aadadr.
Sistemimizde 4 saniyelik ve 25 saniyelik zamanlayclar 74121 entegresi ile 10 kHz osilatr ise 555
zamanlaycs ile oluturuyoruz. Zamanlayclarmz aadaki a ve b ekilleri ile gsterilmitir.
Onlarn altndaki ekil ise 10 kHz lik osilatrmz gstermektedir.
Trafik Lambas Kontrol Sistemi Ardl Mantk Devresi (Sequential Logic) Sistem Gereksinimleri
Ardl Mantk Devresi (Sequential Logic) Sistem Gereksinimleri: Ardl mantk devresi,
zamanlama devreleri ve yanyol ara sensrnden ald girdiye bal olarak trafik klarnn yanma
srasn kontrol eder. Bu altdevre sralama iini yapabilmek iin sistemin her durumu iin 2-bit Gray
kod oluturur.
Blok Diyagram: Ardl mantk devresi aadaki ekilde gsterildii zere 2-bit Gray code sayac ve
ona bal mantk girdilerinden oluur.
TS: 4 saniyelik zamanlayc TL: 25 saniyelik zamanlayc VS: Yanyol ara sensr
Saya durumlar aras sray belirler. Durumlar aras geii ise 4 saniyelik, 25 saniyelik
zamanlayclardan ve yanyol ara sensrnden gelen girdiye gre oluan ktlar belirler. Saya
ierisinde kullanlan 10 kHz lik clock sinyali zamanlama devrelerindeki osilatr vastasyla
oluturulur.
Ardl Mantk Devresinin Kurulumu: Aadaki ekilde gsterildii zere sayacmz oluturmak iin
D tipi flip-floplar kullanyoruz. Flip-floplarmzn D girii yukardaki ekildeki mantk girdileridir.
Sayacmz clock sinyalini 10 kHz lik osilatrden almaktadr. Mantk girdilerini elde edeceimiz
"Input Logic" devresinin girdileri ise Q0, Q1, TL, TS ve VS dir.
D tipi flip-flopun gei tablosu aadadr:
PIC Temelleri
PIC bir CPU gibi mikrokodlar ile denetlenen aritmetik ve logic
komutlar yrten ve iinde hafza birimleri olan bir devredir.
Ancak hafza birimleri bir CPU gibi youn deildir. Kullanm yerine
gre maksimum 20MHz'de alan birka kilabyte hafza sahip
devrelerdir. Saat frekenas komutlarn hafzdan okunum
zmlenip yrtlmesi zamanlamasn belirler.
PIC'in performasn sadece saat frekans ile yorumlamak yanltr,
tabiki perfromans mimari ile de ilgilidir. PIC'lerde hafza tasarm
kelime uzunluu tasarma gre deimesine ramen esas olarak
Byte ile llr. En yaygn kullanlan PIC1684 entegresinde komut
kmesi 14-Bit'ir.
Pic CPU hakknda basit bir anlatm aada bulabilirsiniz.
Bu uygulamzda temel bir Pic CPU'nun tasarmn greceiz.
Anlatmdaki sanal PIC 8-Bit, iinde RAM ve ROM olan bir
denetleyicidir. Bu devrenin Logisim ile tasarmn grmek
iin picpu.circ devresini ykleyin.
|76543210|???TKPWFTFMI3210:
addwf :000111fx:000000Ff01011001: A plus B
andwf :000101fx:000000Ff01101011: A AND B
clrf :0000011x:0000000101100011: 0
clrw :0000010x:0000001001100011: 0
comf :001001fx:000000Ff01100000: /A
decf :000011fx:000000Ff01011111: A minus 1
decfsz :001011fx:000010Ff01011111: A minus 1
incf :001010fx:000000Ff01000000: A plus 1C
incfsz :001111fx:000010Ff01000000: A plus 1C
iorwf :000100fx:000000Ff01101110: A | B
movf :001000fx:000000Ff01101111: A
movwf :0000001x:0000000101101010: B
nop :0000000x:0000000000100011: 0
rlf :001101fx:000000Ff01011100: A + A
rrf :001100fx:000000Ff11101111: A
subwf :000010fx:000000Ff01000110: A minus B minus 1 plus 1C
swapf NOT IMPLEMENTED
xorwf :000110fx:000000Ff01100110: A ^ B
BITS is all ones with the specified bit set to 0
bcf :0100bbbx:0001000101101011: A & BITS
bsf :0101bbbx:0001000101101101: A | /BITS
btfsc :0110bbbx:0001100001100111: A & /BITS
btfss :0111bbbx:0001100001100100: /A & /BITS
addlw :11111xxx:0000001000011001: A plus B
andlw :111001xx:0000001000101011: A & B
iorlw :111000xx:0000001000101110: A | B
movlw :1100xxxx:0000001000101111: A
sublw :11110xxx:0000001000000110: A minus B minus 1 plus 1C
xorlw :111010xx:0000001000100110: A ^ B
call NOT IMPLEMENTED
clrwdt NOT IMPLEMENTED
goto :101xkkkk:0000010000000011: 0 (PC loads directly)
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
MicroDenetleyiciler
Hazrlayan:Mehmet Can
Yksek Performansl RISC CPU'nun zellikleri:
Direkt/Dolayl Adresleyebilme
PIC 16C84 veya F84 dk maliyetli, yksek performansl, CMOS full-statik, 8 bit
mikrodenetleyicidir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Tm PIC 16/17 mikrodenetleyiciler RISC mimarisini kullanmaktadr. PIC16CXX mikrolar birok esas
zelliklere sahiptir. 8 seviyeli, derin kme ve oklu i ve d kesme kaynaklarna sahiptir. Harward
Mimarisinin ayr komut ve veri taycsyla ayr 8 bitlik geni veri taycl, 14 bitlik geni komut
kelimesine imkan vermektedir. 2 aamal komut hatt tm komutlarn tek bir saykl' la (evrimle)
ilenmesini salamaktadr. Yalnzca baz zel komutlar 2 saykl ekerler. Bu komutlar dallanma
komutlardr. PIC16CXX mikrodenetleyicileri tipik olarak 2:1 orannda kod sktrmasna
erimektedir ve snflarndaki 8 bit mikrodenetleyicilerden 2:1 orannda hz arttrlmasna olanak
salanmaktadr. (10MHZ)
PIC16C84 microchip' i 36 bitlik RAM belleine, 64 bayt EEPROM belleine ve 13 I/O pin' ine
sahiptir. Bunun yan sra, timer ve saya ta mevcuttur.
PIC16CXX ailesi d elemanlar azaltacak spesifik zelliklere sahiptir ve bylece maliyet minimuma
inmekte, sistemin gvenirlii artmakta, enerji sarfiyat azalmaktadr. Bunun yan sra tm PIC ler de
4 adet osilatr seenei mevcuttur. Bunlarda tek pin li RC osilatr, dk maliyet zmn
salamakta (4 MHZ) , LP osilatr (Kristal veya seramik rezonatr) , enerji sarfiyatn minimize
etmekte (asgari akm) (40 KHZ), XT kristal veya seramik rezonatr osilatr standart hzl ve HS
kristal veya seramik rezonatrl osilatr ok yksek hza sahiptir (20 MHZ).
PIC mikrokontrolrlerinin en bykzellii sleep modu zelliidir.. Bu mod ile PIC ilem yaplmad
durumlarda uyuma moduna geerek ok dk akm eker. (5m A). Kullanc bir ka i ve d
kesmelerle PIC' i uyuma modundan karabilmektedir. Yksek gvenilirlikli Watchdog Timer kendi
bnyesindeki chip st RC osilatr ile yazlm kilitlemeye kar korumaktadr.
PIC16C84 (16F84) EEPROM program bellei , ayn aygt paketinin orijinali ve retimi iin
kullanlmasna olanak vermektedir. Yeniden programlanabilirlii mikroyu uygulamann sonundan
kaldrmadan kodu gncelletirmeye izin vermektedir. Bu aygtn kolayca eriilemedii, fakat
prototipinin kod gncelletirmesi gerekli olduu durumlarda, bir ok uygulamann gelitirilmesinde
yararldr. Bunun yan sra bu kodun gncelletirilmesi dier ayr uygulamalarda da yararldr.
PIC Mikrokontrolrlerinin Yaps
CPU blgesinin kalbi ALU dur. (Aritmetic Logic Unit-Aritmetik mantk birimi) ALU, W (Workingalan) adnda bir yazma ierir. PIC, dier mikroilemcilerden, aritmetik ve mantk ilemleri iin
bir tek ana yazmaca sahip oluuyla farkllar. W yazmac 8 bit geniliindedir ve CPU'da ki herhangi
bir veriyi transfer etmek zere kullanlr.
Aada PIC16C8X' ailesinin basitletirilmi i yaps gsterilmektedir.
yerletirilmitir. Adres modunu kullanarak herhangi bir kaydn stne herhangi bir ilemin
gereklemesini mmkn klan Ortogonal (simetrik) komutlarda kurulmutur. Simetrik zellii ve
"zel optimal durumlarn"eksiklii PIC 16CXX ile programlamay daha da etkin klmaktadr. laveten
enformasyon erisi nemli lde azaltlmtr. PIC16CXX mikrolar 8 bitlik ALU ya ve W(working)
registerine sahiptir. W registerindeki veri ile herhangi bir kayt dosyas arasnda aritmetik ve
boolean fonksiyonlar uygulanmaktadr.
ALU 8 bit enindedir ve toplama, karma , deitirme ve eitli lojik ilemleri ierir. ki bilgili
komutlarda bir bilgi tipik olarak W registeridir dier bilgi ise dosya kayd veya hazr sabit deerdir.
Tekli komutlarda bilgi ya W kayd ya da dosya kayddr. Yrtlen komutlara dayanarak ALU,
STATUS kaydndaki Caryy(C), Digit Caryy(DC) ve Zero(Z) bitlerini etkileyebilmektedir. C ve DC bitleri,
karmalarda, nispeten karma ileminde dn alan ve saysal dn alan bit olarak ilemektedir.
PIC16C84'n i yaps
akmlatrmzde (ACC register) 2 saysn gryoruz. Aralklarla "Start" tuuna basmaya devem
edersek bilgisayarmz, akmlatrnde srayla 3, 5, 7, 11 ? saylarnda grrz.
rnek Program
Bilgisayarmzda A+B-C gibi basit bir ifadeyi ileyelim. Bilgisayarmz nce akmlatre A deerini
alr. Daha sonra B deerini ekler ve C deerini kartr. En sonunda akmlatrdeki deeri
okuyabilmemiz iin bilgisayarmz durdurulur (halt). Aadaki tabloda her satr bir ilemi
gstermektedir.
Konum lem
lenen Aklama
START LDA
Akmlatr ykler
ADD
Akmlatre B ekler
SUB
Akmlatrden C karr
HLT
Bilgisayar durdurur
JMP
DB
A ya 4 deerini atar
DB
B ye 3 deerini atar
DB
C ye 2 deerini atar
lenen Aklama
00000 LDA
Akmlatr ykler
00001 ADD
Akmlatre B ekler
00010 SUB
Akmlatrden C karr
00011 HLT
Bilgisayar durdurur
00100 JMP
00101 DB
A ya 4 deerini atar
00110 DB
B ye 3 deerini atar
00111 DB
C ye 2 deerini atar
Bu noktada her semboln hafza adresini (Memory Location) gsteren sembol tablosunu
oluturabiliriz.
Sembol ML (Hafza Adresi)
START 00000
A
00101
00110
00111
Kod
lenen Aklama
HLT
000
LDA
001
ADD
010
STO
011
SUB
100
BNZ
101
BNC
110
JMP
111
X adresine gider
Programmz bilgisayarmza yklemeden nceki son admmz kodumuzu makine koduna evirmek
olduundan daha nce bahsetmitik. Makine kodumuzun son hali aadaki gibidir.
Konum lem
lenen Aklama
00000 001
00001 010
00010 100
00011 000
00100 111
00101 000
00110 000
00111 000
lenen Aklama
START STO
LP0
SUB
ONE
STO
LDA
SUB
BNC
LP2
LP1
BNZ
LP1
LDA
HLT
LP2
LDA
JMP
LP0
ONE
DB
DB
DB
5) Ticks Enabled (Simulate-> Ticks Enabled) ve clock frekansnn 16Hz(Simulate-> Tick Frequency >16 Hz) olarak seildiinden emin olun.
6) Start yazan kutuya tklayarak deeri "1" yapn ve tekrar deeri "0" yaparak bilgisayar durdurun.
RAM'den okunan saynn en byk arpannn akmlatre yazldn gzlemleyin.
HYMN rnei
Bu rnei anlayabilmek iin verdiimiz basit hesaplamalar yapacak devrelerin nasl kurulacan
anlam olmalsnz. Bilgisayar Mimarisini anlatmakta kullanacamz bu rnekteki devre bunlardan
ok daha karmak bir cihazdr. Bu blmde bilgisayarlarn hangi seviyede programlar altrdn
renecek ve bunlarn devreler zerinden nasl gerekleebilecei hakknda daha iyi fikir
edineceiz.
Somut bir bilgisayar tasarm ile alabilmek amacyla HYMN ad verilen, eitim amacyla
tasarlanm basit bir bilgisayar inceleyeceiz. sim HYpothetical MachiNe (Kuramsal Makine)
ifadesinin harflerinden gelmektedir. (Gerek bir endstriyel bilgisayar incelemek ilk bakta
mantkl gelmektedir, ancak byle bir bilgisayarn sahip olduu daha karmak yap, temel
kavramlarn anlalmasn zorlatrr.) [HYMN'nin tasarm Noreen Herzfeld'in Computer Concepts
and Applications for Non-Majors (Yeni Balayanlar in Bilgisayar Kavramlar ve Uygulamalar) adl
kitabna dayanmaktadr.
Daha nce anlattmz gibi HYMN de dahil olmak zere modern bilgisayarlarda iki temel bileen
bulunmaktadr; ana ilem birimi (central processing unit) veya CPU ile rastgele eriimli bellek
(random access memory) veya RAM. CPU hesaplama ilemlerini yaparken RAM saklanmas
gereken bilgileri depolar.
Bu iki bileeni veri yolu ad verilen bir kablo demeti balar. Veri yolu, hesaplama iin gerekli
olduunda bellek ile iletiim kurmas ve verilere ulaabilmesi ve saklayabilmesi amacyla CPU iin
bir yol salar.
RAM bu iki paradan daha basit olandr; bir dizi byte'tan ibarettir. Modern bilgisayarlarn
RAM'inde milyonlarca, hatta trilyonlarca byte bulunmaktadr, ancak HYMN'nin RAM'i 32 byte'tan
oluur.
Her byte'ta 8 bit bulunduundan ve RAM'deki her bir bit iin D-Type Filip Flop olduunu bildiimiz
gre, bu RAM'i oluturmak iin
32 8 = 256 D-Type Flip Flop kullanabiliriz.
RAM'deki her bir hafza gznn, kendisini tanmlayan ve adres ad verilen bir numaras vardr;
CPU RAM'deki verilere ulamak istediinde, veri yolu zerinden istedii byte'n numarasn
gnderir. Bellek ile ilgili olarak, baz durumlarda M[7] gibi bir iaret kullanacaz; burada numaras
7 olan byte ifade edilmektedir (ekildeki RAM'in en soldaki stununun altndadr).
En modern bilgisayarlarda CPU, binlerce ya da milyonlarca mantksal geit ieren tek bir yongadr.
CPU tasarm iki temel paraya ayrlabilir, kontrol nitesi ve aritmetik mantk unitesi.
Bunlardan kontrol nitesi gerekletirilen hesaplamann genel yapsn kontrol ederken aritmetik
mantk nitesi (veya ALU) aritmetik ve mantksal ilemlerin gerekletirilmesi iindir. HYMN'de
ALU tarafndan salanan aritmetik ve mantksal ilemler toplama, karma ve bir saynn pozitif ya
da sfr oup olmadnn (ya da hibiri) belirlenmesidir. Daha gelimi CPU'larda ALU, bunlarn yan
sra arpma ve blme gibi dier aritmetik ilemler ve VE, VEYA ve DEL gibi mantksal ilemler iin
de devrelere sahiptir.
CPU grevini yerine getirirken verileri hatrlamaldr. CPUda bilgileri tutmaya yarayan birimler
kaydediciler (register) dir. HYMN'nin tasarmnda kaydedici vardr.
Akmlatr (AC olarak ksaltlr) hesaplama iin kullanlan geici verileri tutar.
Program sayac (PC olarak ksaltlr), yrtlecek sradaki komutun adresini takip eder.
Komut Yazcs (IR olarak gsterilir) yrtlmekte olan geerli komutu tutar.
Yazclar bilgisayarn ksa dnemli bellei, RAM'i ise uzun dnemli bellei olarak dnebilirsiniz.
Komut Seti
Programdaki her bir komut hafzada tutulan bir deerdir. HYMN'in tasarmnda her komut sekiz bit
uzunluktadr; bit ilem kodunu (OP-CODE ? buradaki op "operation" szcnn ksaltmasdr)
tanmlarken geri kalan be bit komut ile ilgili ek bilgileri ierir.
lem kodu, HYMN'in sekiz olas komut tipinden birini gstermektedir; bunlar davranlar ile
birlikte ekil 1'de listelenmitir.
ekil 1. HYMN komut seti.
Kod
lem
Davran
000
HALT
001
JUMP
PC veri
010
JZER
011
JPOS
100
LOAD
AC M[veri]; PC PC + 1
101
110
ADD
AC AC + M[veri]; PC PC + 1
111
SUB
AC AC M[veri]; PC PC + 1
rnein, HYMN bilgisayarmzn kaytlar ve bellekte aadaki deerler ile altn varsayalm.
(Tm deerler onaltlk tabanda verilmitir.)
Bilgisayarn yrtmek istedii geerli komut normalde IR'de dir; bu noktada IR, C5(16), veya ikili
gsterimde 11000101(2) iermektedir. Bu komutu yrtmek iin kontrol nitesi ncelikle komutu
iki paraya blecektir.
lem kodu olarak ilk biti yorumlar; ekil 1'deki 110 deeri ieren satra gre bir ADD komutuna
baktmz grebiliyoruz.
Kod
lem
Davran
110
ADD
AC AC + M[veri]; PC PC + 1
1 ve tekrar 0, buna pulse (vurum) ad verilir. CPU teknik zellikleri arasnda genellikle bu saatin
alma frekans da bulunur: 3GHz ( gigahertz) bilgisayarda, saat saniyede milyar (giga-) pulse
gemedii srece alabilecek bir CPU bulunmaktadr.
Bir komutun gereklemesi iki adml bir sretir; ki buna Komut Alma - Yrtme dngs ad
verilir. ncelikle bilgisayar yrtlecek olan sradaki komutu getirir. Daha sonra bilgisayar komutu
yrtr. Bu dngnn sonsuz olarak tekrarlanmas yoluyla yrtme tamamlanr.
HYMN'de PC yazcs, yrtlecek sradaki komutun adresinin tutulmas, IR ise geerli komutun
tutulmas iindir. Bu nedenle, komut alma sreci srasnda, HYMN CPU'su PC ieriini alacak,
veriyolu zerinden RAM'e gnderecek, CPU RAM'in yantn alacak ve IR'ye yerletirecektir.
Yrtme srecinde IR'de saklanan geerli deer (nceki getirme ileminde buraya yerletirilen
deer) alnr, bunun ilk biti incelenerek opcode belirlenir ve ekil 1'deki ilgili satra gre gerekli
ilem gerekletirilir.
Adres Deer
OpCode Veri
10000101(2) (85(16))
LOAD
11000101(2) (C5(16))
ADDS
10100110(2) (A6(16))
STORE
00000000(2) (00(16))
HALT
00000111(2) (07(16))
00000000(2) (00(16)) 0
Aadaki tabloda bilgisayar almaya baladnda gerekleenler gsterilmektedir. Her bir satrda
saat vurum balangc itibariyle kaytlarn ierii (onaltlk olarak) bulunmaktadr; burada bilgisayar
komut alma ya da yrtme srecini gerekletirir.
PC IR AC Tanm
00 00 00 Bilgisayar yazclarnn her birinde otomatik olarak sfrla balar.
00 85 00 Komut Alma: CPU PC = 0 adresinde IR'ye bellei getirir.
01 85 07
Yrtme LOAD : CPU veri = 5 adresindeki bellei AC'ye getirir ve PC + 1 deerini PC'ye
yerletirir.
Yrtme ADD : CPU veri = 5 adresindeki bellei AC'ye ekler ve PC + 1 deerini PC'ye
yerletirir.
Yrtme ADD : CPU veri = 5 adresindeki bellei AC'ye ekler ve PC + 1 deerini PC'ye
yerletirir.
Burada bilgisayarn yapt M[5] deerini almak, M[5] deerini buna eklemek, M[5] deerini tekrar
eklemek ve M[6] sonucunu elde etmektir Burada M[5]'de 7 bulunduundan, program
durdurulmadan nce 21(10) = 15(16) deerini M[6]'ya yerletirmitir.
Girdi ve kt
Adres 5'teki hafzann ieriinin katnn adres 6'ya yerletirilmesini salanan programmz
olduka gzel, ancak kullanc ile etkileim iindeki bir program daha da iyi olabilir. Bunu salamak
iin HYMN'nin yapsna veri yoluna eklenen iki bileen katyoruz, klavye ve ekran.
Bu cihazlarn her birine birer bellek adresi atyoruz: Klavye iin adres 30, ekran iin ise adres 31.
RAM bu adreslere yant vermeyecek.
CPU adres 30'dan veri yoluna deer yklenmesi ynnde bir talep gnderdiinde RAM yant
vermez. Bunun yerine klavye kullancnn sayy girmesini bekler ve yant olarak rakam veri yolu
zerinden CPU'ya gnderir. Benzer ekilde CPU adres 31'e bir deer yklenmesi ynnde talep
gnderdiinde, ekran talebi alr (sayy ekranda gstererek).
Aadaki program kullanc tarafndan girilen n saysn okumakta ve ekranda 3n saysn
grntlemektedir.
Adres Deer
OpCode Veri
10011110(2) (9E(16))
LOAD
11000110(2) (C6(16))
ADD
11000110(2) (C6(16))
ADD
10111111(2) (BF(16))
STORE
31
00000000(2) (00(16))
HALT
00000000(2) (00(16)) 0
30
alma ekli kullanc tarafndan klavyeye girilen saynn AC'ye yklenmesi (komut 0), daha sonra
bu saynn M[6]'da saklanmasdr (komut 1). Daha sonra M[6] akmlatre iki kez eklenir (komut 2
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
ve 3); imdi AC'de 3n deeri tutulmaktadr. AC M[31]'de saklanr (komut 4), bylece durmadan
nce ekranda 3n grntlenir (komut 5).
Dngler
HYMN'de bir sreci tekrarlayacak bir program gelitirmek iin kullanlabilecek komut
bulunmaktadr: JUMP, JPOS ve JZER. Bunlarn arasndan JUMP komutu, komuttaki verinin PC'ye
yerletirilmesiyle alr; bylece sradaki getirme-yrtme dngsnde bilgisayar JUMP komutu ile
verilen adresteki komutu getirecek ve yrtecektir. Bunun sonucu olarak bilgisayar, JUMP komutu
ile belirtilen veride ifade edilen komuta atlar; LOAD, STORE ve ADD komutlarnda olduu gibi bir
sonraki komut ile devam etmez.
Ayrca JPOS (pozitif ise atla) ve JZER (sfr ise atla) komutlar da benzer ekilde alr, ancak bu
komutlarda CPU veriyi yalnzca AC deerinin pozitif say (JPOS) veya sfr (JZER) olmas durumunda
AC'ye kopyalar. Aksi takdirde CPU, PC'yi sradaki komutun yrtlecei ekilde deitirir.
Aada verilen ve JPOS komutunun kullanld program, saylar 10'dan 1'e doru
grntlemektedir.
Adres Deer
OpCode Veri
10000110(2) (9E(16))
LOAD
10111111(2) (BF(16))
STORE
31
11100101(2) (E5(16))
SUB
01100001(2)(61(16))
JPOS
00000000(2) (00(16))
HALT
00000001(2) (01(16))
00001010(2) (0A(16))
10
Yrt LOAD : CPU veri = 6 adresindeki bellei AC'ye getirir ve PC + 1 deerini PC'ye
yerletirir.
grntlenir.
02 E5 0A Komut Alma: CPU PC = 2 adresinde IR'ye bellei getirir.
03 E5 09
Yrt SUB : CPU veri = 5 adresindeki bellei AC'den karr ve PC + 1 deerini PC'ye
yerletirir.
Yrt STORE : CPU AC = 9(16) deerini adres 31(10)'a gnderir ve PC + 1 deerini PC'ye
yerletirir. Adres 31(10) ekran olduundan ekranda 9 grntlenir.
Yrt SUB : CPU veri = 5 adresindeki bellei AC'den karr ve PC + 1 deerini PC'ye
yerletirir.
Bilgisayar adres 1 ile 3 arasndaki komutlar tekrarlamaya devam eder. CPU ekrana 1
gnderir.
02 BF 01
Yrt STORE : CPU AC = 1(16) deerini adres 31(10)'a gnderir ve PC + 1 deerini PC'ye
yerletirir. Adres 31(10) ekran olduundan ekranda 1 grntlenir.
Yrt SUB : CPU veri = 5 adresindeki bellei AC'den karr ve PC + 1 deerini PC'ye
yerletirir.
Yrt HALT : CPU hibir ey yapmaz. Ayn HALT komutun getirmeye ve g kayna
kapatlana kadar hibir ey yapmamaya devam edecektir.
Bilgisayarn JUMP, JPOS veya JZER komutlarnda bir baka komuta gitmediine dikkat edin. Komut
yalnzca PC kaydnn ieriini deitirmektedir, LOAD komutunun AC yazcs ieriini deitirdii
gibi. Gerek atlama, sradaki getirme aamasnda, bilgisayarn yrtlecek sradaki komutu JUMP
komutu tarafndan PC'ye saklanan adresten almasnn bir yan etkisi olarak gerekleir.
CPU Mimarisi
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Modern bilgisayarlarda hesaplama ilemi tek bir yonga zerinde gerekleir: merkezi ilem birimi
veya CPU. [Birok bilgisayarda hesaplama ilemleri birden fazla CPU tarafndan paylalmaktadr,
ancak bu durum yk paylaan sanal olarak e CPU'lar eklindedir.] Bu yonga, hesaplama
ilemlerinin gerekleebilmesi iin tasarlanm birok saysal kapdan oluur.
imdi CPU'nun nasl tasarlandn inceleyebiliriz; yani bilgisayarn mimarisini. Birok bileen
bulunduundan bilgisayarn mimarisi kolayca anlalamayabilir. leri kolaylatrmak iin biz
HYMN'in tasarmna bakacaz. Paralarn nasl balandn gsteren aadaki ema olduka iyi bir
rnektir. Her bir bileene bakacaz.
ekil 1. HYMN uygulamas.
Saat devre giriinin sol alt kesindedir; 0 ile 1 arasnda srekli deiir. Bu saat devreyi
hesaplama ilemlerini ilerletecektir.
Yneltme devreleri
Bilgisayarlar bileenler arasnda saysal iaretlerin yneltilmesi ile alr. Bu blmde zellikle
temel grevleri yneltmeye yardmc olmak olan son derece nemli iki devreyi inceleyeceiz.
oklayclar
eitli girilerden birini seerek kt olarak veren devrelere oklayc ad verilir. oklayc bir
devrede yamuk eklinde grlebilir.
Bu oklaycnn sol tarafnda drt giri, yani veri girileri, alt tarafnda iki giri, yani seim girileri;
sa tarafnda ise tek k bulunmaktadr. alma yntemi, veri girilerinden birinin ka
yneltilmesidir; seim girileri girilerden hangisinin sa tarafa gideceini belirler. rnein eer s1
eittir 1 ve s0 eittir 0 ise, d10 girii ka yneltilir.
Bilgi Datclar
Bir bilgi datc, oklaycnn yapt ilemi tersine evirir: Tek bir girii eitli klardan birine
yneltir. Seilmeyen klar 0 deerini verir. Daha byk bir devrede aadaki ekilde izilebilir.
Bilgi Datc saysal devresi, oklaycnn devresi ile benzerdir; aada bir uygulama emas
grlebilir.
Bellek devreleri
Yazclar
Bir yazc bellekteki bir dizi bitin hatrlanmasna yarayan basit bir cihazdr. Aada drt bit yazc
emas bulunmaktadr.
Sa taraftaki klar srekli olarak kaydn geerli deerini gndermektedir. Bileenin alt kenarnda
kk bir gen ile ifade edilen set girii, yazcnn deerinin ne zaman deitirileceini bildirir. Giri
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
='dan 1 olarak deitiinde, yazc hatrlad bitleri, yazcnn sol tarafndaki giri bitleri olarak
deitirir.
Byle bir yazcy oluturmak kolay bir ilemdir: yalnzca eitli D-Type flip-flop paralel gerileri
kabul eden sral bir arada yerletirilmeleri ile gereklenir. Bu sral flip-floplar aadaki drt bit
yazcda olduu gibi ayn set giriini paylarlar.
Bellek
32 byte bellek bir yazc ile benzerdir.
Bu devre ile yazc arasndaki fark, bellee hangi adrese eriim salayacan belirten alt ksmdaki
be ek giritir. Sa taraftaki devre k ular, bellein bu adresinde saklanan verileri verirken sol
taraftaki devre giri ular, bu adreste saklanacak olan verileri verir (bunlar saat girii 0'dan 1'e
getiinde deiir).
Bellein tasarm, giri ve klarn uygun dahili filp-floplara ynlendirilmesi amac ile oklayclarn
ve bilgi datclarn kullanlmasyla gerekletirilir.
4 bitten oluan bir bellek oluturmak istediimizi varsayalm; s1 ve s0 eklinde iki adres biti, 4
Bitten oluan bir set giri bitleri ve yine 4 Bitten oluan k bulunacaktr. Bu tr bir devre drt DType Filip Flop ile aadaki gibi tasarlanabilir.
Devreyi 32 bit olarak geniletmek iin sadece daha byk oklayc ve bilgi datclara ihtiya
vardr. Bu bellei 32 bit yerine 32 byte tutacak ekilde deitirmek iin devreyi sekiz kopya olarak
oaltabiliriz, her biri ayn adres biti ve set bitini kullanr ancak giri ve k bitleri farkldr. Byle
bir devre olduka byktr; HYMN uygulamasnda ihtiya duyulan en fazla saysal kapya bu devre
sahiptir.
Gerek yaamda bellek devreleri, CPU'da bulunan kk n bellekler dnda bu ekilde
uygulanmaz. Aslnda gerek bellek devrelerinde veri tutmak iin saysal kaplar kullanlmaz: Yaygn
bir teknik ksa bir sre iin elektrik ykn tutabilen bir nevi elektrik kondansatrnn
kullanlmasdr. Kondansatrn yk kolayca boaldndan hzl arj gereklidir, bu da elektrik
donanmnn daha karmak hale gelmesini ancak gerekli yerin azalmasn ve bellein daha ucuz
olmasn salar.
Aritmetik devreler
ekil 1'deki HYMN uygulamasnda aritmetik hesaplamalarn yaplmas iin devre bulunmaktadr:
Flags (Bayraklar) devresi akmlatrn deerini sfr ya da pozitif bir deer olarak belirler;
incrementer (arttrma) devresi sradaki komut iin varsaylan PC deerini belirler, ve ALU sradaki
akmlatr deerinin aritmetik hesaplamasn yapar. Bu blmde bu devrenin uygulamalarna
bakacaz.
Bayraklar
Bayraklar devresi 2nin tmleyeni gsterimde sekiz bit sayya karlk gelen sekiz girii olarak alr ve
iki k retir, bunlardan biri saynn sfr olduunu ifade ederken dieri pozitif olduunu ifade
eder. klar kontrol nitesine beslenir; nite bu verileri JZER ve JPOS komutlarn yrtrken
kullanr.
Sekiz bit giriinin sfr olduunun ifade edilmesi, giri bitlerinden herhangi birisinin 1 olup olmad
kontrol edilerek gerekletirilir, eer herhangi birisi 1 ise giri 0 deildir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Aadaki iaret devresi uygulamamzda tm giriler, herhangi birisinin 1 olup olmadnn kontrol
edilmesi iin bir VEYA devresine beslenmektedir, daha sonra bu k tersi alnarak kn sfr olup
olmadn ifade eden ZER kna ulamaktadr.
Saynn pozitif olup olmadnn belirlenmesi iin ise giri saysndaki en deerli bit kontrol edilir.
Eer bu bit 1 ise, say negatiftir. Bu nedenle bit, saynn negatif olmadn kontrol eden bir DEL
kapsndan beslenir. Ancak pozitif olmayan ve negatif de olmayan bir say vardr, sfr. Bu nedenle
DEL geidi ktsnn VE geidi (saynn negatif olmadn ifade eder) ile VEYA geidinin k
(saynn sfr olmadn ifade eder) birlikte alnr ve sonu saynn pozitif olup olmadn gsterir.
Artrma Devresi
Birok komut iin yrtlecek bir sonraki komutun adresi bir sonraki adrestedir. Arttrme
devresinin grevi be bit adresi alarak sradaki bir sonraki be bit adresi oluturmaktr. Arttrma
devresi uygulamas, Half Adder devreleri bir araya getirilerek gerekletirilir.
ALU
Aritmetik mantk nitesi, deney devresi olarak braklan kontrol nitesi hari HYMN uygulamasnn
son parasdr. 32 byte bellek hari olmak zere en karmak para budur. ALU iki adet sekiz bit
2nin tmleyeni gsteriminde veriyi giri olarak alr ve sekiz bit 2nin tmleyeni gsteriminde k
verisi oluturur. Devrede bir giri (buna a diyeceiz) geerli bellein k iken dieri (bu da b)
akmlatrn geerli deeridir. ALU tarafndan k olarak verilecek olan say iki adet giri biti
tarafndan kontrol edilir; s1 ve s0. Bu seim bitleri geerli komutun op-codunun iki alt bitine
baldr ve ALU'nun hesaplayaca sayy belirlerler.
s1 s0 k
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
0 0 b
0 1 belirsiz
1 0 a +b
1 1 a b
Bu tablo LOAD, ADD ve SUB opcodelarnn iki alt biti ile eleecek ekilde tasarlanmtr. (Dier be
komut akmlatr deiimi iermemektedir; ancak ALU bu durumda da hesaplama ilemlerini
yapacak, bu durumda akmlatrn deimesi istenmeyeceinden k gz ard edilecektir.)
Devremize neticelendirmek iin istenilen klar a + herhangi bir ey eklinde aadaki gibi
irdeleyebiliriz.
s 1 s 0 k
0 0
0+b
0 1
1 0
a+b
1 1
a + ( b )
Sekiz bit toplama devresinde, toplaycnn bir girii 0 veya a, dier girii ise b veya b olur, bu s1 ve
s0 deerleri ile belirlenir.
lk giriin 0 veya a olmasnn belirlenmesi olduka kolaydr: Grebiliriz ki s1 eittir 0 ise giri 0 olacak
veya nemli olmayacak; s1 eittir 1 iken ise giri a olacaktr. VE geidi s1 ile her bir a biti arasnda
kullanlr ve bu elde edilir.
kartma iin ise 2nin tmlayeni gsterimindeki ikinci giriin tm bitlerinin tersini alr ve bir
arttrrz.
s1 s0 ikinci giri
0 0 b
0 1 nemli deil
1 0 b
1 1 b+1
Bu son bir arttrma ilemi gerekletirmek iin aadaki gibi 8 Bitlik toplama devresinde s0 giriini
en dk deerli full-adder alt devresinin carry (elde) biti olarak girilmesi salanr.
Tam ekleyicilerin dier girilerini bulmak iin b veya b deerini s1 ve s0'a gre hesaplayan devreyi
aryoruz. Bunun iin XOR kullanabiliriz (s0 b). Tm bu kavramlar alan tek bir ALU'da
birletirmek iin bunu kullanacaz.
CPU dngleri
HYMNWde her bir komutun yrtlmesi iin iki saat dngs gereklidir.
Yrtme dngs: Bilgisayar, bir sonraki komut alma dngsnde farkl bir komutun
getirilmesi iin PC'nin deitirilmesi de dahil olmak zere komutu uygular.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org
Ana devrenin sol alt kesinde, saatin deeri her deitiinde deeri deiecek olan bir D-Type flip
flop bulunur, bylece komut alma dngs de yrtme dngs gibi 0/1 saat deiiminden oluur.
Her bir dngnn 0 aamas srasnda veriler devre araclyla yaylmal, yazclara ve bellee
ulamal, ancak henz deimemelidir. 1 aamas srasnda kontrol nitesi yazclara ve ierii
deiecek olan bellee 1 gnderecek, bylece girilerinde bekleyen veriler yklenecektir. 0 aamas
srasnda hesaplanan veri 1 aamas boyunca kablolarda kalmaldr.
rnein komut alma dngsnde, saat 0 iken kontrol nitesi bellee PC adresinde olduu gibi
verileri yklemesini syleyecektir. Saat 0 olarak kaldnda veri devre araclyla yaylacak, IR'ye
ulaacak anca IR henz deimeyecektir. Saat 1 olarak deitiinde, kontrol nitesi IR'ye 1
gndermeye balar, bylece deeri saatin 0 aamasnda oaltlan deer olarak deiir. Kontrol
nitesi bellekten gelen ayn verinin 1 aamas boyunca IR'ye gnderilmeye devam etmesini
salamaldr; aksi taktirde IR'ye giden yeni bilgiler sinyali IR'yi deitirecek ekilde etkileyebilir ve IR
yanl deer alr.
Dng (0) ise CPU'nun komut alma dngsnde veya (1) ise yrtme dngsnde olduunu
gsterir.
PC se: Bu seim PC yazcsna gnderilen veriyi IR'deki komutun en alt be biti (eer 0 ise)
veya PC + 1 (eer 1 ise) olarak belirler.
Bellek se: Bellee gnderilen adresi IR'deki komutun en alt be biti (eer 0 ise) veya PC deeri
(eer 1 ise) olarak belirler.
Veriyolu se: Verinin bellee gnderildiini (0) ya da bellekten okunduunu (1) belirtir. Mantk
RAM bileeni deerlerin okunmas ve yazlmas iin ayn girii kullandndan bu gereklidir.
izgi Tagem Aratrma Gelitirme ve Eitim Merkezi
Cemal Sururi Cad. Halim Meri Merkezi No: 15/C 34394 ili stanbul
Telefon: (212) 356 70 70 - Faks: (212) 356 70 69 - www.cizgi-tagem.org