T
teja321
Guest
Input kepada Dewan adalah 16 Mhz.Oleh karena itu menggunakan i SRL membagi jam pada frekuensi 1 Hz dan i am menggunakan jam ini untuk mengusir lampu LED secara berurutan.
Kode:modul led_counter (CLK, led_out, terlebih dulu);masukan CLK, terlebih dulu;
output reg [3:0] led_out;kawat clk_buf;menetapkan satu = 1'b1;
menetapkan nol = 1'b0;kawat [6:0] clk_en;//////////// BUFG Instansiasi /////////////////////BUFG BUFG_1 (
. O (clk_buf), / / Clock buffer output
. I (CLK) / / Clock buffer input
)
//////////////////////////////////////////////////
/ / Input clock dari 16 Mhz
/ / Bagilah oleh 16SRLC16E # (. INIT (16'h0001)) / / Initial Value of Shift Register
SRLC16E_1 (
. Q (), / / output data SRL
. P15 (clk_en [0]), / / Carry keluaran (terhubung ke SRL berikutnya)
. A0 (satu), / / Pilih [0] masukan
. A1 (satu), / / Pilih [1] masukan
. A2 (satu), / / Pilih [2] masukan
. A3 (satu), / / Pilih [3] masukan
. CE (satu), / / Clock mengaktifkan input
. CLK (clk_buf), / / Clock input
. D (clk_en [0]) / / input data SRL
)genvar i;menghasilkan
for (i = 0; i <6; i = i 1)
mulai: gen_10_srl
/ / Divide by 16 x 10 ^ 6 = 16 Mhz/16_000_000 = 1HZ
SRLC16E # (. INIT (16'h0001)) / / Initial Value of Shift Register
SRLC16E_2 (
. Q (clk_en [i 1]), / / output data SRL
. P15 (), / / Carry output (terhubung ke SRL berikutnya)
. A0 (satu), / / Pilih [0] masukan
. A1 (nol), / / Pilih [1] masukan
. A2 (nol), / / Pilih [2] masukan
. A3 (satu), / / Pilih [3] masukan
. CE (satu), / / Clock mengaktifkan input
. CLK (clk_en ), / / Clock input
. D (clk_en [i 1]) / / input data SRL
)
akhir
endgeneratereg clk_1s_d;selalu @ (posedge clk_buf)
clk_1s_d <= clk_en [6];menetapkan clk_1s = clk_en [6] & (~ clk_1s_d);selalu @ (posedge clk_buf atau posedge terlebih dulu) mulai
if (== 1'b1 terlebih dulu)
led_out <= 4'b1110;
else if (clk_1s == 1'b1) mulai
kasus (led_out)
4'b0111: led_out <= 4'b1110;
4'b1110: led_out <= 4'b1101;
4'b1101: led_out <= 4'b1011;
4'b1011: led_out <= 4'b0111;
endcase
akhir
akhirendmodule
Kode:modul led_counter (CLK, led_out, terlebih dulu);masukan CLK, terlebih dulu;
output reg [3:0] led_out;kawat clk_buf;menetapkan satu = 1'b1;
menetapkan nol = 1'b0;kawat [6:0] clk_en;//////////// BUFG Instansiasi /////////////////////BUFG BUFG_1 (
. O (clk_buf), / / Clock buffer output
. I (CLK) / / Clock buffer input
)
//////////////////////////////////////////////////
/ / Input clock dari 16 Mhz
/ / Bagilah oleh 16SRLC16E # (. INIT (16'h0001)) / / Initial Value of Shift Register
SRLC16E_1 (
. Q (), / / output data SRL
. P15 (clk_en [0]), / / Carry keluaran (terhubung ke SRL berikutnya)
. A0 (satu), / / Pilih [0] masukan
. A1 (satu), / / Pilih [1] masukan
. A2 (satu), / / Pilih [2] masukan
. A3 (satu), / / Pilih [3] masukan
. CE (satu), / / Clock mengaktifkan input
. CLK (clk_buf), / / Clock input
. D (clk_en [0]) / / input data SRL
)genvar i;menghasilkan
for (i = 0; i <6; i = i 1)
mulai: gen_10_srl
/ / Divide by 16 x 10 ^ 6 = 16 Mhz/16_000_000 = 1HZ
SRLC16E # (. INIT (16'h0001)) / / Initial Value of Shift Register
SRLC16E_2 (
. Q (clk_en [i 1]), / / output data SRL
. P15 (), / / Carry output (terhubung ke SRL berikutnya)
. A0 (satu), / / Pilih [0] masukan
. A1 (nol), / / Pilih [1] masukan
. A2 (nol), / / Pilih [2] masukan
. A3 (satu), / / Pilih [3] masukan
. CE (satu), / / Clock mengaktifkan input
. CLK (clk_en ), / / Clock input
. D (clk_en [i 1]) / / input data SRL
)
akhir
endgeneratereg clk_1s_d;selalu @ (posedge clk_buf)
clk_1s_d <= clk_en [6];menetapkan clk_1s = clk_en [6] & (~ clk_1s_d);selalu @ (posedge clk_buf atau posedge terlebih dulu) mulai
if (== 1'b1 terlebih dulu)
led_out <= 4'b1110;
else if (clk_1s == 1'b1) mulai
kasus (led_out)
4'b0111: led_out <= 4'b1110;
4'b1110: led_out <= 4'b1101;
4'b1101: led_out <= 4'b1011;
4'b1011: led_out <= 4'b0111;
endcase
akhir
akhirendmodule