<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ndoWare &#187; FPGA</title>
	<atom:link href="http://ndoware.com/kategori/fpga/feed" rel="self" type="application/rss+xml" />
	<link>http://ndoware.com</link>
	<description>Referensi Teknologi dan Elektronika Indonesia</description>
	<lastBuildDate>Fri, 18 Mar 2011 02:38:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Perbedaan FPGA dengan CPLD</title>
		<link>http://ndoware.com/perbedaan-fpga-dengan-cpldal.html</link>
		<comments>http://ndoware.com/perbedaan-fpga-dengan-cpldal.html#comments</comments>
		<pubDate>Mon, 30 Nov 2009 08:04:38 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[CPLDal]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=2155</guid>
		<description><![CDATA[Field Programmable Gate Array (FPGA) pertama kali diperkenalkan oleh Xilinx pada pertengahan  tahun 1980. FPGA berbeda dengan CPLD dari segi arsitektur, teknologi penempatan ruang, dan segi biaya. Selain itu, FPGA lebih ditekankan untuk implementasi sirkuit besar yang kompleks serta memiliki tingkat kegunaan dan kerumitan tinggi.
Arsitektur dasar sebuah FPGA ditunjukkan pada gambar 1. Seperti terlihat, gambar [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (14)--></li>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (9.2)--></li>
		<li><a href="http://ndoware.com/perbedaan-pal-dan-pla.html" rel="bookmark">Perbedaan PAL dan PLA</a><!-- (8.3)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p>Field Programmable Gate Array (FPGA) pertama kali diperkenalkan oleh Xilinx pada pertengahan  tahun 1980. FPGA berbeda dengan CPLD dari segi arsitektur, teknologi penempatan ruang, dan segi biaya. Selain itu, FPGA lebih ditekankan untuk implementasi sirkuit besar yang kompleks serta memiliki tingkat kegunaan dan kerumitan tinggi.</p>
<p>Arsitektur dasar sebuah FPGA ditunjukkan pada <strong>gambar 1</strong>. Seperti terlihat, <strong>gambar 1</strong> terdiri atas susunan CLB (Configure Logic Blocks) yang saling terhubung dengan susunan <em>switch matrix</em>.</p>
<p style="text-align: center"><img class="size-full wp-image-2156 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/11/CLB.JPG" alt="CLB" width="316" height="258" /></p>
<p style="text-align: center"><strong>Gambar 1 Arsitektur FPGA</strong></p>
<p>Arsitektur internal dari CLB FPGA berbeda dengan arsitektur yang terdapat pada PLD. Apa bedanya? Pertama, sebagai ganti dari implementasi ekspresi SOP dengan gerbang AND yang diikuti gerbang OR (seperti terdapat pada SPLD), maka digunakanlah sebuah LUT (lookup table). Kedua, jumlah flip-flop di dalam FPGA lebih banyak daripada di dalam CPLD. Selain itu, FPGA memiliki bentuk sirkuit lebih canggih. Akibatnya, FPGA memungkinkan adanya fungsi sekuensial yang lebih baik dibanding CPLD. Tambahan lagi, FPGA memiliki dukungan JTAG dan antarmuka untuk berbagai tingkat logika yang berbeda. Selain itu, di dalam chip FPGA juga terdapat memori berupa SRAM, beberapa detak (PLL atau DLL), serta antarmuka untuk PCI. Beberapa chip FPGA juga menyertakan tambahan blok, seperti <em>multipliers</em>, <em>DSP</em>, dan <em>microprocessors</em>.</p>
<p>Perbedaan penting lain yang membedakan FPGA dengan CPLD adalah pada ruang penyimpanan interkoneksi. Jika CPLD bersifat non-volatile dan menggunkan antifuse, EEPROM, flash, dsb. maka FPGA menggunakan SRAM, dan itu bersifat volatile. Pendekatan ini mampu menyimpan ruang dan biaya yang lebih rendah dari sebuah chip biasa karena FPGA mampu memberikan interkoneksi bersifat <em>programmable</em> tapi masih membutuhkan ROM eksternal. Namun ada FPGA yang non volatile (dengan menggunakan antifuse) dan lebih menguntungkan ketika pemrograman ulang (<em>reprogrammable</em>) tidaklah dibutuhkan.</p>
<p>FPGA merupakan alat yang sangat canggih dimana chipnya diproduksi dengan standar teknologi CMOS 0,09 mm dan 9 lapis tembaga serta tersedia lebih dari 1000 pin I/O. Beberapa contoh FPGA digambarkan pada <strong>gambar 2</strong> dimana FPGA paling kiri yang berukuran paling kecil memiliki 64 pin, FPGA yang berada di tengah dan berukuran sedang memiliki 324 pin. Sedangkan FPGA paling besar, yang berada di sebelah kanan memiliki 1.152 pin.</p>
<p style="text-align: center"><img class="aligncenter" src="../wp-content/uploads/2009/11/ukuran-fpga.JPG" alt="ukuran fpga" width="257" height="113" /></p>
<p style="text-align: center"><strong>Gambar 2 Berbagai macam ukuran FPGA</strong></p>
<p>Beberapa perusahaan pembuat FPGA adalah Xilinx, Actel, Altera, Quicklogic, Atmel, dsb. Contoh FPGA yang berasal dari dua perusahaan besar (Xilinx dan Actel) digambarkan pada <strong>tabel 1</strong>. Seperti yang terlihat pada <strong>tabel 1</strong>, kedua FPGA tersebut memiliki beribu-ribu flip-flop dan beberapa juta gerbang.</p>
<p style="text-align: center"><strong>Tabel 1</strong></p>
<p style="text-align: center"><img class="size-full wp-image-2158 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/11/tabel-xilinx.JPG" alt="tabel xilinx" width="497" height="406" /><img class="size-full wp-image-2159 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/11/tabel-actel.JPG" alt="tabel actel" width="490" height="294" /></p>
<p>Catatan, bahwa semua FPGA buatan Xilinx bersifat volatile (membutuhkan ROM eksternal) dan menggunakan SRAM untuk menyimpan interkoneksi sehingga bersifat <em>reprogrammable</em>. Di sisi lain, FPGA buatan Actel bersifat non-volatile(menggunakan antifuse) dan bersifat <em>non-reprogrammable</em>(kecuali keluarga jenis tertentu yang mengunakan memory flash).</p>
<p>Referensi : <em>Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press</em>.</p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=2155&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (14)--></li>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (9.2)--></li>
		<li><a href="http://ndoware.com/perbedaan-pal-dan-pla.html" rel="bookmark">Perbedaan PAL dan PLA</a><!-- (8.3)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/perbedaan-fpga-dengan-cpldal.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPLD (Complex PLD)</title>
		<link>http://ndoware.com/cpld-complex-pld.html</link>
		<comments>http://ndoware.com/cpld-complex-pld.html#comments</comments>
		<pubDate>Wed, 25 Nov 2009 04:43:02 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Complex PLD]]></category>
		<category><![CDATA[CPLD]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=2144</guid>
		<description><![CDATA[
Arsitektur dasar dari pembuatan CPLD dapat dilihat pada gambar CPLD. Seperti yang terlihat, CPLD terdiri atas beberapa PLD(pada umumnya bertipe GAL) yang dibuat sebagai sebuah kesatuan chip. CPLD juga memiliki matriks pengubah yang berifat programmable yang berfungsi untuk menghubungkan PLD satu sama lain dan juga menghubungkannya dengan pin I/O. Selain itu, CPLD juga memiliki beberapa [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (13.5)--></li>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (6)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in" align="justify">Arsitektur dasar dari pembuatan CPLD dapat dilihat pada gambar CPLD. Seperti yang terlihat, CPLD terdiri atas beberapa PLD(pada umumnya bertipe GAL) yang dibuat sebagai sebuah kesatuan chip. CPLD juga memiliki matriks pengubah yang berifat programmable yang berfungsi untuk menghubungkan PLD satu sama lain dan juga menghubungkannya dengan pin I/O. Selain itu, CPLD juga memiliki beberapa ciri khas tambahan, seperti:dukungan JTAG, antar muka(interface) untuk daya standar logika yang lain (1,8 V, 2,5 V, 5 V, dsb).</p>
<p style="margin-bottom: 0in;text-align: center" align="justify"><img class="size-full wp-image-2145 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/11/CPLD.JPG" alt="CPLD" width="331" height="349" /></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in" align="center">Gambar Arsitektur  CPLD</p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in" align="justify">Salah satu contoh CPLD adalah XC9500 buatan Xilinx. CPLD jenis ini mengandung n PLD di mana n = 2,4,6,8,12,16.Ttiap-tiap PLD tersebut memiliki arsitektur mirip dengan GAL seri 36V18(mirip seperti arsitektur GAL 16V8, gambar tulisan yang lalu) memiliki 36 input dan 18 output, termasuk 16 input dan 8 output sehingga masing-masing terdapat 18 macrocell.</p>
<p style="margin-bottom: 0in" align="justify">Beberapa perusahaan pembuat CPLD adalah Altera, Xilinx, Lattice, Atmel, Cypress, dsb. Contoh CPLD buatan dua perusahaan besar, Xilinx dan Altera ditunjukkan pada tabel berikut. Seperti yang terlihat, lebih dari 500 macrocell dan 10.000 gerbang dapat ditemukan pada masing-masing CPLD.</p>
<p style="margin-bottom: 0in" align="justify">
<p style="margin-bottom: 0in" align="justify">
<p style="margin-bottom: 0in" align="justify">
<p style="margin-bottom: 0in;text-align: center">Tabel spesifikasi CPLD buatan Altera</p>
<p style="margin-bottom: 0in;text-align: center"><img class="aligncenter size-full wp-image-2146" src="http://ndoware.com/wp-content/uploads/2009/11/Altera-CPLD.JPG" alt="Altera CPLD" width="714" height="340" /></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in" align="center">Tabel spesifikasi CPLD buatan Xilinx</p>
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in;text-align: center"><img class="aligncenter size-full wp-image-2147" src="http://ndoware.com/wp-content/uploads/2009/11/Xilinx-CPLD.JPG" alt="Xilinx CPLD" width="689" height="369" /></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in" align="center">
<p style="margin-bottom: 0in" align="justify">Referensi : <em>Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</em></p>
<p style="margin-bottom: 0in" align="justify">
<p style="margin-bottom: 0in" align="center"><strong><br />
</strong></p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=2144&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (13.5)--></li>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (6)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/cpld-complex-pld.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAL (Generic PAL)</title>
		<link>http://ndoware.com/gal-generic-pal.html</link>
		<comments>http://ndoware.com/gal-generic-pal.html#comments</comments>
		<pubDate>Fri, 13 Nov 2009 13:09:48 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[GAL]]></category>
		<category><![CDATA[Generic]]></category>
		<category><![CDATA[PAL]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=2045</guid>
		<description><![CDATA[Arsitektur GAL(Generic PAL) diperkenalkan oleh Lattice pada awal tahun 1980-an. GAL berisi beberapa pengembangan penting dari rancangan PAL yang pertama kali, yaitu
1. Adanya tambahan berupa sel output (dinamakan Macrocell) yang berisi flip-flop, beberapa gerbang logika dasar dan multiplekser. Macrocell sendiri bersifat programmable sehingga bisa dioperasikan dengan beberapa cara.
2. Adanya sebuah sinyal feedback dari Macrocell ke [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-pal-dan-pla.html" rel="bookmark">Perbedaan PAL dan PLA</a><!-- (6.9)--></li>
		<li><a href="http://ndoware.com/mengenal-programmable-logic-devices-pld.html" rel="bookmark">Mengenal Programmable Logic Devices (PLD)</a><!-- (6.6)--></li>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (5.2)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p>Arsitektur <strong>GAL</strong>(<strong>Generic PAL</strong>) diperkenalkan oleh Lattice pada awal tahun 1980-an. GAL berisi beberapa pengembangan penting dari rancangan PAL yang pertama kali, yaitu</p>
<p>1. Adanya tambahan berupa sel output (dinamakan <strong>Macrocell</strong>) yang berisi flip-flop, beberapa gerbang logika dasar dan multiplekser. Macrocell sendiri bersifat programmable sehingga bisa dioperasikan dengan beberapa cara.</p>
<p>2. Adanya sebuah sinyal <em>feedback</em> dari Macrocell ke susunan yang bersifat programmable. Hal ini menyebabkan kemampuan sirkuit lebih beraneka ragam.</p>
<p>3. Adanya EEPROM yang lebih baik daripada sekedar PROM atau EPROM. Sebuah penanda elektronik untuk identifikasi juga merupakan salah satu pengembangan chip dari PAL ke GAL.</p>
<p>Pada perkembangan awal, GAL hanya berupa SPLD(Simple PLD) yang masih dihasilkan dalam paket terpisah. Selanjutnya, GAL kemudian dilengkapi dengan berkas dasar yang terdapatsecara umum pada CPLDs(kecuali pada <em>CPLD Cool Runner</em> dimana masih menggunakan standar PLA).</p>
<p>Pada <strong>gambar A3</strong> ditunjukkan salah satu contoh GAL, yakni GAL 16V8(V berarti versatile). GAL 16V8 total memiliki 20 pin dimana ada 16 input, 8 output(yang lain berupa VCC dan GND). Sedangkan untuk konfigurasi chipnya sebagai berikut:</p>
<ul>
<li>8 pin yaitu kaki no 2 s/d 9 adalah pin IN</li>
<li>8 pin yaitu kaki no 12 s/d 19 adalah pin IN/OUT</li>
<li>1 pin yaitu kaki no 1 adalah pin CLK</li>
<li>1 pin yaitu kaki no 11 adalah pin OE/ Output Enable</li>
<li>1 pin yaitu kaki no 20 adalah pin VCC</li>
<li>1 pin yaitu kaki no 10 adalah pin GND</li>
</ul>
<p style="text-align: center"><img class="size-full wp-image-2046  aligncenter" src="http://ndoware.com/wp-content/uploads/2009/11/GAL.JPG" alt="GAL" width="489" height="685" /></p>
<p align="center"><strong>Gambar A3-GAL(Generic PAL)</strong></p>
<p>Pada tiap-tiap output terdapat Macrocell(setelah gerbang OR) yang berisi flip-flop, gerbang logika dasar, dan juga multiplekser. Sebuah sinyal feedback dapat dilihat dari macrocell ke susunan yang bersifat programmable(lebih jelas, silahkan perhatikan gambar). Kemudian, sambungan yang bersifat <em>programmable</em> ditunjukkan dengan bulatan kecil. Perhatikan bahwa arsitektur tersebut menyerupai secara langsung bentuk dari PAL, kecuali adanya macrocell pada tiap-tiap output dan adanya siyal feedback.</p>
<p>GAL menggunakan teknologi CMOS untuk masalah daya yaitu sebesar 3,3 V, adanya teknologi EEPROM atau flash serta maksimum frekuensi sekitar 250 MHz. Beberapa perusahaan yang memproduksi GAL adalah Lattice, Atmel, TI, dsb.</p>
<p><em>Referensi : Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</em></p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=2045&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-pal-dan-pla.html" rel="bookmark">Perbedaan PAL dan PLA</a><!-- (6.9)--></li>
		<li><a href="http://ndoware.com/mengenal-programmable-logic-devices-pld.html" rel="bookmark">Mengenal Programmable Logic Devices (PLD)</a><!-- (6.6)--></li>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (5.2)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/gal-generic-pal.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perbedaan PAL dan PLA</title>
		<link>http://ndoware.com/perbedaan-pal-dan-pla.html</link>
		<comments>http://ndoware.com/perbedaan-pal-dan-pla.html#comments</comments>
		<pubDate>Mon, 02 Nov 2009 09:56:55 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[PAL]]></category>
		<category><![CDATA[PLA]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=2035</guid>
		<description><![CDATA[PAL (Programmable Array Logic)
Chip PAL (Programmable Array Logic) mulai diperkenalkan oleh Monolithic Memories pada pertengahan tahun 1970-an. Arsitektur dari PAL sendiri digambarkan seperti gambar A1, dimana terdapat bulatan kecil pada gambar yang menunjukkan hubungan yang bersifat programmable. Seperti yang terlihat, sirkuit tersebut terdiri dari susunan gerbang AND yang bersifat programmable, diikuti oleh susunan yang teratur [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (9.6)--></li>
		<li><a href="http://ndoware.com/gal-generic-pal.html" rel="bookmark">GAL (Generic PAL)</a><!-- (8.1)--></li>
		<li><a href="http://ndoware.com/mengenal-programmable-logic-devices-pld.html" rel="bookmark">Mengenal Programmable Logic Devices (PLD)</a><!-- (5)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;">PAL (Programmable Array Logic)</span></p>
<p>Chip PAL (<em>Programmable Array Logic</em>) mulai diperkenalkan oleh Monolithic Memories pada pertengahan tahun 1970-an. Arsitektur dari PAL sendiri digambarkan seperti <strong>gambar A1</strong>, dimana terdapat bulatan kecil pada gambar yang menunjukkan hubungan yang bersifat <em>programmable</em>. Seperti yang terlihat, sirkuit tersebut terdiri dari susunan gerbang AND yang bersifat programmable, diikuti oleh susunan yang teratur dari gerbang OR.</p>
<p>Implementasi dari <strong>gambar A1</strong> berdasar atas fakta bahwa beberapa fungsi kombinasional dapat digambarkan lewat <strong>Sum-of-Product (SOP)</strong>. Misalkan jika a<sub>1</sub>, a<sub>2</sub>, a<sub>3</sub>,…, a<sub>N</sub> adalah input logika dari PAL,  maka beberapa output kombinasional, <em>x</em> dapat dihitung dengan</p>
<p align="center"><em>x</em> = m<sub>1</sub>+m<sub>2</sub>+m<sub>3</sub>+…+m<sub>M </sub>;</p>
<p>Dimana m = f<sub>1</sub> (a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,…a<sub>N</sub>) adalah bentuk minterm dari fungsi <em>x</em>. Misalkan,</p>
<p><em>x</em> = a<sub>1</sub>a<sub>2 </sub>+ a<sub>2</sub>a<sub>3a</sub><sub> 4 </sub>+ a<sub>1</sub>a<sub>2</sub>a<sub>3</sub>a<sub>4</sub><sub> </sub> &#8211;&gt; bentuk SOP (<em>Sum of Product</em>)</p>
<p style="text-align: center"><img class="size-medium wp-image-2036 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/10/PAL-295x300.jpg" alt="PAL" width="295" height="300" /></p>
<p align="center"><strong>Gambar A1</strong></p>
<p>Oleh karena itu, produk minterm dapat diperoleh lewat gerbang AND, dimana outputnya dihubungkan dengan gerbang OR untuk menghitung penjumlahan. Dengan demikian, maka diperoleh penjelasan tentang implementasi persamaan SOP.</p>
<p>Kendala utama dari impelementasi ini adalah kenyataan bahwa cara ini hanya memperbolehkan adanya fungsi kombinasional. Untuk mengatasi hal tersebut, dimunculkanlah <em>registered PAL</em> pada akhir tahun 1970-an. Pada <em>registered PAL</em> terdapat tambahan berupa sebuah flip flop di tiap-tiap output (setelah gerbang OR pada <strong>gambar A1</strong>). Dengan demikian, sebuah implementasi fungsi sekuensial dapat diperoleh dan dijalankan dengan baik.</p>
<p>Contoh chip PAL yang cukup terkenal adalah PAL16L8. Chip tersebut memiliki 16 input, 8 output (meskipun hanya ada 18 pin I/O yang benar-benar ada karena hanya ada 20 pin, dimana hanya ada 10 pin IN, 2 pin OUT, dan 6 pin IN/OUT (dua arah/bidirectional) serta VCC dan GND). Chip ini dikenal oleh khalayak umum dengan sebutan chip 16R8(R sebagai singkatan dari registered). Pada awalnya, teknologi yang digunakan dalam pembuatan PAL adalah bipolar, dengan daya sebesar 5 V dan konsumsi arus sekitar 200mA. Sedangkan maximum frekuensinya sebesar 100 MHz dan sel <em>programmable </em>nya adalah tipe PROM atau EPROM.</p>
<p><span style="text-decoration: underline;">PLA (Programmable Logic Array)</span></p>
<p>Chips PLA(Programmable Logic Array), diperkenalkan pada tahun 1970-an oleh Signetics. Arsitektur dasar dari PLA digambarkan secara jelas pada <strong>gambar A2</strong>. Bandingkan dengan gambar A1, perbedaan mendasar yang terlihat jelas diantara gambar tersebut adalah jika pada PAL terdapat sambungan yang bersifat <em>programmable</em> pada gerbang AND dan kemudian tersambung dengan gerbang OR. Sedangkan jika pada PLA, pada gerbang AND serta gerbang OR terdapat sambungan yang sama-sama bersifat <em>programmable</em>. Hal ini tentu saja menguntungkan karena didapat tingkat fleksibilitas yang tinggi. Selain itu, waktu konstan pada tiap titik terendah internal pada sirkuit juga akan meningkat, yang artinya waktu yang digunakan semakin sedikit sehingga makin efisisen.</p>
<p style="text-align: center"><img class="size-medium wp-image-2037 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/10/PLA-300x256.jpg" alt="PLA" width="300" height="256" /></p>
<p style="text-align: center"><strong>Gambar A2</strong></p>
<p>Chip PLA yang cukup terkenal adalah Signetics PLS161. Chip tersebut berisi 12 input dan 8 output, dimana baik input AND dan OR semuanya bersifat <em>programmable</em>. Bila dihitung, total ada 48 dari 12 input gerbang AND yang tersedia, dan diikuti oleh 48 input gerbang OR sejumlah 8 buah(lebih lengkap, lihat <strong>gambar 2</strong>). Sebagai output, gerbang XOR yang bersifat <em>programmable</em> juga disediakan sebagai tambahan.</p>
<p>Teknologi yang dipakai pada pembuatan PLA mirip dengan PAL. Meskipun PLA saat ini sudah usang, teknologi pada PLA muncul kembali baru-baru ini sebagai berkas pembuatan pada keluarga pertama dari CPLDs yang berdaya rendah, the CoolRunner family.</p>
<p><strong>Referensi</strong> : Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=2035&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (9.6)--></li>
		<li><a href="http://ndoware.com/gal-generic-pal.html" rel="bookmark">GAL (Generic PAL)</a><!-- (8.1)--></li>
		<li><a href="http://ndoware.com/mengenal-programmable-logic-devices-pld.html" rel="bookmark">Mengenal Programmable Logic Devices (PLD)</a><!-- (5)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/perbedaan-pal-dan-pla.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mengenal Programmable Logic Devices (PLD)</title>
		<link>http://ndoware.com/mengenal-programmable-logic-devices-pld.html</link>
		<comments>http://ndoware.com/mengenal-programmable-logic-devices-pld.html#comments</comments>
		<pubDate>Tue, 27 Oct 2009 01:42:10 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[PLD]]></category>
		<category><![CDATA[Programmable]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=2008</guid>
		<description><![CDATA[Programmable Logic Devices (PLDs) diperkenalkan pada pertengahan tahun 1970-an. Konsep dasar dari PLD sendiri adalah bagaimana membuat sebuah sirkuit logika kombinasional yang bersifat programmable (mampu diprogram). Perlu diingat, sirkuit kombinasional merupakan sirkuit yang di dalamnya tidak memiliki elemen memori. Hal ini berbeda dengan microprocessor yang mampu menjalankan sebuah program, namun nantinya mempengaruhi perangkat keras yang [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (7.7)--></li>
		<li><a href="http://ndoware.com/gal-generic-pal.html" rel="bookmark">GAL (Generic PAL)</a><!-- (6.3)--></li>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (6.2)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p style="text-align: left">Programmable Logic Devices (PLDs) diperkenalkan pada pertengahan tahun 1970-an. Konsep dasar dari PLD sendiri adalah bagaimana membuat sebuah sirkuit logika kombinasional yang bersifat programmable (mampu diprogram). Perlu diingat, sirkuit kombinasional merupakan sirkuit yang di dalamnya tidak memiliki elemen memori. Hal ini berbeda dengan microprocessor yang mampu menjalankan sebuah program, namun nantinya mempengaruhi perangkat keras yang telah sudah ditentukan terlebih dahulu. Sedangkan kemampuan pemrograman PLD sudah direncanakan pada tingkat perangkat keras. Dengan kata lain, PLD adalah sebuah chip yang memiliki tujuan utama agar nantinya mampu mengatur perangkat keras sedemikain rupa sesuai dengan speseifikasinya.</p>
<p style="text-align: center"><img class="size-medium wp-image-2007 alignnone" src="http://ndoware.com/wp-content/uploads/2009/10/gambar-PLD-141x300.gif" alt="gambar PLD" width="141" height="300" /></p>
<p style="text-align: center">Programmable Logic Devices</p>
<p style="text-align: left">Generasi PLD yang pertama dikenal dengan nama PAL (<em>Programmable Array Logic</em>) atau PLA (<em>Progrramable Logic Array</em>), tergantung pada bentuk skema pemrogramannya. PAL/PLA biasanya hanya menggunakan gerbang logika (tidak ada flip flop), serta hanya memperbolehkan implementasi dari sebuah sirkuit kombinasional saja. Untuk menyelesaikan masalah ini, maka dibuatlah PLD yang telah memiliki sebuah flip-flop pada tiap output sirkuitnya. Dengan demikian, fungsi sekuensial sederhana dapat diimplementasikan dengan baik (bukan lagi hanya funsi kombinasional saja).</p>
<p style="text-align: left">Selanjutnya, pada awal tahun 1980-an, tambahan untaian logika ditambahkan pada tiap-tiap output PLD. Output baru tersebut diberi nama <strong>Macrocell</strong> yang diisi flip-flop, gerbang logika dan multiplekser. Selain itu, <em>Macrocell</em> sendiri juga bersifat <em>programmable</em>. Apalagi pada <em>cell</em> tersebut disediakan sinyal <em>feedback</em> yang berasal dari output sirkuit ke <em>progrramable array</em>. Sinyal tersebut nantinya akan memberikan PLD tingkat fleksibilitas yang lebih tinggi. Struktur baru dari PLD inilah yang kemudian secara umum diberi nama <strong>PAL</strong> (GAL). Arsitektur yang serupa juga dikanal dengan sebutan <strong>PALCE</strong> (<em>PAL CMOS Electrically erasable/programmable</em>). Semuanya (baik PAL, PLA, PLD, maupun GAL/PALCE) secara umum kini lazim disebut sebagai <strong>SPLDs(Simple PLDs)</strong></p>
<p style="text-align: center"><strong><img class="aligncenter size-medium wp-image-2009" src="http://ndoware.com/wp-content/uploads/2009/10/macrocell-300x205.jpg" alt="macrocell" width="300" height="205" /></strong></p>
<p style="text-align: center">Macrocell</p>
<p style="text-align: left">Berikutnya, beberapa perlangkapan GAL dibuat pada chip yang sama dengan menggunakan penjaluran (routing) yang lebih canggih, menggunakan teknologi silikon yang lebih rumit serta beberapa tambahan yang menjadi ciri khas, seperti dukungan JTAG, dan antarmuka untuk beberapa standar logika. Pendekatan ini kemudian dikenal dengan nama <strong>CPLD (Complex PLD)</strong>. CPLD saat ini lebih tekenal karena kepadatan (<em>density</em>) yang tinggi, hasil yang memuaskan, dan biaya yang cukup rendah (CPLD dapat dibeli dengan harga kisaran 1 dolar saja).</p>
<p style="text-align: center"><img class="size-medium wp-image-2010 alignnone" src="http://ndoware.com/wp-content/uploads/2009/10/cpld2-296x300.jpg" alt="cpld2" width="250" height="254" /></p>
<p style="text-align: center">CPLD</p>
<p style="text-align: left">Akhirnya, pada pertengahan 1980-an, FPGA(Field Proframmable Gate Arrays) mulai diperkenalkan. FPGA berbeda dari CPLDs dari segi arsitektur, teknologi, ciri khas serta dari segi biaya. FPGA utamanya ditujukan untuk implementasi yang membutuhkan ukuran besar besar, serta  untuk sirkuit yang memiliki kemampuan tinggi.</p>
<p style="text-align: center">Dari penjelasan singkat di atas, dapat disingkat sejarah evolusi PLD pada tabel berikut :<img class="size-medium wp-image-2011 aligncenter" src="http://ndoware.com/wp-content/uploads/2009/10/tabel-300x104.jpg" alt="tabel" width="300" height="104" /></p>
<p>Perlu diingat, semua jenis PLD (baik simpel atau kompleks) bersifat non-volative. Mereka semua bersifat OTP(One-time programmable) atau hanya sekali pemrograman saja. PLD dapat bersifat reprogrammable (dapat diprogram ulang) dengan menggunakan EEPROM atau Flash memory(pada umumnya, sekarang menggunakan flash memory). Di sisi lain, FPGA bersifat volatile sehingga digunakan SRAM untuk menyimpan koneksi. Selain itu, dibutuhkan konfigurasi ROM untuk mengisi koneksi antara satu dengan yang lain saat dihidupkan daya listrik. Bagainampun juga, pilihan non-volatile seperti menggunakan antifuse. Untuk contohnya, akan ditulis pada artikel-artikel mendatang.</p>
<p><em>Referensi : Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press</em></p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=2008&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/perbedaan-fpga-dengan-cpldal.html" rel="bookmark">Perbedaan FPGA dengan CPLD</a><!-- (7.7)--></li>
		<li><a href="http://ndoware.com/gal-generic-pal.html" rel="bookmark">GAL (Generic PAL)</a><!-- (6.3)--></li>
		<li><a href="http://ndoware.com/cpld-complex-pld.html" rel="bookmark">CPLD (Complex PLD)</a><!-- (6.2)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/mengenal-programmable-logic-devices-pld.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASIC vs FPGA</title>
		<link>http://ndoware.com/asic-vs-fpga.html</link>
		<comments>http://ndoware.com/asic-vs-fpga.html#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:09:53 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=1991</guid>
		<description><![CDATA[
Secara garis besar, umumnya Integrated Circuit (IC) terbagi menjadi 3 golongan, yakni :


Full-Custom ASIC


Semi Custom ASIC


User Programmable 


Dari ketiga jenis tersebut, penggolongan IC dapat dpersempit menjadi 2 saja yakni, ASIC dan IC user programmable. Berikut masing-masing penjelasannya :


Application 	Spesific Integrated Circuit (ASIC)


Ciri khusus dari IC jenis ini adalah rancangan dan modelnya telah ditetapkan oleh vendor [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (8.6)--></li>
		<li><a href="http://ndoware.com/isifpga.html" rel="bookmark">ISI FPGA</a><!-- (8.4)--></li>
		<li><a href="http://ndoware.com/fpga-pin-assignment.html" rel="bookmark">FPGA Pin Assignment</a><!-- (8)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in;text-align: left">Secara garis besar, umumnya Integrated Circuit (IC) terbagi menjadi 3 golongan, yakni :</p>
<ol style="text-align: left">
<li>
<p style="margin-bottom: 0in" align="justify"><em>Full-Custom ASIC</em></p>
</li>
<li>
<p style="margin-bottom: 0in" align="justify"><em>Semi Custom ASIC</em></p>
</li>
<li>
<p style="margin-bottom: 0in" align="justify"><em>User Programmable </em></p>
</li>
</ol>
<p style="margin-bottom: 0in;text-align: left">Dari ketiga jenis tersebut, penggolongan IC dapat dpersempit menjadi 2 saja yakni, ASIC dan IC <em>user programmable.</em> Berikut masing-masing penjelasannya :</p>
<ol style="text-align: left">
<li>
<p style="margin-bottom: 0in" align="justify"><span style="text-decoration: underline">Application 	Spesific Integrated Circuit (ASIC)</span></p>
</li>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-left: 0.3in;margin-bottom: 0in" align="justify">Ciri khusus dari IC jenis ini adalah rancangan dan modelnya telah ditetapkan oleh <em>vendor</em> (pabrik IC). User hanya menggunakan saja dan tidak bisa merancang ulang apa yang terdapat di dalam IC tersebut.</p>
<p style="margin-left: 0.3in;margin-bottom: 0in" align="justify">IC jenis ini umumnya di pasaran terkenal dengan nama microprocessor. ASIC ini dipakai oleh perusahaan-perusahaan komputer (Intel, AMD, dsb) untuk membukat processornya. Processor ini berfungsi sebagai “otak” dalam sebuah komputer.  Berikut gambar salah satu jenis microprocessor dari pabrikan intel :</p>
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: center"><img class="aligncenter size-full wp-image-2005" src="http://ndoware.com/wp-content/uploads/2009/10/microprocessor-intel.jpg" alt="microprocessor intel" width="233" height="233" /></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-left: 0.3in;margin-bottom: 0in" align="justify">Selain itu, IC ASIC sering digunakan dalam bidang telekomunikasi, elektronika, dan sebagian juga dipakai untuk kepentingan industri.</p>
<p style="text-align: center"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="text-align: center"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: left">
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: left">
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: left">
<li>
<p style="margin-bottom: 0in" align="justify"><span style="text-decoration: underline">User 	Programmabble</span></p>
</li>
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: left">Kebalikan dari ASIC, ada jenis IC yang dapat diprogram sesuka hati baik model dan rancangannya. IC ini masuk jenis IC user programmable. Beberapa diantaranya adalah PLD (<em>Programmbable Logic Devices</em>) dan FPGA (<em>Field Programmable Gate Array</em>). Salah satu keunggulan dari IC jenis ini adalah <em>user</em> dapat membuat sendiri rancangan serta model yang diinginkan dan dibutuhkan. IC ini juga dapat diprogram atau dikonfigurasi ulang sesuai dengan keinginan dan kepentingan <em>user</em>. Di dalam IC tidak terdapat rancangan dan model secara fisik melainkan hanya blok-blok yang memiliki fungsi dan peran masing-masing. Selain blok-blok, terdapat juga jalur yang menghubungkan blok satu dengan blok lainnya. Semuanya itu dapat dikonfigurasi oleh <em>user</em>.</p>
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: left">Harga jenis IC ini termasuk relatif mahal bila dibandingkan IC jenis ASIC. Hal tersebut karena IC ini dapat dipakai secara berulang-ulang untuk kepentingan dan tujuan yang berbeda. Salah satu IC <em>user programmable</em> yang cukup terkenal adalah FPGA. Seperti yang diketahui, di dalam IC FPGA hanya berisi blok-blok serta jalur yang bisa dikonfigurasi sendiri oleh user. Berikut gambaran sekilasnya :</p>
<p style="text-align: center"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in;text-align: center"><img class="aligncenter size-full wp-image-1993" src="http://ndoware.com/wp-content/uploads/2009/10/placing.JPG" alt="placing" width="432" height="312" /></p>
<p style="margin-bottom: 0in;text-align: center">Konsep rancangan yang ditempatkan pada blok-blok FPGA</p>
<p style="margin-left: 0.3in;margin-bottom: 0in;text-align: center"><img class="aligncenter size-full wp-image-1994" src="http://ndoware.com/wp-content/uploads/2009/10/routing.JPG" alt="routing" width="441" height="311" /></p>
<p style="text-align: center"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in;text-align: center">Konsep jalur yang ditempatkan pada blok-blok FPGA</p>
</ol>
<img src="http://ndoware.com/?ak_action=api_record_view&id=1991&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/sekilasfpga.html" rel="bookmark">Sekilas Tentang FPGA</a><!-- (8.6)--></li>
		<li><a href="http://ndoware.com/isifpga.html" rel="bookmark">ISI FPGA</a><!-- (8.4)--></li>
		<li><a href="http://ndoware.com/fpga-pin-assignment.html" rel="bookmark">FPGA Pin Assignment</a><!-- (8)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/asic-vs-fpga.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tipe Data dalam VHDL</title>
		<link>http://ndoware.com/tipe-data-dalam-vhdl.html</link>
		<comments>http://ndoware.com/tipe-data-dalam-vhdl.html#comments</comments>
		<pubDate>Mon, 14 Sep 2009 03:21:07 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[tipe data]]></category>
		<category><![CDATA[VHDL]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=1771</guid>
		<description><![CDATA[Untuk menuliskan kode VHDL secara efisien, sangatlah penting untuk mengetahui tipe-tipe data yang diperbolehkan, bagaimana, serta kapan penggunaannya. Artikel berikut dan beberapa artikel mendatang akan membahas tipe-tipe data apa saja yang terdapat dalam kode VHDL.
Tipe Data Standar
Kode VHDL mengandung sederetan tipe-tipe data yang telah ditentukan melalui aturan standar IEEE 1076 dan IEEE 1164. Untuk lebih [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (13.5)--></li>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (11.6)--></li>
		<li><a href="http://ndoware.com/mengenal-vhdl.html" rel="bookmark">Mengenal VHDL</a><!-- (9.1)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-1944" title="albert_einstein" src="http://ndoware.com/wp-content/uploads/2009/09/albert_einstein-300x300.jpg" alt="albert_einstein" width="300" height="300" />Untuk menuliskan kode VHDL secara efisien, sangatlah penting untuk mengetahui tipe-tipe data yang diperbolehkan, bagaimana, serta kapan penggunaannya. Artikel berikut dan beberapa artikel mendatang akan membahas tipe-tipe data apa saja yang terdapat dalam kode VHDL.</p>
<p><strong>Tipe Data Standar</strong></p>
<p>Kode VHDL mengandung sederetan tipe-tipe data yang telah ditentukan melalui aturan standar IEEE 1076 dan IEEE 1164. Untuk lebih jelas, beberapa tipe data telah tercantum ke dalam masing-masing jenis <em>library/packages</em> yaitu :</p>
<ul>
<li>Package standard of library std. Tipe data yang masuk jenis ini adalah tipe <strong>bit</strong>, <strong>boolean</strong>, <strong>integer</strong>, dan <strong>real</strong>.</li>
<li>Package std_logic_1164 of library ieee.   Tipe data yang masuk jenis ini adalah <strong>std_logic</strong> dan <strong>std_ulogic</strong>.</li>
<li>Package std_logic_arith of library ieee. Tipe data yang masuk ke dalam library ini adalah <strong>signed</strong>, <strong>unsigned</strong> serta beberapa konversi fungsi, seperti <strong>conv_integer</strong>(p), <strong>conv_unsigned</strong>(p, b), <strong>conv_signed</strong>(p, b), and <strong>conv_std_logic_vector</strong>(p, b).</li>
</ul>
<p>Perhatikan, berikut beberapa aturan tipe data std dalam VHDL:</p>
<ul>
<li>Tipe data Boolean : True, False</li>
<li>Tipe data Integer : berisi 32 bit integer (mulai dari -2.147.483.647 s/d +2.147.483.647)</li>
<li>Tipe data natural : adalah bilangan non negatif dari integer (mulai dari 0 s.d +2,147,483,647)</li>
</ul>
<p><strong>Tipe Data Pengguna</strong></p>
<p>Selain tipe data yang telah ditentukan secara baku oleh aturan IEEE, ternyata VHDL juga memperbolehkan pengguna (<em>user</em>) untuk menentukan tipe data yang diinginkan. Ada 2 kategori untuk tipe data yang bisa ditentukan sendiri oleh user yaitu:</p>
<p>1.	Tipe Integer</p>
<ul>
<li>Tipe integer yang memiliki jangkauan -2.147.483.647 s/d +2.147.483.647 (mirip dengan tipe data standar)</li>
<li>Tipe natural yang memiliki jangkauan 0 s/d +2.147.483.647 (mirip dengan tipe data standar)</li>
<li>Tipe my_integer yang memiliki jangkauan -32 s/d 32 (tipe data yang ditentukan sendiri oleh user)</li>
<li>Tipe nilai_murid yang memiliki jankauan 0 s/d 100 (tipe data yang ditentukan sendiri oleh user)</li>
</ul>
<p>2.	 Tipe enumerated</p>
<ul>
<li> Tipe bit yaitu ‘0’ dan ‘1’</li>
<li>Tipe my_logic yaitu ‘0’, ‘1’, dan ‘Z’ (ditentukan sendiri oleh user)</li>
<li> Tipe keadaan yaitu idle, stop, backward, forward (ditentukan sendiri oleh user)</li>
<li> Tipe warna misalnya merah, hijau, putih (ditentukan sendiri oleh user)</li>
</ul>
<p>Referensi : -	Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</p>
<img src="http://ndoware.com/?ak_action=api_record_view&id=1771&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (13.5)--></li>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (11.6)--></li>
		<li><a href="http://ndoware.com/mengenal-vhdl.html" rel="bookmark">Mengenal VHDL</a><!-- (9.1)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/tipe-data-dalam-vhdl.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PROCEDURES dalam VHDL</title>
		<link>http://ndoware.com/procedures-dalam-vhdl.html</link>
		<comments>http://ndoware.com/procedures-dalam-vhdl.html#comments</comments>
		<pubDate>Mon, 24 Aug 2009 03:39:43 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Procedures]]></category>
		<category><![CDATA[VHDL]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=1609</guid>
		<description><![CDATA[Jika tulisan sebelumnya telah membahas function, component, dan packages sebagai bagian dari berkas yang nantinya dapat disimpan dalam library, maka tulisan berikut akan membahas bagian selanjutnya, yakni PROCEDURES. Sebuah procedures hampir mirip dengan sebuah function karena memiliki fungsi yang sama. Perbedaannya, sebuah procedures mampu mengembalikan lebih dari satu nilai sedangkan function hanya 1 saja. Layaknya [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (19.6)--></li>
		<li><a href="http://ndoware.com/tipe-data-dalam-vhdl.html" rel="bookmark">Tipe Data dalam VHDL</a><!-- (10.3)--></li>
		<li><a href="http://ndoware.com/mengenal-vhdl-bagian-2.html" rel="bookmark">Mengenal VHDL (bagian 2)</a><!-- (8.8)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p>Jika tulisan sebelumnya telah membahas <em>function</em>, <em>component</em>, dan <em>packages</em> sebagai bagian dari berkas yang nantinya dapat disimpan dalam <em>library</em>, maka tulisan berikut akan membahas bagian selanjutnya, yakni <strong>PROCEDURES</strong>. Sebuah <em>procedures</em> hampir mirip dengan sebuah <em>function</em> karena memiliki fungsi yang sama. Perbedaannya, sebuah <em>procedures</em> mampu mengembalikan lebih dari satu nilai sedangkan function hanya 1 saja. Layaknya sebuah <em>function</em>, ada 2 bagian yang dibutuhkan  untuk menyusun procedures yaitu : deklarasi procedures (<em>procedures body</em>) dan deklarasi pemanggilan procedures tersebut. Berikut <em>syntax</em> procedure :</p>
<p><img class="aligncenter size-full wp-image-1608" src="http://ndoware.com/wp-content/uploads/2009/08/parameter.JPG" alt="parameter" width="599" height="124" /></p>
<p>Berdasarkan syntax di atas, <em>&lt;parameter list&gt;</em> menunjukan input dan output yang spesifik bagi procedures yaitu :</p>
<p>&lt;parameter list&gt; = [CONSTANT] constant_name: mode type;</p>
<p>&lt;parameter list&gt; = [SIGNAL] signal_name: mode type;</p>
<p>&lt;parameter list&gt; = Variable variable_name: mode type;</p>
<p>Sebuah <em>procedures</em> dapat memiliki beberapa parameter IN, OUT, atau INOUT, yang bisa berupa SIGNAL, VARIABLES, atau CONSTANT. Biasanya untuk sinyal input (mode IN) adalah CONSTANT, sedangkan untuk sinyal output (mode OUT atau INOUT) adalah VARIABLE. Seperti yang diketahui, deklarasi WAIT, component maupun SIGNAL tidak <em>synthesizable </em>dalam <em>function</em>. Hal yang sama berlaku untuk procedures dengan pengecualian bahwa SIGNAL dapat dideklarasikan tapi kemudian <em>procedure</em> harus dideklarasikan terlebih dahulu dalam sebuah <em>process</em>.</p>
<p><strong>Contoh Kasus:</strong></p>
<p>Sebuah <em>procedure</em> memiliki 3 input yaitu <strong>a</strong>,<strong>b</strong>, dan <strong>c</strong> (mode IN). Input <strong>a</strong> adalah sebuah <em>constant</em> yang memiliki tipe <em>bit</em>. Sedangkan <strong>b</strong> dan <strong>c</strong> adalah sebuah <em>signals</em> yang juga bertipe <em>bit</em>. Perhatikan bahwa <em>constant</em> dapat diabaikan sebagai <em>input </em>parameter, terutama untuk objek yang biasa. Selain itu, juga terdapat 2 jenis sinyal kembalian, x (mode Out, bertipe BIT_VECTOR) dan y (mode INOUT bertipe integer). <em>Syntax</em>nya:</p>
<p><em>PROCEDURE my_procedure(</em><em>a : IN BIT; SIGNAL b, c: IN BIT; SIGNAL x: OUT BIT_VECTOR(7 DOWNTO 0);</em></p>
<p><em>SIGNAL y: INOUT INTEGER RANGE 0 TO 99) IS</em></p>
<p><em>BEGIN</em></p>
<p><em>&#8230;</em></p>
<p><em>END my_procedure;</em></p>
<p><strong>Procedure Call</strong><strong></strong></p>
<p>Berbeda dengan sebuah <em>function</em>, yang dapat dipanggil hanya dengan mendeklarasikan bagian tertentu, pemanggilan sebuah procedure dapat dilakukan dengan cara mendeklarsikan secara langsung <em>procedure</em> tersebut. Selain itu dapat juga dipakai cara mendeklrasikan bagian yang berhubungan dengan proses yang akan dilakukan <em>procedure</em> tersebut.</p>
<p><strong>Procedure Location</strong></p>
<p>Lokasi penempatan untuk sebuah <em>procedure</em> mirip dengan <em>function</em> yang telah dibahas pada tulisan terdahulu. Sebuah <em>procedure</em> dapat diletakkan di dalam <em>package</em> (untuk tujuan pembagian kode, penggunaan ulang kode, dan untuk tujuan <em>code share</em>). Selain di dalam <em>package</em>, sebuah <em>procedure</em> juga dapat diletakkan pada kode utama dalam vhdl (baik dalam <strong><em>entity</em></strong> atau sebagai bagian deklarasi dari <strong><em>architecture</em></strong>). Ketika diletakkan pada sebuah <em>package</em> maka otomatis dibutuhkan <em>body package</em> yang harus berisi tiap-tiap deklrasi <em>procedure</em>. Deklrasi procedure tersebut harus sebagai bagian pernyataan dari sebuah <em>package</em>.</p>
<p>Referensi :</p>
<ul>
<li> A VHDL Primer: The Essentials, Design Recipes for FPGA by Peter Wilson, published by Newness Publications.</li>
<li>Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</li>
</ul>
<img src="http://ndoware.com/?ak_action=api_record_view&id=1609&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (19.6)--></li>
		<li><a href="http://ndoware.com/tipe-data-dalam-vhdl.html" rel="bookmark">Tipe Data dalam VHDL</a><!-- (10.3)--></li>
		<li><a href="http://ndoware.com/mengenal-vhdl-bagian-2.html" rel="bookmark">Mengenal VHDL (bagian 2)</a><!-- (8.8)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/procedures-dalam-vhdl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUNCTION dalam VHDL</title>
		<link>http://ndoware.com/function-dalam-vhdl.html</link>
		<comments>http://ndoware.com/function-dalam-vhdl.html#comments</comments>
		<pubDate>Thu, 13 Aug 2009 10:30:50 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[VHDL]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=1559</guid>
		<description><![CDATA[FUNCTION dan PROCEDURES seringkali dikategorikan sebagai sebuah subprogram. Bila dilihat dari bentuknya, baik function maupun procedures hampir mirip dengan PROCESS. Persamaan ketiganya  adalah merupakan potongan kode VHDL dan juga ketiganya mengandung beberapa pernyataan sekuensial (misal if, case, loop). Walaupun sepintas hampir mirip, procedures dan function memiliki perbedaan dengan process. Sebuah process pada umumnya digunakan [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (20.4)--></li>
		<li><a href="http://ndoware.com/tipe-data-dalam-vhdl.html" rel="bookmark">Tipe Data dalam VHDL</a><!-- (12.5)--></li>
		<li><a href="http://ndoware.com/process-basic-functional-unit-in-vhdl.html" rel="bookmark">Process: Basic Functional Unit in VHDL</a><!-- (9)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p>FUNCTION dan PROCEDURES seringkali dikategorikan sebagai sebuah subprogram. Bila dilihat dari bentuknya, baik function maupun procedures hampir mirip dengan PROCESS. Persamaan ketiganya  adalah merupakan potongan kode VHDL dan juga ketiganya mengandung beberapa pernyataan sekuensial (misal if, case, loop). Walaupun sepintas hampir mirip, procedures dan function memiliki perbedaan dengan process. Sebuah process pada umumnya digunakan secara langsung dalam kode utamanya. Sedangkan procedures dan function, berdasarkan tempatnya di dalam lokasi LIBRARY, merupakan potongan kode tersendiri sehingga dapat digunakan lagi atau dibagi-bagi (share) untuk project lain. Walaupun demikan, jika dibutuhkan, sebuah function atau procedures dapat juga ditempatkan sebagai kode utama.</p>
<p><strong>Function</strong><br />
Function adalah sebuah bagian potongan dari kode sekuensial. Sebuah function dibuat dengan tujuan membuat sebuah bundel atau berkas yang baru sebagai penyelesaian masalah, seperti perubahan tipe data, operasi logika, perhitungan artimetika, dan operator baru beserta perubahannya. Bila menulis kode dalam bentuk function, maka kode tersebut akan dapat dibagi-bagikan dan juga digunakan lagi untuk project lain. Selain itu, kode tersebut akan jauh lebih singkat dan lebih mudah untuk dipahami.<br />
Seperti yang telah dicontohkan, sebuah function mirip dengan process. Pernyataan yang sama (misal if, wait, case, dan loop) dapat digunakan untuk function, kecuali untuk wait. Selain wait, hal lain yang tidak boleh digunakan dalam sebuah function adalah deklarasi signal dan inisiasi component. Untuk meyusun dan menggunakan function, perlu diperhatikan dua hal yang penting yakni deklarasi function itu sendiri dan cara pemanggilan function tersebut. Syntaxnya ditunjukkan sebagai berikut :</p>
<p><img class="aligncenter size-full wp-image-1560" src="http://ndoware.com/wp-content/uploads/2009/08/function.JPG" alt="function" width="623" height="124" /></p>
<p>Dari syntax di atas, &lt;parameter list&gt; merupakan masukan parameter khusus bagi sebuah function. Misalnya :</p>
<p>&lt;parameter list&gt; = [constant] constant_name: constant_type; // parameternya berupa <em>constant</em></p>
<p>&lt;parameter list&gt; = SIGNAL signal_name:signal_type ;  // parameternya berupa <em>signal</em></p>
<p>Seperti yang diketahui, semua angka bisa dijadikan parameter (termasuk 0). Selain itu, &lt;parameter list&gt; seperti yang ditunjukkan di atas hanya berupa <em>constant</em> (default) atau <em>signal</em> (sedangkan <em>variable</em> tidak diijinkan). Tipe-tipe &lt;parameter list&gt; tersebut merupakan tipe data synthesizable. Di sisi lain, hanya ada sebuah nilai kembalian, yakni tipe yang dikhususkan untuk jenis data_type. Sedangkan function dapat dipanggil dengan hanya mendeklarasikan nama function tersebut.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Function Location</strong></p>
<p><strong><img class="aligncenter size-full wp-image-1561" src="http://ndoware.com/wp-content/uploads/2009/08/function-location.JPG" alt="function location" width="590" height="187" /></strong></p>
<p>Sebuah <em>function</em> (atau <em>procedures</em>) biasanya ditempatkan seperti gambar di atas. Pertama, sebuah <em>function</em> ditempatkan pada sebuah <em>package</em> (sebagai kode yang dapat dibagi-bagi, penggunaan ulang kode). Selain itu, juga dapat ditempatkan pada kode utama (di dalam <strong>architecture</strong> atau di dalam <strong>entity</strong>). Ketika ditempatkan dalam sebuah <em>package</em>, maka package body dibutuhkan, yang haruslah berisi tiap-tiap function (atau procedures) yang dideklarasikan sebagai bagian dari package. Perbandingan penempatan sebuah function sebagai bagian dari package atau sebagai kode utama dapat dicontohkan berikut :</p>
<ol>
<li>Function yang diletakkan sebagai kode utama.</li>
</ol>
<p><em>LIBRARY ieee;</em></p>
<p><em>USE ieee.std_logic_1164.all;</em></p>
<p><em> ENTITY dff IS</em></p>
<p><em>PORT ( d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC);</em></p>
<p><em>END dff;</em></p>
<p><em>ARCHITECTURE my_arch OF dff IS</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><em> </em></p>
<p><em>FUNCTION positive_edge(SIGNAL s: STD_LOGIC)  // tempat function sebagai kode utama disisipkan</em></p>
<p><em>RETURN BOOLEAN IS</em></p>
<p><em>BEGIN</em></p>
<p><em>RETURN s&#8217;EVENT AND s=&#8217;1&#8242;;</em></p>
<p><em>END positive_edge;</em></p>
<p><em> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em></p>
<p><em>BEGIN</em></p>
<p><em>PROCESS (clk, rst)</em></p>
<p><em>BEGIN</em></p>
<p><em>IF (rst=&#8217;1&#8242;) THEN q &lt;= &#8217;0&#8242;;</em></p>
<p><em>ELSIF positive_edge(clk) THEN q &lt;= d; // pemanggilan function (positive_edge)</em></p>
<p><em>END IF;</em></p>
<p><em>END PROCESS;</em></p>
<p><em>END my_arch;</em></p>
<p><em> </em></p>
<ol>
<li>Fungsi yang diletakkan pada sebuah packages</li>
</ol>
<p><em>&#8212;&#8212;- Package: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;  // penyusunan package //</em></p>
<p><em>LIBRARY ieee;</em></p>
<p><em>USE ieee.std_logic_1164.all;</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em>PACKAGE my_package IS</em></p>
<p><em>FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN BOOLEAN; // penyusunan function dalam package //</em></p>
<p><em>END my_package;</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em>PACKAGE BODY my_package IS</em></p>
<p><em>FUNCTION positive_edge(SIGNAL s: STD_LOGIC) </em></p>
<p><em>RETURN BOOLEAN IS</em></p>
<p><em>BEGIN</em></p>
<p><em>RETURN s&#8217;EVENT AND s=&#8217;1&#8242;;</em></p>
<p><em>END positive_edge;</em></p>
<p><em> END my_package;</em></p>
<p><em> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em> &#8212;&#8212; Main code: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em> LIBRARY ieee;</em></p>
<p><em>USE ieee.std_logic_1164.all;</em></p>
<p><em>USE work.my_package.all;</em></p>
<p><em> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em>ENTITY dff IS</em></p>
<p><em> PORT ( d, clk, rst: IN STD_LOGIC;  q: OUT STD_LOGIC);</em></p>
<p><em>END dff;</em></p>
<p><em> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</em></p>
<p><em>ARCHITECTURE my_arch OF dff IS</em></p>
<p><em>BEGIN</em></p>
<p><em>PROCESS (clk, rst)</em></p>
<p><em>BEGIN</em></p>
<p><em>IF (rst=&#8217;1&#8242;) THEN q &lt;= &#8217;0&#8242;;</em></p>
<p><em>ELSIF positive_edge(clk) THEN q &lt;= d; // pemanggilan function dalam package</em></p>
<p><em>END IF;</em></p>
<p><em>END PROCESS;</em></p>
<p><em>END my_arch;</em></p>
<p><em> </em></p>
<p>Referensi :</p>
<ul>
<li> A VHDL Primer: The Essentials, Design Recipes for FPGA by Peter Wilson, published by Newness Publications</li>
<li>Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</li>
</ul>
<img src="http://ndoware.com/?ak_action=api_record_view&id=1559&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (20.4)--></li>
		<li><a href="http://ndoware.com/tipe-data-dalam-vhdl.html" rel="bookmark">Tipe Data dalam VHDL</a><!-- (12.5)--></li>
		<li><a href="http://ndoware.com/process-basic-functional-unit-in-vhdl.html" rel="bookmark">Process: Basic Functional Unit in VHDL</a><!-- (9)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/function-dalam-vhdl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Component</title>
		<link>http://ndoware.com/component.html</link>
		<comments>http://ndoware.com/component.html#comments</comments>
		<pubDate>Fri, 31 Jul 2009 01:35:50 +0000</pubDate>
		<dc:creator>dzale</dc:creator>
				<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[VHDL]]></category>

		<guid isPermaLink="false">http://ndoware.com/?p=1397</guid>
		<description><![CDATA[Sebagai lanjutan tulisan sebelumnya, berikut akan dijelaskan mengenai component. Sebuah component merupakan salah satu cara pembuatan berkas dalam rancangan bertingkat dalam VHDL. Selain component, dikenal juga istilah packages, function, dan procedures.  Berkas-berkas tersebut akan ditempatkan dalam library agar nantinya kode-kode yang terdapat pada berkas tersebut dapat digunakan lagi oleh rancangan lain.
 
Definisi dari component yaitu [...]<div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/hierarchial-design.html" rel="bookmark">Hierarchial Design</a><!-- (12.4)--></li>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (7.9)--></li>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (7.1)--></li>
	</ul>
</blockquote>
</div>


]]></description>
			<content:encoded><![CDATA[<p>Sebagai lanjutan tulisan sebelumnya, berikut akan dijelaskan mengenai <strong>component</strong>. Sebuah <em>component</em> merupakan salah satu cara pembuatan berkas dalam rancangan bertingkat dalam VHDL. Selain <em>component</em>, dikenal juga istilah <em>packages</em>, <em>function</em>, dan <em>procedures</em>.  Berkas-berkas tersebut akan ditempatkan dalam <em>library</em> agar nantinya kode-kode yang terdapat pada berkas tersebut dapat digunakan lagi oleh rancangan lain.</p>
<p><strong> </strong></p>
<p>Definisi dari <em>component</em> yaitu bagian sederhana dalam kode konvensional (seperti <strong><em>entity</em></strong>, <strong>architecture</strong>, dan <strong>library</strong>). Selanjutnya, dengan mendeklarasikan kode yang disebut <em>component </em>maka kode tersebut dapat dipakai untuk rangkaian lain mengikuti perancangan dari sistem bertingkat. Perlu diperhatikan bahwa terdapat 2 versi untuk metode <em>component</em> ini yaitu versi 1987 dan versi 1993. Jika menggunakan salah satu versi <em>component</em> maka sebaiknya konsisten untuk terus menggunakan versi tersebut. Hal ini berguna untuk menghindari kekacauan kode yang ditulis dalam <em>component</em> tersebut.</p>
<p>Beberapa fungsi <em>component</em> yaitu membagi-bagi sebuah kode yang kompleks dan panjang agar tidak terlalu rumit dan mudah dikoreksi serta  menyediakan kode untuk keperluan <em>share</em> antar rancangan. Selain itu jika fungsi lain <em>component</em> yakni menjadikan suatu kode dapat digunakan lagi oleh rancangan lain. Fungsi-fungsi yang sama tersebut terdapat misalnya pada <em>library</em>. Dalam <em>library</em> biasanya telah terdapat rangkaian <strong>flip flop</strong>, <strong>multiplexer</strong>, <strong>adder</strong>, dsb. Jadi ketika ingin menggunakan <em>component</em> maka berkas kode component tersebut tinggal dipanggil saja tanpa harus mendeklarasikan ulang.</p>
<p>Untuk menggunakan <em>component</em>, maka langkah pertama yang harus dilakukan adalah mendeklarasikannya. <em>Syntax</em> untuk pendeklarasian component :</p>
<p><em>COMPONENT component_name  IS</em></p>
<p><em>PORT (</em></p>
<p><em>port_name : signal_mode signal_type;</em></p>
<p><em>port_name : signal_mode signal_type;</em></p>
<p><em>&#8230;);</em></p>
<p><em>END COMPONENT; </em></p>
<p><em> </em></p>
<p>Sedangkan untuk pemanggilan <em>component</em> dapat dliakukan dengan cara :</p>
<p><em>label: component_name PORT MAP (port_list);</em></p>
<p><em> </em></p>
<p>Seperti yang terlihat, <em>syntax</em> dari <em>component</em> hampir mirip dengan <em>syntax</em> <strong>entity</strong>. Hal ini terlihat bahwa dalam <em>component</em> juga memerlukan nama yang spesifik beserta modelnya (IN, OUT, BUFFER, INOUT). Selain nama, di dalam <em>component</em> juga terdapat tipe data (STD_LOGIC_VECTOR, BOOLEAN, INTEGER, dsb). Perlu diperhatikan bahwa untuk memakai <em>component</em>, perlu memanggilnya lebih dulu, sesuai dengan nama component dan deklarasi dari <strong>PORT MAP</strong> nya. Sebagai tambahan, <em>port_list</em> hanyalah daftar jalur <em>port</em> pada sirkuit yang ada pada <em>port</em> rancangan yang hendak digunakan.</p>
<p>Sebuah <em>component</em> dapat dideklarasikan dengan menggunakan dua buah cara. Cara yang pertama, adalah mendeklarasikan berkas <em>component</em> satu per satu. Kemudian semua berkas <em>component</em> itu disimpan dalam <em>library</em>. Selanjutnya, untuk menggunakan <em>component</em> itu, perlu dipanggil memanggil <em>library</em> yang telah berisi <em>component</em> tadi. Sedangkan cara kedua adalah mendeklarasikan <em>component</em> satu per satu dalam sebuah <em>packages</em>. Seperti yang telah diketahui, <em>packages</em> merupakan berkas yang paling luas yang mampu mencakup <em>function</em>, <em>procedures</em>, dan <em>component</em> itu sendiri. Selanjutnya, <em>packages</em> yang telah berisi semua <em>component</em> disimpan dalam <em>library</em>. Untuk menggunakan <em>component</em>, perlu dipanggil <em>library</em> yang telah memuat berkas-berkas <em>component</em> tadi. Berikut terdapat gambar yang akan menjelaskan cara pendeklarsian <em>component</em> :</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-1398" src="http://ndoware.com/wp-content/uploads/2009/07/pendeklarasian-component-langsung.JPG" alt="pendeklarasian component langsung" width="373" height="312" /></p>
<p style="text-align: center">Pendeklarasian Component Secara Langsung</p>
<p style="text-align: center">
<p style="text-align: center"><img class="aligncenter size-full wp-image-1399" src="http://ndoware.com/wp-content/uploads/2009/07/pendeklarasian-component-lewat-packages.JPG" alt="pendeklarasian component lewat packages" width="534" height="299" />Pendeklarasian Component Melalui Packages</p>
<p>Cara pendeklarsian <em>component</em> masing-masing, baik secara langsung maupun melalui packages dapat berfungsi sama baiknya. Hasil yang didapatkan juga sama baiknya.</p>
<p><strong>PORT MAP</strong></p>
<p>Ketika sebuah <em>component</em> diperlukan maka perlu adanya perintah pemanggilannya. Aturan <em>syntax</em> untuk memanggil component yaitu :</p>
<p><em>label: component_name PORT MAP (port_list);</em></p>
<p>Ada dua buah cara  memakai PORT MAP untuk penggunaannya dalam <em>component</em>, yakni <strong>positional mappin</strong>g dan <strong>nominal mapping</strong>. Perhatikan contoh berikut:</p>
<p><em>COMPONENT inverter IS</em></p>
<p><em>PORT (a: IN STD_LOGIC; b: OUT STD_LOGIC);</em></p>
<p><em>END COMPONENT;</em></p>
<p><em>&#8230;</em></p>
<p><em>U1: inverter PORT MAP (x, y);</em></p>
<p><em> </em></p>
<p>Contoh diatas adalah  sebuah contoh untuk <em>positional maping</em>. Hal ini terlihat bahwa port x dan y  secara beurutan terhubung dengan a dan b. Sedangkan contoh untuk <em>nominal mapping</em> adalah</p>
<p><em>U1: inverter PORT MAP (x=&gt;a, y=&gt;b);</em></p>
<p><em> </em></p>
<p>Secara kasat mata, terlihat jelas perbedaan antara <em>nominal mapping</em> dengan <em>positional mapping</em>. Bila dalam <em>nominal mapping</em>, <em>port</em> x dan y secara langsung dihubungkan dengan a dan b menggunakan tanda “=&gt;”. Berbeda dengan <em>positional mapping</em> yang perlu dideklarsikan dahulu <em>port-port</em> nya. Salah satu keunggulan <em>positional mapping</em> adalah kemudahan dalam penulisan. Sedangkan keunggulan dari <em>nominal mappping</em> yaitu cenderung dapat mengurangi kesalahan penulisan. Selain itu, bila menggunakan <em>nominal mapping</em> sebuah <em>port</em> juga dapat tidak dihubungkan sama sekali dengan yang lain (menggunakan kata kunci OPEN). Misalnya,</p>
<p><em>U2: my_circuit PORT MAP (x=&gt;a, y=&gt;b, w=&gt;OPEN, z=&gt;d);</em></p>
<p><em> </em></p>
<p>Referensi :</p>
<ul>
<li> A VHDL Primer: The Essentials, Design Recipes for FPGA by Peter Wilson, published by Newness Publications.</li>
<li>Circuit Design with VHDL by Volnei A. Pedroni, published by MIT Press.</li>
</ul>
<img src="http://ndoware.com/?ak_action=api_record_view&id=1397&type=feed" alt="" /><div class="entry clearfloat" style="border:none;padding:0;">
<blockquote>
<h3>Artikel Terkait</h3>
<ul>
		<li><a href="http://ndoware.com/hierarchial-design.html" rel="bookmark">Hierarchial Design</a><!-- (12.4)--></li>
		<li><a href="http://ndoware.com/function-dalam-vhdl.html" rel="bookmark">FUNCTION dalam VHDL</a><!-- (7.9)--></li>
		<li><a href="http://ndoware.com/procedures-dalam-vhdl.html" rel="bookmark">PROCEDURES dalam VHDL</a><!-- (7.1)--></li>
	</ul>
</blockquote>
</div>


]]></content:encoded>
			<wfw:commentRss>http://ndoware.com/component.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

