|
//-----------------------------------------------------------------------------------------------
// Copyright :
// Author : Luk.wj
// File Name : clk_90
// Module Name : clk_90
// Create : 2021.12.09
// Revise :
// Fuction :
//-----------------------------------------------------------------------------------------------
module CLK_90 (
input clk_256,
input rst_n,
output reg clk_out
);
wire clk_128;
assign clk_256_inv = ~clk_256;
Div#(
.cnt_width ( 2 ),
.fre_div ( 2 )
)u_Div(
.rst_n ( rst_n ),
.clk_in ( clk_256 ),
.clk_out ( clk_128 )
);
always @(posedge clk_256_inv or negedge rst_n) begin
if(!rst_n) clk_out <= 1'b0;
else clk_out <= clk_128;
end
endmodule
测试结果和建议
前仿真的结果如下:
前仿真结果完美。
后仿真因为布局布线的问题,得到相移信号会有所延迟,我在FPGA上面验证了一下,比理想情况延迟了0.2ns,这对我的设计是无法接受的。另外,这次设计是把时钟信号当普通信号去采,理论上是可以的,实际上要斟酌考虑一下,延迟也是另一个问题,而且做数字IC中,这样的时序约束也是比较困难的,故不太建议采用这样的办法。个人建议还是用IP实现,或者用延迟门在底层布局布线来实现精准的时钟相移,这就需要模拟IC的知识了。
————————————————
版权声明:本文为CSDN博主「小火子Velsuked」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42446721/article/details/121843271
|
|