사용보드 : zynq berry 보드
100M clk 1초에 100M번 진동하니 50M 진동할 때 LED를 반전시켜 주어서 0.5초 만큼의 시간 주기를 갖게한다.
< clk.led.v >
//0.5초 간격으로 LED 깜박이기
`timescale 1ns/ 1ns
module CLK_LED (
input CLK,
input rst_n,
output reg led
);
reg [25:0] count;
always @ (posedge CLK, negedge rst_n) begin
if(!rst_n) begin //rst_n 0
led <=0;
count <= 0;
end else begin
if(count==26'b10111110101111000010000000) begin // clk가 100M = 100.000.000 일때의 최대 값
led <= ~led;
count <= 0;
end
else
count <= count +1;
end
end
endmodule
< clk_led_testbench.v >
`timescale 1ns/ 1ns
module clk_led_test();
reg clk,rst_n;
wire led;
CLK_LED chip_CLK_LED(clk,rst_n,led);
initial
begin
clk =0;
rst_n = 0; #100;
rst_n = 1; #100;
end
always
begin
#50 clk = 1;
#50 clk = 0;
end
endmodule
'FPGA > Verilog study' 카테고리의 다른 글
[Verilog HDL] 1. 수의 표현 (0) | 2021.08.10 |
---|---|
[Verilog] Sequential Logic (순차 논리) - [ D Flip Flop ] (0) | 2021.07.08 |
[Verilog] FSM 설계 스탑워치 구현 (0) | 2021.05.17 |