12 bitlik signed türünde bir sinyali,integer değere dönüştürüp seri porta yazdır

Başlatan electrocom, 14 Ocak 2014, 17:06:23

electrocom

Herkese merhaba,
Spartan 3a starter kit üzerinde çalışmaktayım.ADC den 12 bitlik okuduğum signed türündeki sinyali integer a dönüştürmek istiyorum.Bunun için to_integer() kodunu kullandım ancak,dönüştürdüğüm bu değeri integer olarak nasıl görebilirim bilmiyorum.Bunun için seri port kullanımı uygun mu yoksa direk yazılım ile xilinx ise console da görebilir miyim,bu konuda tecrübesi olan varsa tecrübelerini aktarabilirse sevinirim.
Kısaca kod kısmını açıklarsak,

signal ADC1 : signed(11 downto 0); --ADC
signal conversion :integer;
...
conversion <= to_integer(ADC1); 

ADC çıkışı olan ADC1 12 bitlik sinyali integer a dönüştürüp conversion değerine atadım.Sorun bu değeri integer olarak nasıl göreceğim???
yardımcı olursanız sevinirim.

İyi çalışmalar.

pic365

Eğer lisansı varsa Chipscope en kolay çözümlerden biri olur. Sinyali FPGA'nın içinde integer'a dönüştürmeye gerek yok, data tipleri sadece aritmetik işlemlerin sentezini etkiler.

camby

evet integer'a çevirme.

Low byte ve high byte olarak ayır , sırayla uart'tan yolla her okuma sonucunda.

electrocom

webpack kullanıyorum o nedenle chipscope kullanmıyorum.Tamam İntegera dönüştürmeyeceğim ama uart'tan nasıl yollayabilirim verileri.

speak48

ya 4 bit '0' ekleyip high ve low 2 byte uart ile gönderirsiniz aldıktan sonra bilgisayarda istediğinizi yaparsınız
yada binary>bcd>string dönüşümünü donanımsal yapıp 6 byte string değer olarak gönderirisiniz.

vhdldeki tip dönüşümlerinin çoğu donanımda bir anlamı yoktur, vhdl dilinin özelliğidir.

electrocom

teşekkür ederim bunu deneyeceğim.Bu arada fpga ile accelerometer projesi yapmış olan varsa tavsiyede bulunabilir mi bu konu ile alakalı?

electronious

Merhaba,

Elindeki veri 1 bit sign ve 11 bit genlik değeri ise, yerinde olsam 11 biti 7 bite truncate ederim (kırparım). Bunu en anlamsız 4 biti atarak yapabilirsin. Daha sonra 1 bit sign ve 7 bit genlik değerini yani 8 biti uarttan pc'ye yollarım. Aldığım veriyi düzenleyip değeri okurum. PC değil de FPGA üzerinde okumak istersen düşük örnekleme ile değeri ledlerden veya 7 segmentten okuyabilirsin.

z

Sayi sayidir. CPLD yada islemci de farkli ele alinmaz.

Integer sayinin kaydedilecegi Flip floplarin sayisi N olsun.

Bu FFlara M gibi N den daha kisa uzunlukta bir sayi yuklemek isteyelim.

M in tamamini N in  en kucuk degerlikli FF'laraina yazarsin.

N de bos kalan FFlara ise M nin en yuksek degerli bitini kopyalarsin.

Ornegin 12 bitlik sayiyi 16 bitlik alana yazacaksan

12 bit sayimiz 0x800 ise bunu 16 bitlik alana 0xF800 olarak yerlestirirsin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

electrocom

Verdiğiniz bilgiler için teşekkür ederim,şu an öncelikli hedefim sadece 8 bit datayı fpga den pc ye göndermek ve bu datayı hyperterminal programını kullanarak görmek.Öncelikle bunu yaptıktan sonra ADC datası için uğraşacağım.PC den hyperterminalden girdiğim değeri ascii olarak ledlerde görmeyi başardım ancak fpga den pc ye veri göndermeyi başaramadım henüz.