Litar

Bagaimana Membangun Komputer 8-Bit: 18 Langkah (dengan Gambar)

Jak zbudować własnoręcznie komputer 8 BIT [1#]

Jak zbudować własnoręcznie komputer 8 BIT [1#]

Isi kandungan:

Anonim

Membina komputer TTL 8-bit berbunyi seperti tugas yang menakutkan dan rumit, atau sekurang-kurangnya ia berlaku kepada saya apabila saya memulakan perjalanan saya untuk memahami seni bina asas CPU. Apabila ia datang ke bawah, CPU cukup mudah beroperasi apabila anda mempelajari asas-asas di belakang semua prosesnya. Projek ini bertujuan untuk membantu sesiapa yang berminat dalam membina komputer mereka sendiri dan memperoleh pengetahuan yang indah yang datang bersama-sama dengan proses tersebut. Jangan takut untuk mencuba, anda hanya boleh belajar.
Projek ini akan bermula dengan menerangkan asas-asas elektronik. Selepas itu, asas logik binari dan boolean akan diterangkan. Akhir sekali, kami akan memindahkan fungsi pelbagai bahagian komputer mudah seperti yang dinyatakan dalam teks Malvino Elektronik Komputer Digital . Ini bermakna bahawa produk akhir Instructable ini akan menjadi komputer yang anda boleh program dengan menetapkan arahan unik. Projek ini juga meninggalkan banyak aspek reka bentuk komputer sehingga anda dan berfungsi sebagai panduan untuk membina komputer anda sendiri. Ini kerana terdapat banyak cara untuk mendekati projek ini. Sekiranya anda sudah mempunyai pemahaman yang baik mengenai logik boolean dan kerja-kerja binari sila bebas melangkau ke daging projek. Saya berharap bahawa anda semua menikmati dan mendapatkan sesuatu daripada membina seperti ini, saya tahu yang saya pasti lakukan.
Untuk projek ini anda perlu:
1.) Bekalan kuasa
2.) Breadboard + banyak wayar
3.) LED untuk keluaran
4.) Pelbagai IC logik (dibincangkan kemudian)
5.) Masa percuma
6.) Kesediaan untuk merosakkan dan belajar daripada kesilapan
7.) Banyak kesabaran
Pilihan (tetapi sangat berguna):
1.) Oscilloscope
2.) Digital multimeter
3.) programmer EEPROM
4.) pemutar skru sonic
Pautan Berguna untuk Projek Seperti Ini:
Digital Komputer Elektronik:
http://www.amazon.com/Digital-computer-electronics-Albert-Malvino/dp/007039861
Buku masakan TTL: http://www.amazon.com/TTL-Cookbook-Understanding-Transistor-Transistor-Integrated/dp/B0049UUV38

Bekalan:

Langkah 1: Apa itu Komputer?

Ini mungkin kelihatan seperti soalan yang sangat sederhana yang tidak perlu dijawab apabila, pada hakikatnya, itu adalah soalan yang ramai orang tidak tahu jawapan yang sebenarnya. Komputer telah wujud lebih lama daripada transistor dalam bentuk mekanikal dan teoritis. Takrif sebenar komputer dianggap oleh individu yang sangat pintar dengan nama Alan Turing. Dia menggambarkan mesin yang disebut Mesin Turing. Setiap komputer yang kita gunakan hari ini, dari komputer atau telefon bimbit yang anda baca ini kepada superkomputer semua boleh diklasifikasikan sebagai Mesin Turing pada tahap paling sederhana mereka.
Apakah Mesin Turing? Mesin Turing terdiri daripada 4 bahagian: pita, kepala, jadual dan daftar keadaan. Untuk memvisualisasikan operasi mesin sedemikian, mula-mula anda perlu membayangkan jalur filem merangkumi jauh di setiap arah. Sekarang bayangkan bahawa setiap sel jalur filem ini hanya boleh mengandungi satu set simbol yang ditetapkan (seperti abjad). Untuk contoh ini mari kita bayangkan bahawa setiap sel hanya boleh mengandungi "0" atau "1". Sel-sel ini boleh ditulis semula dalam masa yang tidak terhingga tetapi mengekalkan maklumat mereka selama-lamanya sehingga mereka berubah lagi. Bahagian Mesin Turing yang dikenali sebagai kepala boleh menulis simbol ke sel-sel serta sama ada kenaikan atau merendahkan kedudukannya pada jalur filem dengan bilangan integer (bilangan keseluruhan) sel yang diberikan. Bahagian seterusnya ialah jadual yang memegang set arahan tertentu untuk kepala untuk melaksanakan seperti "bergerak ke kanan 4 sel" dan "tetapkan sel ke 1". Bahagian keempat dan terakhir Mesin Turing ialah daftar keadaannya yang bertujuan untuk memegang keadaan semasa mesin. Negeri ini termasuk arahan serta data semasa pada pita.
Itulah betapa mudah operasi komputer. Apabila komputer anda beroperasi, ia sebenarnya beroperasi sebagai mesin turing. Ia memproses data yang diadakan pada komputer anda dengan satu set arahan dan algoritma yang diberikan. Komputer yang diterangkan dalam Instructable ini adalah model komputer yang sangat sederhana, namun ia masih beroperasi sebagai satu yang anda boleh program dengan satu set arahan yang akan diikuti dan dilaksanakan.
Pautan Berguna:
Wikipedia mengenai Turing Machines:
http://en.wikipedia.org/wiki/Turing_machine

Langkah 2: Pengenalan kepada Elektronik

Sebelum membina komputer 8-bit, sangat berguna untuk memahami sifat elemental elektrik dan litar analog. Terdapat bahagian-bahagian pada komputer yang anda akan bina memerlukan komponen analog. Terdapat banyak panduan pengajaran diri elektronik yang tersedia untuk kos yang minimum yang menyediakan kursus kemalangan dalam kejuruteraan elektrik. Saya secara peribadi dijumpai Panduan Pengajaran Sendiri Elektronik oleh Harry Kybet dan Earl Boysen untuk menjadi buku yang indah untuk menangani dunia elektronik analog.
Panduan Pengajaran Sendiri Elektronik : http://www.amazon.com/Electronics-Self-Teaching-Guide-Teaching-Guides/dp/0470289619/
Komponen biasa:
Resistor - Had semasa, diukur dalam ohm.
Kapasitor - Caj kedai, boleh sama ada kutub atau bukan kutub (makna kutub yang mesti diletakkan di arah yang betul untuk berfungsi). Diukur di farads.
Diode - Hanya membenarkan arus mengalir dalam satu arah, pecah pada voltan tertentu apabila diletakkan di arah yang salah.
Transistor - Pintu semasa yang dikawal oleh pin ketiga yang berfungsi sebagai pengantara. Terdapat banyak jenis transistor, tetapi di sini kita akan bercakap mengenai BJT (bipolar junction transistor) yang terdapat dalam dua jenis: NPN dan PNP.

