Anda di halaman 1dari 15

Mikrokontroler FPGA Tertanam

Zbigniew Hajduk
Rzeszów University of Technology, ul. Powstan´ców Warszawy 12, 35-959
Rzeszów, Poland

Abstrak-Makalah ini mennyajikan untuk memuat HEX file hasil output


desain dari mikrokontroller RISC 8-bit, compiler ke memori program secara
yang biasanya ditargetkan untuk langsung menggunakan antarmuka
menjalankan fungsi yang tidak terlalu serial umum.
mementingkan masalah pewaktuan
didalam FPGA. Mikrokontroler ini
berbasis dari keluarga mikrokontroler 1. Pengantar
Microchip PIC16 yang terkenal. Fitur Mikroprosesor dan mikrokontroller
utama dari mikrokontroler ini adalah yang tertanam dalam FPGA menyediakan
mikrokontroler ini 4 kali lebih cepat fitur – fitur terbaik dalam perangkat –
dalam pemrosesan instruksi biasa dan 8 perangkat digital. [1,2]. Menggunakan
kali lebih cepat untuk instruksi yang rangkaian kontrol pemrograman
memodifikasi pencacah program, mikrokontroller atau mesin dalam Bahasa
dibandingkan dengan Microchip assembly atau Bahasa tingkat tinggi
standar dengan frekuensi clock yang terkadang lebih mudah dibandingkan
sama. Tiga versi dari struktur siklus membuat struktur yang serupa dalam
instruksi mikrokontroler telah FPGA [3,4]. Oleh karena itu
dipertimbangkan dan uji performa dari mikrokontroller tertanam dapat
versi – versi tersebut juga telah mengimplementasikan fungsi kontrol
dilakukan. Makalah ini juga kompleks yang tidak terpaku dengan
mendeskripsikan dua contoh aplikasi waktu, sedangkan waktu kritis atau fungsi
yang mengilustrasikan kegunaan dari path data lebih maksimal jika
mikrokontroller ini dan menunjukkan diimplementasikan dalam logic FPGA.
bahwa dengan penggunaan Kustomisasi adalah kelebihan lain dari
mikrokontroller FPGA tertanam, mikrokontroller tertanam, contohnya
realisasi dari beberapa fungsi dapat peripheral yang spesifik dapat
menjadi lebih sederhana dan lebih cepat dikoneksikan secara langsung dengan bus
dibandingkan dengan pengaplikasian mikrokontroller [2].
desain alur FPGA tanpa Ada beberapa desain spesifik
mikrokontroller. Untuk memfasilitasi mikroprosesor yang dideskripsikan pada
seringnya perubahan isi dari program makalah. Contohnya, sebuah inti yang
memori, khususnya pada tahap mengeksekusi instruksi dari Bahasa
pengembangan software, modul pemrograman yang dipresentasikan di [5].
downloader juga telah diusulkan. Sebuah mikroprosesor berkecapatan tinggi
Downloader tersebut memungkinkan dengan tambahan DSP, dioptimalisasi
untuk Virtex 4 FPGA dijelaskan di [6]. Makalah ini disusun dsebagai berikut.
Sebuah set instruksi aplikasi spesifik untuk Bagian 2 berisi penjelasan singkat dari
pendeteksi sinyal dalam system nirkabel desain mikrokontroller yang mirip denga
MIMO pada [7]. Vendor FPGA juga yang dimaksud dalam makalah, dan
menyediakan mikroprosesor inti 8 dan 32 mendeskripsikan struktur siklus instruksi
bit. Arsitektur yang banyak diketahui dari 3 versi mikrokontroller yang
adalah Xilinx PicoBlaze [3] dan dikembangkan dan pola dasar Microchip.
MicroBlaze, Lattice Mico8 [8] dan Mico Bagian 3 berisi deskripsi arsitektur
32, dan Altera Nios II [9]. Namun, karena mikrokontroller dan analisis dari hasil
permasalahan teknis atau permasalahan simulasi sampel kode assembler yang
lisensi maka inti IP dari satu vendor tidak dieksekusi mikrokontroller. Bagian 4
dapat digunakan dengan FPGA dari vendor membahas hasil implementasi dari versi
lain. Maka desainer harus mempelajari mikrokontroller dan berisi perbandingan
arsitektur mikroprosesor yang berbeda, antara implementasi yang sudah ada dari
daftar instruksi dan alat pengembangan mikrokontroller yang serupa. Modul
ketika menggunakan FPGA dari vendor hardware, yang memfasilitasi seringnya
yang berbeda. perubahan dari isi memori program
Dalam makalah ini desain tergolong mikrokontroller disajikan pada bagian 5,
sederhana, mikrokontroller RISC 8-bit dan dua contoh aplikasi yang
dengan fungsi dasar, secara khusus mengilustrasikan kegunaan dari
ditujukan untuk melakuakan fungsi dalam mikrkoontroller yang dimaksud ada di
FPGA yang tidak terpaku pada waktu. bagian 6. Bagian 7 berisi makalah.
Arsitektur dasar dari mikrokontrollr
berdasarkan dari keluarga Microchip 2. Mikrokontroller Microchip PIC
PIC1687x [10]. Fitur penting dari untuk implementasi FPGA
mikrokontroller adalah bahwa itu 4 kali Mikrokontroller dari keluarga
lebih cepat ( 8 kali untuk instruksi yang Microchip PIC16 sering dijumpai dalam
memodifikasi pencacah program) banyak aplikasi teknik. Contohnya PIC
dibandingkan pola dasar Microchip dengan 16877a digunakan sebagai komponen
frekuensi clock yang sama. Mikrokontroler utama dari GPRS [1] dan system tertanam
tersebut di deskripsikan menggunakan yang mengontrol lintasan scan dari
Verilog HDL dan dapat diimplementasikan trasnduser ultrasonic [12] mikrokontroller
dalam FPGA dari vendor manapun. Karena lain (PIC 6F688) digunakan untuk
kecepatannya, sedikitnya instruksi yang mengontrol kondisi operasional antenna
ada (33 instruksi), fasilitas kostumisasi microstrip [13].
(adanya deskripsi source HDL membuat Ada pula beberapa desain
mikrokontroller dapat di upgrade, di mikrokontroller PIC untuk implementasi
modifikasi dan di setel dengan mudah oleh FPGA. Inti IP dari PIC16C57 tersedia dari
desainer), dan pilihan alat pengembangan Organisasi Opencores [14], dan desainer
software yang banyak, termasuk compiler individual [15]. Seluruh inti IP, disebut
Bahasa C, mikrokontroller dapat menjadi MINIRISC dan RISC8, memiliki stuktur
alternative menarik untuk mikrokontroller siklus instruksi yang sudah dikembangkan
8-bit lain, seperti Xilinx PicoBlaze dan dan 4 kali lebih cepat dari mikrokontroller
Lattice Mico8. PIC original. Namun instruksi yang
memodifikasi pencach program masih tunggal. Pelaksanaan siklus tunggal
mebutuhkan 2 siklus pada RISC8 dan 4 Instruksi yang memodifikasi PC adalah
siklus pada MINIRISC. Oleh karena itu fitur unik dari mikrokontroler disajikan
yang terakhir lebih lambat dua kali dari dalam makalah ini.
PIC16C57 untuk instruksi tersebut. Tujuan desain utama menganggap
Inti IP PIC16c554 yang lebih canggih, mikrokontroler adalah untuk
disebut DFPIC1655x, ditawarkan secara memaksimalkan kinerjanya. Salah satu
komersil oleh Altera [16]. Inti ip dari faktor penting yang memiliki langsung
mikrokontroller ini 2 kali lebih cepat dari pengaruh terhadap kinerja mikrokontroler
Microchip PIC. Dan juga hanya dapat adalah struktur mikrokontroler siklus
diimplementasikan dalam FPGA Altera. instruksi. Siklus instruksi dari PIC16
Desain inti IP lain dari PIC16C6x mikrokontroler keluarga ditunjukkan pada
dijelaskan di [17]. Tidak ada peningkatan Gambar. 1 a. Siklus ini terdiri dari empat
kecepatan dari mikrokontroller PIC fase jam (clock cycle), bernama Q1. . .Q4.
original. dalam Q1 fase, program counter (PC)
Ada pula beberapa desain inti IP, yang bertambah, dan data memori dibaca selama
berdasarkan arsitektur mikrokontroller Q2. Sebuah hasil ALU dihitung di Q3 dan
PIC16F84 yang sangat mirip dengan desain tertulis kepada memori data dalam tahap
yang dipresentasikan dalam makalah ini. Q4. Selama Q4 instruksi juga diambil dari
Perbandingn kecepatan, tenaga, memori program dan terkunci ke dalam
fleksibilitasm dan harga antara instruksi mendaftar. Karena pipelining,
mikrokontroller PIC dan versi inti setiap instruksi dieksekusi dalam satu
lunaknya ditampilkan pada [18]. Lain siklus instruksi (4 clock cycle).
desain inti IP dari Mikrokontroler Pengecualian adalah instruksi yang
PIC16F84 dan stabilitas daya menyebabkan PC untuk mengubah
pelaksanaannya dianggap dalam [19]. (misalnya PANGGILAN, GOTO,
Namun desain lain, yang disebut CQPIC, RETLW). Maskapai instruksi memerlukan
adalah digunakan sebagai bagian penting dua siklus (8 clock cycle).
dari proyek pong permainan [20]. ketiga Dalam rangka untuk mencari performa
desain disebutkan menerapkan struktur maksimal dari mikrokontroler disajikan
siklus instruksi PIC16F84 standar. Oleh dalam makalah ini, tiga struktur yang
karena itu, mereka tidak cepat, di bawah berbeda dari instruksi siklus telah
jam yang sama frekuensi, daripada rekan dipertimbangkan: jam siklus tunggal
ASIC mereka. Peningkatan IP core versi dengan jam ganda edge (Gambar. 1 b),
dari PIC16F84 belum tersedia dari siklus jam ganda (Gbr. 1 c), dan satu siklus
OpenCores: PPX16 [21] dan RISC16F84 clock tunggal (Gbr. 1 d). Versi
[22]. IP core ini kemudian 2 dan 4 kali lebih mikrokontroler, yang menerapkan seperti
cepat dari mikrokontroler versi asli ASIC. struktur siklus instruksi dipanggil,
Meskipun ada soft-mikrokontroler kemudian A, B dan C. Seperti akan
desain 2 dan 4 kali lebih cepat ditampilkan dalam bagian berikutnya, versi
dibandingkan dengan arsitektur Microchip ini juga berbeda di maksimum frekuensi
asli, tidak ada dari mereka mampu clock, yang dapat dicapai setelah FPGA
menjalankan instruksi yang memodifikasi implementasi.
program kontra dalam siklus instruksi
dalam kasus instruksi tersebut, versi
mikrokontroler A dan C adalah 8 kali lebih
Versi A dari mikrokontroler
cepat daripada rekan ASIC nya. Dalam
membutuhkan baik naik dan turun tepi jam,
kasus semua instruksi lain, mikrokontroler
namun semua instruksi dieksekusi dalam
adalah 4 kali lebih cepat (2 kali lebih cepat
satu jam periode (Gbr. 1 b). Pada bagian
untuk versi B)
pertama naik jam tepi, instruksi diambil dan
awal diterjemahkan. Selama berikut jatuh
3. Arsitektur Mikrokontroller
jam tepi memori data dibaca dan PC
Arsitektur Sederhana mikrokontroler
diperbarui (bertambah atau melompat
ditunjukkan pada Gambar. 2. Decoder dan
alamat langsung dimuat ke PC). Dalam
unit kontrol utama (MDCU) blok
kedua naik jam tepi memori data ditulis dan
merupakan suatu bagian penting dari
instruksi berikutnya diambil. Versi
mikrokontroler, yang bertanggung jawab
mikrokontroler B hampir sama dengan A
untuk Instruksi decoding, mengendalikan
tetapi, bukan kedua Jam tepi,
perilaku pipa mendaftar R1. . .R3, Register
membutuhkan dua siklus jam (Gbr. 1 c).
(W) dan kelompok kerja register fungsi
Versi c adalah kebanyakan jam tepi
khusus (SFR), dan menghasilkan sinyal
tabungan. Dalam versi ini, PC update, data
permintaan interupsi. dua murni sirkuit
memori membaca dan ALU hasil
kombinatorial terletak dekat dengan
perhitungan yang dilakukan antara
MDCU: mengevaluasi berikutnya Nilai PC
bersebelahan naik tepi jam. Memori data
(NEXTPC) blok dan menghitung
ditulis dan instruksi berikutnya diambil
berikutnya nilai pointer tumpukan
selama kedua naik jam tepi (Gambar. 1d).
(NEXTSP) blok. Identik seperti untuk
Perhatikan bahwa instruksi
Microchip PIC16F877A, mikrokontroler
mikrokontroler yang mengubah PC juga
ini dilengkapi dengan dua bank memori
dieksekusi dalam satu siklus instruksi
data, yang disebut umum register tujuan
tunggal (1 clock cycle). Oleh karena itu,
(GPR), secara fisik diimplementasikan
Bertentangan dengan keluarga
sebagai didistribusikan RAM dalam FPGA. Microchip PIC16, mikrokontroler memiliki
Alamat dan kontrol bus dari bank GPR dipisahkan masukan port (nyeri, PBin,
didorong oleh alamat decoder (AD) blok, PCin) dari port output (PAout, PBout,
yang merupakan rangkaian kombinatorial PCout) - semua port adalah satu arah. Oleh
juga. AD blok juga mengontrol karena itu, perawatan harus diambil ketika
multiplekser MUX2, yang memberikan I / O nilai port yang digunakan sebagai
nilai operan pertama untuk unit operan (baca I / O port instruksi selalu
arithmeticlogic (ALU). Nilai ini dapat membaca R1. . .R4 Register konten).
berupa output bank GPR atau SFR register Mikrokontroler ini juga dilengkapi
atau nilai port input atau nilai langsung dengan sederhana, 8-bit timer TMR0
datang dari 8 bit paling signifikan dari bus dengan prescaller sebuah - mirip dengan
INSTRUKSI. kedua operan untuk ALU Microchip PIC16F877A. Namun, hanya
berasal dari register W (akumulator). masukan clock internal untuk TMR0
tersedia. Tidak ada fungsi pengawas telah
Gambar. 3 menunjukkan, pada gilirannya,
negara bagian alamat, instruksi dan Output
port A bus, dan dipilih sinyal internal dari
mikrokontroler (diawali dengan '' _ ''
karakter). Sebagian besar nama-nama
sinyal-sinyal ini sesuai dengan label pada
Gambar. 2. _faddr bus, tidak ditampilkan
pada Gambar 2, merupakan alamat register
file, yang berasal baik dari 8 bit paling
signifikan dari instruksi kata atau FSR
dilaksanakan baik. Mikrokontroler register - tergantung pada saat menangani
menyadari 33 lebih dari 35 instruksi modus. Bus ini menyatakan bagian internal
PIC16F877A. yang jelas watchdog timer dari blok AD dan itu digunakan mis sebagai
(CLRWDT) dan SLEEP petunjuk belum sumber untuk GPR perhitungan alamat
diimplementasikan. Sebagai memori bank (_gpr_addr bus). Bentuk gelombang
program untuk mikrokontroler, RAM simulasi dari Gambar. 3 mengacu pada
sinkron atau memori ROM diperlukan. versi mikrokontroler C.
Calon yang ideal untuk ini Tujuan blok Pertama tiga instruksi dari daftar
memori RAM tertanam di dalam FPGA. penyebab untuk memuat nilai 05h ke
Seperti disebutkan dalam bagian register W, mengirim nilai register W ke
sebelumnya, tiga versi dari mikrokontroler port output A dan menyimpan konten W
telah dipertimbangkan. Dari titik arsitektur mendaftar dalam memori data (GPR) di
dari melihat yang versi ini berbeda dalam lokasi 55h. Perubahan berikutnya dari W
jumlah register pipa R1. . .R3 Dan cara di konten mendaftar dan keadaan port A
mana register ini dikendalikan. ada juga output (PAout) dapat diamati pada Gambar
beberapa perubahan di blok MDCU antara 3 Catatan bahwa ketika kode instruksi
versi mikrokontroler. Dalam hal versi A muncul pada bus INSTRUCTION, bus
hanya R1 dan R2 register ALAMAT segera mengambil alamat
diimplementasikan. Register ini diaktifkan instruksi berikutnya (blok NEXTPC pada
selama jatuh jam tepi. Versi B Gambar. 2 bertanggung jawab untuk seperti
mengeksploitasi ketiga register R1. . .R3. perilaku).
Jam tepi aktif untuk register kedua Setelah tiga instruksi yang disebutkan
meningkat (lihat Gambar. 1 c dan deskripsi di atas, berikutnya dieksekusi instruksi ''
pada bagian sebelumnya). Dalam hal versi addwf 55h, 1 ''. Pada saat yang sama ketika
C, tidak ada register pipa digunakan (semua ALAMAT bus diperbarui, blok AD (Gbr.
register yang dilewati). 2) menegaskan alamat untuk memori data
Dalam rangka untuk lebih memahami (bus gpr_addr pada Gambar. 3) dan sinyal
cara kerja mikrokontroler mari kita kontrol untuk MUX2 yang multiplexer.
perhatikan kode assembler sangat Selanjutnya, data memori dibaca
sederhana ditunjukkan pada Listing 1 dan asynchronous, dan nilai membaca
hasil simulasi dari Gambar. 3 Pertama dua disampaikan ke bus sumber (SBU dalam
kolom nilai heksadesimal pada Listing 1 Gambar. 2) dan masukan pertama dari ALU
berisi alamat dan instruksi kode mnemonik (SBU = 05h pada Gambar. 3). Sejak
assembler terletak di sebelah kanan sisi. MDCU yang menyebabkan ALU untuk
melakukan penambahan dan operan kedua pertama dari subrutin diambil dan
untuk ALU berasal dari register W (05h kemudian dieksekusi. Oleh karena itu,
dalam kasus ini), hasil ALU benar dihitung seperti dapat dilihat pada simulasi bentuk
(0Ah dalam kasus ini) dan pindah ke bus gelombang dari Gambar. 3, instruksi yang
tujuan (dbus). Sementara terdekat kenaikan memodifikasi program counter dieksekusi
nilai jam tepi dbus adalah ditulis ke lokasi dalam satu siklus clock tunggal.
yang sama dalam memori data dari mana Subrutin dari Listing 1 juga
data sebelumnya membaca (55h dalam menggambarkan kemampuan
kasus ini). pengalamatan tidak langsung dari
Meningkatnya jam tepi juga mikrokontroler. Kode ini bertanggung
menyebabkan kode instruksi berikutnya jawab untuk menulis dari nilai dibaca dari
(2018h) muncul pada bus INSTRUCTION. lokasi memori data 55h bawah alamat yang
Instruksi ini adalah panggilan subroutine terkandung dalam register W (05h dalam
terletak di alamat 018h. Alamat langsung hal ini, yang merupakan alamat port A). Hal
muncul pada bus ALAMAT, dan selama ini menyebabkan perubahan output port A
Alangkah berikutnya Jam tepi instruksi dari 05h ke 0Ah.

