找回密码
 注册
关于网站域名变更的通知
查看: 334|回复: 1
打印 上一主题 下一主题

IODELAY的使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-6-13 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

* {) O# E6 I/ B) C
0 A- a& h7 _9 I8 e

) `6 h2 W- {! i2 k$ o- s/ M5 k$ l5 O最近正在学习使用K7的IODELAY模块,想利用IODELAY模块实现小于一个系统时钟的延时,代码如下:; T/ `) U# }% ?; {2 G+ j. n% @& ?
0 |% Y2 v% E7 K8 V5 S) t; ?3 z
端口声明和一些信号声明;! n  t: T( W8 u) G6 G+ H
assign delay[0] = 要延迟的信号;
# Q( d) }5 [( q
6 a- Z2 J& L' a; M
) M6 N3 @$ i* x4 ~3 m//***********IDELAYCTRL模块只例化了一次***********//
% \- B5 O  k$ Z( dIDELAYCTRL IDELAYCTRL_inst (  [4 m5 h( L. X% `; M( K' z# c# w
      .RDY       (RDY           ),
, f$ g$ P' H- L( d" M      .REFCLK    (CLK_200M      ),     //参考时钟为200MHz1 e- Q5 ^- U* B8 k% C+ `
      .RST       (RST           )! R5 f( ^) w* e
);( p; V8 U! q. m2 [3 J3 w7 u

0 J& m3 v4 n/ a' }3 I5 ^* V) w+ j& ^. Y; x8 n- f
//***********IDELAYE2例化了4次,前一个模块的输出为后一个模块的输入,想利用IDELAYE2做4次延时,总时间小于一个系统时钟周期***********//
, k7 Y6 h$ r- ~% l. `genvar k;
( t" h. S+ k7 D$ }5 B4 x1 |1 Hgenerate8 q7 K, k; w3 b( u+ G
for (k=0;k<=3;k=k+1)6 I* z. a! w& j# }( h
IDELAYE2 #( ; P7 K- O# M- I8 h7 p
      .CINVCTRL_SEL("FALSE"),                 9 l+ x6 g) w& |0 _, I
      .DELAY_SRC("DATAIN"),        // 内部资源的数据输入                ! \4 k% r$ C/ k0 g' Q+ _9 N& u
      .HIGH_PERFORMANCE_MODE("FALSE"),           + o/ _% x2 D, P1 [
      .IDELAY_TYPE("FIXED"),                  2 w- P% |% V3 h+ t) ^! ~6 h3 O) o
      .IDELAY_VALUE(3),                     
3 A" L. L+ L$ r" X5 F. V0 x      .PIPE_SEL("FALSE"),                     7 ^6 P! X+ _) d7 ]7 f- R# l( r0 S1 `' C
      .REFCLK_FREQUENCY(200.0),               , U8 G* n! }+ q0 R, g
      .SIGNAL_PATTERN("DATA")
8 Z4 Z6 t, I) \1 T      )! G/ [) |! X, @% E- f/ t+ Q
IDELAYE2_inst (      
3 q. y$ I4 s7 q% X6 d      .CNTVALUEOUT  (            ),  
: O; |/ S3 F# G+ }      .DATAOUT      ( delay[k+1] ),
% `( `: _' R: U3 w8 x! m3 [      .C            (1'b0        ),                           
% A6 H# w$ }; Y8 e      .CE           (1'b0        ),                          
" L6 T. N2 t  b# ?4 j      .CINVCTRL     (            ),              
+ v5 v, }+ g0 N      .CNTVALUEIN   (            ),          & h& W/ k' N# s; \) Z0 h
      .DATAIN       ( delay[k]   ),       8 l9 C( G6 Z6 U* d% O7 e( ~/ f
      .IDATAIN      (1'b0        ),5 i5 |; P3 u+ x1 |$ V
      .INC          (1'b0        ),                        ( l9 F0 o& a. G1 _+ m7 A
      .LD           (            ),                          # S- L# _1 R" R. E' j5 O
      .LDPIPEEN     (            ),              
- J% F3 A+ K# S$ ^7 b      .REGRST       (1'b0        )               
& L) t4 e4 Z3 b: T9 k% h7 y); ; @& A5 ^+ ^. D+ j7 R/ t9 Q

3 f) I, ?2 q. E* Hendgenerate
' t6 q" r5 g" `6 Q
( s% z% Y% ], L: J) a8 j
- r( O" K& W; V( t8 Ualways @( * )/ c) L! b+ g' r& j, i
case ( sel )
- m& L0 M; b/ u# A7 l2 I- H3'b0     : delay_out = delay[0];
+ _3 U+ p! t6 t- [3'b1     : delay_out = delay[1];/ s5 ]5 F9 [& f. L
3'b2     : delay_out = delay[2];
( u' D6 M1 I- q7 H9 t3'b3     : delay_out = delay[3];
: y7 {6 P' J7 a5 V4 L3 `3'b4     : delay_out = delay[4];
& ]+ w: L8 ^6 L$ t" zdefault  : delay_out = delay[0];
3 K2 i& ~% E4 r# \, @& x4 t. yendcase0 M7 e# g. ~$ y1 u9 B% ~
endmodule
& h3 O4 Z3 T' T  v
7 I+ l5 [$ O- E  G# P$ L6 u5 Y5 N( l7 B% n
在map时,出现错误ERRORack:1107 - Pack was unable to combine the symbols listed below into a single IOB component because the site type selected is not compatible.( T' o/ w7 \6 q4 D/ Q
* u% v5 O! f# d$ n! f: [, @. S
不知道问题出在什么地方,请各位大神指点。
# x0 e9 Z1 h6 M7 e; O' ?1 k) S  N& W+ u  @- K( m( p
还有一个问题:为什么K7的tap数是32(一般的都是64啊),按照 5ns*3/32 计算出来的延时值和综合之后仿真的延时值不一样,为什么?非常感谢!

该用户从未签到

2#
发表于 2019-6-13 16:14 | 只看该作者
this question ask good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 13:34 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表