• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN ARSITEKTUR INVERSE-CABAC

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN ARSITEKTUR INVERSE-CABAC"

Copied!
22
0
0

Teks penuh

(1)

BAB 4

PERANCANGAN ARSITEKTUR INVERSE-CABAC

Bab ini membahas perancangan arsitektur Inverse-CABAC. Perancangan arsitektur CABAC meliputi perancangan datapath, unit kontrol, dan timing diagram.

4.1 Struktur Umum Inverse-CABAC

Input untuk Inverse-CABAC adalah nilai bitstream, sedangkan outputnya adalah nilai bit yang telah di-decode. Input bitstream dimasukkan ke dalam sistem bila sinyal start_dec bernilai “1”. Dengan demikian rancangan untuk modul Inverse-CABAC ini dapat direpresentasikan sebagai suatu black-box seperti terlihat pada gambar berikut.

Gambar 4.1 Input dan Output Inverse-CABAC

Dari hasil analisis fungsi Inverse-CABAC yang telah dilakukan pada perancangan awal, datapath Inverse-CABAC dapat dibangun dari modul init context, buffer stream, unit arithmetic decoding (Arcod dan Bypass), serta register untuk proses update nilai range dan offset. Saat input sinyal start_dec bernilai “1”, maka sinyal ini akan mengaktifkan modul init context dan buffer stream untuk menulis nilai input bitstream ke RAM (initRAM pada buffer stream) dan memulai proses inisialisasi yang dibutuhkan sebelum proses decoding dapat dijalankan. Nilai inisialisasi yang dibutuhkan untuk memulai proses decoding kemudian akan

(2)

disimpan pada register range dan offset. Diagram blok untuk rancangan Inverse-CABAC ditunjukkan pada gambar 4.2.

Init Context Buffer Stream Arcod Bypass Offset Range Register Updated offset and range

context_model bitstream Updated context_model Decoded bit Decoded bit input bitstream

Gambar 4.2 Diagram Blok Inverse CABAC

4.2 Perancangan Buffer Stream

Proses pertama pada modul inverse CABAC adalah penyimpanan bitstream pada buffer. Bitstream yang disimpan akan digunakan untuk nilai awal offset dan proses update nilai offset pada proses binary decoding. Jumlah maksimum bitstream yang dibutuhkan untuk proses satu buah macroblock, pada perancangan ini, adalah 664 bit. Dari keseluruhan bitstream tersebut, 9 data pertama akan dijadikan nilai awal offset, sedangkan bitstream lainnya akan digunakan untuk proses decoding.

Unit penyimpanan bitstream diimplementasikan dengan menggunakan RAM sedangkan bagian unit kontrol diimplementasikan dengan FSM. Diagram blok modul buffer stream ini dapat dilihat pada gambar 4.3.

(3)

Gambar 4.3 Diagram Blok Buffer Stream

4.2.1 Blok RAM

Blok RAM yang digunakan untuk menyimpan nilai bitstream, pada perancangan ini berukuran 664x1 bit. Akses pada blok RAM ditentukan oleh sinyal kontrol RAM_we untuk akses penulisan, dan sinyal kontrol RAM_ce untuk akses pembacaan data. Penulisan data bitstream ke RAM dilakukan selama 664 clock cycle, secara berurutan sebagai proses inisialisasi, sedangkan pembacaan nilai bitstream dilakukan hanya saat ada request dari unit binary decoding. Data yang dibaca dari RAM digunakan untuk proses decoding pada blok arcod dan bypass. Penghitungan alamat untuk akses ke RAM dilakukan oleh address counter pada unit kontrol. Sinyal kontrol dan alamat untuk akses ke RAM ini dihasilkan oleh unit kontrol buffer stream.

4.2.2 Unit Kontrol Buffer Stream

Unit kontrol buffer stream diimplementasikan dengan menggunakan FSM, dengan state seperti ditunjukkan gambar 4.4.

(4)

Gambar 4.4 State Transition Unit Kontrol Buffer Stream

Proses pertama pada unit buffer stream adalah penulisan data bitstream dari port input ke RAM. Tahap ini disebut state WRITE_STREAM. Penulisan bitstream dimulai setelah sinyal status start_buff bernilai “1”. Penulisan bitstream berlangsung selama 664 clock cycle. Dengan demikian selama state WRITE_STREAM, kontrol RAM_we bernilai “1”.

