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

在FPGA内手动做Delay

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

9 D: K3 t1 }) D/ y, t! q6 T' \7 V1. 确定要delay的信号是时钟信号还是数据信号。
' v' D& S" d8 h( B如果是free running的时钟信号,频率在DCM操作范围之内,要记得使用DCM做Phase Shift。5 a! j0 E, V( k3 J( x
- D8 p; w$ |2 ~9 P2 I$ Q  a3 b% D
2. 如果是V5,可以用ODELAY
2 s, x4 U4 J6 U" g) u! i
) `) n& j5 O. ^: J* ~* g4 `3. 如果有一个快速的时钟,而要做一个大于一个时钟的delay,那么可以用shift register。SRL16可以将一个LUT当16个Shift register使。
$ t3 W+ E7 Z1 p% N- L- @2 J: ~. m3 \' c! |
$ C2 r' k+ j' B4. 如果以上条件都不满足,就只好用LUT搭延时链了。
% r$ @- T/ l: @9 Y如果不要求动态改变延时长度,那么就多次使用这样的LUT:
  f' q8 R0 F4 L- G* K& m% m8 o引用
5 d. A% S- n+ d( {* ]+ W  [3 N9 v) F" f8 m  LUT4 delay( .I0(1'b1), .I1(1'b1), .I2(1'b1), .I3(clk_in), .O(delay1) );                                    ; U  H% U& z  A
  defparam    delay.INIT = 16'hff00;              
: i  v5 `* C; U5 G- e8 {  // synthesis attribute INIT of delay is "ff00";   
8 T. w& Z, x, q. b" Z5 l1 D3 ~, x* x% d! w2 V3 |& G& ]; j* a' c
) q% o; p' _6 G  x4 l
引用& I8 e; ^6 z  K& U1 R" N
  LUT4_u0 : LUT4
/ Q- W* _5 [- C" r9 m* P  generic map (
7 ^; `# v) \. J4 |     INIT => X"ff00")
8 K: H3 v" X* z$ e0 m1 h  port map (
7 @1 E- S7 B2 ]7 u4 M# H     O => delay_out,   -- LUT general output
2 G3 `& P5 z  a/ y. l9 I2 \     I0 => '0', -- LUT input
1 x% K' n( _: Q! p5 C5 U: x& v     I1 => '0', -- LUT input' d5 s8 V; k# G  c1 U
     I2 => '0', -- LUT input
7 ]" }% B8 t) |- e7 \+ Y& q     I3 => delay_in  -- LUT input6 K7 N3 }. G9 E. @% k- P+ x
  );
. V3 P( }$ p+ L- w( {. C7 z6 @# M
: y4 X' Z, K& _& N1 R, s- @, v5 r% w/ ~, R( B+ T2 }! i

$ i  d" v- s. ]0 R6 P0 M如果要求能动态改变延时长度,可以用这个代码" T" n. j5 K% n4 A/ X

cq_delay.zip

1.49 KB, 下载次数: 0, 下载积分: 威望 -5

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 22:16 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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