Şu sıralar yoğun olarak ST'nin çiplerini kullanıyorum fakat bir yandan da yeni bir mimari, yeni bir sistem öğrenmek istiyorum.
CPLD ve FPGA başlamak için her türlü önerinize açığım. Bununla birlikte aklımda bir kaç soru var.
1) CPLD/FPGA ikilisinde hangisi ile başlamak gerekir ?
2) C kodu yazar gibi programlamak mümkün mü ?
3) Hazır bir geliştirme kartı yerine küçük bir kart tasarlamak ne kadar mantıklı olur ?
4) Başlangıç için ne kadar kapsamlı bir donanıma ihtiyaç vardır ?
İlk aklıma gelen küçük bir CPLD, SRAM, ROM gibi temel şeyleri barındıran küçük bir kart tasarlamak.
Daha alışabileceğni veya zevk alarak kullanacağını/programlayacagini bile görmeden o donanım için kart tasarlamak bence hiç mantıklı bir yaklaşım değil. Aksine vakit ve nakit kaybı diye düşünüyorum.
CPLD ile ilgili bu sıralar benim de bir hevesim var. Konuyu takipteyim...
1) FPGA ile başlayın. CPLD için FPGA'nın küçüğü diye biliriz.
2) Donanım tanımlama dilleri C kod yapısına benzer
3) Hazır kart kullanmak daha verimli. şu arkadaş ile çalışıyorum http://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/
4) Yukarıdaki kit içinde porogramlayıcısıda mevcut
şu sıralar CPLD ile saat için uğraşıyorum
(https://i.hizliresim.com/pGqJoq.jpg)
(https://i.hizliresim.com/Jl1J6J.jpg)
Bunlarda benim ilk denemeleri. VHDL donanım tanımlama diliyle yapıldım.
author=MC_Skywalker link=topic=34258.msg483199#msg483199 date=1449762152
-----------------------------------------------------------------------------------------
16bit yukarı/aşağı sayıcı
https://www.youtube.com/watch?v=EQbJrg95WK4
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.numeric_std.ALL;
entity onalti is
Port ( clk100 : in STD_LOGIC;
anh : in STD_LOGIC;
led015 : out STD_LOGIC_VECTOR (15 downto 0));
end onalti;
architecture Behavioral of onalti is
signal prescaller : integer range 0 to 800000:=0;
signal sonuc : integer range 0 to 65535:=0;
begin
led015<=STD_LOGIC_VECTOR(to_unsigned(sonuc,16));
process(clk100)
begin
if(clk100'event and clk100='1') then
if(prescaller<800000) then
prescaller<=prescaller+1;
else
prescaller<=0;
end if;
if(prescaller=0) then
case anh is
when '1' =>
if(sonuc<65535) then
sonuc<=sonuc+1;
else
sonuc<=0;
end if;
when '0' =>
if(sonuc>0) then
sonuc<=Sonuc-1;
else
sonuc<=65535;
end if;
end case;
end if;
end if;
end process;
end Behavioral;
----------------------------------------------------------------------------------------
VHDL ile Karaşimşek Uygulamam
https://www.youtube.com/watch?v=rmpanx5cP8U
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity KaraSimsek is
Port ( clk : in STD_LOGIC;
led015 : out STD_LOGIC_VECTOR (15 downto 0));
end KaraSimsek;
architecture Behavioral of KaraSimsek is
constant SYS_CLK_PERIOD : integer := 10; -- ns cinsinden
constant NEW_CLK_PERIOD : integer := 100_000_000; -- ns cinsinden
constant CLK_COUNT : integer := NEW_CLK_PERIOD / (2 * SYS_CLK_PERIOD);
signal counter: std_logic_vector(3 downto 0):= "0000";
signal gecici: std_logic_vector(3 downto 0);
signal clk_new : std_logic := '0';
signal count : integer range 0 to 99999999 := 0;
signal r_led015 : STD_LOGIC_VECTOR (15 downto 0):= X"0001";
signal fwd : std_logic := '1';
begin
process(clk)
begin
if clk= '1' and clk'event then
if count = CLK_COUNT - 1 then
count <= 0;
clk_new <= not clk_new;
else
count <= count + 1;
end if;
end if;
end process;
process(clk_new)
begin
if rising_edge(clk_new) then
if (fwd = '1') then
r_led015 <= r_led015(14 downto 0) & r_led015(15);
if (r_led015 = X"4000") then
fwd <= '0';
end if;
else
r_led015 <= '0' & r_led015(15 downto 1);
if (r_led015 = X"02") then
fwd <= '1';
end if;
end if;
end if;
end process;
led015 <= r_led015;
end Behavioral;
Altera DE0-Nano kitini tavsiye ederim. Üzerinde başlangıç için yeterli çevre birimleri mevcut. Geçen sene Çizgi Market'den indirim ile almıştım, belki bu sene de indirim olur.
@MC_Skywalker Hocam kodunuzda gördüğüm bir sorunu düzeltmek isterim. Kodunuzda
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.numeric_std.ALL;
Satırları mevcut fakat genel kural olarak bu kütüphanlerin hepsini bir arada kullanmak sakıncalı. Ya bu şekilde :
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.numeric_std.all
Ya da bu şekilde kullanın ama ikisni aynı anda kullanmayın.
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_arith.all ;
use ieee.std_logic_unsigned.all ;
Kaynak : http://www.synthworks.com/papers/vhdl_math_tricks_mapld_2003.pdf
(https://s1.postimg.cc/3h1r3rb7b3/picproje.png) (https://postimg.cc/image/70notkdx2z/)
@muuzoo Bilgilendirici not için teşekürler. Bilmediğim bir noktaydı.
Udemy üzerinde 25tl ye güzel kurslar var. Bu kursu satın aldım. Vakit bulup fazla izleyemedim. Ama izlediğim kadarıyla güzel. https://www.udemy.com/vhdl-and-fpga-development-for-beginners-and-intermediates/learn/v4/overview
ucretsiz 110 bölümlük VHDL anlatımı
https://www.youtube.com/channel/UCbUe5SLMSZlSzCuJP81lU0A
@Cemre. hocam haklısın fakat hiç bilmediğim için mini bir sistem düşünmüştüm.
@MC_Skywalker hocam açıklamalar için çok teşekkür ederim.
Alteranın hazır boardları çok pahalı gibi, en azından bir öğrenci için.
Benim düşündüğüm stm'nin 103 mini board tarzı bir şey olabildiğince temel birimlerin olması da yeterli.
@sigmoid hocam udemy aklıma gelmemişti bu iyi oldu.
Gerçi gördüğüm kadarıyla FPGA'ler artık MCU'lar kadar kaynak içermeye başlamış.
Sanırım şimdi uygun fiyatlı FPGA board arayabilirim. :)
şöyle bir ikili işinizi görür. Aliexpress üzerinden ~$40 - $50 mailyetle temin edilebilir. kart üzerin de İntel Cyclone IV FPGA var.
(http://i.imgur.com/qSolOAz.jpg)
Bredboard için FPGA modülü iki değişik version var. 15K ve 35K Atrix 7 FPGA seçenekli. üzerinde üretici firmanın programla arabirimi var.
http://store.digilentinc.com/cmod-a7-breadboardable-artix-7-fpga-module/
Bredboard için FPGA modülü Spartan 6 FPGA var. üzerinde üretici firmanın programla ara birimi var.
http://store.digilentinc.com/cmod-s6-breadboardable-spartan-6-fpga-module/
Buda CPLD modülü. Ayrıca JTAG programlayıcı gerektiri
http://store.digilentinc.com/cmod-c2-breadboardable-coolrunner-ii-cpld-module/
FPG giriş için bu kartı almayı düşünüyorum tavsiye eder misiniz veya alternatif olarak hangi kartı önerirsiniz.
(https://s1.postimg.cc/35c9sh68gr/image.png) (https://postimg.cc/image/35c9sh68gr/)
https://www.aliexpress.com/item/FPGA-development-board-ALTERA-Cyclone-IV-EP4CE-four-generations-SOPC-NIOSII-send-send-remote-control-to/32691369830.html?spm=a2g0s.13010208.99999999.277.Q2P0xA
Tekrardan selamlar,
Şu sıralar fırsat bulmuşken konuya tekrardan vakit ayırabildim.
Biraz araştırma yaptım CPLD için ama hala takıldığım ufak noktalar var.
1) Xilinx /Altera arasında gidip geliyorum burada tavsiyeniz ne olur ?
2) CPLD/FPGA arasında kararsın kaldım. Sanki FPGA ile başlarsam bir şeyler kaçırmış olurum gibi geliyor.
3) Malum dolar kuru bir öğrenci için bu paralar çok fazla özellikle FPGA boardları. Donanım kısmında temel bir breakout board önerisi istiyorum.
@MC_Skywalker hocam bir kaç öneride bulunmuştu fakat bu kitlerde pahalı.
CPLD için şu ürünler işimi görür mü?
CPLD Board : https://tr.aliexpress.com/item/Free-Shipping-5V-MAX-II-EPM240-CPLD-Minimum-System-Core-Board-Development-Board/32572133174.html?spm=a2g0s.13010208.99999999.265.5b693c008ind6d
Programmer : https://tr.aliexpress.com/item/Besr-prices-Free-shiping-USB-Blaster-ALTERA-CPLD-FPGA-download-cable/710638185.html?spm=a2g0s.13010208.99999999.259.5b693c008ind6d
CPLD sadece düşük yoğunluklu lojik ile uğraşacaksan işin çok iyi görü ama işim içine birazcıkta olsun ADC katayım dersen FPGA tarcih etmelisin. Olduya ARM vb işlemci istemiyorum deyip RISC V core içine ekleyip çalışmak için yine FPGA derim.
Benim başlangıç setim.
(https://i.postimg.cc/Jzz25Wdy/IMG_2161_1.jpg)
Alıntı yapılan: MC_Skywalker - 03 Ekim 2018, 12:52:41CPLD sadece düşük yoğunluklu lojik ile uğraşacaksan işin çok iyi görü ama işim içine birazcıkta olsun ADC katayım dersen FPGA tarcih etmelisin. Olduya ARM vb işlemci istemiyorum deyip RISC V core içine ekleyip çalışmak için yine FPGA derim.
Benim başlangıç setim.
(https://i.postimg.cc/Jzz25Wdy/IMG_2161_1.jpg)
microseminin fpga larına riscv gömüp kullanıyordum. beni sarmadı açıkçası.
Artık çoğu yerde SoC kullanılır oldu.Fpga ve ARM işlemciler tek pakette üretiliyor.Yoğun işlem gücünü fpga hallederken karar verme mekanizmasının MCU hallediyor.Bence bu sistemler üzerinede yoğunlaşılmalı.Örnek vermek gerekirse Zynq kullanılabilir. Xilinx'in geliştirme ortamı daha kullanıcı dostu geliyor bana. Tabi bu kartlar dolar ile beraber uçtu gitti.Bir zybo 1500tl olmuş. Bu arada FPGA geliştirme kartlarında akademik indirim kullanılabilir akademisyen tanıdığınız veya lisansüstü yapıyorsanız bu fırsatı değerlendirin.
Microblaze kısmınada bakmanızı öneririm FPGA ile denetleyici çalıştırıp üzerlerinde freertos çalıştırılabiliyor.
SoC ve SoM larin populerligi gunden gune artiyor. CPLD yakin bir zamanda tarih olabilir. Baslangic icin xilinx tavsiye ederim uzerinde zynq-7000 serisi herhangi bir oyuncakla baslayabilirsin (biraz tuzludur ama). Zaten uzerinde arm islemci ile geliyor (mikrokontrolcu degil!). Led yakip sondurmeden sinyal islemeye kadar genis bir yelpazede kullanabilirsin. Isletim sistemi secenekleri de oldukca genis. Linux, beles rtos, papaz kodlama gibi. Onumuzdeki 10 sene seni idare eder ;D
Benim yükseklerde gözüm yok , zaten bilgim ve o kadarlık işlem gücüne ihtiyacım da yok.
https://tr.aliexpress.com/item/U119-Altera-MAX-II-EPM240-CPLD-Development-Board-Experiment-Board-Learning-Breadboard/32605348979.html?spm=a2g0s.9042311.0.0.9ae34c4dyn18kX
linkteki kitle beraber usb blaster programlayıcısı sipariş ettim. amacım lojik herhangi bir entegre lazım olduğunda konfigüre edip kullanabileceğim bir yapı olsun. Sürekli elektronik tedarikçilerinden lojik entegre sipariş etmekten bıktım.Bu hamlemin deneylerimde atölyemde para-zaman kazandıracağını umuyorum.
Yalnız alteranın quartus programını kullanışsız buldum biraz alışmak gerek.
CPLD/FPGA için aslında hiç farketmez fakat alınabilir bişey olsun istiyorum.
Dolar kuru sağ olasın ufacık kitler çılgın seviyelere ulaşmış. Öğrenci adamı aşıyor :)
@MC_Skywalker Hocam senin paylaştığın kit gayet iyi ama 33 dolar gözüküyor.
Güçlü olsun onu yapsın bunu yapsın derdim yok başta ufak tefek uygulamalardan sonra elimdeki TFT'leri sürebileyim, kameradan görüntü aktarabileyim gibi işleri yaptırmak istiyorum.
Sinyal işleme ve güçlü matematik kısımlarına ilerde işin teorisini öğrenince girişmek istiyorum.
Zaten SoC'lar da durum aynı değil mi ? En ucuz SoC bugün kaç paradır ki bilir :)
FPGA barındıran kartlarınızda FPGA kodlarını kopyalamaya karşı nasıl koruyorsunuz?
Xilinx de 2 cesit koruma var bildigim. Birincisi jtag i kapatmak, ikincisi ise program dosyasini sifrelemek.
CPLD icin mi FPGA icin mi konusuyorsun?
Genel konusuyorum. TRM lerine bakarken gordugum aklimda kalan seyler bunlar. Biz tasarladigimiz hicbir cihaza koruma koymadik. Bu yuzden detaylari bilmiyorum.
Bu arada FPGA icin sadece jtag i patlatmak da komik olur. Devekusu misali. ;D
Alıntı yapılan: Zoroaster - 04 Ekim 2018, 03:49:01FPGA barındıran kartlarınızda FPGA kodlarını kopyalamaya karşı nasıl koruyorsunuz?
Koruma yontemlerini su sekilde anlatmislar. Xilinx icin tabi
https://www.xilinx.com/support/answers/40360.html