odelay:输出两个脉冲p1,p2,p1比p2延时0.5ns
分析:使用逻辑内部的时钟计数显然不行,没有这么高的时钟。可以使用IOB(input output block)的odelay模块进行延时。
module Odelay_test
(
input clk,
input rst,
output p1,
output p2
);
wire RDY;
wire pulse;
reg [9:0] cnt;
always@(posedge clk )begin
if (rst==1'b1)begin
cnt<='d0;
end
else if (cnt[9]==1'b1)begin
cnt<='d0;
end
else begin
cnt<=cnt+1'b1;
end
end
assign pulse=cnt[9];
// (* IODELAY_GROUP = IDELAYCTRL*) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
IDELAYCTRL IDELAYCTRL_inst
(
.RDY (RDY ), // 1-bit output: Ready output
.REFCLK (clk ), // 1-bit input: Reference clock input
.RST (1'b0 ) // 1-bit input: Active high reset input
);
// (*IODELAY_GROUP = ODELAYs*) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
//有这个编译不通过,不知道原因
ODELAYE2 #