Jadwal Makan Edes

Daftar tempat edes makan

so, there was a time when we (me and one-should-not-be-named) drafted this resto list, just because we mostly confuse+argue about where should we go to have diner/lunch(weekend-only).

we categorize those list, and schedule each different category for each day. after that, later, one-should-be-named ask me “today, what kind of diner should we have, and where to ?”, i just said “according to our list, we should go to The Peak” (for instance). no arguing, no bargaining etc. we’re at peace.

this process had gone quite a time, until we both broke, because much of the list are above our pay-grade.

i just found this list in my old files. i smile and wandering that tiny-litle-peace-time of me (and one-should-be-named).

i really wanna say deeply-from-the-bottom-of-my-heart to my one-should-be-named, that indeed you had give me a wonderful time to share with. i will not regret every moment we’ve spend together. Thanks a lot. may God bless u and all your families wherever you are now.

Belajar Sistem Embedded

Lagi pengen bikin tutorial tentang sistem embedded. Mari kita lakukan saja (jangan cuma wacana-wacini).

Apa itu Sistem Embedded ???

(embedded : tertanam) Adalah sebuah sistem komputer yang dirancang untuk melakukan satu atau beberapa fungsi khusus. Beberapa jenisnya sering dituntut bekerja secara real-time. Sistem ini tertanam sebagai bagian dari perangkat yang lengkap, yang seringnya juga terdiri dari perangkat keras dan bagian mekanis. Sebaliknya, komputer umum, seperti komputer pribadi (PC), dirancang untuk menjadi fleksibel dan untuk memenuhi berbagai/banyak kebutuhan penggunanya.

Seperti apa contoh sistem embedded ???

Sistem embedded banyak mengendalikan perangkat yang umum digunakan saat ini. Semua perangkat yang punya menu secara elektronik, yang bukan PC, pada dasarnya adalah sistem embedded. contoh di rumah kita : mesin-cuci, printer, handphone, PDA, tv-gaming-console (PS3,XBOX,dll), TV-LCD/PLASMA, Audio-system, dekoder tv-satelit, dst.

Apa yang pertama perlu dipelajari tentang sistem embedded ??

1. Sistem embedded adalah gabungan dari hardware (perangkat keras) dan software (perangkat lunak)
2. …….
3. …….
4. …….

Bagaimana mulai membuat sistem embedded ?

1. Miliki (beli/pinjam) Embedded Development Board atau semacamnya

Di internet, banyak sekali perusahaan yang menawarkan produk ‘development board’ untuk sistem embedded. selain itu kita pun dapat menggunakan barang/perankat yang ada untuk jadi ‘board’, misalnya bekas PDA yg lcd-nya pecah atau seperti di link ini. Inti yang membedakan board ini adalah prosesor yang digunakan. Untuk jaman sekarang kebanyakan orang menggunakan prosesor berbasis ARM untuk sistem embedded. Selain karena keunggulan utamanya yang low-power, ARM sudah cukup/sangat powerfull karena kecepatannya sudah ada yang mencapai 1GHz (jan-2011).

Hal kedua yang penting dalam memilih embedded board adalah “seberapa besar/bagus komunitas pengembangnya?”. Maksudnya, kalo suatu saat ada error dan kita ngga tau kenapa (seringnya akan terjadi), kemana kita bisa bertanya, dan kapan pertanyaan kita bakal dibalas. Yang ketiga adalah peralatan/antarmuka/peripheral apa saja yang tersedia di board itu. Misalnya berapa ram-nya, flash-ram, adakah koneksi ethernet, serial/uart/db-9, USB, CAN, I2C, video-out (vga, dvi-d, hdmi, s-video), audio-i/o, dll.