Arus, voltan dan rintangan berjalan tangan dalam litar. Hubungan antara ketiga dapat dinyatakan dengan hukum Ohm: V = IR. Dalam erti kata lain, Voltan adalah sama dengan amperes semasa didarab dengan rintangan dalam ohm. Undang-undang Ohm adalah salah satu formula yang paling penting dalam elektronik dan ia adalah bernilai mengetahui dari bahagian atas kepala anda.
Untuk memohon undang-undang Ohm anda perlu tahu rintangan litar. Untuk mencari nilai perintang anda perlu menggunakan kod warnanya. Kod warna perintang adalah berdasarkan kepada spektrum yang dapat dilihat dan boleh diingat dalam pelbagai fesyen. Bagi mereka yang tidak peduli untuk menghafalnya, terdapat banyak alat yang ada untuk membantu anda mencari nilai yang betul untuk perintang anda. Untuk mengira rintangan keseluruhan dalam litar, anda memerlukan dua formula untuk dua konfigurasi yang berbeza dari perintang: siri dan selari. Dalam siri satu perintang mengikuti yang lain, sedangkan selari mereka bekerja bersama satu sama lain. Dalam siri formula ini sangat mudah:
Resistor dalam Siri: R (jumlah) = R (1) + R (2) +. . . + R (N)
Bermaksud bahawa anda hanya perlu menambah nilai-nilai perintang.
Resistor selari: R (jumlah) = 1 / {1 / R (1) + 1 / R (2) +. . . + 1 / R (N)}
Alat yang baik untuk mencari ketahanan daripada kod warna: http://www.csgnetwork.com/resistcolcalc.html
Lebih mudah untuk memahami rumus untuk perintang selari jika anda berfikir tentang perintang sebagai bekerja bersama seperti dua orang yang bekerja bersama dalam satu projek. Formula yang sama digunakan untuk masalah kata di mana anda diberikan kadar di mana dua orang beroperasi dan anda mesti mengetahui berapa cepat projek mereka akan siap jika kerja bersama.
Untuk mengetahui berapa banyak arus dibekalkan kepada komponen tertentu dengan nilai rintangan yang diberikan, anda hanya akan memasukkan nilai rintangan dan voltan ke dalam hukum Ohm dan menyelesaikannya untuk I. Sebagai contoh:
Lampu berada dalam litar dan dan dua 1K (satu ribu ohm) resistor diletakkan di hadapannya secara selari. Dengan bekalan kuasa sebanyak 9 volt, berapa jumlah arus dibekalkan kepada cahaya?
1.) Kira R (jumlah):
R (jumlah) = 1 / (1/1000 + 1/1000) = 1 / (2/1000) = 1000/2 = 500 ohm
2.) Kira semasa menggunakan hukum Ohm:
9 = I * 500
I = 9/500 = .018 A = 18 mA (milliamps)
Anda juga boleh mengatur perintang dalam litar untuk mengawal voltan. Ini dipanggil pembahagi voltan dan melibatkan dua perintang dalam siri. Output voltan dua perintang berada di persimpangan mereka. Untuk idea yang lebih baik, lihat gambar yang saya sertakan. Dalam susunan ini formula untuk output voltan adalah:
V (keluar) = V (sumber) * R (2) / {R (1) + R (2)}
Kapasitor akan berguna di komputer anda dengan pembinaan jam. Jam hanyalah litar yang menghidupkan dan mematikan pada kadar yang tetap. Sama seperti perintang, kapasitor mempunyai dua rumus untuk mencari nilai keseluruhan bagi kedua-dua siri dan konfigurasi selari.
Siri: C (jumlah) = 1 / {1 / C (1) + 1 / C (2) +. . . + 1 / C (N)}
Selari: C (jumlah) = C (1) + C (2) +. . . + C (N)

Kadar di mana caj kapasitor bergantung kepada rintangan litar sebelum (atau selepas anda melepaskan) kapasitor serta kapasitansinya. Pengisian kapasitor diukur dalam pemalar masa. Ia mengambil masa 5 pemalar masa untuk mengecas sepenuhnya atau menunaikan kapasitor. Rumusan untuk mencari pemalar masa kapasitor dalam beberapa saat ialah:
T (tetap) = Rintangan * Kapasitansi
Diodes mudah dalam operasi dan berguna apabila membina komputer TTL. Mereka hanya membenarkan arus mengalir dalam satu arah. Apabila mereka diletakkan dalam arah yang betul mereka adalah apa yang dipanggil berpihak ke depan. Apabila mereka diterbalikkan, mereka memecah pada voltan tertentu. Apabila diod berfungsi dengan semasa, ia adalah terbalik-berat sebelah.
Transistor beroperasi seperti injap yang dikendalikan oleh arus. BJT mempunyai tiga pin: pemungut, pemancar dan pangkalan. Demi kesederhanaan dalam langkah ini saya akan menerangkan transistor NPN di mana arus mengalir dari pemungut ke pemancar. Arus yang digunakan di pangkalan mengawal berapa banyak aliran semasa dari pemungut kepada pemancar. Transistor sangat sesuai untuk banyak aplikasi kerana kemampuan mereka untuk menguatkan isyarat. Ini adalah kerana semasa yang digunakan di pangkalan transistor boleh jauh lebih rendah daripada terkawal semasa. Keuntungan dalam arus ini disebut keuntungan semasa transistor, atau beta. Rumus untuk beta ialah:
Beta = Semasa (Pemungut) / Semasa (Asas)
Apabila transistor sepenuhnya di dalamnya dikatakan tepu. Transistor boolean adalah sama ada dalam keadaan tepu atau mati dan tidak ada di antara. Ini adalah jenis transistor yang anda akan berurusan dengan kebanyakannya dalam elektronik digital. Transistor membentuk pintu logik yang diperlukan untuk komputer berfungsi. Ini akan diterangkan kemudian.
Pautan Berguna:
http://en.wikipedia.org/wiki/Resistor
http://en.wikipedia.org/wiki/Capacitor
http://en.wikipedia.org/wiki/Diode
http://en.wikipedia.org/wiki/Transistor

Langkah 3: Nombor Perduaan

