Friday, July 30, 2010

Training Altium DXP 2004

Secara umum Software DXP 2004® ini merupakan bundel software yang tergabung atas beberapa software desain dari desain schematic, pcb, vhdl dll. Pada modul ini kita hanya akan fokuskan pada tiga fungsi dasar dxp yaitu desain schematic, pcb dan library .

Pada dasarnya hal yang kita lakukan dalam membuat sebuah pcb adalah merangkai atau menghubung-hubungkan setiap komponen yang kita butuhkan pada worksheet, sesuai dengan rangkaian yang sudah kita desain, kemudian setelah itu ‘gambar’ rangkaian yang sudah kita buat di dalam worksheet kita ‘pindahkan’ ke sebuah papan pcb kosong, lalu kita atur penempatan setiap komponen di pcb dan terakhir kita lakukan pengkabelan antar komponen sesuai gambar pada worksheet, kemudian langkah terakhir dilakukan pencetakan atas pcb yang kita desain.

Hal lain yang perlu diperhatikan dalam penggunaan program ini adalah dalam hal library yang menjadi bagian dari software karena terkadang komponen yang kita butuhkan tidak terdapat pada library yang ada. Untuk itu, otomatis kita harus membuat sebuah library baru atau mengganti komponen tersebut dengan yang sudah ada. Untuk pembuatan library akan diterangkan tersendiri pada modul terpisah. Selamat menikmati sajian ini dan semoga berhasil…. (ingram ;-p ).

baca selengkapnya di : Training Altium DXP 2004

Thursday, July 29, 2010

Mengenal Kanal Rayleigh

Pertama-tama ingin rasanya saya mengucapkan puji syukur Alhamdulillah.. blog indonesianchipengineer.blogspot.com ini udah bisa dilaunching, dan semoga memberikan kontribusi untuk ikut mencerdaskan bangsa khususnya dalam bidang iptek ..amiin.

Dalam sebuah pengembangan produk chipset untuk komunikasi tanpa kabel (wireless communication) dibutuhkan suatu pemodelan system yang berfungsi untuk memudahkan manganalisis dengan cepat dan sederhana jika dibandingkan metode analisis dilakukan langsung di sisi hardware. Untuk melakukan pemodelan sistem komunikasi ini maka akan tidak lepas dari skema berikut :

kali ini kita akan banyak berbicara mengenai kanal wireless, apa dan bagaimana sih kanal wireless itu???. Dalam prinsip telekomunikasi (komunikasi jarak jauh), kanal adalah media untuk menghubungkan transmitter dan receiver yang terpisah pada sekian jarak. Media ini bisa dengan menggunakan kabel atau pun menggunakan tanpa kabel (wireless). Pada kasus media wireless biasanya menggunakan teknologi frekuensi tinggi seperti VHF atau UHF. Ketika suatu sinyal ditransmisikan dari transmiter menuju receiver maka sinyal itu tidak selalu langsung diterima oleh receiver, tetapi memantul dulu ke suatu benda dan baru sinyal pantulan itu diterima receiver. Mekanisme pantulan ini dapat dijelaskan dengan skema berikut :


Seperti halnya teknologi komunikasi menggunakan kabel, maka lintasan yang free distorsi diharapkan mampu juga diberikan oleh sistem komunikasi wireless. Untuk mengetahui bahwa sistem wireless mampu menyediakan komunikasi yang punya free distorsi dapat dilihat dari respon frekuensi dan respon phasenya. Berikut adalah contoh bagaimana di sistem komunikasi yang ideal tanpa ada loss dan tanpa distorsi.

dan berikut juga bisa diperhatikan bagaimana respon frekuensi jika kita menggunakan kanal rayleigh yang banyak multipath dan banyaknya noise

