Upload
kertas
View
213
Download
0
Embed Size (px)
Citation preview
7/24/2019 Task 4 - dqwq
1/7
ModulDesain Rangkaian Sekuensial
1. Tujuan
Pada akhir sesi ini peserta diharapkan akan dapat :1. Mengenal deskripsi Verilog untuk rangkaian-rangkaian yang banyak dipakai
dalam rangkaian sekuensial.2. Memodifkasi rangkaian-rangkaian sekuensial
2. MetodeTutorial pada sesi ini akan dibagi menjadi 2 bagian :1. Peserta akan mempelajari karakteristik beberapa rangkaian sekuensial
diantaranya :a. D lip-!opb. "ounter
#. $tate Ma#hined. % &it Paralel to $erial "on'erter2. Peserta akan memodifkasi desain rangkaian sekuensial( mensimulasikan( dan
menganalisisnya
3. Materi)angkaian sekuensial adalah rangkaian yang outputnya tidak hanya tergantungkepada keadaan saat ini( tetapi juga pada keadaan input sebelumnya. Padabagian ini kita akan membuat rangkaian sekuensial D !ip-!op *D+( #ounter( danfnite state ma#hine *$M+.
3.1 D Flip-fop
D lip-!op merupakan elemen memory yang dapat menyimpan data inputsebelumnya. D lip akan menyampling data input apabila nilai #lo#k berubah dari, ke 1 *rising edge+. Dengan demikian( #lo#k digunakan sebagai sensivity listdarirangkaian seperti yang terlihat pada gambar 1. ntuk membedakan kapan !ip-!op menyampling input data( maka kita perlu menggunakan statement sepertipada #ontoh.
Gambar 1 D Flip Flop
module dff(clock,rst,en,data_in,data);
input clock; input rst; input en; input data_in;
output data;
reg data;
always@(posedge clock)
1
7/24/2019 Task 4 - dqwq
2/7
begin if(!rst) data
7/24/2019 Task 4 - dqwq
3/7
end
endmodule
$eperti terlihat diatas( nilai register #ount dapat dinaikan dengan memberi harga61 pada signal en 0 1. 7ilai register #ount menjadi 8,,,,9 apabila di reset atau
#ounter men#apai nilai maksimum 811119.
)angkaian diatas dapat disimulasikan dan hasilnya sebagai berikut
Gambar 3 Timing Diagram Counter
Latihan :
$imulasikan rangkain "ounter 5 bit bahlah rangkaian #ounter tersebut( sehingga ia menghitung mundur dari 15
ke ,. bahlah rangkaian #ounter tersebut menjadi #ounter % bit.
3.3 State Ma!hineDesain $M sangat penting dalam implementasi ke dalam P4. da banyak #arabagi kita untuk membuat $M( tetapi kompiler P4 memiliki keterbatasan dalammensintesis sebuah $M. "ara yang paling aman dalam mendesain $M adalahdengan memisahkan bagian kombinasional dan sekuensial. &agian kombinasional
ber/ungsi untuk menghasilkan sinyal state selanjutnya *ne;t state+ dan nilaioutput. $edangkan bagian sekuensial untuk menentukan sinyal state saat ini*perpindahan state+.
Gambar 4 Desain State Machine
Terdapat dua jenis state ma#hine( yaitu mealy ma#hine dan moore ma#hine. Padamealy ma#hine output state ma#hine tergantung pada state saat ini dan nilaiinputnya. $edangkan pada moore ma#hine output state ma#hine hanyatergantung pada state saat ini.$ebagai #ontoh state ma#hine sederhana adalah state ma#hine tra
7/24/2019 Task 4 - dqwq
4/7
Gambar 5 State Transition Traffic Light
$eperti terlihat pada state diagram( pada kondisi a=al sistem di reset dan berada
di state idle. pabila en 0 1( maka state akan berubah idlegreen(
greenyello=( yello=red( redgreen. pabila en 0 , pada setiap kondisimaka state akan pindah ke idle. Dari state ma#hine tersebut kita dapatmendesain deskripsi Verilog sebagai berikut:
Menentukan jumlah state. Dari diagram kita dapat melihat bah=a sistemterdiri dari 5 state. Dengan demikian kita dapat merepresentasikan statetersebut dengan register 2 bit( dalam hal ini state. Dalam #ode Verilog :
reg "1$% state;
Menentukan $ensi'ity list. Dalam hal ini( perubahan state adalah terjadi pada
saat rising edge daripada #lo#k( sehingga sensi'ity list dapat ditentukanadalah #lo#k.
$yarat perubahan state. Dari state diagram dapat dilihat bah=a state berubah
atas /ungsi signal en.
Dari tahapan tersebut kita dapat membuat deskripsi Verilog state ma#hinetersebut sebagai berikut:
module traffic(clock,rst,en,state);
input clock; input rst; input en;
output state;
parameter *+ = d;
parameter -.++/ = d1; parameter 0+**2 = d;
parameter .+ = d#;
reg "1$% state;
wire "1$% ne3t4tate;
55state transition
always@(posedge clock) begin if(!rst) state
7/24/2019 Task 4 - dqwq
5/7
55ne3t state logic assign ne3t4tate = (state == *+)6en 7 -.++/$ (state == -.++/)6en 7 0+**2$ (state == 0+**2)6en 7 .+$ state;
endmodule
Gambar Timing Diagram State Machine Traffic Light
Latihan : $imulasikan rangkain state ma#hine tra
7/24/2019 Task 4 - dqwq
6/7
parameter *+ = b;
parameter 4+.:* = b1; parameter :.:*+* = b1;
reg "1$% state;
reg "$% count; reg "9$% buff; wire "1$% ne3t4tate;
55state macine
always@(posedge clock) begin if(!rst) state
7/24/2019 Task 4 - dqwq
7/7
Latihan : &uatlah diagram state transition-nya.
$imulasikan rangkain parallel to serial.
&uatlah rangkaian yang akan memeriksa sebuah sinyal input @2 bit dari bit
M$&-nya( kemudian mengeluarkan sebuah pulsa jika deretan sinyal inputmemiliki nilai 81,,19 atau 8,11,9. &uatlah diagram state transition-nyaterlebih dahulu.
Gambar ' Timing Diagram Latihan
7