Can anybody ceritakan tentang 2's melengkapi pengali?

N

narasimha_80

Guest
Halo,

Saya ingin menerapkan 8 bit 2's melengkapi pengganda (untuk angka pecahan perkalian) dalam VHDL.Can anybody menyarankan saya beberapa algoritma atau mengirim saya VHDL / Verilog kode?

Thanks in Advance,
Narasimha Naik

 
Saya akan melakukan ini dalam Verilog.Verilog tidak memiliki tipe data pecahan, jadi aku hanya akan ingat di mana aku meletakkan titik desimal.

Kode:

modul atas (a, b, y);

masukan ditandatangani [7:0] a, b;

output ditandatangani [7:0] y;menetapkan y = a * b;

endmodule
 
Buka di sini dan mencari Universal Multiplier.

http://www.vhdl-online.de/model_lib_patras/

 
yang lebih baik menggunakan algoritma booth untuk menandatangani perkalian.

 
Hello Anjali,

Sebenarnya saya ingin menerapkan nilai fraksional (dalam 2's melengkapi) VHDL.ie represeneting pengganda dalam nilai pecahan dalam biner dan berkembang biak.Apakah Booths dukungan algoritma perkalian nilai pecahan ini?Jika tidak, Dapatkah Anda menyarankan setiap algoritma untuk ini?Aku benar-benar membutuhkan bantuan.

Salam,
Narasimha Naik

 
Aku tidak yakin aku mengerti pertanyaan Anda.Perkalian pecahan yang persis sama dengan perkalian bilangan bulat, kecuali untuk posisi dari titik desimal.

Sebagai contoh, mari kita asumsikan Anda sudah memiliki hardware yang mengalikan dua 8-bit integer untuk mendapatkan produk 16-bit:
aaaaaaaa * bbbbbbbb = yyyyyyyyyyyyyyyy

Anda dapat menggunakan hardware yang sama untuk memperbanyak dua 8-bit nilai fraksi:
aaa.aaaaa * bbbbbb.bb = yyyyyyyyy.yyyyyyy

Namun, jika Anda belum memiliki pengali integer, dan karena alasan tertentu Anda tidak ingin menggunakan operator HDL *, dari itu masalah yang berbeda.

 
Hello echo47,

Anda telah menulis perangkat keras yang sama dapat digunakan untuk perkalian bilangan bulat dan pecahan.yaitu

aaaaaaaa * bbbbbbbb = yyyyyyyyyyyyyyyy

aaa.aaaaa * bbbbbb.bb = yyyyyyyyy.yyyyyyy

Saya pikir kita tidak dapat menggunakan hardware yang sama untuk perkalian bilangan bulat dan pecahan.

Lihat misalnya
0,5 * 0,5 = 0,25

0,5 = 01 dalam biner;

Kemudian, 01 * 01 = 0.001 = 1 dalam desimal dan 0.001 tidak sama dengan 0.25 in biner.

Tapi, 0.25 = 0.100

Jadi saya pikir kita tidak dapat menggunakan hardware yang sama untuk nilai pecahan integer dan perkalian.Isn't it?

Menulis kepada saya lebih lanjut.

Salam,
Narasimha Naik

 
narasimha_80
menurut teladan Anda
0,5 = 01 dalam biner;
Kemudian, 01 * 01 = 0.001
0.001 ini tidak 1
0001 = 00,01 = 0,25
Anda harus memberitahu posisi dari titik desimal.
Adapun algoritma
ada banyak algoritma untuk implementasi pengganda
Anda dapat mencari mereka di google,
mudah untuk menemukan banyak link yang berguna
sebagai kata Anjali, warung menyandikan metode yang baik bagi daerah dan kecepatan, terutama 4-stan berdasarkan encode.
Last edited by tarkyss on 05 Jan 2006 5:50; edited 1 time in total

 
Atau Anda bisa menggunakan 8-bit contoh:

aaa.aaaaa * bbbbbb.bb = yyyyyyyyy.yyyyyyy
0,5 = aaa.aaaaa = 000,10000
0,5 = bbbbbb.bb = 000.000,10
000,10000 * 000000,10 = 000000000,0100000 = 0,25

Untuk menentukan lokasi output titik desimal, Anda menambah jumlah masukan fraksi bit.Lima fraksi bit kali dua fraksi bit memberikan tujuh fraksi bit.

 

Welcome to EDABoard.com

Sponsor

Back
Top