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

在FPGA内手动做Delay

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
( X5 v$ g0 O. T- q- q3 k1 k
1. 确定要delay的信号是时钟信号还是数据信号。( I9 {: |( h# B( ~- l
如果是free running的时钟信号,频率在DCM操作范围之内,要记得使用DCM做Phase Shift。$ T: B6 L# N) B7 v
* g4 L, j# k7 {* L) l' D7 i% r
2. 如果是V5,可以用ODELAY& L3 |; Z3 n5 `  f; G4 `

' Z8 @( N5 w+ i5 v3. 如果有一个快速的时钟,而要做一个大于一个时钟的delay,那么可以用shift register。SRL16可以将一个LUT当16个Shift register使。) H/ ^1 C8 e: B- j$ r
9 |  S4 S0 F' z; q9 [0 y' \- s% N! q1 B
4. 如果以上条件都不满足,就只好用LUT搭延时链了。
$ [' Z3 y" L, f! h2 h如果不要求动态改变延时长度,那么就多次使用这样的LUT:2 Q0 r6 z# a6 C: A6 I
引用
7 y: F+ m9 u; g9 U( b  LUT4 delay( .I0(1'b1), .I1(1'b1), .I2(1'b1), .I3(clk_in), .O(delay1) );                                    
  t% G: E+ P+ z" z' w7 b  defparam    delay.INIT = 16'hff00;              
$ ?# z. k4 L4 y  // synthesis attribute INIT of delay is "ff00";   
# U! i$ W1 s+ E" B3 }1 d: V9 C4 e7 `; e

* @* k  y# P' h6 y  c2 U引用
2 Q3 K, |$ U8 X& A& I0 p0 [+ G  LUT4_u0 : LUT4
6 t3 B7 F' u& S8 f- m6 Q  generic map (
, Y- K) a; w5 t  ?! ], K6 x  a" X     INIT => X"ff00")
, B* S$ ?2 r3 O& ~( U$ q, B  port map (( }' D* m& c4 l2 q, W- X
     O => delay_out,   -- LUT general output3 A. ]) X  K" q: r* ?9 P+ p
     I0 => '0', -- LUT input" }. p1 v  U& R0 Y' C, s, W4 B& k
     I1 => '0', -- LUT input0 W* O9 R% S! f4 Z/ X% v/ r( P1 T
     I2 => '0', -- LUT input; z, m, y3 x" K( |4 l2 v
     I3 => delay_in  -- LUT input
/ Q4 J% s& q. N  );
; }3 H9 J1 |+ n5 p5 {: |1 Z0 w. H
+ t& X' A, ^. o9 V, V6 I# r3 M# k8 Z# R) B% n

, N, q2 Y& ]1 u; X1 p. y* M如果要求能动态改变延时长度,可以用这个代码
5 u9 a1 z8 x7 \2 }) ?

cq_delay.zip

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

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 18:02 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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