Tahap berikutnya, setelah proses penulisan nilai bitstream ke RAM selesai, adalah READ_INIT. Pada tahap ini, 9 data pertama bitstream, dibaca secara berturut-turut dari blok RAM untuk kemudian dibentuk menjadi sebuah data parallel. Data parallel ini akan digunakan sebagai nilai awal offset. Proses pembentukan data parallel dilakukan dengan menggunakan rangkaian shift-register 9-bit seperti yang terlihat pada gambar 4.5. Dengan demikian pada state READ_INIT, nilai sinyal kontrol RAM_ce akan bernilai “1”.

(5)

Gambar 4.5 Arsitektur Shift Register untuk Pembentukan Nilai Awal Offset

Timing diagram untuk proses shifting ditunjukkan gambar berikut:

Gambar 4.6 Timing Diagram Proses Pembentukan Nilai Awal Offset

Tahap terakhir pada blok buffer stream adalah pembacaan data dari RAM untuk proses decoding. Data yang dibaca dari RAM ini, digunakan oleh blok arcod untuk proses renormalisasi nilai offset, dan digunakan oleh blok bypass untuk update nilai range dan offset. Dengan demikian sinyal kontrol untuk pembacaan data dari RAM, RAM_ce, ditentukan berdasarkan request dari blok arcod dan bypass, yaitu sinyal renorm dan bypass_enable. Pembentukan sinyal RAM_ce pada state READ_STREAM dapat dilihat pada gambar 4.7.

(6)

D-FF

D-FF renorm

bypass_enable

RAM_ce

Gambar 4.7 Pembentukan Sinyal RAM_ce

Proses transisi state pada FSM ditentukan oleh sinyal status end_count, yang dihasilkan dari nilai maksimum counter. Nilai counter ini juga dijadikan sebagai alamat untuk akses ke blok RAM. Arsitektur counter untuk masing-masing state diimplementasikan oleh sebuah counter, berupa shared-hardware. Karena counter yang digunakan berupa shared-hardware untuk semua state, maka nilai awal dan nilai maksimum akan berbeda untuk masing-masing state. Nilai awal dan nilai maksimum counter untuk masing-masing state ditunjukkan tabel berikut :

Tabel 4.1 Parameter Counter pada Unit Kontrol Buffer Stream State Nilai Awal Nilai Maksimum

WRITE_STREAM 0 663

READ_INIT 0 8

READ_STREAM 9 663

4.3 Perancangan Init Context

Bersamaan dengan proses penyimpanan bitstream, dilakukan juga proses penghitungan nilai state dan MPS awal untuk setiap context index. Proses penghitungan nilai awal state dan MPS ini dilakukan oleh blok Init Context. Blok Init Context, secara umum terdiri atas: unit ROM, yang digunakan untuk menyimpan context index; unit RAM context, untuk menyimpan nilai context

(7)

model, dan unit kontrol untuk pengaturan keseluruhan proses. Secara umum struktur bagian init context digambarkan dalam diagram blok unit seperti ditunjukkan gambar berikut :

Gambar 4.8 Blok Diagram Init Context

Proses pada blok Init Context dikontrol dengan menggunakan FSM, seperti ditunjukkan pada gambar 4.9.

(8)

Proses pada blok Init Context diawali saat sinyal start_context = ‘1’. Proses pertama pada blok Init Context, yaitu state WRITE_INIT, adalah proses penulisan nilai awal context model ke memory RAM Context. Nilai context model ini didapat dari perhitungan yang dilakukan oleh blok Init Context Core. Arsitektur blok Init Context Core tersebut dapat dilihat pada gambar berikut:

FF FF FF FF FF FF add_in_en data_ROM_en add_in_en add_out_en ste_mps_en data_ROM_en ROM_cntx_data ROM_indx_data ste_mps ste MPS calculated ste_mps MAX MIN Logic

mQn mQ4_reg n12 mQ4 qROM qp_indx_data

Gambar 4.10 Arsitektur Blok Init Context Core

Input untuk proses perhitungan nilai context model ini adalah nilai parameter kuantisasi dari ROM index, dan nilai m dan n dari ROM context. Nilai context model yang dihitung pada perancangan ini sebanyak 844 buah.

Dengan memperhatikan kompleksitas blok Init Context Core, maka penghitungan setiap nilai context model dirancang dalam 5-stage pipeline. Dengan demikian diharapkan combinational delay dapat dikurangi, sehingga desain yang dihasilkan dapat bekerja pada frekuensi yang lebih tinggi.

