FPGA e neden gerek duyulur?

Başlatan mir_as82, 09 Mayıs 2014, 14:01:27

camby

Alıntı yapılan: z - 11 Mayıs 2014, 21:23:59
Uart ornegi dogru olmamis. CPLD ile de 20 tane bagimsiz calisabilen uart tasarimi tapabilirsin.

yok hocam kastettiğim biraz daha karmaşık bir şeydi,

mesela uart 16'ya data geldiği zaman , fpga sana interrupt üretecek, int geldiğinde sen gidip fpga buffer'ından hangi kanalda ne kadar bekleyen veri var sorgusunu çekeceksin , sonra veriyi çekeceksin. Uart kanallarında yeteri kadar buffer olacak. Gönderirken de yine araya yazdığın protokole göre bu data bloğu şu uart kanalından gitsin diye komut yollayacaksın. Hazır Uart çipleri de bu tipteydi sanırım. Bunlar FPGA'de rahatlıkla uygulanabilir.

CPLD'de sadece yönlendirme yapabiliriz gibi başka bir I/O'ya.

Atıyorum 32 Uart dış dünyadan gelen , 1 uart 'da bizim MCU'muza giden uart olsun. İçeriye 2 adet mux yaptığımızda istediğimiz TX/RX çiftini MCU'ya yönlendirelim(5 kontrol pini ile 2^5) Bu durumda bi kanal ile haberleşirken diğer kanalı kaçırırız. Ancak 32 tane portumuz yine de vardır.

Yanlış mıyım ?

z

FPGA bilmedigim icin bir dey diyemem ama bu dediklerin CPLD ile de  yapilabilir. Yeterki iceride yeterince macro cell olsun.

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

kralsam

Alıntı yapılan: camby - 12 Mayıs 2014, 00:10:46
yok hocam kastettiğim biraz daha karmaşık bir şeydi,

mesela uart 16'ya data geldiği zaman , fpga sana interrupt üretecek, int geldiğinde sen gidip fpga buffer'ından hangi kanalda ne kadar bekleyen veri var sorgusunu çekeceksin , sonra veriyi çekeceksin. Uart kanallarında yeteri kadar buffer olacak. Gönderirken de yine araya yazdığın protokole göre bu data bloğu şu uart kanalından gitsin diye komut yollayacaksın. Hazır Uart çipleri de bu tipteydi sanırım. Bunlar FPGA'de rahatlıkla uygulanabilir.

CPLD'de sadece yönlendirme yapabiliriz gibi başka bir I/O'ya.

Atıyorum 32 Uart dış dünyadan gelen , 1 uart 'da bizim MCU'muza giden uart olsun. İçeriye 2 adet mux yaptığımızda istediğimiz TX/RX çiftini MCU'ya yönlendirelim(5 kontrol pini ile 2^5) Bu durumda bi kanal ile haberleşirken diğer kanalı kaçırırız. Ancak 32 tane portumuz yine de vardır.

Yanlış mıyım ?

Hocam FPGA içerisinde hazır blok ram mevcut olması avantaj ama olmasa bile yeterli lojik eleman olduğunda yapılabilir. Zaten FPGA içerisinde de yeterli RAM yoksa P&R yapan yazılım(Quartus,ISE) kendisi lojik ram oluşturup yerleştiriyor.

camby

Alıntı yapılan: z - 12 Mayıs 2014, 00:22:55
FPGA bilmedigim icin bir dey diyemem ama bu dediklerin CPLD ile de  yapilabilir. Yeterki iceride yeterince macro cell olsun.
Hocam işte içine fazla 2 tane shift register sığıyor diyor arkadaş, karşılaştırdığımız nokta da bu zaten. CPLD'lerde FPGA'lerdeki gibi yeterli sayıda makrocell yok.

İçinde N adet makrocell olan CPLD ile linux de çalıştırırız.

--------------

CPLD ile bu yapılabilir mi ?

http://www.maximintegrated.com/datasheet/index.mvp/id/6560

Bunun daha basitini düşünelim , sadece baud generator için bile kaç logic blok harcanır ?

------------

@gerbay hocam , bu gösterdiğin sanırım CPLD için sanırım , ne kadar kaynak harcanıyor , SRAM interface için ?


z

ISPLSI2032 ile  (kucuk bir CPLD) 2 adet PWM unitesi yada 1 shaft encoder icin decoder + sayici yada 3 yada 4 portlu ISA devrelerinin tamamini atabiliyordum.

Bu cipin cok cok daha buyuk kapasiteleri vardi. Bakmak lazim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

AsHeS

Alıntı yapılan: z - 12 Mayıs 2014, 10:23:44
ISPLSI2032 ile  (kucuk bir CPLD) 2 adet PWM unitesi yada 1 shaft encoder icin decoder + sayici yada 3 yada 4 portlu ISA devrelerinin tamamini atabiliyordum.

Hocam bu çipleride mi JTAG ile programlıyordunuz ?

z

Evet. Bir starter kit almıştım. İçinde bir kaç çeşit çip, minik bir JTAG, dokümanlar ve CD vardı.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

rree

#52
Konu dışı oldu ama fpga çipleri picxxfxxx  gibi flash programlama ünitesinemi sahip. Yani programlıyorsunuz sonra enerji verip çalıştırıyoruz. Yoksa her enerji verildiğinde programlayıp çalıştırılıyormu?
Birde şunu sormak istiyorum mikro kontreller gibi parazitlerden etkilenip kiltleniyormu.

MC_Skywalker

#53
FPGA lar Flash yapıya sahip değildirler. RAM tarzı bir yapıya sahip oldukları için, üretilen bit code FPGA yüklendiğinde enerjisi olduğu muddetçe programını korur, enerji kesildiğinde uçar.

FPGA içeren kartlarda eeprom ve/veya CPLD yada MCU bulunur. bunlar ilk enerji anında FPGA programlar.

Aşağıdaki fotograftaki kar üzerinde Cycperss'in bir MCU'su var.  Bu kartın takılı olduğu PC deki yazlım ilk çalışma anında HDD içinde bulunan bitfile dosyasını kart üzerindeki MCU yardımuyla karttaki EP1K FPGA ları programlıyor.

http://imageshack.com/a/img203/3108/5vlx.jpg

rree

#54
Flash yapıya sahip programlanabilir  lojik üniteli chip varmı?

MC_Skywalker

CPLD ler Flash yapıdadırlar.

rree

CPLD   ile  32 usart devresi ve  belirlenen bir data geldiğinde  uyarı portu bir yapan devre tasarlamak mümkünmüdür.

MC_Skywalker

bildiğim en büyük CPLD 1,7K Macrocell içeriyor ve 271 pinli.  önce tekli usart implementasyonu yapıp bakmalı. 1 modül nekadar yer tutuyor diye oana göre değerlendirilir.

speak48

altera-max2-microkit te ki max2 serisinin en büyüğü 2210 les var.
10 uart biraz zor sığar.

diğer firmaların cpldileri farklı olabilir.
fpga yı flashlı veya cpld fpga karması bir şey yapmış olabilirler.

z

Yalnız UART devresi atla deve bir tasarım değil.

Hele hele de 32 uart eğer ki aynı baud rate de çalışacaksa iş biraz daha kolaylaşır.

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