Ada dua skenario propagasi sinyal dari pemancar ke penerima yang cukup merepresentasikan kondisi lapangan :
1. Skenario dimana sinyal langsung (direct signal) yang kuat datang bersama beberapa sinyal pantul (multipath) yang lebih lemah. Contoh : lapangan yang luas, jalan-jalan yang cukup lebar dll. Kondisi ini biasa dimodelkan dengan distribusi Rice.
2. Skenario dimana sinyal hanya ada beberapa sinyal multipath pantul yang diterima oleh receiver tanpa ada sinyal langsung. Skenario ini biasa dikatakan skenario terburuk (the worst case scenario). Kondisi ini biasa terjadi di kota kota besar yang banyak gedung gedung bertingkat dan mobil yang membuat semakin banyak sinyal yang terpantul. Kondisi ini biasa dimodelkan dengan distribusi Rayleigh.

Nah kali ini kita akan membicarakan dan mengenal lebih jauh mengenai kanal yang terdistribusi Rayleigh. Untuk bisa mengenal lebih jauh mengenai kanal ini maka 'wajib' hukumnya kita lebih dulu tahu mengenai PDF dan CDF. PDF atau Probability Density Function adalah probabilitas berapa banyak sample sinyal (dalam tegangan) terhadap jumlah sample seluruhnya. PDF dapat dirumuskan sebagai berikut :

f(r) = (r/sigma^2)*exp(-(r^2/2*sigma^2)) untuk r >= 0 ...persamaan (1)

dimana r adalah tegangan sinyal.

distribusi ini memiliki 1 parameter yaitu mode atau modal (sigma), nilai modal atau mode ini menunjukkan nilai distribusi tegangan sinyal. Beberapa parameter lain dari distribusi rayleigh ini dapat dilihat pada tabel berikut:

Table 1: parameter distribusi rayleigh sebagai fungsi dari mode-nya
mode : sigma
median : 1.18*sigma
mean : 1.25*sigma
rms : 1.14*sigma
standart deviasi : 0.655*sigma

dengan mengintegrasikan PDF maka CDF pun bisa dirumuskan sebagai berikut :

CDF(R) = Prob(r<=R) = 1-exp(-R^2/2*sigma^2) ...persamaan (2)

Bisa dilihat dari gambar perbandingan antara PDF dan CDF pada distribusi Rayleigh, pada sumbu x adalah nilai tegangannya, sedangkan pada sumbu y adalah fungsi PDF dan CDF nya. Grafik PDF adalah yang berbentuk seperti gunung sedangkan yang lainnya itu adalah grafik CDF. CDF sangat membantu mengetahui probabilitas suatu sinyal random itu level tegangannya kurang atau sama dengan suatu treshold tertentu. Di awal sudah dijelaskan mengenai parameter mode atau modal, nah kalau dikaitkan dengan gambar diatas, modal adalah titik tertinggi dari grafik PDF yang memiliki arti bahwa pada level tegangan itulah paling banyak sinyal terdistribusi.

Langkah memverifikasi apakah suatu sinyal itu terdistribusi rayleigh atau tidak :
1. Ketika kita meng-capture sinyal dari suatu alat ukur, maka kita tidak tahu bahwa sinyal itu sinyal Ricean atakah Rayleigh. dan biasanya yang terlihat disitu dalam satuan power dBm/dBw.
2. Ubah dulu menjadi satuan watt, kemudian diubah lagi menjadi satuan tegangan. Bisa kan??
3. setelah menjadi satuan tegangan, maka langkah berikutnya adalah mengubah satuan tegangan itu menjadi tegangan ternormalisasi terhadap nilai modal/mode-nya. pertanyaannya : kenapa harus dilakukan normalisasi??, ya karena nilai tegangan ini cukup kecil sehingga perlu dinormalisasi sehingga cukup mudah melihatnya dan akan mudah nanti men-convertnya dalam PDF ataupun CDF.

cara normalisasinya bisa memperhatikan tabel 1, dimana nilai mean = 1.25*sigma
sehingga, sigma = mean(v)/1.25
nah v' = v/sigma
v'= v/mean(v)/1.25 .... persamaan (3)