Tahapan pipeline pada blok Init Context Core adalah sebagai berikut: • Tahap 1

Pada tahap ini, dilakukan pembacaan data dari ROM index dan ROM context. Keluaran dari ROM index dan ROM context digunakan sebagai input multiplier pada penghitungan context model tahap 2. Pembacaan data ROM index hanya dilakukan pada alamat pertama saja. Pembacaan data ROM context dilakukan secara berturut-turut sebanyak 844 kali untuk setiap penghitungan nilai context model.

(9)

• Tahap 2

Pada tahap kedua dilakukan proses perkalian antara data ROM context dan data ROM index. Data ROM index yang digunakan untuk proses perkalian berukuran 8-bit, yang diambil dari ROM_index_data [15:8], sedangkan data ROM context yang digunakan diambil dari ROM_context_data [7:0].

• Tahap 3

Pada tahap ketiga dilakukan penjumlahan antara hasil perkalian pada tahap 2 dengan nilai ROM_index_data [7:0].

• Tahap 4

Pada tahap ini dilakukan operasi pembentukan nilai awal state dan MPS. • Tahap 5

Pada tahap ini data context model sudah valid dan dapat ditulis ke RAM context. Proses penulisan dilakukan sebanyak data context model yang dihitung, yaitu 844 buah. Dengan demikian penulisan data ke RAM dilakukan setiap 5 clock cycle. Sehingga total proses untuk penghitungan inisialisasi context model adalah 4220 clock cycle.

Setelah proses perhitungan nilai awal context model selesai, yang ditandai dengan aktifnya sinyal end_init, maka proses berikutnya adalah pembacaan memory RAM Context untuk proses arithmetic decoding. Tahap ini dinamakan state READ_MEM. Pembacaan memory RAM Context ini dilakukan berdasarkan alamat yang didapat dari nilai 9 bit terakhir dari keluaran ROM index.

Setelah data dari RAM Context dibaca, maka proses decoding dapat dilakukan. Proses decoding dilakukan berdasarkan mode yang didapat dari 2 bit pertama keluaran ROM index, yaitu normal, bypass, dan terminate seperti terlihat pada tabel 4.2. Proses ini selesai setelah sinyal arcod_done atau bypass_done aktif.

(10)

Tabel 4.2 Mode Decoding

ROM_index [9:8] Mode Decoding

00 Normal 01 Bypass 10 Terminate 11 Initial

Jika yang aktif adalah sinyal arcod_done maka tahap berikutnya adalah penulisan nilai update context model ke RAM Context (state WRITE_MEM). Dengan demikian, pembacaan RAM Context berikutnya dapat dilakukan. Jika yang aktif adalah sinyal bypass_done maka nilai update context model tidak perlu ditulis dan pembacaan RAM Context berikutnya dapat dilakukan (state READ_MEM). Gambar 4.11 mengilustrasikan sinyal-sinyal yang mempengaruhi perpindahan state pada blok Init Context.

reset clock

start_cntx end_init

IDLE DECODE READ_MEM DECODE

arcode_psate WRITE_INIT READ_MEM WRITE_MEM DECODE READ_MEM

arcod_done bypass_done RAM_ce RAM_we 0 … 843 1 2 3 addr_count

(11)

4.4 Perancangan Blok Arithmetic Decoding

Proses binary decoding dikelompokkan menjadi mode Normal, Bypass, dan Terminate. Berdasarkan kesamaan pada pemrosesan data, perancangan unit binary decoding dipisahkan menjadi dua bagian, yaitu blok arcod dan bypass. Blok arcod digunakan untuk melakukan proses decoding untuk mode Normal dan Terminate, sedangkan blok bypass digunakan untuk melakukan proses decoding pada mode Bypass.

4.4.1 Arcod

Proses binary decoding di blok arcod mencakup proses peng-update-an nilai range dan offset serta proses renormalisasi nilai range bila diperlukan. Proses decoding dilakukan selama sinyal arcod_enable aktif, yang dihasilkan dari blok init context. Blok diagram unit arcod ditunjukkan gambar 4.12.

ste_mps_new Arcod Core Arcod Control arcod_enable normal_mode terminate_mode bitstream ste_mps_in range_in offset_in decout_bit range_out offset_out renorm arcod_done arcod

(12)

4.4.1.1Unit Update Nilai Range dan Offset