Hari ini kita digunakan untuk sistem penomboran seluruh dunia yang berdasarkan nombor sepuluh. Oleh itu, saya bermaksud bahawa kita tidak mempunyai nombor dalam sistem nombor kami yang bernilai sepuluh dan dengan itu sistem nombor kami adalah sepuluh asas.
Fikirkan sistem nombor kami sebagai odometer. Kaunter odometer dari angka terendah hingga digit tertinggi dan kemudian memaksa rotor seterusnya dalam urutan untuk memajukan satu tempat. Sebagai contoh:
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 0 <- Bawa ke angka berikutnya
Binari adalah dua asas, yang bermaksud bahawa ia hanya mempunyai dua angka dan tidak mempunyai angka untuk 2. Binari hanya mempunyai angka 0 dan 1 atau "mati" dan "pada". Untuk mengira dalam binari anda hanya menggunakan teknik odometer:
0001b - 1
0010b - 2
0011b - 3
0100b - 4
0101b - 5
0110b - 6
0111b - 7
1000b - 8
dan lain-lain . . .
Terdapat satu lagi faktor sistem nombor kami yang menjadikannya sepuluh asas; apabila kita bergerak lebih tinggi dalam digit, berat angka meningkat dengan kuasa sepuluh. Sebagai contoh 1 = 10 ^ 0, 10 = 10 ^ 1, 100 = 10 ^ 2, dan sebagainya. . . Dalam perduaan, perkara-perkara sudah tentu adalah asas dua dan oleh itu, setiap angka berturut-turut adalah satu lagi kuasa dua. 1b = 1 = 2 ^ 0, 10b = 2 = 2 ^ 1, 100b = 4 = 2 ^ 2, dan lain-lain. . .
Untuk menukarkan nombor perpuluhan kepada binary terdapat helah ringkas yang dikenali sebagai double-dabble yang menjadikan proses lebih mudah:
Katakan kita mahu menukar 13 kepada nombor perduaan, kita mula dengan membahagi 13 demi dua dan menuliskan bakinya. Kemudian secara langsung di atasnya anda menuliskan nombor yang terhasil tanpa baki (6 dalam kes ini) dan bahagikannya dengan dua dan tuliskan baki di atas yang sebelumnya. Anda meneruskan proses ini sehingga anda mencapai sama ada 1 atau 0. Pada akhirnya anda membaca dari atas ke bawah untuk mendapatkan hasilnya.
1/2 = 0 R1 <Baca dari atas ke bawah. Hasilnya adalah 1101 atau 2 ^ 0 + 0 + 2 ^ 2 + 2 ^ 3 = 1 + 0 + 4 + 8 = 13. Ini dipanggil perkataan binari.
3/2 = 1 R1 <
6/2 = 3 R0 <
13/2 = 6 R1 <
Hexadecimal digunakan dengan kerap dengan binari. Hexadecimal adalah asas 16 dan mengandungi angka 0-9 dan a-f. Satu nombor heksadesimal digunakan untuk menggambarkan satu nibble atau empat bit data. Sedikit adalah 1 atau 0 tunggal binari. Nibble dapat dikira dari 0 hingga 15 (0000 hingga 1111) sebelum bit berikutnya berada di menggigit berikutnya. Dua camilan bersama adalah bait atau 8 bit. Oleh kerana angka pertama adalah 2 ^ 0, angka terakhir adalah wajaran 2 ^ 7. Oleh itu, satu byte boleh berada di mana-mana julat dari 0 hingga 255. Untuk menyatakan byte 00101110 (46 dalam perpuluhan) dalam heksadesimal anda pertama akan memisahkan kedua kiwis ke dalam 0010 dan 1110. Nibble pertama mempunyai nilai 2, dan kedua seseorang mempunyai nilai E (atau 14 dalam perpuluhan). Oleh itu, byte 00101110 dalam heksadesimal akan 2E.
Pautan Berguna:
http://en.wikipedia.org/wiki/Binary_numeral_system
http://en.wikipedia.org/wiki/Hexadecimal

Langkah 4: Gerbang Logik

Komputer terdiri daripada ribuan pintu masuk logik yang diatur untuk menjalankan fungsi tertentu. Gerbang logik ialah komponen dalam elektronik digital yang outputnya bergantung kepada keadaan inputnya. Kebanyakan pintu masuk logik mempunyai dua input dan satu output. Anda boleh memikirkan pintu masuk logik sebagai pembuat keputusan dalam elektronik digital. Enam pintu utama logik utama yang digunakan dalam elektronik digital ialah:
DAN Gate: Output tinggi apabila semua inputnya tinggi.
ATAU Pintu: Keluaran adalah tinggi apabila mana-mana inputnya tinggi.
TIDAK Pintu: Hanya mempunyai satu input. Output tinggi apabila inputnya rendah.
Gate NAND: Output adalah tinggi kecuali semua inputnya tinggi.
NOR Gate: Keluaran adalah tinggi apabila tiada inputnya tinggi.
XOR Gate: Keluaran adalah tinggi apabila bilangan input ganjil tinggi.

Tri-State Buffer: Penampan yang dikawal oleh isyarat logik ketiga.
Adalah penting untuk menyebutkan sekarang perbezaan antara isyarat "1" yang tinggi dan isyarat rendah "0". Isyarat tinggi boleh menjadi sambungan kepada voltan positif atau ia boleh menjadi input terapung. Input terapung adalah salah satu yang tidak disambungkan kepada sebarang output. Satu contoh input terapung adalah salah satu yang tidak disambungkan sama sekali atau satu yang disambungkan kepada output penampan 3 negara yang tidak diaktifkan. Isyarat rendah hadir apabila input berada di tanah.
Gerbang logik boleh disalurkan ke satu sama lain untuk menghasilkan hampir apa-apa fungsi yang boleh dibayangkan. Sebagai contoh, dua pintu NOR boleh disalurkan ke satu sama lain untuk menyimpan satu bit data dalam selang RS_NOR sementara kuasa dibekalkan ke litar.

Langkah 5: Pengiraan Perduaan (Kaunter Program)

Salah satu bahagian yang paling penting untuk komputer ialah kaunter programnya. Kaunter program menyediakan komputer dengan alamat semasa arahan yang akan dilaksanakan. Agar program kaunter berfungsi, bagaimanapun, ia perlu dikira dalam binari. Untuk melakukan jip flip JK ini digunakan. Flop-flop adalah susunan pintu logik yang menyimpan satu bit (seperti selak RS_NOR yang diterangkan dalam langkah pintu masuk logik). Sebuah flip-flop JK mengubah keadaannya apabila masukan nadi jamnya tinggi dan kemudian rendah lagi (input J dan K juga perlu tinggi). Dalam erti kata lain, setiap kali flip flop JK mendapat kelebihan dari satu jam, pulangan perubahan keadaan dari "0" ke "1" atau dari "1" ke "0".
Jika anda menyambung output satu flip flip JK ke yang lain dan menyusunnya hasilnya adalah kaunter binari yang bertindak seperti odometer. Ini kerana sebagai flip flop JK yang pertama dalam urutan yang tinggi, dan kemudian rendah, ia mencetuskan yang seterusnya dalam urutan. Kekerapan jam (berapa kali ia bertukar dan dimatikan sesaat) dibelah dua dengan setiap tambahan berturut-turut flip flop JK. Itulah sebabnya flip-flop JK juga dipanggil litar berasingan. Corak yang dihasilkan untuk empat flip flop JK akan menjadi 0000, 0001, 0010, 0011, 0100, dan lain-lain. . .
Namun, untuk komputer mudah seperti yang diterangkan dalam Instructable ini, ada beberapa lagi fungsi yang anda perlukan untuk menjadikan komputer berfungsi. Agar komputer boleh memulakan semula programnya, ia memerlukan keupayaan untuk membersihkan atau menetapkan semua outputnya menjadi sifar. Kaunter program juga memerlukan keupayaan untuk memuatkan perkataan binari untuk kod op JMP yang membolehkan komputer untuk melompat ke arahan tertentu. Pintu logik digunakan untuk mencapai matlamat ini. Nasib baik untuk kami biner counter datang dengan cip mudah dengan semua fungsi yang anda perlukan.

Langkah 6: Daftar

Daftar:

