微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 同步多时钟综合问题

同步多时钟综合问题

时间:10-02 整理:3721RD 点击:

这是时钟分频模块,然后各自驱动其他模块,我用create_generated_clock产生分频时钟
直接compile,分频产生时钟都没有约束路径。是不是还需要其他命令。top-down综合

  1. module clk_div ( resetn, clock, clk1, clk2, clk3, clk4);

  2. input resetn, clock;

  3. inout clk1, clk2, clk3, clk4;

  4. // this is a divide by four clock as clk4

  5. reg clk1_int, clk2_int, clk3_int, clk4_int;
  6. wire  reset = ~resetn;

  7. assign clk1 = clk1_int;
  8. assign clk2 = clk2_int;
  9. assign clk3 = clk3_int;
  10. assign clk4 = clk4_int;

  11. always@(posedge clock or posedge reset)
  12. begin
  13. if(reset == 1)
  14. begin
  15.    clk1_int <= 0;
  16.    clk2_int <= 0;
  17.    clk3_int <= 0;
  18.    clk4_int <= 1;
  19. end
  20. else
  21. begin
  22.    clk1_int <= clk4;
  23.    clk2_int <= clk1;
  24.    clk3_int <= clk2;
  25.    clk4_int <= clk3;
  26. end
  27. end

  28. endmodule

复制代码

同求解答

指令的-source -named -master都设置号就可以了



    比如这个怎么设置-source 【get_ports clock】 -master_clock clock  关键是频率是4分频可是占空比不是50%  怎么设置占空比



    我第一次generated了分频时钟可是与实际电路不符合,report_clock查看了也确实成功了,可是就是没有产生时钟的时序路径

inout clk1, clk2, clk3, clk4;
这个为什么用inout?



    刚仔细看了下,为啥你这么多都是inout,不太清楚你到底要做什么


额 我还真没注意,别人的代码看一下就准备跑综合和后端。靠。还真是这个原因。generated clock有时序路径了,多谢多谢



    直接写个寄存器,复位,之后循环移位就好了,输出就用这几个寄存器产生不好么


    可以使用-edge选项,我觉得先把inout改掉,之后按照下面地址说的看看,没有图实在不好讲,反正-edge说明了分频时钟和master clock的相位关系
    http://userbinglingxiao.blog.163 ... 522201341710284559/



    可以使用-edge选项,确定master clock和分频时钟边沿的关系,比如-edge[1,3,9]说明master_clk第一个沿(上升)对应分频时钟第一个上升沿,第三个(上升)对应分频时钟第一个下降沿,



    比如四分频 占空比25%  不应该是-edges 【1 2 4】吗
返回Error: unknown command '1'这个错误



    上升下降沿都要计算的,4分频,4T,9个沿



    十分感谢!

上述代码貌似不大规范,建议运用NC或则verdi进行查看语法是否存在error以及warnning,当然,最好使用nlint检查。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top