Üniversitemizde lojik tasarım dersini alırken beni en çok etkileyen şeylerden birisi de kullanılan araçların otomatize edilmeye uygun olmasıydı. EDA (Electronic Design Automation) araçlarının hepsi TCL dili için bir arayüz içeriyordu. O zamanlar verilog dili ile tasarımla uğraşırken bir yandan da bir scripting dili ile kendimi otomasyona yatkın kılmak istiyordum. Küçük bir araştırdığımda karşıma çıkan seçenekler TCL , Perl , Bash ve Python idi. Dersi aldığım değerli hocam Furkan Çaycı’ya hangi dilin üstüne düşmem gerektiğini sorduğumda eğer python tarafında kendimi eksik hissediyorsam acilen kendimi geliştirmemi(Kesinlikle haklıymış, python kullanmaktan kaçmak çok zor, hayatımızı çok kolaylaştırıyor 🙂 ) , illa ki yeni bir dil öğrenmek istiyorsam da TCL’ın çip endüstrisinde geçmişten beri daha çok kullanıldığını ve öğrenilebileceğini söyledi.
Bunun üzerine kaynak aramaya başladım fakat Türkçe kaynağı geçtim ingilizce bile çok az kaynağın olduğunu fark ettim. Bulduğum kaynaklardan ve daha önce bu dili kullanmak için diğer insanların kullandığı örneklerden yola çıkarak türkçe anlatımlı bir TCL dili eğitim serisi yazmaya karar verdim.
Bu eğitim serisi önce TCL dilinin temellerini ele alacak ve dil ile ilgili sorusu olanlar için bir kaynak olmayı hedefleyecek. Sonrasında da dilin bizim için asıl kullanım alanı olan çip tasarımı alanında örnekler yapacağız. FPGA ve Çip tasarım akışında TCL dilinin Kullanımına dalış yapacağız. Eğer sizler de hazırsanız TCL dilini biraz tanıyalım ve ilk “Merhaba Dünya” kodumuzu yazalım 😀
Tcl, Tool Command Language kelimelerinin kısaltması. Berkeley’deki California Üniversitesi’nden John Ousterhout tarafından tasarlanmış.
Tcl aslında Unix sistemler için geliştirilmiş. Daha sonra Windows, DOS, OS/2 ve Mac OS X’e de taşındı. Tcl, Bourne Shell (Sh), C Shell (csh), Korn Shell (ksh) ve Perl gibi diğer unix shell dillerine oldukça benzer. O yüzden daha önce Unix Shell’ler ile çalıştıysanız kolay ilerleyeceğinizi düşünüyorum
Tcl’in asıl amacı programların birbirleriyle etkileşim kurmasını sağlamak ve aynı zamanda gömülü bir interpreter olarak görev almaktı. Programların etkileşim kurmasını sağlamak asıl hedef olsa da, Tcl/Tk ile yazılmış tam teşekküllü uygulamalar da bulabilirsiniz. Tk ne ola ki derseniz de basitçe tcl dilinin grafik kütüphanesi diyebilirim.
Sanırım artık ilk kodumuzu yazabiliriz. Çok temel Bir anlatımdan başlayacağımızdan belli bir blog’dan sonra deneyimli yazılımcıların balıklama atlayabilecekleri bir nokta belirleyecek ve buraya link olarak koyacağım. Hadi başlayalım !
Öncelikle gerekli paketlerin sisteminizde kurulu olduğundan emin olmalısınız. Linux sistemler için basitçe apt kullanarak paketlerimizi indirlerim (arch ve rhel fanları kendi halleder zaten 🙂 ) . Windows cihazlar için de kurulum kolay olmakla birlikte kaynak bulmakta da zorlanmayacaksınız.
apt-get install tcl tk
Eğer kendi bilgisayarınızda kurulum yapmak istemezseniz ve sürekli internete erişim varsa çoğu online araçlardan birini kullanabilirsiniz. Burada yazdığım tüm kodlar için aynı zamanda bir online aracı da siteye gömeceğim ki dersten ayrılmadan kodunuzu deneyebilin. Hadi ilk kodumuzu yazalım ve merhaba diyelim 🙂
Tebrikler ilk kodunuzu çalıştırdınız. Ya da ilk hatanızı aldınız mı demeliydim. Aldığımız bariz hata en basit haliyle bize basit bir print fonksiyonunu TCL syntax’ı ile nasıl kullanacağımızı anlatıyor.
Output:
ChipperTux ile TCL serisi
missing "
while executing
"puts ""
(file "main.tcl" line 3)
Hadi bariz hatamızı kapatıp ikinci puts komutunun sonuna ” koyalım ve hemen ikinci dersimize geçelim. Çift tırnak işaretinden sonra çıktınız bu şekilde olmalı :
Output:
ChipperTux ile TCL serisi
Bu satirda bir hata olmali
Basit bir başlangıç yaptık. Diğer yazıda görüşmek üzere 😀
Çok sağlam bir eğitim serisi olacağa benziyor, devamını sabırsızlıkla bekliyorum.