|
发表于 2006-6-26 09:54:00
|
显示全部楼层
<TABLE fixed; WORD-BREAK: break-all" width="90%" border=0><TR><TD 10pt; LINE-HEIGHT: 14pt" width="100%"><img src="http://www.52rd.com/bbs/Skins/Discuz/topicface/none.gif"> <B></B>
<B><FONT size=2>Fpga/cpld逻辑设计知识
</FONT></B>1. setup /hold time 芯片信号与时钟的关系
建立时间是触发器的时钟上升沿到来前,数据保持稳定不变的时间;保持时间是触发器的时钟上升沿到来后,数据保持稳定不变的时间.如果输入信号不满足建立保持时间就不能被这一时钟打入触发器.
2. fpga与 cpld区别
1) cpld更适合组合逻辑设计,基于乘积项结构,fpga更适合时序逻辑设计,基于查找表结构;
2) cpld的连续分布式结构使延时均匀可预测,fpga的分段分布式结构使延时不可预测;
3) fpga比cpld设计更灵活,因为fpga可以在逻辑门下编程,cpld在逻辑块下编程;
4) fpga比cpld集成度高,有更复杂布线结构和逻辑实现;
5) fpga比cpld使用复杂,fpga基与sram结构要外加配置器件,cpld基于e2prom或fastflash不要配置器件.
6) Fpga比cpld功耗小且规模越大越明显.
3. 竞争冒险
信号在逻辑器件内部经过连线和逻辑单元时,都有一定的延时.延时时间受到连线长度和逻辑单元个数及环境因数有关,所以在门输入的多个信号同时发生变化时会出现尖峰信号,这些尖峰信号称为”glitch”,如果组合逻辑中有glitch,这个电路就存在”冒险”.
所以尽量采用同步电路,信号的变化在时钟的沿,只要出现在时钟沿的毛刺不满足setup/hold都不会有问题,如果还有问题可以在输出信号的保持时间内加D触发器采样.还有尽量不要让输入信号同时变化如采用格雷码?输入.
4. 门控时钟的设计原则
时钟驱动逻辑只包含一个”与门”或”或门”;
逻辑门的输入有一个为时钟输入,其他必须满足相对这个时钟的setup/hold time;
5. 如何提高系统运行速度
时钟周期T>=Tco+Tdelay+Tsetup-Tdp;就是如何减小T,方法就是减小组合逻辑的延时Tdelay,所以出现了流水线思想,即分割大的逻辑电路为几个小的逻辑电路在中间插入flip-flop,消除时间瓶颈.
6. pld/fpga完整的开发流程
设计输入;2. .逻辑综合;3功能仿真;4.布局布线;5.时序仿真;6.程序下载
7. fpga的4种常用设计思想及技巧
1) 乒乓操作:数据流控制的处理技巧,先通过输入选择逻辑把数据流等时分配到两个数据缓冲块,再通过输出选择逻辑在以后的缓冲周期轮流从缓冲模块中读取数据送到数据流处理模块中.
2) 串并转换:复杂的可用fsm实现.
3) 流水线思想:组合逻辑分割.
4) 数据接口的同步设计:如果为同步时钟用同步ram\fifo,若为异步时钟用异步fifo.
8. 同步逻辑与异步逻辑
同步逻辑的时钟之间有固定的因果关系,异步逻辑的时钟之间没有固定的因果关系.
9. 常用的逻辑电平,ttl与cmos能互连吗?
有0.1v,4.9v,1.0v,3.5v;0.5v,2.7v,0.8v,2.0v等;ttl不能与cmos互连,但是在vcc=5v时,cmos输出到ttl输入是可以的.
10. 亚稳态
异步时钟设计的组合逻辑是出现亚稳态的主要原因,当信号违反了dff的setup/hold time就会出现不确定电平逻辑,只要亚稳态时间小于时钟周期就可用双reg方法消除.
11.moore与mealy fsm
Moore fsm的输出只跟当前的状态有关,与当前输入信号无关;mealy fsm的输出不但与当前的状态有关,还与当前的输入信号有关. </TD></TR></TABLE> |
|