5 / 20 · Konsep
Kontrak pada satu tepi naik
Tetapkan penomoran tepi, penerusan berregister, akumulasi, dan prioritas inisialisasi.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Konvensi waktu yang digunakan sepanjang kursus ini
Reset dan clear selesai sebelum E0, tepi naik pertama yang mengonsumsi data. Masukan stabil tepat sebelum E_t. Pada tepi itu, PE mengakumulasikan hasil perkalian dari masukan sebelum tepi dan menyimpan masukan yang sama dalam register penerusan ke kanan dan ke bawah. Nilai akumulator dan penerusan baru dapat diamati tepat setelah E_t. Tetangga mengonsumsi nilai berregister tersebut pada E_(t+1).
Dasar ini tidak memiliki register masukan terpisah, pengali berpipeline, atau tahap serialisasi keluaran. Penambahan salah satunya memerlukan peninjauan ulang jadwal dan latensi hasil. “Hasil pada tepi nol” berarti akumulator yang diperbarui setelah E0, bukan sebelumnya. Tepi inisialisasi tidak termasuk hitungan tepi komputasi. Clear lebih diprioritaskan daripada MAC, sehingga mengaktifkan clear bersama pasangan data pertama membuang pasangan itu; lakukan clear dahulu lalu masukkan data pada tepi berikutnya.
Dua tanggung jawab dalam satu PE
Dengan A=1 dan B=5 pada E0, PE(0,0) memperbarui akumulatornya menjadi lima dan meneruskan operand ke register. Pada E1, operand batas 2 dan 7 menambahkan empat belas sehingga menghasilkan sembilan belas. Pada tepi yang sama, PE tetangga dapat mengonsumsi operand berregister pertama. Mengizinkan token melintasi dua PE dalam satu tepi akan membatalkan persamaan penggeseran jadwal kita nanti.
Penugasan nonblocking menyatakan perilaku baca sebelum tepi dan tulis sesudah tepi ini. Testbench juga harus mengambil sampel secara konsisten setelah pembaruan keadaan, menggunakan blok clocking atau wilayah pengambilan sampel simulator yang sesuai. Jangan bergantung pada urutan kebetulan proses dalam wilayah aktif.
Prioritas dan jeda global
Urutan prioritasnya adalah reset, lalu clear, lalu advance. Reset dan clear mengosongkan akumulator dan status valid. Saat advance=0, setiap PE menahan akumulator, nilai penerusan, flag valid, dan tag. Penjadwal batas juga menahan keadaan. Satu tepi advance melakukan satu langkah logis. Nol yang valid adalah operand nyata; token tidak valid diabaikan apa pun bit datanya.
Jika akumulator bernilai lima dan larik berjeda selama dua tepi fisik, nilainya tetap lima. Tepi advance berikutnya melakukan langkah logis berikutnya. Laporkan tepi clock fisik secara terpisah dari langkah advance logis. Inisialisasi tetap berlaku selama jeda, sehingga token usang tidak bocor ke pekerjaan berikutnya.
Coba sendiri
Clear selesai pada E−1. Konsumsi (1,5) pada E0, jeda pada E1, dan konsumsi (2,7) pada E2. Berikan akumulator setelah tepi dan nomor langkah logis.
Baca penjelasan
Setelah E0, acc=5 dan langkah logis nol telah selesai. E1 menahan acc=5. Setelah E2, acc=19 dan langkah logis satu telah selesai. Ada tiga tepi fisik dan dua tepi advance.