Tugas Pembahasan Verilog



  •         Encoder (Encoder Using  if-else statment)


Membuat modul dengan nama encoder_using_if dengan variable binary_out, encoder_in, dan enable. Pada binary_out merupakan variable untuk output dengan 4 bit binary output, enable dan encoder_in merupakan variable input dimana enable merupakan variable input dimana ia sebagai pengaktif encoder dan encoder_in memiliki inputan 16 bit. Lalu pada variable binary_out  dia juga sebagai tempat penahan output value.



always @ (enable or encoder_in)” dimana variable enable dan encoder_in diberi clock always dimana clocknya terjadi secara terus menerus. Dengan kondisi awal pada variable binary_out adalah 0 dan jika kondisi awal aktif/enable maka ia akan menlanjutkan ke kondisi selanjutnya, “if (encoder_in == 16'h0002) begin binary_out = 1;” ini berarti jika hasil dari encoder_in sama dengan 2 (dalam bentuk hexa 16bit) maka akan membuat output 1 binary 4bit, dan jika tidak sama maka ia akan melanjutkannya ke kondisi lainnya hingga kondisi terpenuhi. Lalu program berarkhir dengan endmodule.




  •         Mux (Mux Using if statment)



Membuat modul dengan nama Mux_using_if dengan variable din_0, din_1, sel, mux_out. Pada din_0, din_1, dan sel merupakan variable inputan dimana din_0 merupakan inputan mux pertama dan din_1 merupakan inputan mux kedua dan sel adalah select input, lalu mux_out merupkan variable untuk output dan sebagai penahan pada output value.
always @ (sel or din_0 or din_1)” dengan variable yang tertera kita memasukan clocknya yaitu secara terus menerus. Pada kondisi berikutnya  jika variable inputan sel sama dengan 0 (1’b0) maka nilai din_0 sama dengan nilai keluaran yaitu 0 jika tidak maka end else yaitu haasil jika kondisi pertama tidak terpenuhi/maksutnya disini adalah menentukkan clocknya itu 0 atau 1.


  •         Flip flop (Asynchronous reset D- FF)



Membuat modul dengan nama dff_async_reset dengan variable data, clk, reset, dan q. Pada data, clk, reset, merupakan variable untuk input dimana data merupakan data input, clk merupakan clock input, dan reset merupakan reset input. Lalu q merupakan variable output dan juga sebagai penahan pada output value.
always @ ( posedge clk or negedge reset)”, posedge merupakan clock yang aktif pada sisi naik-positif sedangkan negedge merupakan clock yang aktif pada sisi turun-negatif, jadi berarti clock secara terus menerus (always) dimana variable clk merupakan inputan dengan clock aktif pada sisi naik dan reset pada clock aktif di sisi turun. “if (~reset) begin” jika kondisi diatas negasi dari variable reset maka program berlanjut, Pada kondisi awal q lebih kecil sama dengan 1’b0 dan jika tidak lanjut ke kondisi else dimana q lebih kecil sama dengan variable data, ini berarti data akan memberikan output 0.


  •         Counter (8-Bit Simple Up Counter)



Membuat modul dengan nama up_counter dengan variable out, enable, clk, dan reset. Dimana out merupakan variable output dan penahan pada output value dengan keluaran 8bit ( 7 downto 0), lalu enable, clk, reset merupakan variable input.
always @(posedge clk)” berarti clock secara terus menerus (always) dimana clk merupakan inputan dengan clock aktif pada sisi-naik, lalu jika kondisi merupakan reset maka program berlanjut. Pada kondisi ini variable out lebih kecil sama dengan 8'b0 program akan reset dan dia akan enable jika variable out kurang dari sama dengan output + 1.


  •         Memory (ROM/EPROM - Loading from File)

Membuat modul dengan nama rom_using_file dengan variable address, data, read_en, dan ce. Dimana variable address, read_en, ce merupakan variable input.  address merupakan inputan 8bit, dan data merupakan variable output 8bit. “reg [7:0] mem [0:255] ; “ menunjukkan dimana 8bit merupakan penekan output value dan “mem[0:255]” merupakan alamat memory dari yang terkecil hingga terbesar.
assign data = (ce && read_en) ? mem[address] : 8'b0;” data output merupakan dimana variable ce di beri logika and dengan variable read_en lalu berkondisi alamat memory dari bit binary 0. “initial begin $readmemb("memory.list", mem);” berarti memulai suatu initial lalu membaca sebuah list yang terdapat pada memory tersebut.


  •         Parity (And the Practical One/Using Bitwise)

Membuat modul dengan nama parity_using_bitwise dengan variable data_in dan parity_out. Dimana data_in merupakan variable input 8bit dan parity_out merupakan variable output 1bit.
assign parity_out = ^data_in;” merupakan data pada variable output parity_out merupakan ekslusif or(^) dari variable data_in. Dimana ^ merupakan gerbang logika XOR untuk nentukan variable tersebut ganjil atau genap

Sumber code

Comments

Popular Posts