Beberapa yang development board/system yang saya rekomendasikan :
a. BeagleBoard (http://beagleboard.org), kecepatan ARM-nya sudah 1 GHz.
b. Board seri TS-7xxx (www.embeddedarm.com), cukup murah dengan ‘bonus’ FPGA.
c. Gumstix board (www.gumstix.com), ukurannya yang kecil, imut.
d. Rabbit series (www.rabbit.com), katanya lebih reliabel.
e. Handphone Nexian Journey NX-A890, cuma Rp 1.6-an juta, bisa punya arm ber-touch-screen, gps, compass,dll.

ingat, banyak sekali jenis development board, tinggal tergantung tujuan, budget dan waktu development.

2. Pelajari cara mengembangkan software untuk sistem embedded

Dari vendor boardnya (+google), cari tau sistem operasi apa yang bisa dijalankan board itu. kemudian belajar tentang cross compiler (ada disini)

VHDL : Struktur Dasar 2

(lihat post VHDL sebelumnya)
Bagian arsitektur di VHDL menentukan bagaimana rangkaian beroperasi dan bagaimana hal itu diterapkan. Entitas atau rangkaian digital dapat dimodelkan dalam berbagai cara:  perilaku, struktural (interkoneksi komponen), atau kombinasinya.

Deskripsi Struktural

Gambar 2: representasi Struktural dari rangkaian "bel".

Rangkaian gambar 2 juga dapat dijelaskan dengan menggunakan model struktural yang menentukan gerbang-gerbang apa yang digunakan dan bagaimana mereka saling berhubungan. Contoh berikut menggambarkan hal itu.

architecture structural of BUZZER is
— Declarations
component AND2
port (in1, in2: in std_logic;
out1: out std_logic);
end component;

component OR2
port (in1, in2: in std_logic;
out1: out std_logic);
end component;

component NOT1
port (in1: in std_logic;
out1: out std_logic);
end component;

— declaration of signals used to interconnect gates
signal DOOR_NOT, SBELT_NOT, B1, B2: std_logic;

begin
— Component instantiations statements
U0: NOT1 port map (DOOR, DOOR_NOT);
U1: NOT1 port map (SBELT, SBELT_NOT);
U2: AND2 port map (IGNITION, DOOR_NOT, B1);
U3: AND2 port map (IGNITION, SBELT_NOT, B2);
U4: OR2  port map (B1, B2, WARNING);

end structural;

Setelah header adalah bagian deklaratif yang memberikan komponen (gerbang logika) yang akan digunakan dalam deskripsi rangkaian. Dalam contoh ini, kami menggunakan gerbang DAN dua input, gerbang OR dua-input dan inverter. Gerbang/komponen ini harus didefinisikan terlebih dahulu, yaitu mereka akan memerlukan sebuah deklarasi entitas dan tubuh arsitektur (seperti yang ditunjukkan pada contoh sebelumnya). Ini dapat disimpan dalam salah satu paket yang di-acu pada header dari file (lihat Perpustakaan dan Paket di bawah). Deklarasi untuk komponen memberikan masukan (misalnya IN1, in2) dan output (misalnya OUT1). Selanjutnya, kita harus mendefinisikan jaring internal (nama sinyal). Dalam contoh kita sinyal-sinyal ini disebut DOOR_NOT, SBELT_NOT, B1, B2 (lihat Gambar 2). Perhatikan bahwa orang selalu memiliki untuk menyatakan jenis sinyal.

Penugasan setelah kata kunci begin memberikan penurunan (instansiasi) komponen dan menjelaskan bagaimana mereka saling berhubungan. Sebuah pernyataan penurunan komponen menciptakan tingkat hirarki baru. Setiap baris dimulai dengan nama instance (U0 misalnya) diikuti oleh tanda titik dua dan nama komponen dan kata kunci port map. Kata kunci ini menentukan bagaimana menghubungkan komponen. Dalam contoh di atas, hal ini dilakukan melalui suatu asosiasi posisi: PINTU sesuai dengan input, IN1 gerbang NOT1 dan DOOR_NOT untuk output. Demikian pula, untuk gerbang AND2 mana dua sinyal pertama (PENGAPIAN dan DOOR_NOT) sesuai dengan input IN1 dan in2, dan sinyal B1 ke output OUT1. Cara alternatif adalah menggunakan hubungan eksplisit antar port, seperti yang ditunjukkan di bawah ini.

label: component-name port map (port1=>signal1, port2=> signal2,… port3=>signaln);

U0: NOT1 port map (in1 => DOOR, out1 => DOOR_NOT);
U1: NOT1 port map (in1 => SBELT, out1 => SBELT_NOT);
U2: AND2 port map (in1 => IGNITION, in2 => DOOR_NOT, out1 => B1);
U3: AND2 port map (in1 => IGNITION, in2 => SBELT_NOT, B2);
U4: OR2  port map (in1 => B1, in2 => B2, out1 => WARNING);

Perhatikan bahwa urutan penugasan ini ditulis tidak berkaitan dengan urutan pelaksanaan karena semua adalah laporan yang bersamaan dan karena itu dijalankan secara paralel. Memang, skema yang digambarkan oleh pernyataan di bawah ini independen terhadap urutan penugasan.

Pemodelan struktural suatu desain cocok untuk desain hirarkis, di mana orang bisa mendefinisikan komponen unit yang digunakan berulang-ulang. Setelah komponen ini didefinisikan mereka dapat digunakan sebagai blok, sel-sel atau macro dalam suatu entitas tingkat yang lebih tinggi. Hal ini dapat secara signifikan mengurangi kompleksitas desain besar. Pendekatan desain hirarkis selalu lebih disukai daripada desain datar. Kami akan menggambarkan penggunaan pendekatan desain hirarki untuk penambah(adder) 4-bit, ditunjukkan dalam gambar 4 di bawah. Setiap adder penuh dapat digambarkan oleh ekspresi Boolean untuk jumlah dan melaksanakan sinyal,

sum =  (A xor B) xor C
carry = A . B + C . (A xor B)

Gambar 4: Skema adder 4-bit yang terdiri dari beberapa modul full-adder.

Dalam file VHDL, pertama kami telah membuat sebuah komponen untuk full-adder. Kami menggunakan beberapa instansiasi full-adder untuk membangun struktur adder 4-bit. Kami telah menyertakan klausul library dan use, serta deklarasi entitas nya.

Adder 4-bit  – Ilustrasi VHDL model hirarki

——– sebuah full-adder ————
library ieee;
use ieee.std_logic_1164.all;

entity FULLADDER is
port (a, b, c: in std_logic;
sum, carry: out std_logic);
end FULLADDER;
architecture fulladder_behav of FULLADDER is
begin
sum <= (a xor b) xor c ;
carry <= (a and b) or (c and (a xor b));
end fulladder_behav;

——– adder 4-bit ——————–
library ieee;
use ieee.std_logic_1164.all;

entity FOURBITADD is
port (a, b: in std_logic_vector(3 downto 0);
Cin : in std_logic;
sum: out std_logic_vector (3 downto 0);
Cout, V: out std_logic);
end FOURBITADD;

architecture fouradder_structure of FOURBITADD is
signal c: std_logic_vector (4 downto 0);

component FULLADDER
port(a, b, c: in std_logic;
sum, carry: out std_logic);
end component;

begin
FA0: FULLADDER  port map (a(0), b(0), Cin, sum(0), c(1));
FA1: FULLADDER  port map (a(1), b(1), C(1), sum(1), c(2));
FA2: FULLADDER  port map (a(2), b(2), C(2), sum(2), c(3));
FA3: FULLADDER  port map (a(3), b(3), C(3), sum(3), c(4));

V <= c(3) xor c(4);
Cout <= c(4);

end fouradder_structure;

Perhatikan bahwa nama-nama input yang sama a dan b untuk port full-adder dan adder 4-bit yang digunakan. Ini tidak menimbulkan masalah dalam VHDL karena mereka mengacu pada tingkat yang berbeda. Namun, untuk dibaca, mungkin lebih mudah jika menggunakan nama yang berbeda. Kami perlu untuk mendefinisikan sinyal internal C (4:0) untuk mendefinisikan jalur yang menghubungkan carry-out yang satu ke carry-input full-adder selanjutnya. Untuk input pertama kita menggunakan input sinyal Cin. Untuk yang terakhir membawa kita definisikan c (4) sebagai sinyal internal sejak membawa terakhir diperlukan sebagai masukan ke pintu gerbang xor. Kami tidak bisa menggunakan sinyal output Cout karena VHDL tidak mengijinkan penggunaan output sebagai sinyal internal! Untuk alasan ini kita harus mendefinisikan internal carry c (4) dan menetapkan c (4) untuk membawa sinyal output Cout.

Mengenai Pustaka (library) & Paket (package) : Kata kunci library dan use

Pustaka dapat dianggap sebagai tempat dimana compiler menyimpan informasi tentang sebuah proyek desain. Paket VHDL adalah file atau modul yang berisi deklarasi objek yang biasa digunakan, tipe data, deklarasi komponen, sinyal, prosedur dan fungsi yang dapat dibagi di antara model VHDL yang berbeda. Kami sebutkan sebelumnya bahwa std_logic didefinisikan dalam paket ieee.std_logic_1164 di pustaka IEEE. Untuk menggunakan std_logic pengguna harus menentukan pustaka dan paket nya. Hal ini dilakukan pada awal file VHDL dengan menggunakan kata kunci library dan use seperti contoh berikut:

library ieee;
use ieee.std_logic_1164.all;

Ekstensi .all menunjukkan penggunaan semua paket ieee.std_logic_1164.

Pustaka IEEE :

  • paket std_logic_1164 : mendefinisikan tipe data standar
  • paket std_logic_arith: menyediakan fungsi aritmatika, konversi dan fungsi perbandingan untuk, ditandatangani unsigned, integer, std_logic std_ulogic, dan jenis std_logic_vector
  • std_logic_unsigned
  • paket std_logic_misc: mendefinisikan jenis tambahan, subtipe, konstanta dan fungsi untuk paket std_logic_1164

Untuk menggunakannya, kita harus memasukkan pustaka dan menulis baris:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

VHDL : Struktur Dasar 1

Sebuah sistem digital di VHDL terdiri dari sebuah entitas desain yang dapat berisi banyak entitas lainnya yang kemudian dianggap sebagai komponen (gabungan) dari entitas tingkat atas (top-level). Setiap entitas dimodelkan oleh deklarasi entitas dan tubuh arsitektur. Anda dapat membayangkan bahwa deklarasi entitas sebagai antarmuka (interface) ke dunia luar yang mendefinisikan sinyal input dan output, sedangkan tubuh arsitektur berisi deskripsi entitas dan terdiri dari : entitas yang saling berhubungan, proses dan komponen, semua operasi yang bersamaan (concurrent), seperti skematis yang ditunjukkan pada Gambar 3 di bawah. Dalam desain yang umum, akan ada banyak entitas semacam itu dihubungkan bersama untuk melakukan fungsi yang diinginkan.

Gambar 3: Sebuah entitas VHDL terdiri dari interface (entitas deklarasi) dan tubuh (deskripsi arsitektur)

VHDL menggunakan kata kunci tertentu (reserved keywords) yang tidak boleh/dapat digunakan sebagai nama sinyal atau pengidentifikasi (identifier). Kata kunci dan pengidentifikasi yang didefenisikan pengguna/programmer TIDAK case sensitive (huruf-besar atau huruf-kecil diperlakukan sama). Baris komentar dimulai dengan dua tanda hubung berdekatan (-) dan akan diabaikan oleh compiler. VHDL juga mengabaikan jeda baris dan ruang ekstra (spasi, tab). VHDL adalah bahasa yang sangat menekankan jenis (type) data (strongly typed), yang menyiratkan bahwa seseorang harus selalu menyatakan jenis (type) setiap objek yang dapat memiliki nilai, seperti sinyal, konstanta dan variabel.

A. Deklarasi Entitas

Deklarasi entitas mendefinisikan NAMA entitas dan daftar port input dan output. Bentuk umumnya adalah sebagai berikut:

entity NAME_OF_ENTITY is generic generic_declarations);]
port (signal_names: mode type;
signal_names: mode type;
:
signal_names: mode type
);
end [NAME_OF_ENTITY] ;

