Decoder
3 - 8 Binary Decoder
Decoder digunakan untuk men-decode data yang sebelumnya telah dikodekan menggunakan jenis biner, atau mungkin lainnya, format kode. Model-model dari 3 - 8 decoder biner sesuai dengan tabel kebenaran di bawah ini:
| masukan | output | |||||||||
| A2 | A1 | A0 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Model dapat menggunakan jika, kasus dan untuk laporan. Pernyataan kasus ini banyak digunakan karena kejelasan, dan fakta bahwa itu bukan tugas terus menerus dan hal ini dapat mensimulasikan lebih cepat. Sebagai input dan output bit meningkatkan lebar, itu adalah kode yang lebih efisien untuk menggunakan untuk pernyataan loop. Hanya untuk model yang ditampilkan di sini. Model-model lain dibiarkan untuk pembaca sebagai latihan.
modul DECODER (A, Y);
input [02:00] A;
output [07:00] Y;
reg [07:00] Y;
integer N;
output [07:00] Y;
reg [07:00] Y;
integer N;
selalu @ (A)
mulai
untuk (N = 0; N <= 7; N = N +1)
if (A N ==)
Y [N] = 1;
lain
Y [N] = 0;
akhir
endmodule
Empat Bit Alamat Decoder
Contoh ini adalah empat bit decoder alamat. Ini menyediakan memungkinkan sinyal untuk segmen memori, peta alamat yang ditunjukkan di bawah ini:
| keempat kuadran | kuadran ketiga | kedua kuadran | kuadran pertama | |||
| 12-16 | 8-11 | 7 | 6 | 5 | 4 | 0-3 |
input The decoder's bisa menjadi bit bour atas bus alamat yang lebih besar yang terjadi output decode akan memungkinkan segmen yang lebih besar dari memori. Tujuh output eable disediakan, satu untuk setiap segmen memori. Peta alamat dibagi menjadi empat, dan kuartal kedua adalah lebih lanjut dibagi menjadi empat. Ada empat output dari kuartal kedua sesuai dengan empat nilai input berturut-turut biner.
modul ADDRESS_DECODER (Alamat, AD0_3, AD4_7, AD8_11, AD12_15);
modul ADDRESS_DECODER (Alamat, AD0_3, AD4_7, AD8_11, AD12_15);
input [03:00] Alamat;
output AD0_4, AD8_11, AD12_15;
output [03:00] AD4_7;
integer N;
reg AD0_3, AD8_11, AD12_15;
reg AD4_7;
output AD0_4, AD8_11, AD12_15;
output [03:00] AD4_7;
integer N;
reg AD0_3, AD8_11, AD12_15;
reg AD4_7;
selalu @ (Alamat) mulai
/ Triwulan / pertama
if (Alamat> = 0 & & Alamat <= 3)
if (Alamat> = 0 & & Alamat <= 3)
AD0_3 1 =;
lain
AD0_3 = 0;
/ Triwulan / ketiga
if (Alamat> = 8 & & Alamat <= 11)
AD8_11 = 1;
lain
AD8_11 = 0;
/ Triwulan / keempat
if (Alamat> = 12 & & Alamat <= 15)
AD12_15 1 =;
lain
AD12_15 = 0;
/ Triwulan / detik
untuk (N = 0; N <= 3; N = N +1)
if (N == Alamat +4)
AD4_7 [N] = 1;
lain
AD4_7 [N] = 0;
akhir
Tidak ada komentar:
Posting Komentar