Pendaftaran boleh berpotensi menjadi bahagian terpenting komputer. Daftar mendaftar buat sementara waktu menyimpan nilai semasa operasi komputer. Komputer 8-bit yang diterangkan dalam Instructable ini mempunyai dua daftar yang melekat pada ALU, suatu daftar untuk menyimpan arahan semasa dan daftar untuk output komputer.

Bergantung pada cip, daftar akan mempunyai pin kawalan 2 atau 3. Daftar yang akan kita gunakan mempunyai dua pin kawalan: membolehkan output dan membolehkan input (kedua-duanya aktif apabila rendah). Apabila output membolehkan pin disambungkan ke tanah perkataan binary yang disimpan sekarang dihantar di seluruh pin output. Apabila pin input disambungkan ke tanah, perkataan binari yang ada pada pin input dimasukkan ke dalam daftar.

Contoh penggunaan daftar pada komputer ialah penumpuk di ALU (unit logik aritmetik yang menjalankan operasi matematik). Penumpuk adalah seperti padat untuk komputer yang menyimpan output ALU. Penumpuk juga merupakan input pertama untuk ALU. Senarai B adalah input kedua. Untuk operasi penambahan, nilai pertama dimasukkan ke dalam penumpuk. Selepas itu nilai kedua yang akan ditambahkan pada nilai pertama dimuatkan ke dalam daftar B. Output penumpuk dan daftar B adalah terbuka dan sentiasa memakan ALU. Langkah terakhir untuk penambahan adalah untuk memindahkan output operasi ke dalam Pengangkut.

Mendaftar semua beroperasi pada talian data yang dikongsi yang dipanggil bas. Bas adalah sekumpulan wayar yang sama dengan nombor kepada seni bina mana-mana CPU. Ini benar-benar meletakkan kuda sebelum keranjang yang mempertimbangkan lebar bas adalah ukuran yang menentukan untuk seni bina CPU. Oleh kerana digital 1 bermaksud voltan positif, dan 0 bermakna mendatar, adalah mustahil untuk mempunyai semua daftar berkongsi bas yang sama tanpa memberi mereka keupayaan untuk selektif menyambung dan memutuskan sambungan dari bas. Nasib baik untuk kita, terdapat negeri ketiga antara 1 dan 0 yang sama dengan imput semasa yang berfungsi hebat untuk ini. Masukkan penampal tri-negeri: cip yang membolehkan anda secara selektif menyambungkan kumpulan wayar ke bas. Menggunakan beberapa buffer tri-state ini, anda boleh mempunyai setiap daftar dan cip pada keseluruhan komputer yang memerlukan komunikasi berkongsi kabel yang sama sebagai bas. Dalam kes komputer saya, ia adalah jalur lebar 8-wayar slot papan roti yang merangkumi pin bawah papan roti. Eksperimen sekitar dengan bas, kerana mereka membawa semua maklumat dari sekeping ke dalam komputer dalam komputer yang salah mungkin berarti data yang salah yang meremehkan garis.

Langkah 7: ALU

ALU (unit logik aritmetik) komputer adalah bahagian yang menjalankan operasi matematik. Untuk komputer SAP, ia hanya perlu mempunyai dua fungsi: tambahan dan penolakan. Menambah dan menolak kerja-kerja binari sangat sama dengan tambahan dan penolakan dalam istilah perpuluhan, sebagai contoh:
1 <- Bawa 1 1 <- Bawa Bit
05 0101
+05 +0101
10 1010
Untuk menambah binari kita memerlukan apa yang disebut penambah penuh. Penambah penuh dengan berkesan menambah satu bit binari yang lain dengan membawa dan menjalankan. Pembawa penambah penuh adalah seperti input ketiga untuk proses tambahan. Mereka digunakan untuk mengikat pelbagai penambah penuh bersama-sama. Pelaksanaan penambah penuh terjadi apabila terdapat sepasang orang dalam proses penambahan. Pelaksanaan penambah penuh dimasukkan ke dalam pembawa untuk menambah beberapa bit binari. Untuk membina penambah penuh, anda memerlukan dua gerbang XOR, dua gerbang DAN gerbang ATAU.
Untuk menolak binari, kita perlu menukar nombor kepada rakan sejawatannya yang negatif dan menambahnya kepada nombor yang kita tolak daripada. Untuk melakukan ini kita menggunakan apa yang dipanggil pujian 2. Untuk mengambil pujian 2 perkataan perduaan yang anda ubah setiap bit (ubah setiap 0 ke 1 dan setiap 1 ke 0) dan tambah satu.
5 = 0101, -5 = 1010+1 = 1011
Tidak digunakan -> 1 1
10 1010
+(-5) +1011
5 0101
Untuk mengawal penyongsangan bit, kita menggunakan pintu XOR dengan satu input yang biasanya rendah. Dengan satu input yang biasanya rendah, outputnya bersamaan dengan input lain. Apabila anda menetapkan input kawalan tinggi, anda membalikkan input lain. Sekiranya kita menyongsangkan penyongsangan ini dengan sedikit dihantar ke pembawa penuh, satu tindakan penolakan adalah hasilnya.

Langkah 8: Memori Program dan RAM

Memori program komputer anda akan menyimpan arahan untuk dilaksanakan. Ia juga akan bertindak sebagai RAM yang boleh menyimpan nilai semasa operasi komputer. Memori program terdiri daripada tiga bahagian utama: ingatan, alamat alamat memori (MAR) dan multiplexer. Memori adalah cip yang mempunyai 16 bait penyimpanan. Terdapat empat alamat bit yang dimasukkan ke dalam memori yang menyatakan apa yang harus dibaca atau ditulis oleh byte. MAR menyimpan alamat semasa untuk bait untuk dibaca atau ditulis dari memori. Ia sentiasa memakan cip memori kecuali komputer berada dalam keadaan pengaturcaraannya. Pemultipleks membolehkan anda memilih antara dua input dan output input yang diberikan. Pemultipleks yang digunakan dalam komputer saya membolehkan anda memilih dari dua input empat bit (MAR dan input manual). Apabila komputer berada dalam keadaan pengaturcaraan, alamat manual dimasukkan ke dalam memori dan membolehkan anda memprogramkan bait ke memori komputer di alamat yang anda tentukan.

Langkah 9: Daftar Arahan

Daftar arahan komputer menyimpan arahan semasa serta alamat yang arahan akan beroperasi. Ia adalah komponen yang sangat mudah dengan tujuan yang sangat penting. Semasa operasi komputer, kandungan alamat yang diberikan dalam memori akan dipindahkan ke dalam daftar arahan. Dalam komputer saya bit fout paling kiri adalah kod OP atau arahan semasa yang akan dijalankan. Empat bit yang betul, atau empat bit yang paling rendah, memberitahu komputer apa alamat yang hendak digunakan untuk operasi itu. Empat bit pertama sentiasa memberi kod PP ke dalam matriks kawalan yang memberitahu komputer apa yang perlu dilakukan untuk arahan tertentu. Empat bit paling panjang memakan kembali ke komputer supaya alamat itu boleh dipindahkan ke kaunter MAR atau program.

Langkah 10: Daftar Keluaran