Setelah kembali dari subroutine, yang mikrokontroler ada lebih sedikit clock
juga mengambil satu siklus clock, instruksi cycle (4 kali) dibandingkan dalam kasus
berikutnya ('' btfsc 55h, 0 '') tes bit 0 (LSB keluarga PIC16.
bit) dari nilai membaca dari lokasi memori
data 055h. Karena bit jelas dalam hal ini 4. Hasil Implementasi
kasus, ini menyebabkan melewatkan Untuk menentukan indikator kualitas
eksekusi dari instruksi berikutnya yang sintesis (FPGA logika kebutuhan sumber
terletak di 011h - melewatkan sinyal daya dan frekuensi clock maksimum) dari
menegaskan untuk satu siklus clock mikrokontroler, tiga versi mikrokontroler
(mikrokontroler melakukan operasi tidak telah diimplementasikan dalam chip FPGA
ada pada saat itu). Ini adalah satu-satunya dipilih dari Xilinx (Spartan keluarga 3A).
terjadi ketika pelaksanaan instruksi The Digilent UG-330 prototipe papan telah
membutuhkan dua siklus instruksi, mirip digunakan. Tes kinerja, yang terutama
keluarga PIC16. Namun, untuk menyadari perhitungan primer terisolasi
angka dalam kisaran yang dipilih, telah disebutkan dalam Bagian 2 Perbandingan
dilakukan juga. The Hasilnya ditunjukkan mencakup core IP berikut: MINIRISC [14],
pada Tabel 1. RISC8 [15], 16F84 [18], PPX16 [21],
Perhatikan bahwa patokan perhitungan CQPIC [20], RISC16F84 [22] dan versi
kali diberikan di bawah kondisi di mana mikrokontroler C, dipertimbangkan dalam
semua versi mikrokontroler yang clock makalah ini. Dengan pengecualian dari inti
dengan frekuensi sangat dekat dengan nilai IP ketiga tercantum dalam Tabel 2
maksimum yang diperbolehkan mereka (36 (16F84),semua core lain yang tersedia
MHz, 86,1 MHz dan 55 MHz masing- secara bebas dan dapat didownload dari
masing). Jika jam yang sama frekuensi situs web tertentu. Untuk tujuan
diterapkan kali perhitungan benchmark perbandingan, IP core ini memiliki
versi mikrokontroler A dan C akan sama. dilaksanakan di Xilinx Spartan-3A FPGA,
Dalam kasus versi mikrokontroler B waktu menggunakan sintesis default dan strategi
patokan akan dua kali lebih lama pelaksanaan Suite Xilinx ISE Desain alat,
dibandingkan dengan versi lain. Hal ini dan pasca implementasi hasil telah
berkaitan langsung dengan struktur ditempatkan di terakhir dua kolom Tabel 2
instruksi mikrokontroler siklus versi. Dalam hal inti IP ketiga disebutkan, yang
Versi mikrokontroler A dapat clock nilai yang dilaporkan oleh penulis [18]
dengan terendah frekuensi dan ciri kinerja telah diambil ke dalam pertimbangan.
terendah juga (terpanjang waktu komputasi Penting untuk dicatat bahwa IP core
- 15% dan 33% lebih dari versi B dan C). berbeda dalam kapasitas Data dan
Namun itu membutuhkan sumber daya tumpukan memori, dan kehadiran Timer0
terendah logika (9% dan 16% lebih kecil dan menonton pemantau (WDT). Ini adalah
dari versi B dan C). Versi mikrokontroler faktor yang signifikan mempengaruhi pada
ini dapat berguna dalam aplikasi di mana FPGA sumber logika kebutuhan IP core
persyaratan sumber daya logika adalah implementasi. Selain itu, dua pertama IP
faktor yang lebih penting daripada kinerja core (MINIRISC dan RISC8) adalah
mikrokontroler. berdasarkan arsitektur Microchip
Versi mikrokontroler B ciri maksimum PIC16C57, yang lebih sederhana
frekuensi clock tertinggi. Namun, dibandingkan dengan PIC16F84 (misalnya
kinerjanya moderat. ini mikrokontroler PIC16C57 tidak memiliki sistem interupsi,
dapat dimanfaatkan dalam aplikasi di mana kata instruksi memiliki lebar lebih pendek).
clock tinggi jumlah frekuensi (kinerja Oleh karena itu, kebutuhan sumber daya
keseluruhan sistem sinkron ditentukan oleh untuk inti IP ini secara alami lebih kecil dari
bagiannya clock dengan frekuensi untuk yang lain.
terendah). Seperti dapat dilihat pada Tabel 2, versi
Kinerja tertinggi, diperoleh berdasarkan mikrokontroler C mencirikan tertinggi
nilai moderat frekuensi clock maksimum, mutlak kebutuhan sumber daya FPGA dan
adalah fitur dari versi mikrokontroler C. terkecil maksimum frekuensi clock, tapi itu
Kelemahan dari versi adalah bahwa ia satu-satunya yang mampu mengeksekusi
memerlukan paling FPGA sumber logika. instruksi jump (instruksi yang
Tabel 2 menunjukkan perbandingan memodifikasi program counter) dalam satu
singkat antara core IP yang ada dari siklus. Namun, jika kita merujuk jumlah
Mikrokontroler PIC 8-bit implementasi, irisan yang dibutuhkan oleh IP core
implementasi ke Total iris yang tersedia di di unit ALU, yang terungkap dalam kondisi
chip FPGA tertentu - misalnya sebuah tertentu. Dalam kasus MINIRISC dan
XC3S700A dari papan Digilent UG-330 RISC8 tersebut, yang digunakan HITECH
(yang agak rendah density chip FPGA) - C compiler gagal untuk mengkompilasi
maka perbedaan antara yang terkecil kode sumber patokan untuk arsitektur
(RISC16F84) dan tertinggi (C versi PIC16C57. Alasannya mungkin terkait
mikrokontroler) nilai tidak lebih dari 2,2% fakta, bahwa arsitektur Microchip ini hanya
untuk chip ini. Ini bukan perbedaan yang mampu menangani 2 tingkat stack,
signifikan. sedangkan prosedur patokan memerlukan
Sejauh versi mikrokontroler B yang setidaknya 3 tingkat.
bersangkutan, yang tidak tercantum dalam Sebagai Tabel 3 menunjukkan, waktu
Tabel 2 (dengan pengecualian dari tiga perhitungan diukur patokan untuk
kolom terakhir pada Tabel 2, parameter lain pelaksanaan inti IP RISC16F84 tersebut,
dari mikrokontroler versi A dan B adalah clock di 100 MHz (sangat dekat dengan
sama seperti untuk versi mikrokontroler C) frekuensi clock maksimum), dibawa keluar
mencirikan relatif tinggi frekuensi clock 553,839 ms. Ini adalah 116,844 ms lebih
maksimum (lihat Tabel 1) dibandingkan dari waktu patokan untuk versi
dengan implementasi lain dari IP core mikrokontroler C, clock 55 MHz, dan 4,386
berdasarkan Arsitektur PIC16F84. Versi ms kurang mengacu pada waktu benchmark
mikrokontroler memiliki, pada gilirannya, versi mikrokontroler B, clock 86,1 MHz
persyaratan sumber daya logika relatif (frekuensi 13,9% lebih rendah
rendah, namun, frekuensi clock maksimum dibandingkan dengan RISC16F84). Hal ini
secara signifikan lebih rendah daripada menunjukkan kinerja yang sangat baik dari
frekuensi terendah implementasi dianggap versi mikrokontroler C, meskipun fakta itu
lainnya. Namun demikian, sama dengan clock hampir 2 kali lambat. Dalam hal
versi mikrokontroler C, ia mampu pelaksanaan RISC16F84, clock 86,1 MHz -
menjalankan melompat instruksi dalam frekuensi yang sama seperti untuk versi
siklus clock tunggal, yang ada mikrokontroler B - waktu patokan
implementasi lain mampu. mengeluarkan 643,168 ms. Ini adalah
Di antara parameter pada Tabel 2, 15,2% lebih dari versi mikrokontroler B.
evaluasi kinerja core IP implementasi juga versi mikrokontroler B memerlukan 2 clock
telah dilakukan. Sayangnya, evaluasi - cycle untuk instruksi biasa tetapi untuk
dilakukan dengan cara yang sama seperti instruksi jump RISC16F84 membutuhkan
untuk mikrokontroler diperkenalkan dalam banyak siklus yang dua kali daripada versi
makalah ini, sepenuhnya berhasil hanya mikrokontroler B. Fakta ini menjelaskan
satu kasus: untuk RISC16F84 inti IP. versi mikrokontroler keunggulan kinerja B
CQPIC dan PPX16 core IP implementasi ketika jam yang sama frekuensi diterapkan.
memberi salah nomor utama perhitungan
Hasil dan waktu perhitungan patokan yang
benar-benar tidak masuk akal (5,542 ms
dan 11,378 ms masing-masing). Ini
mungkin menunjukkan bahwa IP core ini
belum sepenuhnya diuji oleh para desainer
dan memiliki beberapa kesalahan, mungkin
tulisan ini kami mengusulkan untuk
menambah proyek FPGA inti IP dari modul
khusus - downloader - yang akan mampu
memuat isi memori baru selama sistem
operasi, menggunakan antarmuka serial.
Meskipun menambahkan komponen baru
5. Downloader Hardware untuk proyek meningkatkan kebutuhan
Menyiapkan dan pengujian perangkat sumber daya logika, yang modul
lunak untuk FPGA tertanam downloader hanya diperlukan selama
mikrokontroler sering membutuhkan proses pengembangan perangkat lunak.
beberapa data yang di-download ke memori Ketika proses akan selesai, downloader inti
program mikrokontroler, biasanya IP dapat dihapus dari proyek tersebut. Oleh
diimplementasikan sebagai RAM karena itu, FPGA kebutuhan sumber daya
berdedikasi blok di dalam FPGA. Memulai untuk implementasi akhir proyek tidak
memori tersebut pada dasarnya dapat meningkat.
dilakukan selama proses pelaksanaan Gambar. 4 menunjukkan cara modul
proyek. Dalam pendekatan ini perubahan downloader terhubung ke memori program
isi memori mikrokontroler membutuhkan dan mikrokontroler. Memori (blok RAM)
implementasi ulang dari keseluruhan memiliki port ganda - port pertama
proyek, yang merupakan operasi memakan terhubung ke mikrokontroler, sedangkan
waktu dan tidak nyaman untuk sering yang kedua digerakkan oleh downloader.
pertukaran kode program. Ada juga Downloader ini juga mendorong input reset
kelayakan perubahan langsung bagian dari (RST) dari mikrokontroler (selama transfer
konfigurasi bitstream FPGA, yang data mikrokontroler dibawa dalam keadaan
bertanggung jawab untuk inisialisasi reset). Dalam skema dari Gambar. 4 ada
memori, tanpa perlu proyek implementasi dua sinyal clock: CLK1 untuk clocking
ulang [23]. Namun, itu bukan proses yang downloader (frekuensi jam ini sangat
mudah. Sebagai contoh, untuk Xilinx terkait dengan data rate dari downloader
FPGA dua file tertentu harus siap (satu transceiver serial) dan CLK2 untuk
untuk deskripsi koneksi blok RAM dan clocking mikrokontroler. Dalam kasus
lokalisasi fisik mereka dalam sebuah tertentu sinyal jam dapat dihubungkan
FPGA, dan yang kedua dengan isi memori bersama-sama.
baru) dan dedicated Xilinx aplikasi Downloader ini menggunakan interface
(data2mem) harus digunakan untuk serial generik untuk transfer data. Oleh
memperbarui FPGA berkas bitstream. karena itu, bagian penting dari modul ini
Untuk memfasilitasi perubahan sering adalah penerima serial dan pemancar, dan
program mikrokontroler isi memori, dalam synthesizer frekuensi digital langsung.
yang terakhir menghasilkan frekuensi clock Aplikasi pertama telah terealisasi dalam
cocok untuk pemancar dan penerima. dua versi: menggunakan aliran khas FPGA
Sebuah bagian penting dari downloader desain (satu set core IP tertentu yang
merupakan format data Intel HEX dijelaskan dalam Verilog HDL) -
interpreter. Penerjemah membuat pendekatan hardware, dan menggunakan
pengolahan langsung compiler file output mikrokontroler tertanam - pendekatan
yang mungkin, yang Intel HEX adalah perangkat lunak. Dalam hal pendekatan
umum format data. Modul downloader pertama, IP core bus 1-kawat dan layanan
membutuhkan sedikit logika FPGA sumber layar LCD, dan interpretasi data dari sensor
daya (285 irisan untuk Spartan 3A, harus dikembangkan dan diuji. Ini lebih
sedangkan mikrokontroler kebutuhan 491- sulit, kurang fleksibel dan lebih memakan
571 iris). waktu daripada menyadari sama tugas
Di sisi pengguna, perubahan konten dengan menulis perangkat lunak dalam
memori program hanya membutuhkan bahasa pemrograman tingkat tinggi seperti
untuk menggunakan aplikasi seperti C. Namun, sebagai hasil pelaksanaan acara,
Hyperterminal untuk langsung mentransfer dalam kasus aplikasi dipertimbangkan,
compiler HEX file output downloader. Jadi, pendekatan perangkat keras membutuhkan
itu adalah jauh lebih mudah daripada kurang FPGA sumber daya (317 iris vs 530
menggunakan yang paling umum ditemui iris - lihat Tabel 4), yang merupakan
pendekatan. Keuntungan dari pendekatan ini. Selain itu,
menambah aplikasi fungsionalitas
tambahan pengiriman nilai suhu melalui
serial Port meningkatkan kebutuhan
sumber daya untuk 382 iris dalam kasus
pendekatan hardware. Dengan pendekatan
software, fungsi yang sama tidak
6. Contoh aplikasi memerlukan sumber daya tambahan
Untuk menggambarkan kegunaan (ukuran kode program hanya meningkat).
mikrokontroler tertanam, dua contoh Aplikasi kedua adalah contoh tugas
aplikasi telah dikembangkan. Tugas utama membagi antara perangkat lunak dan
dari aplikasi pertama adalah untuk perangkat keras di dalam FPGA. The
membaca suhu dari sensor 1-kawat Manchester decoder, menyadari sebagai
(DS18B20 dari Dallas / Maxim) dan hadir blok hardware, analisis dan
pada layar LCD. Aplikasi kedua melibatkan menerjemahkan Data dari demodulator
peripheral tertentu - Manchester kode RFID eksternal (reader) dan membuat
decoder - terintegrasi dengan mereka tersedia untuk perangkat lunak
mikrokontroler, dan dapat digunakan mikrokontroler tertanam. perangkat lunak
sebagai sistem kontrol akses sederhana membandingkan bit identifikasi (ID), yang
dengan tag RFID. Kedua aplikasi telah dibaca dari RFID tag, dengan ID resmi
dilaksanakan dan diuji pada papan evaluasi yang tersimpan dalam memori, dan
Digilent UG-330. menampilkan beberapa informasi pada
layar LCD. Dalam hal ini perangkat lunak
bagian dari aplikasi berfokus pada fungsi Bertentangan dengan mikrokontroler
penting dan user interface, yang jauh lebih tertentu yang ditawarkan oleh vendor
mudah dan lebih cepat untuk disadari oleh FPGA, seperti Xilinx picoblaze atau Lattice
perangkat lunak. Aplikasi ini Mico8, yang disajikan mikrokontroler
membutuhkan 830 potong Spartan 3A didasarkan pada arsitektur Microchip
FPGA PIC16 populer dan dapat
diimplementasikan dalam FPGA dari
vendor manapun. Selain itu, mikrokontroler
7. Kesimpulan secara signifikan lebih cepat daripada
Telah terbukti bahwa penggunaan Microchip yang archetype.
bahkan sederhana 8-bit mikrokontroler Mengingat struktur siklus instruksi
tertanam dalam FPGA dapat membantu yang berbeda dari mikrokontroler telah
untuk melaksanakan beberapa fungsi menunjukkan bahwa kinerja terbaik
aplikasi. Non-waktu tugas penting Umum, diperoleh ketika siklus instruksi mengambil
seperti layanan antarmuka pengguna, dapat satu siklus clock dengan clock edge
diwujudkan dengan perangkat lunak, yang tunggal. Menambahkan register pipa
lebih mudah lebih fleksibel dan lebih cepat meningkatkan clock maksimum frekuensi
untuk mengembangkan daripada analog (dalam kasus tunggal jam tepi digunakan)
desain hardware. Namun, tergantung pada tetapi juga meningkatkan jumlah siklus
mikrokontroler kebutuhan sumber daya clock yang diperlukan untuk mengeksekusi
FPGA logika tertanam, realisasi software instruksi. Oleh karena itu kinerja secara
dari beberapa tugas mungkin perlu lebih keseluruhan tidak meningkat.
banyak sumber daya dari perangkat keras Membandingkan mikrokontroler untuk
counterpart. implementasi serupa lainnya, kelemahan
Mengembangkan dan menguji merupakan persyaratan sumber daya logika
perangkat lunak untuk aplikasi sampel yang relatif tinggi dan rendah frekuensi
disebutkan dalam Pasal 6, telah clock maksimum (terutama untuk
membuktikan bahwa modul downloader mikrokontroler versi A dan C). Namun,
dapat berguna untuk mendukung sering fitur unik mikrokontroler adalah
mikrokontroler kode program pertukaran. kemampuan untuk mengeksekusi instruksi
Tanpa downloader, setiap perubahan isi melompat di siklus instruksi tunggal, yang
memori program mikrokontroler sangat tidak ditemui dalam sejenis implementasi.
nyaman dan waktu mengkonsumsi. Fitur ini bersama dengan instruksi khusus
struktur siklus, yang hanya membutuhkan June
satu siklus clock, menjamin sangat kinerja 2011.
yang baik dari mikrokontroler. [4] U. Meyer-Baese, Digital Signal
Kerja masa depan akan berkonsentrasi Processing with Field Programmable
pada peningkatan frekuensi clock Gate
maksimum mikrokontroler (jalur kritis Arrays, Springer, Berlin Heidelberg,
perlu diidentifikasi dan didesain ulang). 2007.
Sebuah percobaan desain implementasi [5] R.E. Haskell, D.M. Hanna, A VHDL-
FPGA sepenuhnya asynchronous dari forth core for FPGAs, Microprocessors
mikrokontroler juga direncanakan. and
beberapa menjanjikan Hasil telah dicapai Microsystems 28 (3) (2004) 115–125.
dalam domain menuntut ini implementasi [6] A. Ehliar, P. Karlstrom, D. Liu, A high
rangkaian asynchronous dalam FPGAs performance microprocessor with DSP
komersial. extensions optimized for the Virtex-4
FPGA, in: Int. Conf. on Field
Lampiran A. Tambahan Programmable Logic and Applications,
The Verilog kode sumber (IP core) dari 2008, pp. 599–602.
tiga mikrokontroler versi, downloader dan [7] M. Tamagnone, M. Martina, G. Masera,
aplikasi sampel serta C Kode sumber An application specific instruction set
pengujian dan software benchmark bagian processor based implementation for
dari contoh aplikasi yang tersedia sebagai signal detection in multiple antenna
data tambahan. Tambahan data yang terkait systems, Microprocessors and
dengan artikel ini dapat ditemukan, di versi Microsystems 36 (3) (2012) 245–256.
online, di [8] Lattice Semiconductor Corporation,
http://dx.doi.org/10.1016/j.micpro.2013.10 LatticeMico8 Open, Free 8-bit Soft
.004. Microcontroller.
<http://www.latticesemi.com/products/
intellectualproperty/
Referensi ipcores/mico8.cfm>.
[9] Altera Corp., Nios II Processor: The
[1] T. Schnettler, Microcontroller Design in World’s Most Versatile Embedded
FPGAs, EE Times, 2008. <http:// Processor.
www.eetimes.com/design/programmab <http://www.altera.com/devices/proces
le- sor/nios2/ni2-index.html>.
logic/4015188/MicrocontrollerDesign- [10] Microchip, PIC16F87XA 28/40/44-
in-FPGAs>. Pin Enhanced Flash Microcontrollers.
[2] B.H. Fletcher, FPGA Embedded <http://ww1.microchip.com/downloads
Processor – Revealling True System /en/DeviceDoc/39582C.pdf>.
Performance, Embedded Systems [11] W.M. El-Medany, A. Alomary, R. Al-
Conference San Francisco, 2005, pp. 1– Hakim, S. Al-Irhayim, M. Nousif,
18. Implementation of GPRS-Based
[3] Xilinx, PicoBlaze 8-bit Embedded Positioning System Using PIC
Microcontroller User Guide, UG129, Microcontroller, in: Int. Conf. on
Computational Intelligence,
Communication [16] Altera Corp., DFPIC1655X - RISC
Systems and Networks (CICSyN), Microcontroller.
2010, pp. 365–368. <http://www.altera.com/
[12] P.N. Rivera-Arzola, J.C. Ramos- products/ip/processors/8_4bit/m-
Fernandez, J.M.O. Franco, M. dcd_dfic1655x.html>.
Villanueva-Ibanez, [17] H. Madasi, S.N. Bhavanam, V.
M.A. Flores-Gonzalez, A PIC Midasala, A PIC compatible RISC CPU
microcontroller embedded system for core
medical implementation for FPGA based
Table 4 configurable SOC platform for
FPGA resources requirement for embedded
different approaches to the application applications, ACEEE International
realization. Journal on Electrical and Power
Approach Number Engineering
of slices 2 (2) (2011) 11–15.
Number of block [18] D.F. Gómez Prado, Embedded
RAM blocks Microcontrollers and FPGAs Soft-
Hardware 317 0 cores,
Hardware with UART transmitter 382 0 Electronica 18 (2006) 3–14.
Software 530 2 <http://sisbib.unmsm.edu.pe/bibvirtual
Z. Hajduk / Microprocessors and data/
Microsystems 38 (2014) 1–8 7 publicaciones/electronica/n18_2006/a0
rehabilitation using ultrasonic 2.pdf>.
stimulation through controlling planar [19] S.Y. Yuan, F. Chia, P.S. Chang, S.S.
X-Y Liao, The power stability of FPGA-
scanning Trajectories, in: IEEE Conf. based
on Electronics, Robotics and microcontroller design and
Automotive measurement, in: Asia–Pacific
Mechanics (CERMA), 2011, pp. 307– Symposium on
310. Electromagnetic Compatibility
[13] S. Genovesi, A. Monorchio, M.B. (APEMC), 2010, pp. 1096–1099.
Borgese, S. Pisu, F.B. Valeri, [20] S. Moutou, Using CQPIC Soft
Frequencyreconfigurable microstrip Processor, 2010.
antenna with biasing network driven by <http://moutou.pagespersoorange.fr/E
a PIC R2/Core16F84_en.pdf>.
microcontroller, IEEE Antennas and [21] Opencores Orgranization, PPX16 mcu
Wireless Propagation Letters 11 (2012) Overview. <http://opencores.org/
156–159. project,ppx16>.
[14] Opencores Orgranization, Mini-Risc [22] Opencores Orgranization, Risc16f84
core Overview. <http://opencores.org/ Overview. <http://opencores.org/
project,minirisc,overview>. project,risc16f84>.
[15] T. Coonan, RISC8 core. [23] Xilinx, Data2MEM User Guide, June
<http://www.mindspring.com/~tcoona 2009.
n/risc8.pdf>.
Zbigniew Hajduk
menerima gelar
M.Sc. (Eng.) dari
Rzeszow University
of Technology,
Rzeszow, Polandia,
di 1998 dan gelar
Ph.D. dari
University of
Zielona Góra, Zielona Góra, Polandia, pada
tahun 2006. Dia saat ini merupakan Asisten
Profesor di Departemen Teknik Elektro dan
Komputer, Rzeszow University of
Technology, Polandia. Keahlian utamanya
meliputi desain sistem digital dengan
FPGA. Dia adalah penulis dua buku (dalam
bahasa Polandia) mengenai mikrokontroler
dalam sistem remote control dan desain
FPGA dengan penggunaan Verilog
Hardware Description Language.