Entitas selalu dimulai dengan kata kunci entity, diikuti oleh namanya dan kata kunci is. Berikutnya adalah deklarasi port menggunakan kata kunci port. Deklarasi entitas selalu berakhir dengan kata kunci end, tanda [] (opsional), dan diikuti dengan nama entitas.

1. NAME_OF_ENTITY adalah pengidentifikasi pilihan programmer
2. signal_names : terdiri dari daftar dipisahkan koma dari satu atau lebih pengidentifikasi pilihan programmer, yang menentukan sinyal antarmuka eksternal
3. Mode : adalah salah satu dari kata-kata reserved untuk menunjukkan arah sinyal

  • in – menunjukkan bahwa bersifat sinyal input
  • out – menunjukkan bahwa bersifat sinyal output dari entitas ini, yang nilainya hanya dapat dibaca oleh entitas luar lain yang menggunakannya.
  • buffer – menunjukkan bahwa sinyal output dari entitas ini, yang nilainya dapat dibaca dalam arsitektur entitas
  • inout – sinyal dapat menjadi masukan atau output.

4. Jenis (type): jenis sinyal standar atau yang didefinisikan programmer. Contohnya bit, bit_vector, Boolean, character, std_logic, dan std_ulogic.

  • bit – dapat memiliki nilai 0 dan 1
  • bit_vector – adalah vektor nilai bit (misalnya bit_vector (0 sampai 7)
  • std_logic , std_ulogic, std_logic_vector, std_ulogic_vector: dapat memiliki 9 nilai untuk menunjukkan nilai dan kekuatan sinyal. Std_ulogic dan std_logic lebih disukai daripada jenis bit atau bit_vector.
  • boolean – dapat memiliki nilai TRUE dan FALSE
  • integer – dapat memiliki rentang nilai integer
  • real – dapat memiliki rentang nilai yang nyata
  • karakter – karakter apapun cetak
  • waktu – untuk menunjukkan waktu

5. Generik (generic): deklarasi generik adalah opsional dan mendefinisikan konstanta lokal yang digunakan untuk pewaktuan dan ukuran (misalnya lebar bus) entitas. Sebuah generik dapat memiliki nilai default. Sintaks untuk umum berikut,
generic (
nama_konstanta: type [:= nilai];
nama_konstanta: type [:= nilai];
nama_konstanta: type [:= nilai]
);

Sebagai contoh untuk Gambar 2 sebelumnya (di halaman VHDL Level Abstraksi), deklarasi entitas-nya tampak sebagai berikut.

comments: contoh rangkaian buzzer di gbr. 2

entity BUZZER is
port ( DOOR, IGNITION, SBELT: in std_logic;
WARNING: out std_logic);
end BUZZER;

Entitas disebut BUZZER dan memiliki tiga port input , DOOR, IGNITION dan SBELT. Dan satu port output, WARNING. Perhatikan penggunaan dan penempatan titik koma!. BUZZER adalah nama pengidentifikasi. Masukan dinotasikan dengan kata kunci in, dan output dengan kata kunci OUT. Karena VHDL adalah bahasa menekankan jenis(type), tiap port memiliki jenis tertentu. Dalam hal ini, kita ditentukan jenisnya std_logic. Ini adalah jenis yang biasa digunakan sinyal digital.

Berbeda dengan jenis bit yang hanya dapat memiliki nilai-nilai ‘1 ‘dan ‘0’, jenis std_logic dan std_ulogic dapat memiliki sembilan nilai. Hal ini penting untuk menggambarkan sistem digital yang akurat karena mencakup nilai-nilai biner 0 dan 1, nilai tidak diketahui X, nilai tak ter-inisialisasi U,”-” untuk tidak peduli, Z untuk impedansi tinggi, dan beberapa simbol untuk menunjukkan kekuatan sinyal (misalnya L untuk 0 lemah, H untuk 1 lemah, W untuk lemah tak terdefinisi  –  lihat di bagian Enumerated Type).

Jenis std_logic didefinisikan dalam paket std_logic_1164 perpustakaan IEEE. Tipe mendefinisikan set nilai yang dapat dimiliki suatu objek. Ini memiliki keuntungan membantu dengan penciptaan model dan membantu mengurangi kesalahan. Sebagai contoh, jika seseorang mencoba untuk menetapkan nilai ilegal suatu objek, compiler akan menandai kesalahannya.

Beberapa contoh lain deklarasi entitas :

Multiplexer empat-ke-satu yang setiap masukan adalah kata 8-bit

entity mux4_to_1 is
port (I0,I1,I2,I3: in std_logic_vector(7 downto 0);
SEL: in std_logic_vector (1 downto 0);
OUT1: out std_logic _vector(7 downto 0)
);
end mux4_to_1;

Contoh deklarasi entitas dari flip-flop D dengan masukan set dan reset

entity dff_sr is
port (D,CLK,S,R: in std_logic;
Q,Qnot: out std_logic );
end dff_sr;

B. Bagian Arsitektur

Tubuh arsitektur menentukan bagaimana rangkaian beroperasi dan bagaimana hal itu diterapkan. Seperti telah dibahas sebelumnya, entitas atau rangkaian dapat dispesifikasikan/dimodelkan dalam berbagai cara, seperti perilaku, struktural (interkoneksi komponen), atau kombinasinya.

Tubuh arsitektur terlihat sebagai berikut,

architecture architecture_name of NAME_OF_ENTITY is
Declarations
— components declarations
— signal declarations
— constant declarations
— function declarations
— procedure declarations
— type declarations
:
begin
— Statements
:
end architecture_name;

Model Perilaku

Badan arsitektur untuk contoh pada Gambar 2 (di post sebelumnya), yang pada gambaran level perilaku, diberikan di bawah ini,

architecture behavioral of BUZZER is
begin WARNING <= ((not DOOR) and IGNITION) or ((not SBELT) and IGNITION);

end behavioral;

Baris header tubuh arsitektur mendefinisikan nama arsitektur, misalnya perilaku, dan rekan dengan entitas, BUZZER. Nama arsitektur dapat tindakan hukum identifier. Bagian utama arsitektur dimulai dengan kata kunci begin dan memberikan persamaan boolean dari fungsi. Kita akan lihat nanti bahwa model perilaku dapat dijelaskan dalam beberapa cara lain. Simbol “<=” merupakan operator penugasan dan memberikan nilai persamaan di sebelah kanannya  untuk ‘dimasukkan’ ke sinyal di sebelah kirinya. Tubuh arsitektur diakhiri dengan keyword end diikuti dengan nama arsitektur.

Sebuah contoh beberapa lainnya menyusul. Deskripsi perilaku dari input dua-DAN gerbang ditampilkan di bawah.

entity AND2 is
port (in1, in2: in std_logic;
out1: out std_logic);
end AND2;

architecture behavioral_2 of AND2 is
begin
out1 <= in1 and in2;
end behavioral_2;

Contoh dari gerbang XNOR dua input ditunjukkan di bawah ini.

entity XNOR2 is
port (A, B: in std_logic;
Z: out std_logic);
end XNOR2;

architecture behavioral_xnor of XNOR2 is
signal declaration (of internal signals X, Y)
signal X, Y: std_logic;
begin
X <= A and B;
Y <= (not A) and (not B);
Z <= X or Y;
End behavioral_xnor;

Persamaan dalam tubuh arsitektur menggunakan operator logika. Operator Logika yang diijinkan adalah: and, or, nand, nor, xor, xnor dan not. Selain operator itu, jenis lain termasuk operator relasional, shift, aritmatika diperbolehkan juga (lihat bagian pada Operator). Untuk informasi lebih lanjut tentang pemodelan perilaku lihat bagian Pemodelan Perilaku .

Ke-bersamaan-an (Concurrency)

Perlu menunjukkan bahwa penugasan-penugasan (assignments) sinyal pada contoh (XNOR2) di atas adalah pernyataan yang bersamaan. Ini menyiratkan bahwa penugasan tersebut dijalankan ketika satu atau lebih sinyal di sisi kanan mengubah nilainya (misalnya ada peristiwa pada salah satu sinyal). Sebagai contoh, bila input A berubah, sinyal internal X dan Y berubah nilainya, yang pada gilirannya menyebabkan pernyataan/persamaan (dibaris) terakhir untuk memperbarui output Z. Mungkin ada propagasi penundaan terkait dengan perubahan ini. Sistem digital pada dasarnya terkendali-data sehingga suatu peristiwa yang terjadi pada satu sinyal akan mengarah ke aktivitas pada sinyal lain, dan seterusnya. Pelaksanaan penugasan ditentukan oleh aliran nilai sinyal. Akibatnya, urutan penugasan yang diberikan tidak menjadi masalah (merubah baris pernyataan untuk keluaran Z menjadi sebelum pernyataan untuk X dan Y tidak mengubah hasilnya). Hal ini berbeda dengan program konvensional, program perangkat lunak yang menjalankan laporan secara berurutan atau prosedural.

VHDL : Level Abstraksi

Sebuah sistem digital dapat dijelaskan pada tingkat abstraksi yang berbeda [1]. Hal ini membuat deskripsi dan rancangan sistem yang kompleks mudah diatur. Gambar 1 menunjukkan berbagai tingkat abstraksi.

Gambar 1: Level abstraksi: Behavioral, Structural and Physical

Tingkat tertinggi adalah tingkat abstraksi perilaku yang menggambarkan sebuah sistem dalam hal apa yang dilakukannya (atau bagaimana berperilaku) dan bukan dalam hal komponen dan interkoneksi antara mereka. Penjelasan perilaku menentukan hubungan antara input dan sinyal output. Ini bisa menjadi ekspresi Boolean atau deskripsi yang lebih abstrak seperti tingkat Transfer Register atau Algoritma. Sebagai contoh, mari kita perhatikan sebuah rangkaian sederhana yang memperingatkan penumpang mobil kalau pintu terbuka atau sabuk pengaman tidak digunakan setiap kali kunci mobil dimasukkan/dinyalakan  ke dalam kunci pengapian. Pada tingkat perilaku, kasus ini bisa dinyatakan sebagai:

Peringatan = kunci_nyala DAN (pintu_terbuka ATAU seatbelt_terlepas)
atau
Warning = Ignition_on AND ( Door_open  OR  Seatbelt_off)

Tingkat struktural, di sisi lain, membahas sebuah sistem sebagai kumpulan gerbang dan komponen yang saling berhubungan untuk melakukan fungsi yang diinginkan. Gambaran struktural dapat dibandingkan dengan skematik dari gerbang logika yang saling berhubungan. Ini adalah representasi yang biasanya dekat dengan realisasi fisik sistem. Untuk contoh di atas, representasi struktural ditunjukkan pada Gambar 2 di bawah ini.

Gambar 2: representasi Struktural dari rangkaian "bel".

VHDL memungkinkan seseorang untuk menggambarkan sistem digital di tingkat struktural atau perilaku. Tingkat perilaku dapat dibagi lagi menjadi dua jenis gaya: aliran data (dataflow) dan algoritmik. Representasi aliran data menjelaskan bagaimana data bergerak melalui sistem. Hal ini biasanya dilakukan dalam hal aliran data antara register (Register transfer level). Model aliran data memanfaatkan laporan secara bersamaan yang dijalankan secara paralel segera setelah tiba di data input. Di sisi lain, pernyataan sekuensial dijalankan sesuai urutan yang ditetapkan. VHDL memungkinkan kedua jenis penugasan sinyal baik yang secara bersamaan (concurrent) ataupun berurutan (sequential) yang akan menentukan cara masing-masing dieksekusi dalam satu waktu. Contoh kedua representasi akan diberikan nanti.

ps: maaf kalo masih campur-campur indo-inggris karena cuma copy-translate-paste-edit

VHDL Perkenalan

Saya ingin membuat serangkaian tutorial mengenai desain IC. Disini saya ingin memulainya dengan pelajaran tentang bahasa VHDL. Sebelum menggunakannya, marilah kita mulai dari perkenalan. “tak kenal maka tak sayang”

VHDL adalah singkatan VHSIC (Sirkuit Terpadu berKecepatan Sangat Tinggi / Very High Speed Integrated Circuits) Bahasa Deskripsi Hardware / Hardware Description Language.

Pada pertengahan tahun 1980-an Departemen Pertahanan AS dan IEEE mensponsori perkembangan bahasa deskripsi perangkat keras dengan tujuan untuk mengembangkan sirkuit terintegrasi ber-kecepatan sangat tinggi. Bahasa ini sekarang telah menjadi salah satu bahasa standar industri yang digunakan untuk menjelaskan sistem digital.

Bahasa deskripsi perangkat keras lainnya yang banyak digunakan adalah Verilog. Keduanya adalah bahasa canggih yang memungkinkan Anda untuk menggambarkan dan mensimulasikan sistem digital yang kompleks. Bahasa HDL lainnya adalah ABEL (Bahasa Persamaan Boolean Lanjut / Advanced Boolean Equation Language) yang khusus dirancang  untuk Programmable Logic Devices (PLD). ABEL kurang kuat dibandingkan dengan dua bahasa lain dan kurang populer di industri.

Meskipun bahasa-bahasa ini terlihat mirip seperti bahasa pemrograman konvensional, ada beberapa perbedaan penting. Sebuah bahasa deskripsi hardware secara inheren paralel, yaitu perintah yang sesuai dengan gerbang logika, dapat dieksekusi (dihitung) secara paralel, begitu masukan baru tiba. Sebuah program HDL meniru perilaku sistem fisik, yang biasanya digital. Bahasa ini juga memungkinkan penggabungan spesifikasi waktu (penundaan(delay) gerbang logika) serta untuk menggambarkan sistem sebagai interkoneksi dari komponen-komponen yang berbeda.

Tutorialnya akan membahas menggunakanVHDL versi standar IEEE 1076-1993.

materi-materinya :

  • Tingkat representasi dan abstraksi
  • Struktur Dasar file VHDL
  • Unsur-unsur leksikal VHDL
  • Obyek Data: Sinyal Variabel dan Konstanta
  • Tipe Data
  • Operator
  • Pemodelan Perilaku : Pernyataan Sekuensial
  • Pemodelan Data Flow: Pernyataan Serentak/Paralel
  • Pemodelan secara Struktur

tutorial ini diambil dari  http://www.seas.upenn.edu/~ese201/vhdl/vhdl_primer.html

Pustaka:

  • D. Gajski and R. Khun, “Introduction: New VLSI Tools,” IEEE Computer, Vol. 16, No. 12, pp. 11-14, Dec. 1983.
  • M. Mano and C. Kime, “Logic and Computer Design Fundamentals,” 2nd Edition, Prentice Hall, Upper Saddle River, 2001.
  • S. Yalamanchili, “VHDL Starter’s Guide,” Prentice Hall, Upper Saddle River, 1998.
  • J. Bhasker, “VHDL Primer,” 3rd Edition, Prentice Hall, Upper Saddle River, 1998.
  • P. J. Ashenden, “The Student’s Guide to VHDL,” Morgan Kaufmann Publishers, Inc, San Francisco, 1998.
  • A. Dewey, “Analysis and Design of Digital Systems,” PWS Publishing Company, New York, 1997.
  • C. H. Roth, “Digital System Design using VHDL”, PWS Publishing Company, New York, 1998.
  • D. Pellerin and D. Taylor, “VHDL Made Easy!”, ,” Prentice Hall, Upper Saddle River, 1997.
  • VHDL Reference Guide, Xilinx, Inc., 1999 (available on line: http://toolbox.xilinx.com/docsan/  (select Foundation Series)

Being lecturer, educating or degrading ?

Someday, suddenly, a lecturer of my college in ITB text me “do you still want to being a lecturer?”
I quickly replied “yes I am, what’s the matter sir?”
And my question left unanswered.
Today, the very same lecturer put this in his facebook :
http://www.lambdassociates.org/blog/decline.htm
The point of the article is, that the author left his position as professor in some UK university, because he feels like he had lived in series of lie. He had taken part of shifting university education into ‘degraded,commercial-supporting,non-sense-research’ bunch of lie.
Tonight, I remember that my doctoral-promotor-will-be mr. Armein ZR Langi said “at first, you should define what will your doctoral entitlement for!, shall it for applying to be lecturer, you should reconsider your purpose”.
I don’t know, maybe he was right, maybe the article is right. But in other side, I still enjoy lecturing in ‘those’ campusses.

Mobile Phone

Komunikasi adalah kebutuhan yang nyata bagi orang modern, termasuk saya.
Dulu, pertama kali punya handphone, T10 nya ericson, warisan dari bapak saya, begitu bangganya bisa termasuk orang modern. Itu pun baru sekitar tahun 2001. Beli kartu SIM operatornya pun masih dengan harga selangit, dan nyari di iklan koran pula. Betapa sillynya kalo dibandingkan harga SIM-card sekarang yang seperti kacang goreng: harga 5000, dapet pulsa 50.000, dan di jual di gerai yang ada di tiap 200m jalan.
Dan akhirnya T10 itu telah melewati masanya, digantikan dengan handphone merk Siemens yg saya lupa tipenya. Itupun dibeli dengan duit sendiri dengan harga mahal (dibanding dengan harga handphone saat ini). Banyak kelebihannya dibanding T10 saya sebelumnya, tapi yang penting adalah faktor beli sendiri-nya.
Saya termasuk orang yang setia, yang memilih sesuatu untuk dimiliki sampai habis masanya (rusak). Tidak seperti sebagian orang lain yang cenderung ‘update’, tiap 6 bulan sekali ganti handphone walau yang sebelumnya masih sangat-sangat layak pakai. Dan total kedua handphone saya ini bertahan 6 tahun.
Kerusakan di si Siemens ini sedemikian parah, sampai ‘cewe’ saya harus meminjami salah satu handphone nya agar tetap dapat berkomunikasi. Maka dengan terpaksalah saya membeli handphone ‘bekas’.
Handphone ketiga ini pun masih merek Siemens yang saya juga lupa tipenya. Karena saat itu pasar handphone sudah cukup marak, harganya cukup sangat murah dibanding dua pendahulunya, dengan fungsi dan fitur lebih bagus. Tapi masih ada satu kelemahannya menurut kebutuhan saya, phonebooknya masih sedikit, masih hanya 100 kontak. Sedangkan pada waktu itu (tahun 2007an), perkembangan relasi saya sudah jauh melampaui kapasitas kontak yang tersedia.
Maka bulan oktober 2008 saya beli HP baru. Ya, handphone (mungkin lebih tepat disebut smart-phone) bermerk HP (Hewlet Packard) tipenya ipaq business navigator. Memory (hampir) tak terbatas, bisa simpen segala file2 foto, mp3, dll. Semua sms dari tanggal pembelian (berumur 2 tahun) masih utuh tersimpan, touchscreen, pokoknya asik deh. Sampai satu saat di bulan November 2010, dia sekarat gara-gara desain user interface tombolnya yg kurang baik. Dan semua data yang ada di HP itu belum saya recover.
Maka muncullah era baru : Blackberry. Saya beli BB lebih karena dorongan seorang ‘oknum’ yang ternyata ‘mendahului’ saya punya BB. walau memang sebelumnya, saya merasa sudah ada kebutuhan akses internet mobile lewat BB. Sekarang, saya jadi sering chat sama si dia, update berita dari kompas, dan bahkan menulis blog lagi.
Memang, kami, beberapa technologist sudah mengira bahwa era BB akan berakhir sekitar 2-3 tahun lagi, tergusur android. Kisah ini juga sama seperti era ‘Bapak’ Nokia-Symbian yang kalah menghadapi pemuda BB dan bayi Android beberapa waktu lalu. Tapi, saya cukup realistis, dengan kebutuhan online sekarang & keadaan internet di negara ini yg mengkhawatirkan, pilihan saat ini baru BB.

Bagi PIN nya dong !

Ramadhan : kesempatan

Untuk orang-orang beriman, ramadhan adalah kesempatan untuk mendapatkan derajat taqwa.
Untuk pengemis atau yang mau berprofesi sebagai-nya, ramadhan merupakan waktu yang baik untuk ‘meraih pelanggan’.
Untuk petualang politik (yg mau deket pemilu), ramadhan juga jadi ajang ygbaik untuk meraih simpati massa, memperbaiki citra atau tebar pesona.

lingkaran kerabat

sebanyak apa sahabatmu ?
berapa banyak orang yang menemanimu saat bahagia ?
berapa banyak yang menemanimu saat sedih ?
seberapa banyak yang rela mati membelamu ?

kerabat disekitarku ada beberapa jenis (berdasar proritas):

1. lingkaran terdalam : ‘kapanpun dan dimanapun kau membutuhkanku, aku akan ada disisimu secepatnya’. baru 2 orang yang kuberikan secara lisan, komitmen terbesarku ini. apapun yang terjadi di antara kita, janji itu tetap berlaku.

2. lingkaran keluarga : keluarga inti-ku, melalui pernikahan dengan keluargaku, dan kerabat dekat keluarga.

3. lingkaran sahabat: beberapa orang yang mengenalku luar-dalam, mengerti sifatku, dan memaklumi kelemahanku. indra, edi, eko, arie, bayur, igun, apur, kuda, fifi. ‘anything for u guys, but u know my priorities. didn’t u?’

4. lingkaran teman : banyak orang yang mengenalku cukup baik, tapi biasanya masih parsial. entah karena manipulasi gw atau merekanya aja yang kurang dekat. biasanya sudah sampai tahu jeleknya diriku. ‘tim aceh’, el-98, sebagian sia-8, S2-ME-04, vlsi-er, labdasar.
5. lingkaran masyarakat : orang umum yang kebetulan hidupnya bersinggungan dengan hidupku.

ucapan2-nya biasanya :
– “kalau ada apa2, kalau kau sakit, atau darurat, kasih tau aku ya !” –> (no.1)
– “apa sih yang ngga buat loe ???….. (segalanya, hahaha)” –> (no.3)

kalo ada yang ngerasa, inget aja : daku susah membuat janji, tapi kalau sudah terucap, tak ada yang bisa membatalkannya.

semoga kau mengerti

« Older entries