Sekiranya komputer hanya memberi makan output bas ke pengendali, pembacaan akan sedikit tidak masuk akal. Inilah sebabnya mengapa terdapat output output yang bertujuan untuk menyimpan nilai yang dimaksudkan untuk output. Output untuk komputer anda boleh menjadi LED mudah yang memaparkan binary mentah, atau anda boleh mempunyai paparan yang membaca nombor sebenar pada memaparkan tujuh segmen. Ini semua bergantung kepada berapa banyak kerja yang anda ingin masukkan ke dalam komputer anda. Untuk komputer saya, saya menggunakan beberapa tiub Numitron IV-9 untuk output komputer saya ditambah dengan Arduino untuk melakukan penukaran dari binari hingga perpuluhan.

Langkah 11: Jam

Setiap bahagian dalam komputer perlu disegerakkan sepenuhnya untuk berfungsi dengan betul. Untuk melakukan ini, komputer anda memerlukan jam atau litar yang mempunyai output yang menghidupkan dan mematikan pada kadar tetap. Cara paling mudah untuk melakukan ini adalah menggunakan pemasa 555. Pemasa 555 adalah pemasa yang sangat popular yang dicipta dalam era kemunculan komputer yang sangat popular dengan penghibur hari ini. Untuk membina litar 555, anda perlu tahu bagaimana seseorang beroperasi.
Jam untuk komputer anda sepatutnya lambat pada mulanya. 1Hz, atau satu kitaran sesaat, adalah nilai permulaan yang baik. Ini membolehkan anda melihat operasi komputer anda dan menyemak sebarang ralat. 555 cip memerlukan dua perintang dan kapasitor untuk operasi. Kedua-dua perintang menentukan berapa lama denyutan tinggi dan rendah serta kekerapan keseluruhan. Kapasitor menukar panjang nadi untuk kedua-duanya. Jika anda tidak mempunyai pengalaman dengan 555 pemasa saya cadangkan untuk bereksperimen dengan mereka.
Pautan Berguna:
http://en.wikipedia.org/wiki/555_timer_IC

Langkah 12: Senibina

Ini adalah langkah di mana segala-galanya bersatu. Sudah tiba masanya untuk reka bentuk seni bina komputer anda. Seni bina adalah bagaimana daftar dan komponen komputer anda yang teratur. Aspek reka bentuk adalah sepenuhnya untuk anda, walaupun ia membantu untuk menjaga matlamat dalam fikiran (apa yang anda mahu komputer anda lakukan) dan model untuk pergi dari. Jika anda ingin merancang komputer anda selepas saya benar-benar halus. Saya mengubahsuai seni bina SAP-1 yang terdapat dalam Elektronik Komputer Digital untuk komputer 8-bit saya.
Aspek reka bentuk yang sentiasa perlu diingat adalah bagaimana data dipindahkan antara pelbagai komponen komputer anda. Kaedah yang paling biasa adalah untuk mempunyai "bas" biasa untuk semua data pada komputer. Input dan output daftar, ALU, kaunter program dan semua RAM disambungkan ke bas komputer. Wayar disusun mengikut urutan dari sedikit ketara (1) ke bit signifikan tertinggi (128).
Mana-mana dan semua output yang disambungkan ke bas perlu diputuskan sepenuhnya semasa tidak aktif atau jika tidak, mereka akan menggabungkan antara satu sama lain dan menghasilkan keluaran yang salah. Untuk melakukan ini, kita menggunakan buffer Tri-state untuk mengawal output elemen-elemen tertentu yang keluaran secara lalai seperti penumpuk, ALU dan input sebenar untuk pengaturcaraan komputer.

Langkah 13: Matriks Kawalan

Matriks kawalan komputer memberitahu setiap bahagian individu apabila mengambil input dan mengeluarkan nilainya. Terdapat pelbagai keadaan setiap operasi dalam komputer. Negeri-negeri ini dipicu oleh sejenis kaunter yang dipanggil kaunter cincin. Kaunter cincin hanya mempunyai satu bit tinggi pada satu masa dan kitaran melalui output secara berturut-turut. Contohnya, jika kaunter cincin mempunyai 4 output, ia akan mula mempunyai output pertama yang aktif. Pada jam nadi seterusnya ia akan menetapkan output kedua yang tinggi (dan rendah pertama). Nadi jam seterusnya akan memajukan satu output yang lebih tinggi dan sebagainya. Tahap-tahap ini dipanggil T menyatakan. Komputer dalam Instructable ini menggunakan 6 T untuk operasi satu perintah. Negeri tiga T yang pertama adalah apa yang dipanggil kitaran mengambil di mana arahan semasa diambil dan dimasukkan ke dalam arahan arahan. Kaunter program juga bertambah dengan satu. Set kedua dari tiga keadaan T bergantung pada apa kod OP dimasukkan ke dalam matriks kawalan dari arahan arahan. Negeri-negeri T adalah seperti berikut:
T1: Kandungan kaunter program dipindahkan ke dalam daftar alamat memori. (Alamat Negeri)
T
2: Kaunter program adalah bertambah satu. (Negeri Peningkatan)
T3: Byte yang dialamatkan dalam memori program akan dipindahkan ke dalam arahan arahan. (Negeri Memori)
T4: Bergantung pada arahan apa yang sedang dilaksanakan.
T5: Bergantung pada arahan apa yang sedang dilaksanakan.
T6: Bergantung pada arahan apa yang sedang dilaksanakan.
Terdapat dua cara utama untuk mewujudkan matriks kawalan: menggunakan logika diskret dan menggunakan ROM. Kaedah ROM adalah yang paling mudah dan paling berkesan. Menggunakan logik diskret melibatkan merangka skema logik besar yang akan mengeluarkan kata-kata kawalan yang betul untuk komputer anda berdasarkan input kod OP. ROM bermaksud memori baca-sahaja. Terdapat beberapa jenis ROM yang boleh anda pertimbangkan untuk digunakan dalam binaan anda. Untuk komputer saya, saya mula menggunakan EEPROM (ROM boleh diprogramkan secara elektronik) tetapi kemudian beralih ke NVRAM (memori akses rawak tidak berubah-ubah) selepas cip EEPROM gagal untuk menulis. Saya tidak mengesyorkan NVRAM kerana ia dimaksudkan untuk ingatan akses rawak dan tidak penyimpanan tetap. EEPROM adalah penyelesaian yang paling berkesan pada pendapat saya.
Matriks kawalan akan mempunyai tiga cip ROM yang masing-masing mempunyai sekurang-kurangnya 32 alamat penyimpanan 8 bit (serta unsur masa dan mengira). Perkataan binari yang dihantar dari matriks kawalan disebut ROM kawalan dan mengandungi semua bit kawalan untuk setiap komponen komputer anda. Anda ingin memastikan untuk mengatur bit kawalan dan mengetahui pesanan mereka. Untuk operasi tiada anda menginginkan perkataan kawalan yang menjadikan setiap bahagian komputer tidak aktif (kecuali jam sudah tentu). Kata kawalan untuk komputer yang diterangkan dalam Instructable ini adalah 16 bit panjang dan disimpan dalam dua cip ROM kawalan. Tiga alamat pertama cip ROM kawalan memegang kata-kata kawalan untuk kitaran pengambilan. Selebihnya alamat pada cip memegang kata-kata kawalan berpasang tiga untuk setiap kod OP. Cip cip ketiga memegang lokasi memori untuk permulaan jujukan perkataan kawalan untuk setiap kod OP dan ditangani oleh kod OP itu sendiri. Sebagai contoh, dalam komputer saya jika anda memberi kawalan kod OP 0110 ia akan mengeluarkan binari 21, yang merupakan alamat permulaan perintah JMP. Terdapat kaunter 8-bit di antara ROM OP dan ROM kawalan yang kira-kira dari 0-2 (pertama tiga negeri T) maka pada keadaan T ketiga beban alamat yang dihasilkan oleh ROM OP dan mengira dari kedudukan itu sehingga T1 keadaan membersihkan kaunter lagi. Kaunter cincin dan binari untuk matriks kawalan dikawal oleh penyongsangan denyutan jam supaya perkataan kawalan hadir apabila denyutan jam naik ke unsur-unsur komputer. Seluruh proses dalam susunan adalah seperti berikut:
1.) T1 menyatakan membersihkan kaunter kepada 0, perkataan kawalan yang disimpan pada 0 dihantar
2.) Jam berjalan tinggi dan keadaan alamat berlaku
3.) Jam pergi rendah dan seterusnya penambahan kawalan kawalan dan kawalan perkataan 1 dihantar
4.) Jam berjalan tinggi dan kitaran kenaikan berlaku
5.) Jam semakin rendah dan kaunter kawalan meningkat kepada 2, mengawal perkataan 2 dihantar
6.) Jam berjalan tinggi dan keadaan ingatan berlaku dan kod OP tiba di arahan arahan, T3 juga aktif yang bermaksud pada masa nadi rendah seterusnya alamat kawalan OP akan dimuatkan
7.) Jam turun dan memuat kaunter dengan alamat untuk yang pertama dari tiga perkataan kawalan untuk kod OP yang diberikan
8.) T4, T5 dan T6 melaksanakan kod OP
9.) T1 mengeset semula kaunter, proses itu berterusan sehingga OP HLT diterima. Perintah HLT berhenti jam.

