|
- module cd4017 ( //具有10个解码输出逻辑的10进制计数器 VCC:Pin16 GND:Pin8
- input CLK, //上升沿移位 Pin14
- input E, //CLK使能 (低电平有效) Pin13
- input MR, //异步上升沿移位复位 Pin15
- output [9:0] Q, //移位输出 Pin:11,9,6,5,1,10,7,4,2,3
- output CO //进位输出 Q0~Q4如有高电平 则输出高电平 否则低电平 Pin12
- );
- reg [3:0] R; //范围:0~9
- assign Q = 1 << R;
- assign CO = |Q[4:0];
- always @(posedge CLK or posedge MR) begin
- if(MR) begin
- R = 4'd0;
- end else begin
- if(!E) begin
- R = R + 4'd1;
- if(R > 4'd9) begin
- R = 4'd0;
- end
- end
- end
- end
- endmodule
- module main(
- input clk, //50Mhz板载时钟输入
- output [9:0] Q, //10路移位输出 (5Mhz 10%占空比)
- output out //5Mhz 50%占空比
- );
- cd4017 U1(
- .CLK(clk),
- .E(1'b0),
- .MR(1'b0),
- .Q(Q),
- .CO(out),
- );
- endmodule
复制代码 |
|