4. langkah berikutnya adalah membuat PDF dan CDFnya.
5. kemudian bisa dibandingkan grafik PDF dan CDF nya antara teori dengan prakteknya. PDF dan CDF secara teori dapat menggunakan persamaan 1 (untuk PDF) dan persamaan 2 (untuk CDF). kalau gambarnya mirip ya bisa dikatakan sinyal yang lagi diuji mendekati distribusi Rayleigh.

mudah kan..??
silahkan mencoba temen temen..

Reference : Modeling Wireless Channel Propagation
(F. Perez Fontan dan Marino Espineira)

Pengenalan Shell Script

Shell -- A hard rigid usually calcareous covering or support of an animal: the hard or though often thin outer covering of an egg (as of a bird or reptile) -- Merriam Webster Online Dictionary

Shell (baca: Linux Shell), selain sebagai command interpreter, juga bisa dimanfaatkan sebagai bahasa pemrograman yang powerful di Linux. Sebagai command interpreter, shell bisa dimanfaatkan sebagai penghubung antara user dengan OS kernel untuk mengeksekusi perintah (UNIX command).

Sebagai bahasa pemrograman, program shell (baca: script) bisa ditumpangkan pada aplikasi untuk dipakai bersama dengan compiled binary, tool, utilities, atau lainnya sehingga membentuk sebuah aplikasi yang mempunyai hubungan erat antara OS kernel dengan program. Dengan bahasa sedernana, memadu-padankan UNIX command dan program.

Ada beberapa macam shell yang tersedia, dan yang paling terkenal adalah CSH (singkatan dari C-shell), dan BASH atau SH (singkatan dari Bourne-again shell), shell script yang sering saya gunakan. C-shell dibuat oleh Bill Joy saat menjadi mahasiswa master UC Berkeley, Bourne-again shell, sesuai namanya, dibuat oleh Stephen Bourne tahun 1978. Sebagai catatan: beberapa mengatakan bahwa C-shell sudah tidak direkomendasikan lagi karena ada beberapa masalah--seperti yang publish oleh Usenet post tahun 1993.

Bagi saya, kelebihan utama shell script adalah: quick programming. Tanpa harus membuat program yang rumit dan kompleks, shell mampu memjalankan task yang rumit dan kompleks, tapi dengan konsekuensi computing power rendah (lambat). Dengan begitu, shell sangat cocok digunakan untuk system administrative task, maupuan sistem-sistem yang harus dirun berulang kali (repetitive), seperti otomatisasi, task-task rutin, cek status, dan lain-lain. Walaupun tidak dipungkiri shell juga bisa digunakan untuk kerpeluan lain semisal: data parsing, editing, bahkan arithmetic operation.

Pada proses desain chip, shell script sering dimanfaatkan untuk proses kompilasi, menjalankan simulasi, sampai analisa data (parsing) yang dibutuhkan untuk dilakukan berulang-ulang menggunakan loop utility pada shell. Sebagai contoh untuk sebuah desain RTL, kita ingin melakukan kompilasi dengan opsi berbeda-beda tiap kali compile, memanggil program simulator seketika kompilasi selesai, dan melakukan analisa terhadap hasil simulasi seketika simulasi selesai. All done by one!

Contoh fitur favorit shell yang sering saya pakai di pekerjaan verifikasi adalah input argument. Berikut contohnya:

case $1 in
-x) "Argument pertama x.";;
-y) "Argument kedua y.";;
esac

case $2 in
-x) "Argument pertama x.";;
-y) "Argument kedua y.";;
esac

Script diatas akan mengeluarkan kata "Argument pertama x. Argument kedua y." jika dirun dengan opsi:

% ./arg.sh x y

Mudah bukan? Kita bahkan bisa membuat compilation option berbagai macam hanya dengan beberapa line code. Kemudahan untuk dipelajari (quick programming), fleksibilitas, dan kemampuannya sebagai command interpreter menjadi alasan utama kenapa saya menyukai shell script ini. (yayan)

