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

在FPGA内手动做Delay

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

/ W% `. s) F4 ^5 w" u0 p# u1. 确定要delay的信号是时钟信号还是数据信号。" ^3 A; L' L- \4 }' a: N0 d7 N
如果是free running的时钟信号,频率在DCM操作范围之内,要记得使用DCM做Phase Shift。
& {8 _8 v2 j% ^; G
: r, P) F8 d; z  U; v! v$ Z' m/ p* n! U2. 如果是V5,可以用ODELAY9 p) H+ h& A. `$ |1 B  i

  o8 Q; A! W0 v# T5 }3. 如果有一个快速的时钟,而要做一个大于一个时钟的delay,那么可以用shift register。SRL16可以将一个LUT当16个Shift register使。
! I- d' g1 {. s& B. Y& _
6 c9 Q" a7 Q. |2 b1 b% z4. 如果以上条件都不满足,就只好用LUT搭延时链了。
3 \5 r& O; r! |& e9 g3 t9 u" W如果不要求动态改变延时长度,那么就多次使用这样的LUT:
- k  T& h' c6 J5 X2 X8 k, K引用
- a3 O% q# J. Y  T  LUT4 delay( .I0(1'b1), .I1(1'b1), .I2(1'b1), .I3(clk_in), .O(delay1) );                                    
8 y  }% ~2 x! t3 r  defparam    delay.INIT = 16'hff00;              2 S  W8 Z3 e4 j1 z
  // synthesis attribute INIT of delay is "ff00";    / V7 C+ E8 h6 a: I  G

7 J. u" h0 ^& [7 a) m5 W
* D! C0 H$ G' i. g3 ?* h引用# {6 O# z4 V& X9 `" h
  LUT4_u0 : LUT47 V- G, X, g9 Q; Q8 o& Y
  generic map (
6 C% N3 t+ j- A" J2 \; A( i     INIT => X"ff00")5 m1 d; F$ |- M* |! Y
  port map (
$ F. D- v2 [; a% C/ W* a. e     O => delay_out,   -- LUT general output
; b# N: F  \; s9 P: b7 \     I0 => '0', -- LUT input
1 C- r7 ^# x# q7 D     I1 => '0', -- LUT input2 Q6 g% E5 ~' X+ w! {3 K5 f
     I2 => '0', -- LUT input/ ~+ ^/ u3 N+ Z% F4 V. X  h
     I3 => delay_in  -- LUT input
# J8 s& {8 E: i' @  );* N+ q  B9 ?- V6 [2 l, E( d# l
0 S4 v6 m, F5 G6 D- k
, [! R2 f: o9 j! ~- v
4 U1 z; E! l" {4 U
如果要求能动态改变延时长度,可以用这个代码
+ Y3 h4 H3 J2 U% u1 p

cq_delay.zip

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 17:41 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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