Modul 2 Coding Reuse
Modul 2 Coding Reuse
CODING REUSE
3.1 Tujuan
1. Praktikan memahami konsep kode Verilog.
2. Praktikan dapat membuat kode Verilog dan mengimplementasikan pada aplikasi
Vivado.
3. Praktikan dapat memahami konsep dalam coding reuse dan menerapkan pada vivado.
(sumber : https://smkmuh2klaten.sch.id/blog/pengertian-half-adder-dan-full-adder/)
3. Full Adder
Full adder adalah rangkaian elektronik yang bekerja melakukan perhitungan
penjumlahan sepenuhnya dari dua buah bilangan binary, yang masing-masing terdiri dari satu
bit. Rangkaian ini memiliki tiga input dan dua buah output, salah satu input merupakan nilai
dari pindahan penjumlahan, kemudian sama seperti pada half adder salah satu outputnya
dipakai sebagai tempat nilai pindahan dan yang lain sebagai hasil dari penjumlahan
.
(sumber : https://smkmuh2klaten.sch.id/blog/pengertian-half-adder-dan-full-adder/)
4. Multiplexer
Multiplexer adalah perangkat yang dapat membolehkan satu atau lebih sinyal analog
atau digital untuk berjalan pada satu sambungan transmisi komunikasi. Tujuan dari multiplexer
adalah untuk menggabungkan dan mengirimkan sinyal pada media yang tergabung untuk
mengoptimasi efisiensi dan mengurangi biaya komunikasi
(sumber: https://www.techopedia.com/definition/24124/multiplexer-mux)
5. Papan FPGA
FPGA (Field Programmable Gate Arrays) adalah sirkuit terintegrasi yang perangkat
kerasnya dapat dikonfigurasi untuk memenuhi kebutuhan spesifik dari pengguna setelah proses
manufaktur. Hal ini membolehkan peningkatan fitur dan perbaikan kerusakan langsung di
tempat.
(Sumber:
https://www.arm.com/glossary/fpga#:~:text=Field%20Programmable%20Gate%20Arrays%20(FPGAs,requirem
ents%20after%20the%20manufacturing%20process.)
module half(s,c,a,b);
input a,b;
output s,c;
assign s=a^b;
assign c=a&b;
endmodule
(Input a,b,ci)
set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 }
[get_ports { a }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 }
[get_ports { b }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 }
[get_ports { ci }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
(Output s,co,c)
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 }
[get_ports { s }]; #IO_L18P_T2_A24_15 Sch=led[0]
set_property -dict { PACKAGE_PIN K15 IOSTANDARD LVCMOS33 }
[get_ports { co }]; #IO_L24P_T3_RS1_15 Sch=led[1]
set_property -dict { PACKAGE_PIN J13 IOSTANDARD LVCMOS33 }
[get_ports { c }]; #IO_L17N_T2_A25_15 Sch=led[2]
3. Untuk melihat rangkaian, klik open elaborated design kemudian pilih schematic
4. Sambungkan papan dengan laptop dan sambungkan ke vivado
5. Generate Bitstream
6. Program device
7. Bolak-balikkan switch yang diprogram dan amati perbedaannya
3.4.2 Percobaan Kedua MUX 8-1 using MUX 2-1
1. Buat file design source dengan source code di bawah ini
module mux_case(out,in,s);
output reg out;
input [1:0]in;
input s;
always @ (*)
casex(s)
1'b0 : out = in[0];
1'b1 : out = in[1];
default : out = 1'bx;
endcase
endmodule
module mux_8_1 (o,i,s);
output o;
input [7:0]i;
input [2:0]s;
wire [6:1]k;
mux_case vas1(k[1], i[1:0], s[0]);
mux_case vas2(k[2], i[3:2], s[0]);
mux_case vas3(k[3], i[5:4], s[0]);
mux_case vas4(k[4], i[7:6], s[0]);
mux_case vas5(k[5], k[2:1], s[1]);
mux_case vas6(k[6], k[4:3], s[1]);
mux_case vas7(o,k[6:5], s[2]);
endmodule
(Inputan i0-i7)
set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 }
[get_ports { i[0] }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 }
[get_ports { i[1] }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 }
[get_ports { i[2] }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
set_property -dict { PACKAGE_PIN R15 IOSTANDARD LVCMOS33 }
[get_ports { i[3] }]; #IO_L13N_T2_MRCC_14 Sch=sw[3]
set_property -dict { PACKAGE_PIN R17 IOSTANDARD LVCMOS33 }
[get_ports { i[4] }]; #IO_L12N_T1_MRCC_14 Sch=sw[4]
set_property -dict { PACKAGE_PIN T18 IOSTANDARD LVCMOS33 }
[get_ports { i[5] }]; #IO_L7N_T1_D10_14 Sch=sw[5]
set_property -dict { PACKAGE_PIN U18 IOSTANDARD LVCMOS33 }
[get_ports { i[6] }]; #IO_L17N_T2_A13_D29_14 Sch=sw[6]
set_property -dict { PACKAGE_PIN R13 IOSTANDARD LVCMOS33 }
[get_ports { i[7] }]; #IO_L5N_T0_D07_14 Sch=sw[7]
(output LED)
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 }
[get_ports { o }]; #IO_L18P_T2_A24_15 Sch=led[0]set_property -dict {
PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { s }];
#IO_L18P_T2_A24_15 Sch=led[0]
set_property -dict { PACKAGE_PIN K15 IOSTANDARD LVCMOS33 }
[get_ports { co }]; #IO_L24P_T3_RS1_15 Sch=led[1]
set_property -dict { PACKAGE_PIN J13 IOSTANDARD LVCMOS33 }
[get_ports { c }]; #IO_L17N_T2_A25_15 Sch=led[2]
3. Untuk melihat rangkaian, klik open elaborated design kemudian pilih schematic
4. Sambungkan papan dengan laptop dan sambungkan ke vivado
5. Generate Bitstream
6. Program device
7. Bolak-balikkan switch yang diprogram dan amati perbedaannya