Untuk memulai mencoba shell scripting, tunggu: Tutorial Shell Scripting bagi Pemula.

Bahan baccan:

Wednesday, July 28, 2010

Pengenalan Chip Verification

“If I have seen further [than certain other men], it is by standing upon the shoulders of giants.” Isaac Newton

Verification bukan kata yang familiar ketika saya masih mahasiswa. Tak lain tak bukan karena verification tak penting dan tak perlu diperhatikan oleh desainer pemula—dan mahasiswa adalah desainer pemula; hanya membuat desain untuk tugas kulliah. Semenjak bergabung dengan perusahaan dan naik pangkat jadi desainer produk komersil, verification menjadi hal yang lebih diperhatikan, tapi masih kurang diperhatikan. Itu disebabkan karena perusahaan kami termasuk start up company dimana sistem kerja masih berkembang. Tapi sejalan dengan makin berkembangnya perusahaan, dan makin kompleknya desain yang dibuat, verification akhirnya mendapat tempat spesial. Tim khusus pun dibuat, dan anggotanya adalah pecahan dari tim RTL desainer.

Sekarang, dimana kompleksitas chip jauh bertambah dibanding satu dekade lalu, verification menjadi salah satu bagian krusial yang tak bisa dikesampingkan. Penelitian menyebutkan, 70% resource dihabiskan untuk verification, sedangkan 30% lainnya untuk desain. Dan fakta membuktikan, penyebab utama respin adalah kesalahan functional pada chip. Dan yang paling bertanggung jawab terhadap functional error adalah: verification.

Ada beberapa cara mendefinisikan verification. Salah satunya definisi yang paling mendekati adalah (1) proses membandingkan design intent dengan observed behavior, (2) memutuskan apakah keduanya ekuivalen atau tidak, (3) menganalisa dan menilai apakah masih ada functional error atau tidak, (4) dan menggaransi ketidakpastian adanya functional error. Desain disebut verified jika observed behavior sesuai dengan yang design intent, pada level keyakinan tertentu. Kalimat terkahir perlu digaris bawahi karena seringkali tidak semua case bisa ditest, terutama untuk chip yang kompleks dan melibatkan banyak test case.



Diagram berikut menunjukkan hubungan antara spesifikasi, design intent, dan implemention, yang digambarkan dengan lingkaran yang saling overlapped. Setiap lingkaran merepresentasikan perilaku (behavior) pada label, dan setiap bidang yang saling berpotongan merepresentasikan perilaku yang salling berpotongan antar label yang berpotongan.

Lingkaran pertama (AυEυGυH), design intent, adalah maksud dari desainer atau apa yang tergambarkan dalam otak desainer. Lingkaran kedua (BυEυFυH), specification, adalah maksud dari spesifikasi desain (biasanya datang dari system architect, product manager, production team, atau bahkan marketing team). Lingkaran ketiga (CυFυGυH), implementation, adalah perilaku yang terejawantahkan oleh desain RTL.

Terkadang spesifikasi tidak sama dengan design intent, misalnya karena kesalahan pemahaman desainer terhadap spesifikasi yang diinginkan oleh manajer, dan terkadang design intent tidak sama dengan implementasi karena kurang pengalamannya RTL designer dalam mengimplementasikan maksud (coding) desainnya kedalam RTL. Kedua kemungkinan sama besarnya walaupun relatif lebih banyak kemungkinan kedua.

Bisa disimpulkan bahwa inti verifikasi adalah bagaimana agar ketiga lingkaran tersebut, yang tadinya tidak bersinggungan seluruhnya menjadi bersinggungan. Artinya imlementasi sesuai dengan maksud desainer, dan maksud desainer sesuai dengan spesifikasi chip yang diberikan, dengan kata lain: NO FUNCTIONAL ERROR. So, verifikasi itu simple bukan? (yayan)