Tahap pertama dari proses decoding adalah pembacaan nilai rLPS dan nilai state berdasarkan masukan nilai range dan offset. Nilai range dan offset merupakan data 16-bit yang dibaca dari register offset range. Nilai masukan range dan state digunakan sebagai alamat untuk ROM_rLPS dan ROM_state. Alamat untuk ROM_rLPS dibentuk dari nilai range_in[7:6] dan nilai ste_mps_in[6:1], sedangkan alamat untuk ROM_state dibentuk langsung dari nilai ste_mps_in[6:1]. Gambar 4.13 mengilustrasikan pembentukan alamat untuk pembacaan ROM_rLPS dan ROM_state.

Gambar 4.13 Struktur ROM rLPS dan ROM state

Data dari ROM rLPS digunakan untuk update nilai range dan offset. Nilai update range diambil dari selisih nilai masukan range_in dan data rLPS atau langsung berupa data rLPS. Jika nilai sel_rng bernilai “1”, nilai update range yang dipilih adalah data rLPS. Sebaliknya, jika bernilai sel_rng “0” maka dipilih selisih nilai range_in dan data rLPS. Pada proses decoding mode Terminate, nilai rLPS selalu bernilai 2, sedangkan untuk mode normal nilai rLPS merupakan keluaran ROM rLPS. Arsitektur bagian proses update nilai range ditunjukkan oleh gambar 4.14.

(13)

Gambar 4.14 Arsitektur Proses Update Nilai Range

Untuk proses update nilai offset, nilai yang diambil dapat berupa selisih nilai masukan offset_in dan output substractor nilai masukan range_in dan data rLPS, atau nilai masukan offset_in langsung. Nilai offset_in dipilih sebagai nilai update offset jika sel_offs bernilai “1”. Sebaliknya, jika sel_offs bernilai “0” maka dipilih selisih nilai masukan offset_in dan output substractor nilai masukan range_in dan data rLPS . Arsitektur untuk proses update nilai offset ditunjukkan oleh gambar 4.15.

Gambar 4.15 Arsitektur Proses Update Nilai Offset

Proses update nilai offset dan range dilakukan bersama-sama, oleh karena itu, proses pengurangan nilai range_in dan data rLPS dapat dilakukan oleh satu buah unit substractor. Dengan demikian arsitektur akhir untuk proses update range dan offset dapat dilihat pada gambar 4.16.

(14)

