ai có thể cho tôi biết về 2's bổ sung nhân đấu?

N

narasimha_80

Guest
Xin chào,

Tôi muốn thực hiện 8 bit 2's bổ sung nhân đấu (cho phép nhân số phân đoạn) trong VHDL.Ai có thể khuyên tôi một số thuật toán hoặc gửi cho tôi những VHDL / Verilog mã?

Thanks in Advance,
Narasimha Naik

 
Tôi sẽ làm điều này trong Verilog.Verilog không có các kiểu dữ liệu bất kỳ phân đoạn, vì vậy tôi chỉ cần nhớ nơi tôi đặt dấu thập phân.

Mã số:

module đầu (a, b, y);

đầu vào ký [7:0] a, b;

sản lượng đã ký [7:0] y;gán y = a * b;

endmodule
 
Về đây và tìm Universal Sô Nhân.

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

 
tốt hơn gian hàng của mình để sử dụng thuật toán cho phép nhân đã ký kết.

 
Xin chào Anjali,

Thật sự tôi muốn thực hiện giá trị phân đoạn (trong 2's bổ sung) nhân đấu tại VHDL.ie represeneting giá trị phân đoạn trong nhị phân và nhân.Không Booths thuật toán hỗ trợ phép nhân này có giá trị phân đoạn?Nếu không, bạn có thể đề nghị bất kỳ thuật toán cho điều này?Tôi thực sự cần một số trợ giúp.

Lời chúc mừng tốt đẹp nhất,
Narasimha Naik

 
Tôi không chắc tôi hiểu câu hỏi của bạn.Phép nhân của phân số là chính xác như phép nhân cùng một số nguyên, ngoại trừ các vị trí của các điểm thập phân.

Ví dụ, chúng ta hãy giả sử bạn đã có phần cứng đó multiplies hai số nguyên 8-bit để có được một sản phẩm 16-bit:
aaaaaaaa * bbbbbbbb = yyyyyyyyyyyyyyyy

Bạn có thể sử dụng phần cứng tương tự để nhân hai phần giá trị 8-bit:
aaa.aaaaa * bbbbbb.bb = yyyyyyyyy.yyyyyyy

Tuy nhiên, nếu bạn chưa có một số nguyên nhân, và vì một lý do nào bạn không muốn sử dụng các HDL * nhà điều hành, hơn đó là một vấn đề khác nhau.

 
Xin chào echo47,

bạn có viết rằng phần cứng tương tự có thể được sử dụng cho phép nhân số nguyên và phân đoạn.tức là

aaaaaaaa * bbbbbbbb = yyyyyyyyyyyyyyyy

aaa.aaaaa * bbbbbb.bb = yyyyyyyyy.yyyyyyy

Tôi nghĩ rằng chúng tôi không thể sử dụng phần cứng cùng một số nguyên và cho phép nhân chút ít.

Xem ví dụ
0,5 * 0,5 = 0,25

0,5 = 01 trong hệ nhị phân;

Sau đó, 01 * 01 = 0001 = 1 trong thập phân và 0.001 không bằng 0,25 trong nhị phân.

Tuy nhiên, 0,25 = 0100

Vì vậy, tôi nghĩ rằng chúng tôi không thể sử dụng phần cứng tương tự cho phép nhân số nguyên và giá trị gia tăng chút ít.Không phải là nó?

Viết cho tôi thêm.

Kính trọng,
Narasimha Naik

 
narasimha_80
theo ví dụ của bạn
0,5 = 01 trong hệ nhị phân;
Sau đó, 01 * 01 = 0001
0.001 không phải là 1
0001 = 00,01 = 0,25
bạn nên thông báo cho các vị trí của các điểm thập phân.
như cho các thuật toán
có nhiều thuật toán cho implemention thầu
bạn có thể tìm kiếm chúng trong google,
nó rất dễ dàng để tìm được rất nhiều liên kết hữu ích
như anjali nói, gian hàng mã hóa là một phương pháp tốt cho khu vực và tốc độ, đặc biệt là 4-dựa gian hàng mã hóa.
Last edited by tarkyss ngày 05 tháng 1 2006 5:50; edited 1 thời gian trong tổng số

 
Hoặc bạn có thể sử dụng 8-bit, ví dụ của tôi:

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

Để xác định vị trí của các dấu thập phân đầu ra, bạn thêm số bit phần đầu vào.Năm bit phần lần hai bit phần cung cấp cho bạn bảy bit phần nhỏ.

 

Welcome to EDABoard.com

Sponsor

Back
Top