본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/ece241 2014 q7b

1. 문제 및 설명

  • 1000 Hz 클록으로부터 1 Hz 신호를 생성하시오.
    • OneHertz 신호는 매초 정확히 한 클록 사이클 동안만 활성화 되어야 한다.
    • 주파수 분주기는 bcdcount 사용하여 구성하되, 추가적인 논리 게이트 수는 최소화하시오.
    • 사용한 각 BCD 카웉너에 대한 Enable 신호를 출력하시
  • 아래에 정의된 BCD 카운터 모듈이 제공된다.
    • Enable 신호가 high일 때만 카운터가 동작한다.
    • Reset은 동기식이며, high로 설정하면 카운터를 0으로 초기화한다. 
    • bcdcount
module bcdcount (
    input clk,
    input reset,
    input enable,
    output reg [3:0] Q
);

 

 

2. 모듈 정의

module top_module (
    input clk,
    input reset,
    output OneHertz,
    output [2:0] c_enable
);

 

 

 

3. 답

module top_module (
    input clk,
    input reset,
    output OneHertz,
    output [2:0] c_enable
); //
    wire [3:0] Q [0:2];
    bcdcount counter0 (clk, reset, c_enable[0], Q[0]);
    bcdcount counter1 (clk, reset, c_enable[1], Q[1]);
    bcdcount counter2 (clk, reset, c_enable[2], Q[2]);
    
    assign c_enable[0] = 1'b1;
    assign c_enable[1] = (Q[0] == 9);
    assign c_enable[2] = (Q[1] == 9)&(Q[0] == 9);
    assign OneHertz = (Q[2]==9)&(Q[1] == 9)&(Q[0] == 9);

endmodule
 

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Count clock  (0) 2026.01.14
[HDLBits] Countbcd  (0) 2026.01.14
[HDLBits] Exams/ece241 2014 q7a  (0) 2026.01.06
[HDLBits] Countslow  (0) 2026.01.05
[HDLBits] Count1to10  (0) 2026.01.05