FPGA板级测试若干方法小结

1)有关时序问题

学习过FPGA的都知道,FPGA可以接受的时钟和所允许的时序远远低于ASIC。这是由于ASIC时钟树与布线相对自由,故对于高速率设计解决起来相对容易。对于Xilinx FPGA而言,尽管采用了90nm工艺的Virtex-4可以支持的性能高达500M[1],但是其时钟树和布线资源相对固定,因此一旦在编译和布局布线的时候处理不当,就会产生时序冲突(timing violation)。产生时序冲突的结果,轻则使设计的逻辑与实际布局布线后的网表不一致,重则导致布局布线根本无法通过,从而致使验证无法进行。
   2)设计过程中注意时序问题
若希望设计的产品能够在FPGA验证平台上顺利的完成验证,在设计过程中就需要注意尽量多的使用FPGA的内部资源,如DSP48,乘法器,RAMDCM等。 毕竟IP核提供商最懂它们自己的产品。例如使用Xilinx工具时,XilinxISE中配有Core Generator这个工具。通过该工具可以生成需要的乘法器。使用这些乘法器来代替普通的乘法器,可以达到满意的效果。除了乘法器,还可以使用该工具产生RAMDCM等。这些直接生成的IP性能都非常好。
   3)综合过程解决时序问题
使用Synplicity公司的Synplify工具进行综合,这是业界通常使用的综合工具之一。选择该工具最主要的原因在于它与XilinxFPGA配合的很好。有人做过实验,通过该工具综合产生结果报表,再通过ISE产生真实布局布线后的报表。对这两个报表的时序估计部分进行对比,我们发现两者之间惊人的相似,最差路径之间的差别不超过1ns
   4)布局布线阶段解决时序问题

当综合工作完成,进入布局布线的阶段后,仍然有两种方法可以改善逻辑时序问题。第一种是手动增加并调整BUFGGlobal Clock Buffer)。BUFGXilinx的全局时钟资源,所有时钟树的起点都是BUFG,位于FPGA的北极和南极。当布线后仍有负的slack时,有可能是某些当作时钟使用的信号没有被放上时钟树,此时就要手动将这些信号放上BUFG。若遇到门控时钟,还应该使用BUFGMUX资源。

门控时钟,是主要为了降低功耗。

门控时钟(Clockgating),通过关闭芯片上暂时用不到的功能和它的时钟,可以节省电能。

门控时钟(英语:Clockgating),“门控”是指一个时钟信号与另外一个非时钟信号作逻辑输出的时钟。例如,用一个控制信号“与”一个clk,可以控制clk的起作用时间。可以通过关闭芯片上暂时用不到的功能和它的时钟,从而实现节省电流消耗的目的。门控时钟是低功耗设计中的一种最有效的方法。

门控时钟是一种在同步时序逻辑电路的一种时间脉冲信号技术,可以降低芯片功耗。门控时钟通过在电路中增加额外的逻辑单元、优化时钟树结构来节省电能。

  可以通过以下几种方式在设计中添加门控时钟逻辑:

  通过寄存器传输级编程中的条件选择来实现使能信号,从而在逻辑综合过程自动被翻译为门控时钟;

  通过实例化特殊的门控时钟单元,来把门控时钟插入到设计中去;

  使用专门的门控时钟工具添加。


5)代码一致性
对于经过FPGA验证的代码而言,最担心的是经过验证的代码和进行流片的代码不一致。导致这个现象产生的原因是多种的,其中版本控制和由于FPGAASIC专用器件不一致而引起的问题是最常见的两个问题。
对于经过FPGA验证的代码,为了能够使被测代码可以顺利的在FPGA进行验证,一般都采取了FPGA专用的器件。这些FPGA专用器件在ASIC中是不存在的。为了解决这个问题,通常采取"假代码"Fake Code)解决。顾名思义,"假代码"就是在代码中保留FPGA专用器件的名称和接口,但是在FPGAASIC中使用不同的器件内核。该器件若在FPGA下使用则使用FPGA专用器件,若在ASIC下使用,则使用自己编写的代码。尽管这种做法仍然无法保证代码的完全一致,但是却最大限度的避免了代码的差别。


  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA板级确认测试是在将FPGA设计部署到实际硬件板上之前进行的一系列测试。以下是一些常见的FPGA板级确认测试要求: 1. 电源测试:检查FPGA板的电源供应是否正常,包括检测电压稳定性、电流负载能力等。 2. 时钟测试验证FPGA板的时钟源是否正确连接并工作正常,包括时钟频率、相位稳定性等方面的测试。 3. 通信接口测试验证FPGA板与其他系统或设备之间的通信接口是否正常工作,包括UART、SPI、I2C、Ethernet等接口的功能和兼容性测试。 4. 输入/输出端口测试验证FPGA板的输入和输出端口是否按照设计要求工作,包括验证数据传输的正确性、带宽、延迟等方面的测试。 5. 存储器测试:检查FPGA板上的存储器模块(如RAM、Flash等)是否正常工作,包括读写操作的正确性、数据一致性等方面的测试。 6. 外设测试验证FPGA板连接的外设设备是否正常工作,如传感器、执行器等,以确保与外部设备的交互功能正常。 7. 温度和环境测试:检查FPGA板在不同温度和环境条件下的性能和稳定性,以确保在各种工作环境下的可靠性。 8. 容错和异常情况测试测试FPGA板在异常情况下的处理能力,包括错误检测与纠正、容错机制等方面的测试。 9. 仿真验证对比测试:将FPGA设计在实际硬件上进行测试,与仿真验证结果进行对比,以验证设计的准确性和可靠性。 以上是一些常见的FPGA板级确认测试要求,具体的要求还会根据项目的需求和设计的复杂性而有所差异。在进行板级确认测试时,需要制定详细的测试计划和测试用例,并记录测试结果以便后续分析和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值