verilog
算法小结
2009-11-09
23:20:45|
分类:
FPGA
|
字号
大
中
小
订阅
编程要点:
1
、
RTL
中基本上不用
for
语句,它会被综合器展开为所有变量情况的执行语句,每个变量
独立占用寄存器资源,造成资源浪费。
For
语句大多数用在
testbeach
中。
能复用的的处理模块尽量复用,即使所有操作都不能复用,也要用
case
语句展开处理。
2
、
if
—
else
if
—
else
应该避免使用,因为它综合出来会产生
“
优先级
”
,消耗资源。
if
—
if
、
case
是平行结构的,不产生
“
优先级
”
。
尽量使用
case
和
if
—
if
。
3
、系统上复用模块节省的面积远比代码上优化来的实惠的多。
4
、使用
FPGA
,还是
CPLD
:
FPGA
触发器资源丰富;
——
时序逻辑设计
CPLD
组合逻辑资源丰富。
——
组合逻辑设计
5
、只采用同步时序电路,不采用异步时序电路。
6
、延时:
同步时序电路的延时最常用的设计方法是用分频或倍频的时钟或者同步计数器完成所需
要的延时。
对于比较大的和特殊定时要求的延时,一般用高速时钟产生一个计算器;
对于比较小的延时,可以用一个
D
触发器打一下。
#
n
一般只用在
testbeach
,在电路综合时会被忽略,所以不用。