题解 | #无占空比要去的奇数分频#
无占空比要去的奇数分频
https://www.nowcoder.com/practice/12d0615157a04e43bb7f41debc3cfa5b
本题的要求为不要求占空比,并且要求同时输出,所以采用一个计数器就行,不要求占空比则让其分配为2和3 即高电平为两个时钟,低电平为三个时钟,实测高3低2会出错,并且题目要求同时输出,也就是说输入拉高时输出也要拉高 所以在计数器为0时就开始翻转,以及在2时也进行翻转 `timescale 1ns/1ns module odd_div ( input wire rst , input wire clk_in, output wire clk_out5 ); //*************code***********// //本题的要求为不要求占空比,并且要求同时输出,所以采用一个计数器就行,不要求占空比则让其分配为2和3 //即高电平为两个时钟,低电平为三个时钟,实测高3低2会出错,并且题目要求同时输出,也就是说输入拉高时输出也要拉高 //所以在计数器为0时就开始翻转,以及在2时也进行翻转 reg [2:0] clk_cnt; reg clk_5; always@(posedge clk_in or negedge rst) begin if(!rst) clk_cnt <= 3'b0; else if(clk_cnt == 3'd4) clk_cnt <= 3'b0; else clk_cnt <= clk_cnt + 1'b1; end always@(posedge clk_in or negedge rst) begin if(!rst) clk_5 <= 1'b0; else if(clk_cnt == 3'b0 || clk_cnt == 3'd2) clk_5 <= ~clk_5; else clk_5 <= clk_5; end assign clk_out5 = clk_5; //*************code***********// endmodule