|
- module hc92( //具有清零复位功能的下降沿12分频计数器 VCC:Pin5 GND:Pin10 未使用Pin:2,3,4,13
- input CLKA, //下降沿QA翻转 Pin14
- input CLKB, //下降沿计数QB,QC,QD 范围:0~6 (2跳到4,没有3) Pin1
- input R01, //复位控制端R01 Pin6
- input R02, //复位控制端R02 (R01与R02异步高电平则清零复位)Pin7
- output reg QA, //输出QA (CLKA下降沿翻转电平) Pin12
- output QB, //输出QB Pin11
- output QC, //输出QC Pin9
- output QD //输出QD Pin8
- );
- initial QA = 1'b0;
- reg [2:0] i = 3'd0;
- assign {QD,QC,QB} = i;
- wire RST = (R01 & R02);
- always @(negedge CLKA or posedge RST) begin
- QA <= RST ? 1'b0 : !QA;
- end
- always @(negedge CLKB or posedge RST) begin
- if(RST) begin
- i <= 3'd0;
- end else begin
- if(i == 3'd6) begin
- i <= 3'd0;
- end else begin
- if(i == 3'd2) begin
- i <= 3'd4;
- end else begin
- i <= i + 3'd1;
- end
- end
- end
- end
- endmodule
- module main(
- input clk, //12Mhz有源晶振输入 Pin18
- output out //1Mhz(12分频50%占空比)输出 Pin8
- );
- wire QD;
- hc92 U1(
- .CLKA(QD),
- .CLKB(clk),
- .R01(1'b0),
- .R02(1'b0),
- .QA(out),
- .QB(),
- .QC(),
- .QD(QD)
- );
- endmodule
复制代码 |
|