Selasa, 31 Oktober 2017

Parallel CRC

//-----------------------------------------------------
// Design Name : parallel_crc_ccitt
// File Name   : parallel_crc.v
// Function    : CCITT Parallel CRC
// Coder       : Deepak Kumar Tala
//-----------------------------------------------------
module parallel_crc_ccitt (
clk     ,
reset   ,
enable  ,
init    ,
data_in ,
crc_out
);
//-----------Input Ports---------------
input clk     ;
input reset   ;
input enable  ;
input init    ;
input [7:0] data_in ;
//-----------Output Ports---------------
output [15:0] crc_out;
//------------Internal Variables--------
reg [15:0]   crc_reg;
wire [15:0]  next_crc;
//-------------Code Start-----------------
assign crc_out = crc_reg;
// CRC Control logic
always @ (posedge clk)
if (reset) begin
  crc_reg <= 16'hFFFF;
end else if (enable) begin
  if (init) begin
     crc_reg <= 16'hFFFF;
  end else begin
     crc_reg <= next_crc;
  end
end
// Parallel CRC calculation
assign next_crc[0] = data_in[7] ^ data_in[0] ^ crc_reg[4] ^ crc_reg[11];
assign next_crc[1] = data_in[1] ^ crc_reg[5];
assign next_crc[2] = data_in[2] ^ crc_reg[6];
assign next_crc[3] = data_in[3] ^ crc_reg[7];
assign next_crc[4] = data_in[4] ^ crc_reg[8];
assign next_crc[5] = data_in[7] ^ data_in[5] ^ data_in[0] ^ crc_reg[4] ^ crc_reg[9] ^ crc_reg[11];
assign next_crc[6] = data_in[6] ^ data_in[1] ^ crc_reg[5] ^ crc_reg[10];
assign next_crc[7] = data_in[7] ^ data_in[2] ^ crc_reg[6] ^ crc_reg[11];
assign next_crc[8] = data_in[3] ^ crc_reg[0] ^ crc_reg[7];
assign next_crc[9] = data_in[4] ^ crc_reg[1] ^ crc_reg[8];
assign next_crc[10] = data_in[5] ^ crc_reg[2] ^ crc_reg[9];
assign next_crc[11] = data_in[6] ^ crc_reg[3] ^ crc_reg[10];

endmodule



-----Penjelasan-----

Seperti  biasa pada blok pertama berisi tentang module file nama dll, setelah itu pada blok selanjutnya mulai memasukan perintah seperti clk, reset, enable, init, dll.
masuk ke blok input dimana disertakan juga masukan untuk clk,reset, enable dst dari 0-7.
pada dasarnya nantinya di berikan perintah untuk masukan secara perhitungan paralel sebanyak 15, jadi output yang dihasilkan [15:0]
dan di akhiri dengan end sebagai penutup.
Source : http://www.asic-world.com/examples/verilog/parallel_crc.html#Parallel_CRC 

Senin, 30 Oktober 2017

Encoder - Using if-else Statement

//-----------------------------------------------------

// Design Name : encoder_using_if

// File Name   : encoder_using_if.v

// Function    : Encoder using If

// Coder       : Deepak Kumar Tala

//-----------------------------------------------------

module encoder_using_if(

binary_out , //  4 bit binary output

encoder_in , //  16-bit input

enable       //  Enable for the encoder

);

//-----------Output Ports---------------

output [3:0] binary_out  ;

//-----------Input Ports---------------

input  enable ;

input [15:0] encoder_in ;

//------------Internal Variables--------

reg [3:0] binary_out ;

//-------------Code Start-----------------

