FPGA时序约束经历之输出延时约束(set_output_delay)

本文讲述了作者在调试EMMC数据读写程序时如何通过添加时钟约束和输出延迟来满足emmc的时序要求,遇到的违例问题及解决策略,强调分析时序违例和优化的重要性。

近期在进行emmc数据读写程序调试时,逼迫自己从一个时序小白跨进了时序约束的大门,这里记录一下供大家学习参考。

需求

emmc hs200模式下,允许最高时钟频率为200M。其中emmc和FPGA之间的引脚有单向EMMC_CLK,双向CMD和DATA[7:0]。根据emmc手册,要求建立时间为1.4ns,保持时间为0.8ns。EMMC_CLK是FPGA提供给emmc的,因此要求发送命令或数据时,CLK和CMD到达emmc芯片时要满足手册要求的建立和保持时间。

添加约束

要使输出的CLK和CMD满足emmc的建立保持时间,就需要告诉FPGA编译器,输出的延迟有多少。因此分两步:

第一步:添加时钟约束。

我用的是xilinx ,vivado软件,可以手写xdc约束文件,也可采用GUI界面,网上搜索如何进行约束,都是教的用手写,但遗憾的是,很多文章都是各种抄袭或者写得笼统粗略,对一个新手来说属实很难受(因为总出现语法错误还不知道原因)。因此这里推荐新手采用GUI添加约束,然后软件自动写到xdc文件,自己再去看,等熟练之后再进行手写。
点击implementation下的Edit Timing Constraints即添加约束
图1
图2
如图所示,可以添加时钟约束,输入输出约束等。
这里,我的时钟是锁相环锁出来的,然后连接到输出端口EMMC_CLK,因此属于衍生时钟,要用create generated clock(锁相环锁出来的或者自己写个分频代码分出来的都属于衍生时钟)。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值