|
- module hc90( //具有下降沿触发的十进制计数器 分频器 VCC:Pin5 GND:Pin10 未使用Pin:4,13
- input CLKA, //下降沿翻转Q[0] Pin14
- input CLKB, //下降沿计数Q[3:1] 范围:0~4 Pin1
- //R01与R02为高电平则禁止CLKA使能计数,否则允许计数
- input R01, //R01使能控制端 Pin2
- input R02, //R02使能控制端 Pin3
- //R91与R92为高电平则禁止CLKB使能计数,否则允许计数
- input R91, //R91使能控制端 Pin6
- input R92, //R92使能控制端 Pin7
- output reg [3:0] Q //[4位宽] 计数输出Q Pin11,8,9,12
- );
- initial Q = 4'b0;
- always @(negedge CLKA) begin
- if(!(R01 & R02)) begin
- Q[0] <= !Q[0];
- end
- end
- always @(negedge CLKB) begin
- if(!(R91 & R92)) begin
- if(Q[3:1] >= 3'd4) begin
- Q[3:1] <= 3'd0;
- end else begin
- Q[3:1] <= Q[3:1] + 3'd1;
- end
- end
- end
- endmodule
- module main(
- input clk, //50Mhz有源晶振输入 Pin17
- output out //5Mhz(10分频50%占空比)输出 Pin8
- );
- wire [3:0] Q;
- hc90 U1(
- .CLKA(Q[3]),
- .CLKB(clk),
- .R01(1'b0),
- .R02(1'b0),
- .R91(1'b0),
- .R92(1'b0),
- .Q(Q)
- );
- assign out = Q[0];
- endmodule
复制代码
|
|