Sabit noktalı ondalık, ondalık noktası belirli bir pozisyonda sabit olarak örtük olan verilerdir. Ondalık noktanın konumu sabit olduğundan, onu saklamaya gerek yoktur (ondalık noktanın konumu saklanıyorsa, bu bir kayan nokta sayısıdır). Ondalığın belirli konumu tamamen programcının kendisi tarafından belirlenir, bu nedenle, sabit noktalı ondalıkların işlenmesi sıradan tamsayılarla yapılabilir.
Sabit noktalı ondalık sayıların geleneksel biçiminden, kayan noktalı ondalık sayıların avantaj ve dezavantajlarından ve temel sabit nokta ondalık işlemlerini (toplama ve çarpma) uygulamak için Lattice ECP3 / ECP5'in sysDSP çarpanının nasıl kullanılacağından kısaca bahsedelim. Sonraki makalelerde, sabit nokta ondalık bölme, karekök, karşılıklı karekök, CORDIC algoritması ve HDL uygulamasının temel teorisini tanıtacağız.
1
Sabit noktalı ondalık sayılar için genel format
Geleneksel sabit nokta ondalık biçimi aşağıdaki gibidir:
Bunlar arasında, işaretli sabit noktalı ondalık sayı şu şekilde ifade edilebilir:
İşaretsiz sabit noktalı ondalık sayı şu şekilde ifade edilebilir:
Sabit nokta sayısının bit genişliği w ve kesirli bölümün bit genişliği wf, sabit noktalı sayının iki elemanı olarak kabul edilebilir. Bunlar arasında w, sabit nokta sayısının dinamik aralığını belirler ve wf, sabit nokta sayısının doğruluğunu belirler. Sabit nokta aritmetiği gerçekleştirirken, sayısal taşma sorununa (taşma ve yetersizlik dahil) dikkat etmeniz gerektiğine dikkat edilmelidir. Sözde taşma, işlemin sonucunun, sabit noktalı sayının tamsayı kısmının temsil edebileceği aralığı aştığı anlamına gelir ve taşma, işlemin sonucunun, sabit noktalı sayının ondalık kısmının temsil edebileceği aralığı aştığı anlamına gelir. Açıktır ki, bir kez aştığında, hesaplama doğruluğunun kaybına ve hatta hesaplama sonucunun hatasına neden olacaktır. Bu nedenle, w ve wf'yi makul bir şekilde seçmek çok önemlidir.Aşırı w ve wf değerleri kaynakları israf eder ve çok küçük değerler doğruluk kaybına neden olur.
2
Sabit noktalı ve kayan noktalı sayıların karşılaştırılması
Kayan noktalı sayılarla karşılaştırıldığında, sabit noktalı sayıların aşağıdaki avantajları vardır:
(1) Daha az kaynak
Genel olarak, FPGA'larda kayan nokta işlemleri gerçekleştirirken, daha fazla LUT, yazmaç ve çarpan tüketilir. Sabit noktalı sayıların ondalık noktanın konumunu saklaması gerekmediğinden, sabit nokta işlemleri tarafından tüketilen kaynaklar temelde aynı bit genişliğine sahip tamsayı işlemlerine eşdeğerdir ve kayan nokta işlemlerinin ek yükünden çok daha düşüktür.
(2) Daha yüksek performans
Kayan nokta operasyonları daha fazla kaynak tüketirken, aynı zamanda MAP ve PAR üzerinde baskı oluşturacak ve tüm tasarımın Fmax'ında bir düşüşe neden olacaktır. Aynı hesaplama ölçeğinde, sabit noktalı bir tasarım daha yüksek bir Fmax elde edebilir.
Aynı zamanda, kayan noktalı sayılarla karşılaştırıldığında, sabit noktalı sayıların da birçok kusuru ve eksikliği vardır:
(1) Değeri ifade edebilen dinamik aralık küçüktür
(2) Sayısal taşma sorunu
Kayan noktalı sayılar birleşik bir biçim (IEEE-754) benimsediğinden ve geniş bir dinamik aralığa sahip olduğundan, temelde sayısal taşma sorunu yoktur. Bununla birlikte, sabit nokta sayıları, program tasarımında w ve wf değerlerinin makul bir şekilde seçilmesini gerektirir ve birleşik bir format belirtiminin olmaması, karmaşık programların işbirliğine dayalı tasarımında da sorun yaratır.
Uygulama gereksinimleri perspektifinden bakıldığında, birçok durumda sabit nokta sayıları sistemin performans gereksinimlerini karşılayabilir, ancak radar görüntüleme, tıbbi görüntüleme ve yüksek hassasiyetli veri toplama ve analizi gibi yüksek doğruluk gerektiren bazı durumlar da vardır. Kayan noktalı sayılar işlemleri gerçekleştirir.
3
ECP3 / ECP5'te SysDSP çarpanı
Latticein ECP3 / ECP5 serisi FPGA'ları, birden çok sysDSP mimarisi çarpan modülünü entegre eder. SysDSP'ye dayalı olarak kullanıcılar, düşük güçlü, yüksek performanslı dijital sinyal işleme uygulamalarını kolayca tasarlayabilir. LUT tarafından uygulanan çarpanla karşılaştırıldığında, sysDSP'ye dayalı çarpan önemli performans avantajlarına sahiptir. Ek olarak, Lattice ayrıca FFT, FIR ve CIC gibi çeşitli sysDSP tabanlı IP sağlar.
ECP5'teki sysDSP'nin dilim yapısı diyagramı aşağıdaki şekilde gösterilmektedir:
4
Sabit noktalı ondalık sayıların toplanması ve çarpımı
Sabit noktalı ondalık sayıların toplanması ve çarpımı temelde sıradan tam sayıların toplanması ve çarpılmasıyla aynıdır, ancak işlem sonucunun w ve wf ile w ve wf'nin orijinal değeri arasındaki yazışmaya dikkat etmeniz gerekir.
İşte basit bir örnek: iki 32-bit işaretli sabit noktalı ondalık sayıları çarpın, burada w = 32 ve wf = 23. hangisi
şu anda,
Aşağıdaki şekilde gösterildiği gibi bölme çarpanının Modülünü oluşturmak için doğrudan Clarity'yi kullanabiliriz. İşaret biti, XOR işlemi için ve kalan 31 bit ise çarpma için çıkarılabilir.
Hesaplama sonucunu girişle aynı formata dönüştürmeniz gerekirse, aşağıdaki işlemleri gerçekleştirebilirsiniz:
Yukarıdaki örnekte, işaretli bir sayı, işaretsiz bir sayıya dönüştürülür ve ardından işlem gerçekleştirilir (yani, orijinal kod doğrudan kullanılır). Aslında, MULT Modülündeki Veri Tipini de İmzalı olarak doğrudan yapılandırabiliriz ve işlenen tamamlayıcı şeklinde çalıştırılır.