FPGA&CPLD学习心得
1)
2)
3)
4)
2.Verilog作为一种HDL语言,对系统行为的建模方式是分层次的。比较重要的层次有系统级(system)、算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)。
5.FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富。
6. FPGA和CPLD的组成
Xlinx 和 Lattice FPGA的LUT可以灵活配置成小的RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM。
8.善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作,不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。
9.异步电路和同步时序电路的区别
异步电路:
电路核心逻辑有用组合电路实现
同步时序电路:
利于静态时序分析(STA)、验证设计时序性能。
10.同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则:
1)
2) 在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之旧,这条原则简称满足Hold时间原则。
11.同步时序设计注意事项:
异步时钟域的数据转换。
组合逻辑电路的设计方法。
同步时序电路的时钟设计。
同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。在输入信号采样和增加时序约束余量中使用。另外,还有用行为级方法描述延迟,如“#5 a<=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。
12.常用设计思想与技巧
异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:
两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。
两个时钟频率根本不同,简称异频问题。
13.两种不推荐的异步时钟域操作方法:
一种是通过增加Buffer或者其他门延时来调整采样;
另一种是盲目使用时钟正负沿调整数据采样。
14.异步始终域数据同步常用方法:
(1).同频异相问题
15.模块划分基本原则:
1)
2)
3)
4)
5)
6)
16.组合逻辑的注意事项
1.避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等)
解决:
a.
b.
2.替换延迟链
解决:用倍频、分频或者同步计数器完成。
3.替换异步脉冲产生单元(毛刺生成器)
解决:用同步时序设计脉冲电路
4.慎用锁存器
解决:
a.
b.
c.
d.
小技巧:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。
17.时钟设计的注意事项
1.同步时序电路推荐的时钟设计方法