详解FPGA开发流程中每一环节的物理含义和实现目标
仿真和映射仿真,比如ISE就是这样做的,但是个人觉得应该很少场合做这个编译仿真。静态仿真的目的就是验证当工程到了用LUT门级网表描述的时候,从功能上检查验证工程的正确性。
不管是Altera还是Xilinx的开发平台,都直接支持静态仿真,但是由于各自厂家的仿真器专业性不强,我们还是用第三方仿真工具比较多。这时候在第三方工具下的输入必须是经过综合工具综合出来的涵盖工程所有信息的LUT门级网表文件了。一般专业一点的第三方综合工具是不具备综合功能的,至少我们在使用Modelsim的时候,并没有要求我们添加工程用到的具体的哪一款型号FPGA的信息。这也是静态仿真的外号门级仿真指的是LUT门级网表仿真的依据。
FPGA开发— 时序仿真
时序仿真是在布局布线之后做的,在前面介绍时序约束的时候讲到,布线延时问题影响到了电路的性能的时候可以做时序约束。那么这个延时问题的获得就可以通过时序仿真获得,当然还有一种获得延时出现超载情况,这个属于下面小节介绍的静态时序分析了。
一般情况下,电路进行完布线过程后,会生成一个延时信息文件,我们简称SDF(standrad dealy format)文件,Quartus平台下是以.sdo文件形式存在的。里面含有三种延时信息,分别为最小值、典型值、最大值,存在的形式是最小值:典型值:最大值,一般缩写min:typ:max。这里也体现了,在FPGA里的延时信息是不能够精确获得的,只能是逼近,因为本身同一器件中,不同的区域的逻辑门也很有可能和其他的区域内同种的逻辑门的延时不一样。我们这里举一个例子来说明一下这三种值的含义。
如上图,这是一个描述一段延时线的延时信息,给的延时信息从in端点到out端点,输入发生跳变后,分别以最小值、典型值和最大值将信号跳变传递到out端点。我们这里只是一段延时线,在延时信息文件里还有一类延时信息,就是一些具有逻辑功能的cell延时,这个时候信号跳变又分为由高变低和有低变高,因为这两种跳变在这些器件里的三种延时值是不一样的,得分别探讨,具体分别以某一种情况类推。
在做后仿真的时候,只需要在做完静态仿真后的基础上添加布线的延时信息后,再分析逻辑功能是否满足要求。后方针的平台 使用情况和前面一样,一般采用第三方仿真工具,典型的是Modlesim,具体操作过程见软件相关操作章节。
FPGA开发—静态时序分析
静态时序分析,简称STA(StaTIc TIming Analysis),这个过程做的话一把是在是做后仿真前做的。在布局布线后,会生成时序分析报告,该报告是分析工具利用从布线的路劲上提取出寄生参数后精确计算出来的。该报告中会提示出一些关键路径,所谓关键路劲就是指延时信息比较突出的信号节点流,通过分析可以得到不满足时序要求的路径,这个过程就是STA过程。
静态时序分析的特点就是不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计。很多设计都可以在功能验证的成功的基础上,加上一个很好的静态时序分析,就可以替代耗时非常长的后仿真了,这是一种很有保障性的化简流程方式。后仿真相对静态时序分析来说还具有逻辑验证,在加上延时信息的基础上分析逻辑。
FPGA开发—在线调试
在线调试也称作板级调试,它是将工程下载到FPGA芯片上后分析代码运行的情况。有人会以为,我们不是已经做了仿真了,甚至是时序仿真都通过了,还会存在问题么?在实际中,存在这么些情况我们需要用到在线调试:
仿真不全面而没有发现的FPGA设计错误。很多情况下,由于太复杂,无法做到100%的代码覆盖率;
在板级交互中,存在异步事件,很难做仿真,或者仿真起来时间很长,无法运行;
除了本身FPGA外,还可能存在板上互连可靠性问题、电源问题和IC之间的信号干扰问题,都可能导致系统运行出错;
FPGA开发—潜在问题。
在线调试的方式主要有两种,一种是利用外部测试设备,把内部信号传送到FPGA针脚上,然后用示波器或者逻辑分析仪观察信号;另一种就是利用嵌入式逻辑分析仪,在设计中插入逻辑分析仪,利用JTAG边缘数据扫描和开发工具完成数据交互。
嵌入式逻辑分析仪的原理相当与在FPGA中开辟一个环形存储器,存储器的大小决定了能够查看的数据的深度,是可以人为设定的,但是不得超出资源。在FPGA内部,根据设置的需要查看的信号节点信息和驱动的采样时钟,对信息进行采样,并放置到设定的存储空间里,存储空间是环形的,内容随时间更新
FPGA 相关文章:
- 用大电流LDO为FPGA供电需要低噪声、低压差和快速瞬态响应(08-17)
- 基于FPGA 的谐波电压源离散域建模与仿真(01-30)
- 基于FPGA的VRLA蓄电池测试系统设计(06-08)
- 降低从中间总线电压直接为低电压处理器和FPGA供电的风险(10-12)
- FPGA和功能强大的DSP的运动控制卡设计(03-27)
- DE0-Nano-SoC 套件 / Atlas-SoC 套件(10-30)