Langkah 14: Mikroprogramming

Sekarang adalah bahagian di mana anda memutuskan apa perintah yang anda mahu komputer anda mampu. Saya memberikan komputer 6 operasi unik yang akan memberikan fungsi pengaturcaraan asas yang saya perlukan. Perintah yang anda akan masuk ke dalam komputer anda ialah apa yang dipanggil bahasa Perhimpunan. Perhimpunan adalah salah satu bahasa pengaturcaraan terawal dan masih boleh digunakan pada komputer hari ini. Perintah dalam bahasa termasuk memasukkan penumpuk, menambah, memindahkan, mengeluarkan dan menyimpan pembolehubah. Setiap arahan mempunyai kod OP 4-bit sendiri dalam komputer 8-bit ini. Perintah yang saya pilih untuk komputer saya ialah:
NOP: Tiada operasi. (0000)
LDA: Beban penumpuk dengan nilai di alamat ini. (0001)
TAMBAH: Tambah nilai pada alamat yang dinyatakan pada nilai dalam penumpuk. (0010)
SUB: Tolak nilai di alamat yang ditentukan dari nilai dalam penumpuk. (0011)
STO: Simpan kandungan penumpu di alamat yang ditentukan. (0100)
OUT: Simpan kandungan penumpuk dalam daftar output supaya pengendali dapat melihatnya. (0101)
JMP: Lompat ke arahan tertentu dalam ingatan di alamat yang ditentukan. (0110)
HLT: Hentikan operasi komputer. (0111)
Untuk menentukan kata kawalan apa yang perlu dihantar untuk setiap OP anda perlu tahu apa bit yang perlu aktif semasa setiap keadaan T. Untuk komputer saya, saya menyusun bit seperti berikut (garis bawah menunjukkan sedikit aktif-aktif):
CE CO J MI RO II IO OI BI EO SU AI AO RI HLT X
CE - Count Enable (membolehkan input jam kaunter program)
CO - Jam keluar membolehkan
J - Jump membolehkan
MI - MAR Input
RO - Memori program
II - Arahan mendaftar di
IO - Mendaftar arahan
OI - Daftar output dalam
BI - B mendaftar masuk
Keluaran EO - ALU membolehkan
SU - Kurangkan
AI - Pengumpul di
AO - Output akumulator membolehkan
RI - Memori program dalam
HLT - Menghentikan
X - Tidak digunakan
Berikut adalah bit apa yang harus aktif untuk setiap keadaan T untuk arahan yang diberikan serta alamat yang seharusnya berada dalam kawalan ROM:
Ambil:
0: CO, MI - Kaunter program output ke MAR
1: CE - Kaunter diaktifkan untuk nadi jam seterusnya
2: RO, II - Byte yang dituju dihasilkan dari RAM ke dalam arahan arahan
NOP:
3: X
4: X
5: X
LDA:
6: IO, MI - Alamat dalam arahan arahan dipindahkan ke MAR (empat bit paling rendah)
7: RO, AI - Byte yang dituju dihasilkan dari ingatan ke dalam penumpuk
8: X
TAMBAH:
9: IO, MI - Alamat dalam arahan arahan dipindahkan ke MAR (empat bit paling rendah)
10: RO, BI - Byte yang dituju dihasilkan dari ingatan ke dalam penumpuk
11: EO, AI - Jumlah penumpuk dan daftar B dimuatkan ke dalam penumpuk
SUB:
12: IO, MI - Alamat dalam arahan arahan dipindahkan ke MAR (empat bit paling rendah)
13: RO, BI - Byte yang dituju dihasilkan dari ingatan ke dalam penumpuk
14: AI, SU, EO - Perbezaan akumulator dan daftar B dimuatkan ke dalam penumpuk
STO:
15: IO, MI - Alamat dalam arahan arahan dipindahkan ke MAR (empat bit paling rendah)
16: AO, RO, RI - Output penumpuk ke memori program di lokasi yang dialamatkan (RO dan RI perlu aktif untuk menulis pada cip yang saya gunakan)
17: X
KELUAR:
18: OI, AO - Output penumpuk ke dalam daftar keluaran
19: X
20: X
JMP:
21: J, IO - Arahan arahan memuat kaunter program dengan empat bit terendah
22: X
23: X
HLT:
24: HLT - Isyarat terhenti dihantar ke jam
25: X
26: X
OP ROM anda mengandungi gandaan tiga pada setiap lokasi ingatan. Ini sudah tentu kerana setiap kitaran mengambil tiga negeri pelaksanaan. Oleh itu, data yang dialamatkan untuk OP ROM anda akan menjadi:
0 - 3
1 - 6
2 - 9
3 - 12
4 - 15
5 - 18
6 - 21
7 - 24
Untuk memprogram cip pilihan anda, anda mempunyai banyak pilihan yang berbeza. Anda boleh membeli programmer EEPROM dan EPROM, tetapi mereka biasanya menanggung sejumlah wang. Saya membina programmer papan roti untuk ROM saya yang dikendalikan dengan menggerakkan wayar di sekeliling dan mengawal pin tulis dan baca membolehkan pin dengan butang tekan. Kemudian saya mempermudahkan proses dan merancang seorang programmer Arduino untuk NVRAM saya secara khusus. Saya akan melampirkan kod itu kerana ia boleh diubahsuai dengan mudah untuk memprogramkan hampir semua cip memori selari yang anda akan gunakan untuk projek ini.

