728x90
0. [verilog] |
1. 풀이 |
분주기(prescaler)란 들어온 주기 신호를 다른 주기로 변환시켜주는 장치이다.
아래는 1/10로 clk을 변환하는 분주기의 코드이다.
+) 추가내용
실제로 수행을 해보니 1/10주기를 만들기 위해서는 if(i==5)를 통해 검사를 수행했어야 했다.
up pulse가 5번 들어오는 경우에 1/10주기 출력을 반전을 시켜주어야 1/10 분주기가 완성이 되는 것이었다.
따라서 아래에 있는 분주기는 1/20 주기의 출력을 가지는 분주기이다.
2. 소스코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | module prescaler(clk,reset,next_clk); input clk,reset; output reg next_clk; integer i; always @(negedge reset, posedge clk) begin if(~reset) begin i = 0; next_clk = 0; end else begin i = i+1; if(i==10) begin i = 0; next_clk = next_clk+1; end end end endmodule | cs |
3. 참고 |
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!
'---------개인공부-------- > |verilog|' 카테고리의 다른 글
[verilog] decoder 3 to 8 (2) | 2019.10.12 |
---|---|
[verilog] SIPO Regiset 4-bit(Serial input Parallel Output) (3) | 2019.10.12 |
[verilog] 8-bit counter (1) | 2019.10.12 |
[verilog] 4-bit full adder(4비트 전가산기) (0) | 2019.09.28 |
[verilog] 4-bit comparator(4비트 비교기) (0) | 2019.09.28 |