1 / 24 · Konsep
Ubah persamaan menjadi kontrak jalur data
Tetapkan lebar bit, peristiwa penerimaan, dan hasil yang valid bersama aturan aritmetikanya.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Tetapkan apa yang dijanjikan rangkaian
Jalur data menyimpan, memilih, dan menghitung nilai. Pengendalinya menentukan nilai mana yang berpindah dan kapan. Keduanya merupakan tanggung jawab desain yang terpisah, tetapi bukan tugas perangkat lunak yang berjalan secara independen. Pada tepi clock, sinyal kendali menentukan pembaruan register; nilai register tersebut menjadi masukan logika kombinasional selama siklus berikutnya. Persamaan tanpa kontrak pewaktuan ini dapat menghasilkan angka yang benar untuk transaksi yang salah.
Kalkulator kecil kita menerima operand a dan b tak bertanda dengan lebar delapan bit serta operasi dua bit. Operasi 0 menjumlahkan, 1 mengurangkan, 2 menghitung AND, dan 3 menghitung XOR. Operasi aritmetika mengembalikan delapan bit rendah, disertai carry penjumlahan atau borrow pengurangan yang terpisah. Proyek berikutnya juga membawa tag. Tag tidak mengubah perhitungan, tetapi mengidentifikasi masukan yang menghasilkan suatu hasil, sehingga harus ikut berpindah bersama hasil itu.
| Unsur kontrak | Pilihan dalam kursus ini |
|---|---|
| Makna operand | Bilangan bulat tak bertanda dari 0 hingga 255 |
| Penyempitan | Delapan bit rendah, modulo 256 |
| Informasi batas | Carry ADD dan borrow SUB |
| Penerimaan | Tepi naik saat valid dan ready sama-sama aktif |
| Urutan | Hasil mengikuti urutan masukan yang diterima |
| Reset | Buang pekerjaan yang belum selesai dan kosongkan status valid |
Untuk a=250, b=10, dan ADD, jumlah matematisnya adalah 260. Keluarannya 4 dengan carry=1. Penafsiran bertanda atau saturasi akan menghasilkan kontrak yang berbeda. Jangan biarkan konversi bahasa pemrograman yang tidak disengaja menentukan kebijakan. Aritmetika yang berputar saat melampaui batas dapat sesuai untuk penghitung alamat, sedangkan perhitungan kecerahan mungkin memerlukan saturasi.
- Terima: Tangkap operand, operasi, dan tag
- Hitung: Terapkan kontrak numerik yang ditetapkan
- Kirim: Transfer hasil dan tag yang sesuai
Keluaran ALU yang tidak valid masih dapat berubah secara elektrik; keluaran itu tidak mewakili transaksi. Hasil valid dengan tag lama juga salah. Periksa data, tag, dan valid secara bersamaan. Untuk setiap keluaran, jelaskan makna bitnya sekaligus kapan penerima boleh memercayainya. Model siklus di sini memeriksa fungsi dan urutan, bukan tundaan fisik gerbang. Ubah kontrak menjadi model acuan sebelum memilih batas register untuk target latensi atau laju keluaran.
Coba sendiri
Catat hasil ADD delapan bit dan carry untuk a=250 dan b=10. Jelaskan nilai 4 dan alasan tag harus disimpan bersama hasil.
Baca penjelasan
260=1×256+4, jadi data=4 dan carry=1. Kontrak delapan bit rendah mereduksi jumlah modulo 256. Simpan tag dengan syarat penerimaan, penundaan, dan pengiriman yang sama seperti data agar hasil tetap terkait dengan masukannya.