Langkah 15: Membeli Bahagian

Perkara yang hebat tentang membina komputer 8-bit ialah kebanyakan bahagian akan menelan kos kurang daripada satu dolar jika anda membelinya dari tempat yang betul. Saya membeli 90% bahagian saya dari Jameco Electronics dan saya telah berpuas hati dengan perkhidmatan mereka. Satu-satunya bahagian yang benar-benar dibeli dari mana-mana sahaja ialah papan roti dan papan roti roti (dan tiub Numitron). Ini boleh didapati jauh lebih murah di laman web seperti Amazon. Sentiasa pastikan untuk pastikan bahagian yang anda pesan adalah yang betul. Setiap bahagian yang anda beli sepatutnya mempunyai lembaran data yang boleh didapati dalam talian yang menerangkan semua fungsi dan batasan dari item yang anda beli. Pastikan untuk memastikan ini teratur kerana anda akan menggunakan banyak lembaran data dalam pembinaan komputer anda. Untuk membantu anda dengan komputer anda, saya akan menyenaraikan bahagian-bahagian yang saya gunakan untuk saya:
Kaunter 4-Bit:
74161 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74161&langId=-1&storeId=10001&productId=49664&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Daftar 4-Bit (Saya menggunakan dua untuk setiap daftar 8-bit):
74LS173 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS173&langId=-1&storeId=10001&productId=46922&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
2-1 Multiplexer:
74LS157 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_46771_-1
16x8 RAM (output perlu dibalikkan):
74189 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74189&langId=-1&storeId=10001&productId=49883&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Penambah Penuh:
74LS283 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS283&langId=-1&storeId=10001&productId=47423&search_type=all&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
Tri-State Buffers:
74S244 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_910750_-1

XOR Gates:
74LS86 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295751_-1
DAN Gates:
74LS08 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295401_-1
NOR Gates:
74LS02 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283741_-1
Inverters:
74LS04 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283792_-1
Kaunter Cincin:
CD4029 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=4029&langId=-1&storeId=10001&productId=12925&search_type=jamecoall&catalogId=10001&ddkey=http:StoreCatalogDrillDownView
JK Flip-Flops:
74LS10 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295427_-1

Langkah 16: Pembinaan

Di sinilah kesabaran itu benar-benar masuk. Saya memilih menggunakan papan roti untuk komputer sebenar, tetapi terdapat banyak kaedah lain di luar sana (seperti pembungkusan dawai) yang akan berfungsi dengan baik. Untuk membuat perkara yang lebih mudah saya menyertakan gambarajah blok untuk skema sebenar komputer saya. Saya bagaimanapun tidak termasuk nombor bahagian atau nombor pin. Saya percaya bahawa ini akan menjadikan perkara lebih mudah dan terbuka untuk kreativiti. Output kaunter program 4-bit, masukan MAR dan output arahan arahan semua dihubungkan ke empat bit paling ketara bas komputer.
Rajah kedua yang ditunjukkan adalah logik kawalan untuk akhir operasi komputer. Kawalan direka supaya togol boleh menjadi input untuk komputer. Saluran RS_NOR diletakkan di hadapan suis togol untuk mengisytiharkan mereka. Suis Togol sering mempunyai sambungan kotor yang boleh melantun dari ke keadaan luar dan memberikan lebih banyak pulsa daripada yang anda mahukan. Menambah flop-flop ke output toggle menghapuskan denyutan tambahan. Ini akan sangat berguna apabila menggunakan pilihan jam manual. Anda tidak mahu flip suis dan memulakan 8 jam denyutan. Butang baca / tulis menulis input byte aktif ke memori yang dialamatkan. Dengan menukar input perkataan kawalan lalai ke RAM kepada dua bit RO dan RI yang rendah yang memulakan kitaran menulis. Suis run / program menukar input yang aktif pada multiplexer alamat memori. Jip flip JK selepas 555 bermakna bahawa apabila komputer dijalankan, ia tidak akan bermula di tengah-tengah nadi jam. Isyarat HLT yang rendah akan menghentikan jam daripada lulus sama ada jam tangan atau 555. Dan akhirnya, suis lari / jelas disambungkan ke semua pin yang jelas pada komputer seperti yang ada pada daftar dan kaunter.

Langkah 17: Pengaturcaraan

Sekarang bahawa komputer telah selesai, ia boleh diprogramkan untuk menjalankan arahan. Untuk melakukan ini, anda perlu meletakkan komputer ke dalam penetapan programnya dengan membalikkan suis beralih / program beralih ke kedudukan program. Selepas itu, anda pilih alamat bermula pada 0 dan pergi ke 15 dan masukkan data yang diperlukan untuk program anda. Sebagai contoh, untuk memulakan dengan 5 dan menambah 4 dengan setiap output program itu akan seperti berikut:
Alamat - Data:
0000 - 00010111 LDA 7: Beban penumpuk dengan nilai yang disimpan di alamat memori 7 (5)
0001 - 00101000 ADD 8: Tambah nilai yang disimpan di alamat memori 8 (4)
0010 - 01010000 OUT: Output penumpuk
0011 - 01100001 JMP 1: Lompat ke arahan 1
0100 - X
0101 - X
0110 - X
0111 - 00000101 5
1000 - 00000100 4
1001 - X
1010 - X
1011 - X
1100 - X
1101 - X
1110 - X
1111 - X

Langkah 18: Pergi Lebih Lanjut

Saya berharap anda menikmati ini Instructable dan, yang paling penting, saya berharap anda mendapat sesuatu daripada itu. Anda boleh mempertimbangkan semua kerja keras ini pengalaman pembelajaran yang sangat berharga yang akan memberi anda pemahaman yang lebih baik tentang elektronik, komputer dan pengaturcaraan. Pada akhirnya anda juga akan mempunyai sesuatu yang sangat sejuk untuk menunjukkan semua kerja keras anda juga.
Selepas membina komputer 8-bit pertama anda, anda boleh pergi lebih jauh dan menambah lebih banyak fungsi. ALU yang digunakan dalam komputer ini sangat sederhana dalam operasi dan ALU benar hari ini mempunyai pelbagai fungsi seperti peralihan sedikit dan perbandingan logikal. Aspek penting lain yang perlu dilalui adalah cawangan bersyarat. Cawangan bersyarat bermaksud bahawa arahan bergantung pada keadaan bendera semasa yang ditetapkan oleh ALU. Bendera ini berubah apabila kandungan penumpuk menjadi negatif atau sama dengan sifar. Ini membolehkan kemungkinan yang lebih luas untuk aplikasi komputer anda.
Sekiranya anda mempunyai sebarang soalan tentang projek ini, sila laporkan kepada Instructable ini atau di laman web saya di http://8-bitspaghetti.com. Saya berharap anda mendapat nasib yang terbaik dengan projek ini.

