UDB. Apa ini Bagian 4. Datapath ALU



Seperti yang dijanjikan terakhir kali, kami memulai analisis terperinci dari Unit Aritmatika dan Logika (ALU).

Isi umum dari siklus “UDB. Apa ini? "
Bagian 1. Pendahuluan. Pld.
Bagian 2. Datapath.
Bagian 3. Datapath FIFO.
Bagian 4. Datapath ALU. (Artikel saat ini)
Bagian 5. Datapath. Hal-hal kecil yang bermanfaat.
Bagian 6. Modul manajemen dan status.
Bagian 7. Pengaturan waktu dan reset modul kontrol
Bagian 8. Mengatasi UDB

21.3.2.4 Datapath ALU


Inti ALU terdiri dari tiga fungsi 8-bit yang dapat diprogram independen: blok aritmatika / logika, blok register geser, dan blok masker overlay.

Operasi aritmatika dan logis


Fungsi ALU yang dipilih secara dinamis menggunakan konfigurasi RAM ditunjukkan pada tabel di bawah ini.

Tabel 21-8. Fungsi ALU
Fungsi [2: 0]FungsiOperasi
000Lulussrca
001INC++ srca
010Desember--srca
011ADDsrca + srcb
100SUBsrca - srcb
101Xorsrca ^ srcb
110DANsrca & srcb
111ATAUsrca | srcb

Bawa masuk


Carry in digunakan dalam operasi aritmatika. Seperti yang ditunjukkan pada tabel 21-9, nilai bawaan bawaan ada untuk fungsi tertentu.

Tabel 21-9. Fungsi Dibawa.
FungsiOperasiImplementasi bawaan bawaan
INC++ srcasrca + 00h + ci, di mana ci adalah 1
Desember--srcasrca + ffh + ci, di mana ci adalah 0
ADDsrca + srcbsrca + srcb + ci, di mana ci adalah 0
SUBsrca - srcbsrca + ~ srcb + ci, di mana ci adalah 1

Selain aplikasi aritmatika biasa ini, ada tiga opsi lagi untuk menggunakan tanda hubung. Bit CI SELA dan CI SELB mengatur aturan untuk menggunakan carry in input untuk setiap ukuran. Konfigurasi dinamis RAM memilih konfigurasi A atau B pada setiap siklus. Parameter ditunjukkan pada tabel 21-10.

Tabel 21-10. Fitur Tambahan Carry In.
CI SEL A
CI SEL B
Mode
membawa
Deskripsi
00Secara default
(Default)
Mode aritmatika secara default,
dijelaskan pada tabel 21-9.
01Terkunci
(Terdaftar)
Bawalah bendera yang mana
hasil transfer dari siklus sebelumnya.
Mode ini digunakan untuk mengimplementasikan
bawa dan kurangi operasi
dengan pekerjaan.
10Probros
(Diarahkan)
Transfer dihasilkan di tempat lain.
dan diteruskan ke pintu masuk ini. Mode ini
dapat digunakan untuk mengimplementasikan
penghitung yang dikelola.
11Rantai
(Dirantai)
Transfer ditempatkan setelah rantai
datapath sebelumnya. Mode ini bisa
gunakan untuk menerapkan siklus tunggal
operasi bit rate yang lebih tinggi,
di mana dua atau lebih digunakan
Datapath.

Jika carry forward digunakan, ia digunakan dalam sejumlah fungsi, seperti yang ditunjukkan pada tabel 21-11. Harap perhatikan bahwa untuk fungsi pengurangan dan pengurangan unit, level transfer aktif rendah (terbalik).

Tabel 21-11. Fitur Carry In yang Terlacak.
FungsiMembawa PolaritasCarry In aktifCarry In tidak aktif
INCLangsung++ srcasrca
DesemberTerbalik--srcasrca
ADDLangsung(srca + srcb) +1srca + srcb
SUBTerbalik(srca - srcb) -1(srca - srcb)

Laksanakan


Melaksanakan - output Datapath opsional, dibentuk berdasarkan bit tinggi yang ditentukan secara statis. Nilai dapat diteruskan rantai ke input transfer ke blok yang lebih tua. Perhatikan bahwa dalam kasus fungsi penurunan dan pengurangan, pelaksanaannya terbalik.

Tabel 21-12. Fitur Melaksanakan.
FungsiPolaritas MelaksanakanCarry Out aktifMelaksanakan tidak aktif
INCLangsung++ srca == 0srca
DesemberTerbalik--srca == -1srca
ADDLangsungsrca + srcb> 255srca + srcb
SUBTerbaliksrca - srcb <0(srca - srcb)

Struktur Transfer


Parameter carry dan untuk memilih bit yang paling signifikan, untuk menghasilkan carry ditunjukkan pada Gambar 21-15. Nilai latch yang terkunci dapat digunakan sebagai carry in untuk operasi aritmatika selanjutnya. Fitur ini dapat digunakan untuk mengimplementasikan fungsi dengan kapasitas lebih tinggi menggunakan siklus.



Gambar 21-15. Operasi transfer.

Operasi shift


Operasi shift terjadi secara independen dari operasi ALU, sesuai tabel 21-13.

Tabel 21-13. Fungsi operasi shift.
Shift [1: 0]Fungsi
00Lulus
01Bergeser ke kiri
10Bergeser ke kanan
11Swapping Nibbles (Nibble Swap)

