Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Pld, Spld, Pal, Gal, Cpld, Fpga => Konuyu başlatan: E_Kk - 01 Kasım 2012, 21:37:11

Başlık: VHDL floating point
Gönderen: E_Kk - 01 Kasım 2012, 21:37:11
Merhaba arkadaşlar,

FPGA üzerinde floating point işlemlerini nasıl yapıyorsunuz? Herhangi bir kütüphane kullanan var mı acaba? Ben şuan da Xilinx üzerinde floating point uygulaması yapmaya çalışıyorum. http://www.eda.org/fphdl/ (http://www.eda.org/fphdl/) linkteki kütüphaneyi kullanmaya çalışıyorum. Daha önce bu kütüphane ile xilinx fpga leri üzerinde uygulama geliştiren oldumu acaba? Ya da işe yarar başka floating point kütüphanesi bilen var mı?
Başlık: Ynt: VHDL floating point
Gönderen: muuzoo - 01 Kasım 2012, 22:50:17
Hangi modeli kullandığınızı bilmiyorum ama xilinx floating point işlmler için ip-core sağlıyor. Onu kullanarak da floating point işlem için birim oluşturabilir ve component gibi ekleyip kullanabilirsiniz.
Başlık: Ynt: VHDL floating point
Gönderen: E_Kk - 01 Kasım 2012, 22:58:59
Spartan-3an üzerinde çalışıyorum. Öncelikle kütüphane kullanmak istiyorum. IPcore a bir sonraki aşamada geçmeyi planlıyorum. Aslında şuan yukarıda linkini verdiğim linkteki kütüphanede "01000010101010110110011001100110" gibi 32 bit bir sayı ile bit düzeyinde işlemler yaptırıyorum. Fakat benim istediğim "4.12317236" gibi bir sayıyı sabit olarak tanımlayarak onunla işlem yapmak. Bu konu da yol gösterebilecek olan var mı?
Başlık: Ynt: VHDL floating point
Gönderen: E_Kk - 05 Kasım 2012, 19:25:57
Merhaba arkadaşlar,


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

library ieee_proposed;
use ieee_proposed.float_pkg.all;


entity bir is
end bir;

architecture Behavioral of bir is
signal xf,yf,zf : float32;
--signal x, y : float32;
--CONSTANT y: float32 := 3.1;
--CONSTANT x: float32 := 2;
begin
yf <= to_float32 (3.1415);
xf <= to_float32 (2);
zf <= xf * yf;

end Behavioral;


Floating point işlem için yukarıdaki kodu yazdım. Fakat sentezlerken;

ERROR:HDLParsers:808 - "C:/Users/Kk/CDwVHDL/ffloat/bir.vhd" Line 19. to_float32 can not have such operands in this context.
ERROR:HDLParsers:808 - "C:/Users/Kk/CDwVHDL/ffloat/bir.vhd" Line 20. to_float32 can not have such operands in this context.

hatalarını aldım.  Kütüphanenin  yazaı  David Bishop "yf <= to_float32 (3.1415);" şeklinde kullanıldığında olacağını söylüyor ama hata aldım.
Daha önce böyle bir program çalıştıran oldu mu acaba?
Başlık: Ynt: VHDL floating point
Gönderen: quarko - 04 Mayıs 2021, 09:12:02
Arkadaşlar merhaba.

VHDL dili FPGA öğrenmeye çalışıyorum. 32bit single precision floating point işlemler direk sentezlenemiyor sanırım. Bu nedenle Floating point sayılar ile çalışmak için ek paket veya IP lere ihtiyaç duyuluyor. Xilinx Vivado ile çalışıyorum. Nasıl ilerlemeliyim. Ne tür paket veya kütüphaneler kullanmamı tavsiye edersiniz ?
Başlık: Ynt: VHDL floating point
Gönderen: quarko - 04 Mayıs 2021, 22:56:55
Bu konuyla kimse ilgilenmiyor sanırım.

https://www.xilinx.com/support/documentation/ip_documentation/floating_point/v7_1/pg060-floating-point.pdf (https://www.xilinx.com/support/documentation/ip_documentation/floating_point/v7_1/pg060-floating-point.pdf)
Başlık: Ynt: VHDL floating point
Gönderen: muuzoo - 05 Mayıs 2021, 13:57:50
Alıntı yapılan: quarko - 04 Mayıs 2021, 09:12:02Arkadaşlar merhaba.

VHDL dili FPGA öğrenmeye çalışıyorum. 32bit single precision floating point işlemler direk sentezlenemiyor sanırım. Bu nedenle Floating point sayılar ile çalışmak için ek paket veya IP lere ihtiyaç duyuluyor. Xilinx Vivado ile çalışıyorum. Nasıl ilerlemeliyim. Ne tür paket veya kütüphaneler kullanmamı tavsiye edersiniz ?

Genel bir tasarım kuralı olarak mümkün mertebe float işlemler yapmayın. Eğer mecbursanız kullandığınız FPGA üreticisinin sağladığı IP çekirdeklerini kullanın.