FPGA设计简易流程:

 

1、读要用到的芯片手册,主要看输入输出端口定义、设计约束及示例说明;
2、通过给定要求,构建设计模块的电路图及定义端口;
3、使用Verilog HDL代码实现电路;
4、使用testbench测试电路功能要求。

 

设计中要注意的地方:

在整个芯片设计项目中,行为设计和结构设计的编码是最重要的一个步骤。它对逻辑综合和布线结果、时序测定、校验能力、测试能力甚至产品支持都有重要的影响。考虑到仿真器和真实的逻辑电路之间的差异,为了有效的进行仿真测试:


1、避免使用内部生成的时钟
    内部生成的时钟称为门生时钟(gated clock)。如果外部输入时钟和门生时钟同时驱动,则不可避免的两者的步调不一致,造成逻辑混乱,而且,门产生时钟将会增加测试的难度和时间。

 

2、绝对避免使用内部生成的异步置位/清零信号
    内部生成的置位/清零信号会引起测试问题,使某些输出信号被置位或清零,无法正常进行测试。

3、避免使用锁存器
    锁存器可能引起测试问题。对于测试向量自动生成(ATPG), 为了使扫描进行,锁存器需要置为透明模式(transparent mode),反过来,测试锁存器需要构造特定的向量,这可非同一般。

 

4、时序过程要有明确的复位值
    使触发器带有复位端,在制造测试、ATPG以及模拟初始化时,可以对整个电路进行    快速复位。

5、避免模块内的三态/双向
    内部三态信号在制造测试和逻辑综合过程中难于处理,如果使用inout双端口的话,一般要引用另一个寄存器作缓存。

设计中还要注意:

1、敏感变量的描述要完备;
2、条件的描述也要完备,例如,如果if语句和case语句的条件描述不完备,会造成不必要的锁存器;
3、assign语句的左端变量必须是wire;直接用"="给变量赋值时左端变量必须是reg;
4、端口的I/O与数据类型的关系:
    端口的I/O                         端口的数据类型
                             module内部              module外部
      input                    wire                    wire或reg
    output                wire或reg                    wire
      inout               wire                        wire

posted on 2009-11-19 15:29  剑武江南  阅读(279)  评论(1编辑  收藏  举报