赛灵思Verilog(FPGA/CPLD)设计技巧
使有限状态机FSM保持在层次中的自己所在的那一级
为了允许综合工具完全优化你的FSM它必须在它自己的块中优化如果不是这样的话这将使得综合工具将FSM逻辑和它周围的逻辑一起优化
FSM不能包括任何的算术逻辑数据通路逻辑或者其它与状态机不相关的组合逻辑
使用两个进程或always块的有限状态机
下一个状态和输出译码逻辑必须放在独立的进程或always块中这将不允许综合工具在输出和下一个状态译码逻辑之间共享资源
使用一位有效编码有限状态机FSM
一位有效编码通常会在富含寄存器的FPGA中提供最高性能的状态机
为每一个叶级leaf-level块提供寄存输出
叶级块是可以推论逻辑的块而结构级(structural-level)的块仅例化较 底层的块这样就建立了层次
如果叶级块被锁存输出则可使综合工具保留层次这可使分析这些代码 的静态时序变得比较容易
对边界进行寄存可以使得各个块之间有确定的时序关系
利用有适当管脚定位约束的数据流
Xilinx器件中的数据流是在水平方向上的这里部分的原因是进位链是在垂直方向上的另外还有其它的原因三态缓冲线在水平方向上排列块之间也有水平方向上的直接连接
为了利用数据流地址和数据管脚必须放在芯片的左侧或右侧同时注意因为进位链是自下而上的所以将最低位放在最下面控制信号放在芯片的上部和下部
不同的计数器风格
二进制计数器是非常慢的如果你的二进制计数器是关键路径可以考虑使用不同的风格的计数器LFSRPre-scalar或Johnson
设计是层次化的被分成不同的功能块和技术块
设计必须被划分成不同的功能块首先是较顶层的功能块然后是较底层的块你也应该包括特定技术的块
设计层次化必须使得设计更可读更易调试更易复用
复制的高扇出网络
这可以通过你的综合工具来进行控制然而为了更紧地控制复制你可以选择复制寄存器
利用四种全局约束来对设计进行全局的约束周期对每个时钟偏置输入偏置输出管脚-到-管脚
你也许会有针对多周期路径失败路径和关键路径的其它约束但是你必须总要从指定四个全局约束开始
- 基于MC8051 IP核和FPGA的频率计设计(11-24)
- 赛灵思FPGA DIY系列(2):数字存储扫频仪(11-06)
- 基于Verilog FPGA 流水灯设计(07-09)
- 基于Verilog计算精度可调的整数除法器的设计(04-24)
- Verilog HDL语言的文件调用问题:include使用方法介绍(02-24)
- FPGA工程师手记:FPGA系统设计黄金法则(06-17)