create_genarated_clock设置问题,求解疑
时间:10-02
整理:3721RD
点击:
create_clock -period 100 -wave_form {0 50} [get_ports CLK]CLK与CLK_64波形对应关系如下图:
问:我该如何设置create_generated_clock -divide_by 64 -source CLK -edge {? ? ?} -edge_shift {? ? ?} [get_pins CLK_64]
CLK_64为CLK的64倍分频时钟,且占空比为1/64,CLK_64在CLK的上升沿触发,当计数器由0计到63时,CLK_64跳转为高电平,且计数器清零,代码如下:
always @(posedge CLK or posedge rst)
begin
if(rst)
begin
c <= 6'b0;
CLK_64 <= 1'b0;
end
else
begin
case(c)
6'b000000:begin
CLK_64 <= 1'b0;
c <= c+1;
end
6'b111111:begin
CLK_64 <= 1'b1;
c <= 6'b0;
end
default: c <= c+1;
endcase
end
end
顶顶顶
clk_64会在内部使用吗,如果不使用直接不用create,如果使用,是上升沿下降沿同时使用吗,如果不是的话按照对半开的占空比生成时钟吧,如果同时使用上升下降那就create吧,不用generated了
clk_64会在内部使用,只用到了posedge,它的占空比为1:64,与clk的波形对应关系见上图,不知道该如何定义它为生成时钟
create_generated_clock -name clk64 -source $SRC_clk -master clk \
-edges {1 3 129} $SRC_clk64 -add
$SRC_clk$SRC_clk64是什么?-edge {1 3 129}代表什么?无论时钟初始值是什么,Modelsim仿真出来的clk_64的波形都是如上所示,所以我认为应该是-edge {1 127 129}。看见有些地方有-edge {1 1 3}这样的写法,表示看不懂,可以解释一下吗?