在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: xiaoyeah

[求助] 诚心求教一个用延时的时钟采样的设计

[复制链接]
 楼主| 发表于 2015-2-27 17:05:41 | 显示全部楼层
本帖最后由 xiaoyeah 于 2015-2-27 17:11 编辑

回复 10# acgoal

异步fifo不可行,因为spi送数据时,为了低功耗系统主clk还没有启动,所有只能拿sck去采样数据,但可恶就是sck的最后一拍没有下降沿。将sck_d设为sck的generate clk我想过了啊,但sck打出的数据估计工具会在sck_d的下一个沿才会去check timing吧,我需要的是相对于sck的同一个沿。
如图所示:
时序2.jpg
发表于 2015-2-27 17:11:54 | 显示全部楼层
回复 11# xiaoyeah


   1. 我理解你是有两个clk的,第一个sck,第二个sck_d,sck打出的data A,并generate 出来data B,然后用sck_d去sample。如果不是非得要求一个时钟内采样,可以用异步fifo,如果非要求一个时钟内,这就不可行了。   2. 关于generated clk是否将数据在当前cycle还是下一个cycle来分析,你可以试一下,看实际上出来的时序报告分析哪个周期。试想一下,很多正常的设计本身就会把sck作为输入时钟,送到PLL或者FPGA的DCM里面,然后产生时钟来sample输入的data,如果工具分析下一个cycle的话,那么工具岂不是会有问题? 另,我不是做后端的,所以意见仅供参考。
发表于 2015-2-27 17:12:05 | 显示全部楼层
回复 8# xiaoyeah


    set_dont_touch就可以了
 楼主| 发表于 2015-2-27 17:32:30 | 显示全部楼层
回复 12# acgoal

1还是不太可行。2觉得可以尝试一下,看看到底工具是怎么check的。
得到大家的帮助,思路果然清晰了很多,多谢回答!
发表于 2015-2-27 18:47:21 | 显示全部楼层
根据描述,其实就是需要产生一个相位差为X的时钟
可以把时钟sck输入给DCM或者PLL,配置相应的输出时钟相位即可
不建议用组合逻辑搭建延时电路,FPGA内部的延时一般通过时钟实现,你的时钟频率越高,可控的延时精度就越大
发表于 2015-2-27 20:47:53 | 显示全部楼层
发表于 2015-2-27 23:56:41 | 显示全部楼层
不知道是用FPGA还是做IC。。。。
FPGA的话,如果是x家的,用iodelay来解决这个问题。。。
发表于 2015-2-28 08:37:49 | 显示全部楼层
你的spi有片选信号CS_n吗?
如果有的话,我感觉你的sck_d的功能可以用CS_n的上升沿来代替。
一般来说,CS_n是在最后一个sck之后,原本应该来下降沿的地方上升的。
发表于 2015-2-28 09:02:54 | 显示全部楼层
教你一个简单有效的方法,压箱底传男不传女。
在FPGA或CPLD连上两个脚,一个输出一个输入,输出等于SCK,输入就是SCK_D,这样就能保证时延至少一个gate to gate delay。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-25 07:17 , Processed in 0.021853 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表