sel_rLPS 1 0 offs_o[15:0] sel_offs rng_o[15:0] 0 1 sel_rng 0 1 range_in[15:0] offset_in[15:0] {8'd0, rLPS_data[7:0]} 16'd2

Gambar 4.16 Arsitektur Proses Update Nilai Offset dan Range

4.4.1.2Renormalisasi Nilai Range dan Offset

Nilai update range sebelum ditulis ke register akan dicek dulu untuk menentukan apakah perlu dilakukan renormalisasi atau tidak. Secara struktural, arsitektur rangkaian untuk proses renormalisasi nilai range dan offset dapat dilihat pada gambar 4.17 dan gambar 4.18.

Gambar 4.17 Arsitektur Shift Register untuk Renormalisasi Nilai Range

(15)

4.4.1.3Unit Update Nilai State dan MPS

Selain proses update nilai range dan offset, pada blok arcod juga dilakukan proses update ste_mps. Nilai update ste_mps terdiri dari dua bagian, yaitu nilai update state dan nilai update MPS. Nilai update state diambil dari keluaran ROM_state.

Jika nilai sel_ste bernilai “1” nilai update state adalah ROM_state_data[5:0], sedangkan jika nilai sel_ste bernilai “1” nilai update state adalah ROM_state_data[11:6]. Nilai update MPS diperoleh dari nilai berdasarkan nilai masukan MPS atau inversi masukan MPS. Jika nilai sel_mps bernilai “1” nilai update MPS adalah inversi nilai masukan MPS, sedangkan jika nilai sel_mps bernilai “0” nilai update MPS sama dengan nilai masukan MPS. Arsitektur untuk proses update state dan MPS ditunjukkan gambar berikut:

(16)

4.4.1.4Unit Decoding Bit

Proses decoding pada blok arcod, ditentukan oleh nilai sel_decout_bit. Nilai output bit yang di-decode ditunjukkan dalam tabel berikut:

Tabel 4.3 Pemilihan Hasil Decoding untuk Blok Arcod

sel_decout_bit decout_bit

00 ste_mps_in [0]

01 !ste_mps_in [0]

10 1’b0 11 1’b1

4.4.1.5Unit Kontrol Arcod

Bagian unit kontrol untuk blok arcod diimplementasikan dengan menggunakan FSM, seperti ditunjukkan gambar berikut.

(17)

Bagian unit kontrol serta untuk proses sinkronisasi pipeline blok arcod core dan menghasilkan sinyal-sinyal kontrol yang dibutuhkan untuk multiplexer pada bagian arcod core.

Proses pipeline dilakukan untuk proses update nilai range dan nilai offset. ARCOD_STAGE1, merupakan tahap pembacaan data dari ROM_rLPS dan ROM_state. Pada state ARCOD_STAGE2 sampai ARCOD_STAGE4 dilakukan proses update nilai range dan offset. Dengan demikian setiap proses update nilai range dan offset dilakukan dalam 3 clock cycle.

Dari proses update, dihasilkan nilai-nilai status untuk proses decoding. Sinyal status yang dihasilkan adalah :

offs_high_valid

Sinyal status offs_high_valid merupakan sinyal status yang menunjukkan nilai offset input lebih besar dari selisih nilai output substractor nilai masukan range_in dan data rLPS. Dengan kata lain nilai status offs_high_valid dapat diperoleh dari inversi nilai MSB bit output pengurangan tahap kedua pada proses update nilai offset.

range_low_valid

Sinyal status range_low_valid merupakan sinyal status yang menunjukkan bahwa nilai range dari proses update masih lebih kecil dari 0x0100. Nilai ini akan digunakan untuk menentukan apakah proses renormalisasi diperlukan atau tidak.

state_zero

Sinyal status state_zero dihasilkan untuk meunjukkan bahwa data yang terbaca dari ROM state bernilai nol. Status state_zero diperlukan untuk pemilihan nilai update MPS.

Sinyal-sinyal status yang dihasilkan oleh blok arcod core selama proses update ini, digunakan oleh unit kontrol arcod, untuk menghasilkan sinyal kontrol multiplexer

(18)

pada arcod core. Sinyal-sinyal kontrol multiplxer yang diperlukan oleh blok arcod core, sebagaimana telah disebutkan pada bagian sebelumnya, adalah sebagai berikut :

sel_rLPS

sinyal kontrol sel_rLPS merupakan sinyal kontrol yang digunakan untuk memilih data keluaran dari ROM rLPS. Nilai sinyal sel_rLPS ditentukan oleh mode decoding, yaitu bernilai “1” saat mode Terminate. Untuk sinkronisasi pipeline sinyal sel_rLPS akan dihasilkan saat state FSM berada pada ARCOD_STAGE2.

sel_offs

Sinyal kontrol sel_offs digunakan untuk pemilihan nilai update offset. Nilai sel_offs akan bernilai “1” jika nilai offs_high_valid bernilai “1” dan mode decoding normal.

sel_rng

Sinyal kontrol sel_rng digunakan untuk pemilihan nilai update range. Nilai sel_offs akan bernilai “1” jika nilai offs_high_valid bernilai “1” dan mode decoding normal.

sel_ste

Sinyal kontrol sel_ste digunakan untuk pemilihan nilai update state. Nilai sel_ste akan bernilai “1” jika nilai offs_high_valid bernilai “1”.

sel_mps

Sinyal kontrol sel_mps digunakan untuk pemilihan nilai update state. Nilai sel_ste akan bernilai “1” jika nilai offs_high_valid bernilai “1” dan nilai state_zero bernilai “1”.

sel_decout_bit

Sinyal kontrol sel_decout_bit digunakan untuk menuntukan bit yang di-decode, sebagai keluaran blok arcod. Nilai sel_decout_bit, merupakan sinyal kontrol 2-bit didapat dari gabungan nilai mode decoding dan nilai offset_high_valid.

(19)

Proses blok arcod secara timing dapat digambarkan sebagai berikut :

Gambar 4.21 Timing Diagram Blok Arcod

4.4.2 Bypass

Pada proses decoding mode bypass hanya dilakukan proses update nilai offset. Proses update pada nilai range, state dan MPS tidak dilakukan. Diagram blok proses decoding pada mode bypass digambarkan sebagai berikut.

Gambar 4.22 Blok Diagram Unit Bypass

Proses update nilai offset pada mode bypass membutuhkan bitstream. Nilai update offset diambil dari selisih nilai masukan offset yang dikali dengan dua dan ditambah bitstream dengan nilai masukan range atau langsung dari nilai masukan offset yang dikali dengan dua dan ditambah bitstream. Proses update nilai range dan offset pada unit bypass dilakukan dengan arsitektur seperti yang diperlihatkan pada gambar 4.23.

(20)

0 1 0 1 bitstream offset_in range_in offset_new range_new decout_bit offs_high_valid 1'b1 1'b0

Gambar 4.23 Arsitektur Proses Update Nilai Offset

Dari keluaran substractor dapat ditentukan nilai offs_high_valid untuk menentukan nilai update offset dan nilai output bit yang di-decode. Cara penentuan nilai offs_high_valid ini sama dengan cara penentuan nilai offs_high_valid pada blok arcod. Jika nilai offs_high_valid bernilai “1” maka nilai update offset, offset_new, adalah output substractor, dan bit yang di-decode bernilai “1”. Sebaliknya, jika offs_high_valid bernilai “0” maka nilai update offset, offset_new, adalah nilai offset yang dikalikan dua dan ditambah bitstream, dan bit yang di-decode bernilai “0”.

Blok substractor juga akan mengeluarkan sinyal status bypass_done, untuk menunjukkan bahwa proses decoding selesai dilakukan. Nilai bypass_done ini digunakan untuk sinkronisasi dengan blok-blok lainnya seperti Init Context dan Offset Range Register. Sinyal-sinyal kontrol dari blok bypass dihasilkan berdasarkan kondisi state dari FSM, yaitu pada state BYPASS_OUTPUT. Bagian unit kontrol untuk blok bypass diimplementasikan dengan menggunakan FSM, seperti ditunjukkan pada gambar 4.24.

(21)

Gambar 4.24 State Transiton Decoding Mode Bypass

4.5 Perancangan Offset dan Range Register

Blok register ini digunakan untuk menyimpan nilai akhir offset dan range dari setiap proses decoding. Nilai offset dan range yang tersimpan di register ini akan digunakan sebagai nilai awal offset dan range proses decoding berikutnya.

(22)

Karena nilai offset dan range yang ditulis pada register ini dapat berasal dari blok arcod atau blok bypass, maka diperlukan multiplexer untuk pemilihan nilai offset dan range yang akan ditulis. Arsitektur untuk register offset dan range ini dapat dilihat pada gambar 4.25. Pemilihan input multiplexer ditentukan oleh sinyal arcod_done. Jika nilai arcod_done “1”, maka data offset dan range dari proses arcod yang akan dipilih. Penulisan nilai offset dan range dikontrol oleh sinyal kontrol offs_range_we, yang merupakan hasil operasi OR antara sinyal arcod_done dan bypass_done.

Gambar

Gambar 4.1 Input dan Output Inverse-CABAC
Gambar 4.2 Diagram Blok Inverse CABAC
Gambar 4.3 Diagram Blok Buffer Stream
Gambar 4.4 State Transition Unit Kontrol Buffer Stream
+7

Referensi

Dokumen terkait

Oleh karena itu megalitik yang merupakan suatu kumpulan dalam suatu ruang atau disebut dengan situs, lebih difokuskan pada keletakan lokasi terhadap bentang lahan di

Jumlah anchor bolt harus 4 atau kelipatannya untuk setiap vertikal vessel, pada vessel yang tinggi sebaiknya menggunakan 8 buah anchor bolt atau tergantung. Vg

Sebaliknya, dalam keadaan ekonomi baik (boom), maka hutang dapat digunakan untuk memacu mendapatkan keuntungan lebih besar melalui tingkat pertumbuhan keuangan pada

Berdasarkan hasil analisis diatas dapat disimpulkan bahwa program KRPL di desa pucangsari memang memberikan dampak yang signifikan pada pengeluaran konsumsi

Perkembangan teknologi informasi yang semakin pesat di era globalisasi saat ini tidak bisa dihindari lagi pengaruhnya terhadap dunia pendidikan.Tuntutan global

lupakan dari saran bapak adalah “baca-baca-baca” hehe. Terimakasih banyak pak, bapak lebih dari sekedar dosen.. pembimbing. Semua anggapan orang tentang

Karena keikutsertaan subjek bersifat sukarela, tidak ada insentif berupa uang yang akan diberikan kepada responden. Responden hanya akan diberikan souvenir berupa

Hasil simulasi menunjukkan ketidakseimbangan tegangan untuk masing-masing fasa tidak begitu signifikan yaitu untuk kondisi beban rendah rata-rata 0,95 %, untuk kondisi beban