题解 | 任意小数分频

小数分频重点:

1、硬件无法识别小数,故8.7分频可按照87/10的方式处理,即87个原时钟周期分成10个新时钟周期

2、这样新时钟周期每个里面含有8.7个原时钟周期,8<8.7<9,故将87个再次分为8*x+9*y个周期【无法保证均匀就尽可能接近】

3、x=3; y=7

4、单数分频处理方式:如本题9分频,同第二点一样,无法均匀就尽可能接近,分成4高5低或者4低5高都行

以上~

本题思路:

1、需区分当前需8分还是9分,所以需要一个【flag】,以及判断flag反转的计数器【cnt】;

2、8分频/9分频需要一个反转信号,需要一个计数器【cnt89】作为反转条件吧;

3、题中给的输入时wire型,需新增一个reg型【clkout】;

`timescale 1ns/1ns

module div_M_N(
 input  wire clk_in,
 input  wire rst,
 output wire clk_out
);
parameter M_N = 8'd87; 
parameter c89 = 8'd24; // 8/9时钟切换点
parameter div_e = 5'd8; //偶数周期
parameter div_o = 5'd9; //奇数周期
//*************code***********//
reg [6:0] cnt ;
reg       flag;
reg [3:0] cnt_89;
reg clkout;

always@(posedge clk_in or negedge rst)
    if (~rst)
        cnt <= 7'd0;
    else if (cnt==M_N-1)
        cnt <= 7'd0;    
    else
        cnt <= cnt + 1'b1;

always@(posedge clk_in or negedge rst)
    if (~rst)
        flag <=1'b0;
    else if (cnt == c89 -1 || cnt == M_N -1)
        flag <= ~flag; 
        
always@(posedge clk_in or negedge rst)
    if (~rst)
        cnt_89 <='d0;
    else if (~flag) begin
        if (cnt_89 == div_e -1)
            cnt_89 <= 'd0;
        else
            cnt_89 <= cnt_89 + 1'b1;            
    end else begin
        if (cnt_89 == div_o -1)
            cnt_89 <= 'd0;
        else
            cnt_89 <= cnt_89 + 1'b1;   
    end


always@(posedge clk_in or negedge rst)
    if (~rst)
        clkout <=1'b0;
    else if (~flag) begin
        if (cnt_89 == (div_e >>1) | cnt_89 == 'd0) 
            clkout <= ~clkout;
    end else begin
        if (cnt_89 == ((div_o -1'b1)>>1 ) | cnt_89 == 'd0)
            clkout <= ~clkout;  
    end
    
assign clk_out = clkout;
//*************code***********//
endmodule

全部评论

相关推荐

在竞争激烈的职场中,个人品牌是你脱颖而出的关键。一个清晰且有吸引力的个人品牌不仅能提升你的职场竞争力,还能在求职过程中帮助你轻松搞定offer。学会打造个人品牌,为你的职业发展加分。一、个人品牌的重要性个人品牌是你在职场中的独特标识,它反映了你的专业能力、价值观和个性。在求职过程中,一个强大的个人品牌能够帮助你快速吸引招聘者的注意,让他们在众多候选人中记住你。例如,如果你的品牌定位是“数据分析领域的创新者”,你可以在简历和面试中突出自己在数据分析方面的创新项目和成果,让招聘者迅速了解你的核心优势。在实际工作中,个人品牌同样重要。它不仅能帮助你在团队中建立信任和权威,还能为你带来更多的职业机会。例如,如果你以“高效沟通者”著称,团队成员在需要协调复杂项目时会更愿意找你合作。这种品牌效应不仅能提升你的工作效率,还能让你在职场中更有影响力。二、如何打造个人品牌打造个人品牌需要从自我定位、内容输出和形象塑造三个方面入手。首先,明确自己的核心优势和职业目标。通过自我评估,了解自己在专业技能、兴趣爱好和价值观方面的特点。例如,如果你擅长技术开发且对人工智能感兴趣,可以将自己定位为“人工智能领域的技术专家”。其次,通过内容输出展示自己的专业能力。利用社交媒体平台(如LinkedIn、知乎)、个人博客或行业论坛,分享你的专业知识、项目经验和见解。例如,定期在LinkedIn上发布关于人工智能技术趋势的文章,不仅能提升你的知名度,还能吸引行业内的潜在雇主。最后,注重形象塑造。保持专业、一致的个人形象,无论是在线上还是线下。例如,在社交媒体上使用统一的头像和简介,在职场中保持得体的着装和言行。这些细节能够帮助你在职场中建立一个清晰且有吸引力的品牌形象。三、个人品牌在求职中的应用在求职过程中,个人品牌能够显著提升你的竞争力。例如,在简历中,你可以通过“个人简介”部分简要介绍自己的品牌定位和核心优势,如“专注于人工智能领域的技术专家,擅长数据分析和机器学习,致力于通过技术创新推动行业发展”。在求职信中,进一步说明你如何通过个人品牌为公司带来价值。在面试中,个人品牌同样能为你加分。面试官通常会通过你的言行举止和回答来评估你的个人品牌是否与公司文化契合。你可以通过具体的案例展示自己的专业能力和品牌价值。例如,当面试官问到你的职业规划时,你可以结合自己的品牌定位,详细说明你如何通过当前岗位积累经验、提升能力,最终实现个人品牌与公司目标的双赢。总之,个人品牌是职场中的一项重要资产。通过明确自我定位、持续输出高质量内容和塑造专业形象,你不仅能提升自己的职场竞争力,还能在求职过程中轻松搞定offer,开启职场成功之路。#牛客AI配图神器#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务