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

在FPGA内手动做Delay

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
  e  y! s; J9 ^" ^/ r$ b) b4 t5 h
1. 确定要delay的信号是时钟信号还是数据信号。
( R# F7 z& _( P. d7 \0 t如果是free running的时钟信号,频率在DCM操作范围之内,要记得使用DCM做Phase Shift。3 I$ r; F- B0 c# Q+ m

9 ?, U6 b0 U; Z, W+ W6 H" i) L2. 如果是V5,可以用ODELAY/ l4 y5 g; A9 S
) R* L3 {' Y0 j2 r" H5 K- }3 k- _
3. 如果有一个快速的时钟,而要做一个大于一个时钟的delay,那么可以用shift register。SRL16可以将一个LUT当16个Shift register使。
# t' x+ b* j2 n- B/ j4 a! w- R' c- x1 I5 g6 p% Z
4. 如果以上条件都不满足,就只好用LUT搭延时链了。
7 R1 ]' j4 J8 j" C# a0 N# h如果不要求动态改变延时长度,那么就多次使用这样的LUT:0 b& ]7 h6 n: p0 E7 Y: T! f
引用. O" U, g2 L$ O" ^' o) `( Y9 ~
  LUT4 delay( .I0(1'b1), .I1(1'b1), .I2(1'b1), .I3(clk_in), .O(delay1) );                                    
, U4 r( v: _) J( X  defparam    delay.INIT = 16'hff00;              
" s! ^- T$ Y- Y" M+ ^/ ~  // synthesis attribute INIT of delay is "ff00";    ; j# U) k) V1 q1 r+ A" M
' E# q( E8 W8 w3 g; W1 M! u4 V& R* j2 R: W
/ e. n" X( Y0 u* w: V) K8 p7 i2 S
引用
2 k: n' b7 Y9 F2 x* {' p+ o  LUT4_u0 : LUT4
/ ?: U' O5 X6 X  generic map (9 J; @2 y2 W4 N2 c" Q6 B- E9 x$ a
     INIT => X"ff00")& b1 Q; u: N" n2 D- Y
  port map (6 n: J: e/ M8 v0 c
     O => delay_out,   -- LUT general output/ A3 `1 A* u4 w. _+ C& Y
     I0 => '0', -- LUT input
% R+ [, n! E- U9 S! i" p     I1 => '0', -- LUT input5 G# E4 C5 X( X. |
     I2 => '0', -- LUT input5 Y, x3 {, f/ l
     I3 => delay_in  -- LUT input/ b$ e0 d4 S: D
  );
' p, Z# v) W7 v7 r) e* z  R" Z4 `* H
. l- M. _  H4 t1 x% |6 w% D
" x7 M: r2 R6 Q, @6 y2 R0 D  k% S) K! X9 y# U
如果要求能动态改变延时长度,可以用这个代码
5 j, b( z/ W/ h' e

cq_delay.zip

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-6 16:11 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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