3 Orang Membuat Projek Ini!

  • JamesP383 berjaya!

  • xdola berjaya!

  • realhet menjadikannya!

Adakah anda membuat projek ini? Kongsi dengan kami!

Cadangan

  • Vintage Look Media PC Dari Laptop Lama

  • Replika Digi-Comp II

  • Internet Kelas Perkara

  • Warna Peraduan Rainbow

  • Peraduan Sains Kelas

  • Peraduan Fandom

173 Perbincangan

0

AtomicFerryt

1 tahun yang lalu

Adakah anda fikir anda boleh membuat gambarajah digital untuk motherboard? Saya tidak pernah menggunakan papan roti sebelum tetapi saya sangat berminat dengan komputer lama.

0

FarsinHamza

1 tahun yang lalu

Salah satu pengajaran yang indah yang pernah saya lihat …. Saya menghargai kesabaran anda … :)

0

bob491

1 tahun yang lalu

ini sangat teratur dan terperinci terlatih dan sangat sejuk juga. Terima kasih.

0

champ12345

1 tahun yang lalu

kelihatan agak kompleks

0

mkpeker

1 tahun yang lalu

bina bagus. anda mungkin ingin memeriksa cpu 4 bit paling mudah saya (MP-4) untuk memahami asas-asas:

http://www.instructables.com/id/Simplest-4-Bit-TTL-CPU/

0

mkpeker

2 tahun yang lalu

projek bagus mungkin anda ingin menyemak saya;

Akhirnya saya memantau jenis OS (dengan pemasangan inline dan disassembler) sudah siap
Sila persediaan dan cuba v1.0b ini
anda boleh mencari semua maklumat yang diperlukan di halaman Efex saya;

http://mkpeker.wixsite.com/efex

sila hantar komen saya daripada saya boleh memperbaiki perisian
Terima kasih

0

TheMrCode

2 tahun yang lalu

bagaimana jika anda membuatnya menggunakan leds bukan kabel. bolehkah anda melihat di mana isyarat akan berlaku

0

GeorgeW134

2 tahun yang lalu

Bagaimana anda memprogram pernyataan jika?

2 balasan 0

JuliaS87GeorgeW134

Balas 2 tahun yang lalu

Anda tidak memerlukan opcode baharu. Apa yang anda perlukan adalah nilai yang mewakili benar dan palsu sebagai 1 dan 0. Anda memuat nilai itu ke dalam penumpuk dan tolak 1. Kemudian anda melakukan lompatan bersyarat. Sekiranya nilai itu adalah 1 (benar), penolakan itu akan menyebabkan limpahan dan lompatan bersyarat melaksanakan. Sekiranya nilai itu adalah 0 (palsu), tiada limpahan dan tiada lompatan berlaku.

0

calebj20GeorgeW134

Balas 2 tahun yang lalu

Oleh kerana terdapat daftar (penumpuk) yang menyimpan jumlah sebelumnya dari ALU, anda boleh menyemak jika keputusan memberikan nombor negatif, positif, atau sifar kemudian dengan itu anda boleh menambah opcode baru yang menyemak keadaan itu dan melompat jika keadaan itu benar.
sebagai contoh

4 - 10 = -6 -> -6 adalah negatif jadi mana-mana perintah cawangan dengan set bit N hingga 1 akan melompat

pemasangan: BRN RA Ini akan cenderung negatif ke lokasi yang disimpan dalam A

binari dengan opcode ialah 1000: 10001000

Di mana ini adalah pecahan sedikit kod opcode

BR: 1000

N: 1 | 0

Z: 1 | 0

P: 1 | 0

0: 0 | 0

Juga jika anda ingin menjadikannya lebih serba boleh anda boleh cuba menambah keupayaan B untuk menetapkan nilai bas maka bit terakhir '0' boleh untuk A atau B sebagai 0 atau 1 masing-masing.

0

T0BY

2 tahun yang lalu

Crikey, anda mempunyai kesabaran!

0

SuperNovaa41

2 tahun yang lalu

Saya ada soalan. Semua bahagian dalam senarai berada di sana dengan pengecualian 2.
penampan negeri tri dan jk flip jepit
Terdapat laman web yang berbeza dengan model yang sama seperti buffer negeri tri
tetapi
tidak ada penggantian flip flip JK, adakah saya perlu menggunakan yang tepat
model yang sama seperti yang anda disenaraikan atau boleh saya menggunakan model yang berbeza? dan jika begitu
model yang patut saya gunakan?

0

SuperNovaa41

2 tahun yang lalu

Hey! Saya tahu bahawa ini adalah jawatan yang lebih tua tetapi bolehkah saya memberi saya beberapa pautan yang dikemas kini untuk Tri State Buffers dan JK Flip Flops? Saya cuba meneliti produk tetapi saya tidak tahu model mana yang hendak digunakan. Terima kasih terlebih dahulu!

0

BartH19

2 tahun yang lalu

Saya berminat untuk membuat CPU mudah yang boleh saya gunakan untuk menaip pada skrin LED atau bahkan LCD. Adakah ini projek untuk saya atau bolehkah anda menunjukkan saya ke arah yang lebih baik?

Saya seorang pemula yang lengkap pada ini. Saya seorang tukang kayu yang cuba membuat beberapa jenis komputer kayu!

5 balasan 0

FinnW3BartH19

Balas 2 tahun yang lalu

Daripada membina CPU anda perlu membina komputer dengan kes kayu. Komputer mungkin agak mahal, tetapi sebenarnya anda boleh mendapatkannya di bawah $ 300. Cuba gunakan laman web ini: pcpartpicker.com

0

BartH19FinnW3

Balas 2 tahun yang lalu

Terima kasih kerana ini. Saya harap ada bahagian yang cukup nipis. Saya mahu ia menjadi seperti kalkulator untuk perkataan. Saya akan periksa pautan itu: D

0

KyleF45BartH19

Balas 2 tahun yang lalu

Jika semua yang anda mahu lakukan adalah bertindak sebagai kalkulator, anda mungkin mahu melihat Raspberry Pi. Ia akan lebih kecil dan lebih murah, Pi seperti saiz telefon.

0

KyleF45KyleF45

Balas 2 tahun yang lalu

Sekarang yang saya fikirkan, Pi boleh melakukan apa saja komputer meja penuh, ia hanya lebih kecil. Mungkin ada beberapa jenis perisian yang boleh anda gunakan untuknya.

0

BartH19KyleF45

Balas 2 tahun yang lalu

Terima kasih atas balasan anda: D

Tidak lama selepas komen asal saya, saya benar-benar menemui lelaki ini: http: //www.etsy.com/shop/writeotron? Ref = unav_lis …

Kami akan bekerjasama dengan yang baru. Ia adalah Pi!

0

bharathis

2 tahun yang lalu

Yang indah dan menggalakkan saya untuk membuat saya sendiri ..

pasti saya akan menekan "saya buat". Saya agak dalam proses membinanya. hee hee elektronik digital yang mengagumkan