ALTERA FPGA中实现低于时钟周期的端口延时

我们知道FPGA/CPLD中的时序逻辑都是以一个时钟为时间单位,但是有时会需要对某个信号进行低于一个时钟的延迟,比如用延迟时间来调节SPI等总线中时钟与数据的建立保持时间,该如何操作?

通过实际验证可以通过插入LCELL来实现,实际的作用是在信号中间加入缓冲门。以Altera的CPLD EPM570为例,具体方法如下:

例化Lcell模块,输入为待延迟信号AD1_CH0_wire,输出为延迟后的信号AD1_CH0,注意需要使用/* synthesis keep */来保持LCELL不在综合过程中被优化掉;

    lcell U0_Lcell/* synthesis keep */
    (
        .in(AD1_CH0_wire),//输入信号
        .out(AD1_CH0)   //延时后的输出信号
    );

同样需要进行如下设置保证LCELL不在综合过程中被优化掉:

为了验证效果,串联插入了10个LCELL,综合后的RTL如下:

通过实际测量,AD1_CH0_wire延时了3ns左右,计算可得在EPM570中加入一个LCELL约延时0.3ns。当然需要注意的是,实际使用中LCELL延时相对固定,但是也会受温度、器件等因素影响。

 

转载于:https://www.cnblogs.com/lobster89/p/4787166.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值