VHDL ile ALU tasarımı

Başlatan yamak, 04 Şubat 2012, 13:10:37

yamak

Vhdl ile alu tasarlarken vhdl in kendi kütüphanelerinin sunduğu + - * operatörlerini kullanmak mı hızlı sonuc verir yoksa kendi tasarlayacağım lookahead carry  adder mı?

kralsam

Kendi tasarlayacağın lojik devreler daha hızlı sonuç veriyor. Ama tasarlarken sadeleşmeleri yaparak minimum gereksinim ile tasarla.

berat23

kendi yazacağın devre ne olacak bilmiyorum ama binary toplama için birçok algoritma var,yani önemli olan metod.sadeleştirme işini zaten sentezleyici yapıyor,uğraşmaya gerek yok.

çarpma için de bildiğim birkaç algoritma var ama çarpmada fpga içindeki dsp blocklarını da kullanabilirsin.çok hızlı bir alu yapmayı düşünüyorsan donanımı iyi incelemelisin.her kod her fpga de aynı sonucu vermiyor.

http://books.google.com.tr/books/about/Digital_signal_processing_with_field_pro.html?id=wzYuOF6HFX0C&redir_esc=y
bu kitabın ilk chapterında binary arithmetic gayet iyi anlatılıyor.cdsinin nerede olduğunu bulabilirsem kodlarını yollarım.

yamak

Hocam iş sadece sadeleştirmede bitmiyo ki. Farklı farklı tasarımlar var mesela 32 bitlik toplama yaparken  ripple carry adder  64 clk lık gecikme yaparken carry lookahead adder 14 clk lık gecikme yapıyo. Yani vhdl in kendi operatörleri carry look ahead adder kadar hızlı mı?

berat23

zaten bende sadeleştirme kısmında bir fark olmaz demiştim zira sentezleyici en sade hale her halükarda ulaşıyor.

muhtemelen carry lookahead ieee librarysindeki+- den hızlıdır.denemedim ama.

yalnız anlamadığım nokta,64clk gecikme derken,kapı bazında 64 kez gecikme demek mi istiyorsun? mesela 1ns her kapıda toplam blok 64ns gibi?

pic365

IEEE, VHDL'e sadece fonksiyonel standartlar getirir. Fiziksel devre sentez programına ve teknoloji kütüphanesine bağlı. O nedenle +, - gibi operatörlerin performansı hakkında bir şey söyleyemeyiz.

ASIC tasarlıyorsanız farklı toplama algoritmaları kullanarak fark yaratabilirsiniz, fakat FPGA için tasarım yapıyorsanız FPGA'in mimarisine uygun en iyi algoritmayı bulmak pek kolay olmayabilir.

yamak

Alıntı yapılan: berat23 - 05 Şubat 2012, 00:51:50
zaten bende sadeleştirme kısmında bir fark olmaz demiştim zira sentezleyici en sade hale her halükarda ulaşıyor.

muhtemelen carry lookahead ieee librarysindeki+- den hızlıdır.denemedim ama.

yalnız anlamadığım nokta,64clk gecikme derken,kapı bazında 64 kez gecikme demek mi istiyorsun? mesela 1ns her kapıda toplam blok 64ns gibi?
Evwt kastettiğim şey kapı gecikmesi.

pic365


yamak

Alıntı yapılan: kakalive - 06 Şubat 2012, 01:27:58
Bu arada şu iki toplama algoritmasını önerebilirim.

Carry-Save Adder: http://en.wikipedia.org/wiki/Carry-save_adder
Kogge-Stone Adder: http://en.wikipedia.org/wiki/Kogge%E2%80%93Stone_adder
Teşekkürler ben bi inceleyeyim bunları.

pic365

Rica ederim.

Bir de şunu ekleyeyim. Carry-Save Adder ikiden fazla sayı toplanırken kullanılıyor, bu sebeple multiplier devreleri için çok uygun.