|
本帖最后由 HDL 于 2023-4-28 10:54 编辑
- module hc93( //具有清零功能的四位二进制纹波计数器 VCC:Pin5 GND:Pin10 N/A:Pin:4,6,7,13
- input CKA, //下降沿QA翻转 Pin14
- input CKB, //下降沿QB,QC,QD计数+1 Pin1
- input R01, //清零控制位1 (R01与R02异步高电平清零计数) Pin2
- input R02, //清零控制位2 Pin3
- output reg QA, //CKA二分频输出 Pin12
- output reg QB, //CKB二分频输出 Pin9
- output reg QC, //CKB四分频输出 Pin8
- output reg QD //CKB八分频输出 Pin11
- );
- initial {QD,QC,QB,QA} = 4'b0000;
- wire R = R01 & R02;
- always @(negedge CKA or posedge R) begin
- QA <= R ? 1'b0 : !QA;
- end
- always @(negedge CKB or posedge R) begin
- {QD,QC,QB} <= R ? 3'b000 : {QD,QC,QB} + 3'b001;
- end
- endmodule
- module main(
- input clk, //时钟输入
- output out //256分频输出
- );
- wire A;
- wire B;
- wire C;
- hc93 U1(
- .CKA(clk),
- .CKB(A),
- .R01(1'b0),
- .R02(1'b0),
- .QA(A),
- .QB(),
- .QC(),
- .QD(B)
- );
- hc93 U2(
- .CKA(B),
- .CKB(C),
- .R01(1'b0),
- .R02(1'b0),
- .QA(C),
- .QB(),
- .QC(),
- .QD(out)
- );
- endmodule
复制代码 |
|