同步多时钟综合问题
这是时钟分频模块,然后各自驱动其他模块,我用create_generated_clock产生分频时钟
直接compile,分频产生时钟都没有约束路径。是不是还需要其他命令。top-down综合
- module clk_div ( resetn, clock, clk1, clk2, clk3, clk4);
- input resetn, clock;
- inout clk1, clk2, clk3, clk4;
- // this is a divide by four clock as clk4
- reg clk1_int, clk2_int, clk3_int, clk4_int;
- wire reset = ~resetn;
- assign clk1 = clk1_int;
- assign clk2 = clk2_int;
- assign clk3 = clk3_int;
- assign clk4 = clk4_int;
- always@(posedge clock or posedge reset)
- begin
- if(reset == 1)
- begin
- clk1_int <= 0;
- clk2_int <= 0;
- clk3_int <= 0;
- clk4_int <= 1;
- end
- else
- begin
- clk1_int <= clk4;
- clk2_int <= clk1;
- clk3_int <= clk2;
- clk4_int <= clk3;
- end
- end
- 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检查。
