当前位置:   article > 正文

电力电子转战数字IC20220521day5——半整数分频

半整数分频

3.5分频的解题思路:用上升沿和下降沿做两个7分频然后逻辑或

自己写出来的跑出来总是没有结果,暂时是没有结果,。

  1. module threed5fd(clk,rst,clk3);
  2. //3.5分频,用两个沿做两个7分频(奇数)后,逻辑或得到3.5分频。
  3. input clk;
  4. input rst;
  5. output clk3;
  6. reg [2:0] count1;
  7. reg [2:0] count2;
  8. reg clk1,clk2,clk3r;
  9. assign clk3=clk3r;
  10. always @(posedge clk or negedge rst)
  11. if(!rst)
  12. count1<=3'd0;
  13. else if(count1==3'd0 || count1==3'd1)
  14. begin clk1<=!clk1; count1<=count1+3'd1; end
  15. else if(count1==3'd6)
  16. count1<=3'd0;
  17. else count1<=count1+3'd1;
  18. always @(negedge clk or negedge rst)
  19. if(!rst)
  20. count2<=3'd0;
  21. else if(count2==3'd3 || count2==3'd4)
  22. begin clk2<=!clk2; count2<=count2+3'd1; end
  23. else if(count2==3'd6)
  24. count2<=3'd0;
  25. else count2<=count2+3'd1;
  26. always clk3r=clk1 ||clk2;
  27. endmodule

最后还是用文章中的代码尝试出来了,三个clk都是wire型,新的条件语句assign wire= 语句1?是则执行:否则执行;

  1. //module threed5fd(clk,rst,clk3);
  2. //input clk;
  3. //input rst;
  4. //output clk3;
  5. //reg [2:0] count1;
  6. //reg [2:0] count2;
  7. //reg clk1,clk2,clk3r;
  8. //assign clk3=clk3r;
  9. //
  10. //always @(posedge clk or negedge rst)
  11. // if(!rst)
  12. // count1<=3'd0;
  13. // else if(count1==3'd0 || count1==3'd1)
  14. // begin clk1<=!clk1; count1<=count1+3'd1; end
  15. // else if(count1==3'd6)
  16. // count1<=3'd0;
  17. // else count1<=count1+3'd1;
  18. //
  19. //always @(negedge clk or negedge rst)
  20. // if(!rst)
  21. // count2<=3'd0;
  22. // else if(count2==3'd3 || count2==3'd4)
  23. // begin clk2<=!clk2; count2<=count2+3'd1; end
  24. // else if(count2==3'd6)
  25. // count2<=3'd0;
  26. // else count2<=count2+3'd1;
  27. //
  28. //always clk3r=clk1 ||clk2;
  29. endmodule

tb

  1. `timescale 1ps/1ps
  2. module threed5fdtest;
  3. reg clk,rst;
  4. wire clk3;
  5. threed5fd t1(.clk(clk), .rst(rst), .clk3(clk3));
  6. always #5 clk=~clk;
  7. always
  8. begin
  9. clk=0;rst=1;
  10. #10 rst=0;
  11. #15 rst=1;
  12. #90 rst=0;
  13. #110 rst=1;
  14. #200 $stop;
  15. end
  16. endmodule

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/519163
推荐阅读
相关标签
  

闽ICP备14008679号