always @ (enable or encoder_in)

 begin

   binary_out = 0;

   if (enable) begin

     if (encoder_in == 16'h0002) begin

      binary_out = 1;

     end  if (encoder_in == 16'h0004) begin

      binary_out = 2;

     end  if (encoder_in == 16'h0008) begin

      binary_out = 3;

     end  if (encoder_in == 16'h0010) begin

      binary_out = 4;

     end  if (encoder_in == 16'h0020) begin

      binary_out = 5;

     end  if (encoder_in == 16'h0040) begin

      binary_out = 6;

     end  if (encoder_in == 16'h0080) begin

      binary_out = 7;

     end  if (encoder_in == 16'h0100) begin

      binary_out = 8;

     end  if (encoder_in == 16'h0200) begin

      binary_out = 9;

     end if (encoder_in == 16'h0400) begin

      binary_out = 10;

     end  if (encoder_in == 16'h0800) begin

      binary_out = 11;

     end  if (encoder_in == 16'h1000) begin

      binary_out = 12;

     end  if (encoder_in == 16'h2000) begin

      binary_out = 13;

     end  if (encoder_in == 16'h4000) begin

      binary_out = 14;

     end if (encoder_in == 16'h8000) begin

      binary_out = 15;

     end

  end

end

   

endmodule



----Penjelasan----

Seperti biasa blok pertama berisi keterangan nama file dll, selanjutnya kita menyertakan module lalu nama file nya, selanjutnya menentukan untuk biner out diberi 4 bit dan in 16 bit lalu ada enable yang artinya aktif untuk perhitungan encoder (desimal to biner). Masuk ke blok output disitu [3:0] untuk keluaran nya. dan menentukan terus sampai blok internal variabel setelah itu masuk ke pendeklarasian code nya. disitu, jika enable atau aktif dia sudah ditentukan input nya berapa dan hasil yang dikeluarkan berapa sampai terus ke logika akhir dan di tutup dengan perintah end serta end module.


Source : http://www.asic-world.com/examples/verilog/encoder.html#Encoder_-_Using_if-else_Statement

Regular D Latch

//-----------------------------------------------------
// Design Name : dlatch_reset
// File Name   : dlatch_reset.v
// Function    : DLATCH async reset
// Coder       : Deepak Kumar Tala
//-----------------------------------------------------
module dlatch_reset (
data   , // Data Input
en     , // LatchInput
reset  , // Reset input
q        // Q output
);
//-----------Input Ports---------------
input data, en, reset ;

//-----------Output Ports---------------
output q;

//------------Internal Variables--------
reg q;

//-------------Code Starts Here---------
always @ ( en or reset or data)
if (~reset) begin
  q <= 1'b0;
end else if (en) begin
  q <= data;
end

endmodule //End Of Module dlatch_reset


----Penjelasan----

blok pertama berisi tentang keterangan file yang sedang dimuat, lalu masuk pada blok selanjutnya yaitu kita masukan module dlatch_reset
setelah itu ada data yang nantinya untuk input data, lalu en sebagai masukan unutk latch, reset untuk mereset masukan lalukan Q untuk keluaran (output)
selanjutnya pendeklarasian inputnya yang isinya input data, en, reset.
lalu keluaran nya yaitu Q
setelah itu variabel masukan nya yaitu Q
masuk pada jalan nya program di mana jika (~reset) variabel q kurang dari samadengan 1'b 0
dan jika en nilai Q kurang dari samadengan data itu sendiri, setelah itu perintah end untuk mengakhiri.

Source : http://www.asic-world.com/examples/verilog/d_latch.html#Regular_D_Latch
 
 
 
 

Asynchronous FIFO ( Gray Counter )

//==========================================
// Function : Code Gray counter.
// Coder    : Alex Claros F.
// Date     : 15/May/2005.
//=======================================

`timescale 1ns/1ps

module GrayCounter
   #(parameter   COUNTER_WIDTH = 4)
  
    (output reg  [COUNTER_WIDTH-1:0]    GrayCount_out,  //'Gray' code count output.
   
     input wire                         Enable_in,  //Count enable.
     input wire                         Clear_in,   //Count reset.
   
     input wire                         Clk);

    /////////Internal connections & variables///////
    reg    [COUNTER_WIDTH-1:0]         BinaryCount;

    /////////Code///////////////////////
   
    always @ (posedge Clk)
        if (Clear_in) begin
            BinaryCount   <= {COUNTER_WIDTH{1'b 0}} + 1;  //Gray count begins @ '1' with
            GrayCount_out <= {COUNTER_WIDTH{1'b 0}};      // first 'Enable_in'.
        end
        else if (Enable_in) begin
            BinaryCount   <= BinaryCount + 1;
            GrayCount_out <= {BinaryCount[COUNTER_WIDTH-1],
                              BinaryCount[COUNTER_WIDTH-2:0] ^ BinaryCount[COUNTER_WIDTH-1:1]};
        end
   
endmodule


----Penjelasan----

Masuk pada perintah pertama penyertaan skala waktu yang di tentukan yaitu 1ns/1ps
lalu masukan module file nya yaitu GrayCounter
masuk pada deklarasi inputan nya, diberikan akses untuk aktif, saat aktif count(perhitungan) juga aktif, begitu pun pada clear nantinya reset pun aktif
masukan nya ialah nilai clock itu sendiri.

Selanjutnya masuk pada blok code dimana, jika clear_in / reset perhitungan untuk binary nya dari posisi  0 akan bertambah 1 yang akan aktif. Jadi pada intinya saat aktif sistem angka biner disini memiliki dua nilai berturut-turut berbeda hanya dalam satu bit (digit biner). Kode biner yang dipantulkan pada awalnya dirancang untuk mencegah keluaran palsu dari switch elektromekanik.
perintah akan terus berlangsung sampai di akhiri dengan perintah end.

source : http://www.asic-world.com/examples/verilog/asyn_fifo.html#Asynchronous_FIFO

8-Bit Simple Up Counter

module up_counter    (
out     ,  // Output of the counter
enable  ,  // enable for counter
clk     ,  // clock Input
reset      // reset Input
);
//----------Output Ports--------------
    output [7:0] out;
//------------Input Ports--------------
     input enable, clk, reset;
//------------Internal Variables--------
    reg [7:0] out;
//-------------Code Starts Here-------
always @(posedge clk)
if (reset) begin
  out <= 8'b0 ;
end else if (enable) begin
  out <= out + 1;
end

endmodule

 ------Penjelasan------

Diawali dengan komentar yg berisi nama desain, nama file yang telah di tentukan yaitu up_counter, lalu Up counter yang memiliki fungsi sebagai rangkaian counter yang menghitung naik.
lalu masuk blok selanjutnya, pertama penyertaan paket module nya dulu, lalu ada (out , // output of the counter) yang artinya hasil keluaran berasal dari perhitungan counter nya.
selanjutnya ada perintah untuk pemberian akses counter untuk aktif, lalu (clk , // clock input) yang artinya masukan untuk clock, lalu ada perintah untuk mereset masukan nya.
lalu blok ketiga untuk pendeklarasian outputnya, dari nyala led yang jumlah nya 8 di set hasil output akan mulai nyala dari led pertama dengan hitungan awal 0 sampai hitungan led paling akhir yaitu 7,
dan muntuk deklarasi inputnya di berikan keterangan masukan aktif, clk(clock), reset.
dan sampai pada penjelasan akhir yaitu

if (reset) begin
  out <= 8'b0 ;
end else if (enable) begin
  out <= out + 1;
end

yang artinya jika kita mereset nyala lampu ini akan kembali pada awal dimana led 0 atau led posisi pertama, lalu jika kita mengaktifkan nya lagi out+1 yaitu nyala led dari posisi led 0 akan bertambah 1(aktif) terus sampai led 7. dan end yang artinya program berakhir.
Source : http://www.asic-world.com/examples/verilog/simple_counter.html#8-Bit_Simple_Up_Counter 

Mux : Using assign Statement

//-----------------------------------------------------
// Design Name : mux_using_assign
// File Name   : mux_using_assign.v
// Function    : 2:1 Mux using Assign
// Coder       : Deepak Kumar Tala
//-----------------------------------------------------
module  mux_using_assign(
din_0      , // Mux first input
din_1      , // Mux Second input
sel        , // Select input
mux_out      // Mux output
);
//-----------Input Ports---------------
input din_0, din_1, sel ;
//-----------Output Ports---------------
output mux_out;
//------------Internal Variables--------
wire  mux_out;
//-------------Code Start-----------------
assign mux_out = (sel) ? din_1 : din_0;

endmodule //End Of Module mux



 ------Penjelasan------

Mux itu sendiri menurut yang saya baca yaitu multiplexer, yg bisa dikatakan sebuah alat atau komponen elektronika yang bisa memilih input (masukan) yang akan diteruskan ke bagian output (keluaran).
Perintah dimulai dengan nama desain yang telah ditentukan yaitu mux_using_assign_ lalu setelah itu nama file nya pun sama dan setelah nya ada (.v)
setelahnya di selipkan kometar, lanjut masuk ke pendeklarasian blok kedua yaitu  diawali dengan penyertaan paket module nya. Setelah itu masukan di tentukan inputan pertama di set 0 dan inputan kedua di set 1 jadi ada beberapa masukan nantinya yg diberi logika nya 0 / 1, lalu diberikan pemilihan untuk input dengan select input, setelah itu diberikan perintah untuk keluaran (output), dan perintah ditutup.
masuk ke blok ketiga untuk pendeklarasian program nya sampai setelah itu ada perintah module untuk di akhiri.
Source: http://www.asic-world.com/examples/verilog/mux.html 

Kamis, 12 Oktober 2017

Review Jurnal

Jurnal      :    Pengelolaan Perpustakaan Berbasis Teknologi Informasi
Tahun      :    2008
Penulis    :    Ishak
Reviewer :    Jodi Ferdiansyah

Pendahuluan
Pada awal sejarah, manusia bertukar informasi melalui bahasa. Maka bahasa adalah teknologi. Bahasa memungkinkan seseorang memahami informasi yang disampaikan oleh orang lain. Setelah itu teknologi penyampaian informasi berkembang melalui gambar. Dengan gambar jangkauan informasi bisa lebih jauh. Gambar ini bisa dibawa-bawa dan disampaikan kepada orang lain. Selain itu informasi yang ada akan bertahan lebih lama. Beberapa gambar peninggalan jaman purba masih ada sampai sekarang sehingga manusia sekarang dapat memahami informasi yang ingin disampaikan pembuatnya. Ditemukannya alfabet dan angka arabik memudahkan cara penyampaian informasi yang lebih efisien dari cara yang sebelumnya. Suatu gambar yang mewakili suatu peristiwa dibuat dengan kombinasi alfabet, atau dengan penulisan angka, seperti MCMXLIII diganti dengan 1943. Teknologi dengan alfabet ini memudahkan dalam penulisan informasi itu. Kemudian, teknologi percetakan memungkinkan pengiriman informasi lebih cepat lagi. Teknologi elektronik seperti radio, tv, komputer mengakibatkan informasi menjadi lebih cepat tersebar di area yang lebih luas dan lebih lama tersimpan. (Wikipedia).

Perkembangan perpustakaan pada era masyarakat informasi dewasa ini telah dimanfaatkan, Peran perpustakaan telah berkembang menjadi pusat komunitas, artinya masyarakat dapat berkumpul di perpustakaan dalam rangka pengembangan pengetahuan dan budaya melalui berbagai aktifitas keilmuan dan sosial. Prinsipnya perpustakan memiliki tiga kegiatan pokok yaitu, mengumpulkan semua informasi yang berkaitan dengan kebutuhan pengguna (to collect), melestarikan, memelihara dan merawat seluruh koleksi perpustakaan (to preserve), dan menyediakan bahan perpustakaan agar dapat dimanfaatkan dengan baik oleh pengguna (to make available). Artinya perpustakaan dituntut untuk memberikan layanan informasi yang tepat, pada pengguna yang tepat dan waktu yang cepat. 

Tujuan Penelitian
Penggunaan teknologi informasi di perpustakaan bertujuan untuk meningkatkan efisiensi pekerjaan dan kualitas pelayanan pada pengguna.

Metode Penelitian 
  • Teknik Pencarian Buku
Memformulasikan strategi penelusuran. mensyaratkan pengetahuan yang mendasar dan komperhensif yang sumberdaya informasi yang tepat termasuk strukturnya. Skill tentang suatu subjek juga perlu. Kemampuan lain yang dibutuhkan: mampu mendiskusikan ide-ide untuk mencari berbagai masukan, memilih alat penelusuran, mengidentifikasi kata kunci, konsep, tajuk subyek, deksriptor, dan mengindentifikasi kriteria untuk meng-evaluasi sumber informasi.
  • Penerapan TI dengan Buku yang ada
Penerapan TI di perpustakaan bersamaan dengan perkembangan budaya manusia itu sendiri. Perkembangan tersebut dapat dilihat dari tahapan evolusi format dokumen yang menjadi koleksi perpustakaan, antara lain dimulai dari bahan cetak (paper material), microfilm, CDROM/DVD, Komputer, Internet, Wireless, sampai format web. Perkembangan ini menjadikan “Great Technology Great Library”.
  • Teknik Pembangunan Sistem
             - Membangun Software Dari Awal
             - Memodifikasi Software
             - Pembelian Software


Kesimpulan Jurnal
Memudahkan pengguna dan penyedia perpustakaan dalam memanajemen buku yang ada, sesuai dengan kemajuan telnologi sekarang.


Kelebihan Jurnal
- Abstrak jelas, sehingga dengan membaca abstraknya saja pembaca dapat mengetahui hasil dari  penelitian tersebut
- Kesimpulan yang dibuat sudah terperinci dan dipaparkan secara jelas
- Prosedur penelitian disusun dengan teratur, sehingga mudah untuk dipahami

Kekurangan Jurnal
Hanya fokus terhadap SDM yang lulus berdasarkan IT saja.

File jurnal asli : https://goo.gl/tWPvoo