Nilai output dari operasi shift dikeluarkan dengan Datapath. Output untuk menggeser ke kanan ( sor ) dan ke kiri ( sol_msb ) dikonfigurasikan dengan bit yang sama. Bit konfigurasi statis (SEL SHIFT dalam register CFG15) menentukan shift output mana yang digunakan sebagai output Datapath. Dengan tidak adanya pergeseran, sinyal sor dan sol_msb masing-masing didefinisikan sebagai LSB dan MSB.

Bit konfigurasi SI SELA dan SI SELB menentukan offset data untuk operasi yang ditentukan. Konfigurasi dinamis RAM memilih konfigurasi A atau B untuk setiap siklus jam. Data yang didorong hanya digunakan saat menggeser ke kiri dan kanan, input ini tidak digunakan saat melewatkan dan mengatur ulang camilan. Nilai-nilai yang dipilih dan kasus penggunaan berhubungan dengan pergeseran kanan dan kiri, dan ditunjukkan pada Tabel 21-14.

Tabel 21-14. Pergeseran dalam Fungsi
SI SEL A
SI SEL B
Sumber
didorong
data
Deskripsi
00Default / Aritmatika
(Default / Aritmatika)
Secara default, nilai bit DEFSI
(konstan 1 atau 0). Namun, jika MSB SI dikokang,
maka sumbernya adalah nilai yang dipilih
bit ALU tingkat tinggi (hanya untuk shift kanan).
01Jepret
(Terdaftar)
Nilai input untuk shift diatur
nilai output latch saat ini
geser (dari siklus sebelumnya). Operasi
shift kiri menggunakan nilai terakhir
bergeser ke kiri. Penggunaan operasi shift kanan
keluaran terakhir bergeser ke kanan.
10Probros
(Diarahkan)
Input untuk shift tiba
secara eksternal, melalui sumber daya jejak (input SI).
11Rantai
(Dirantai)
Untuk input shift kiri
melempar dari pintu keluar blok kanan
Datapath dalam rantai, untuk input shift
ke kanan - dari kiri.

Output ketika bergeser ke kiri diambil dari bit yang ditentukan sebagai tinggi. Ketika bergeser ke kanan, data input didorong dari posisi senior yang dipilih (MSB). Keluaran, bahkan ketika bergeser ke kiri, bahkan ketika bergeser ke kanan, terkunci dan dapat digunakan pada langkah berikutnya. Fitur ini dapat digunakan untuk menerapkan pergeseran kapasitas yang lebih besar dalam beberapa siklus.



Gambar 21-16. Operasi shift.

Perlu dicatat bahwa bit yang diisolasi dengan memilih MSB masih bergeser. Dalam contoh yang ditunjukkan, bit 7 masih bergeser ke sil ketika bergeser ke kanan, dan bit 5 bergeser ke bit 4 ketika bergeser ke kiri. Bit keluaran (kanan atau kiri) dari grup yang terisolasi akan hilang.

Operasi penutup masker ALU


Register mask 8-bit di ruang statis register konfigurasi UDB menentukan operasi masking. Dalam operasi ini, masker (DAN operasi) dengan nilai register ini ditumpangkan pada output ALU. Penggunaan khas dari operasi masking ALU adalah implementasi timer dan penghitung otonom dengan resolusi yang merupakan kelipatan dari kekuatan dua.

21.3.2.5. Input Datapath dan Multiplexing


Seperti yang ditunjukkan pada Tabel 21-15, setiap Datapath memiliki 9 input, termasuk 6 input dari pelacakan saluran. Ini termasuk alamat konfigurasi RAM, FIFO, sinyal kontrol untuk memuat register data, serta menggeser dan mentransfer input data.

Tabel 24-15. Input Datapath
LoginDeskripsi
RAD2
RAD1
RAD0
Alamat asinkron dalam konfigurasi dinamis RAM. Alamat
delapan kata 16-bit yang dapat diprogram pengguna. Setiap kata
berisi bit kontrol Datapath untuk loop saat ini. Urutan
instruksi dapat ditentukan oleh input alamat ini.
F0ld
F1LD
Jika diiringi dalam siklus ini, data dimuat ke FIFO yang dipilih
dari baterai A0 atau A1, atau output dari ALU. Sumber dipilih
menggunakan bit konfigurasi Fx INSEL [1: 0]. Input ini sensitif terhadap perubahan.
Sampel di Datapath; setelah deteksi transisi
Dari "0" hingga "1", memuat terjadi di tepi berikutnya dari sinyal jam.
D0ld
D1LD
Jika dikokang dalam loop ini, register Dx diambil dari
FIFO Fx yang terkait. Input ini sensitif terhadap perubahan. Disampel
Datapath setelah mendeteksi transisi dari "0" ke "1", memuat
terjadi di tepi sinyal clock berikutnya.
SIIni adalah nilai input data yang dapat digunakan untuk bergeser
kanan atau kiri.
CiNilai carry ini digunakan jika sinyal kontrol
transfer sama dengan "routed carry".

Seperti ditunjukkan pada Gambar 21-17, setiap input memiliki multiplexer 6-in-1, oleh karena itu, semua input dapat dipertukarkan. Input diproses dengan dua cara: baik dengan level atau dengan diferensial. Alamat dalam RAM konfigurasi dinamis, serta pergeseran dan nilai data peka terhadap level. Sinyal data register FIFO dan memuat sensitif terhadap perbedaan.



Gambar 21-17. Sinyal Input Datapath.

Pada artikel selanjutnya, kita akan beralih ke ulasan hal-hal kecil yang bermanfaat.

Source: https://habr.com/ru/post/id437096/


All Articles