随笔分类 - FPGA/CPLD
摘要:1、设计中的FIFO、状态机接口需要有异常恢复状态和状态上报机制,格雷码电路防止被综合电路优化掉。a)自行设计的格雷码FIFO(一般用于连续数据流跨时钟域)用Synplify综合时,为了防止被优化需要添加综合引导语句:“synthesis_syn_preserve = 1”;b)各种综合工具均有状态机安全模式,综合时候建议打开。2、电路中所以寄存器、状态机、计数器、FIFO在单板上电复位时以及使用前必须处于一个已知状态。a)对电路中的寄存器、状态机、计数器、FIFO必须进行异步复位(不依赖于任何时钟的复位);b)电路中的状态机、计数器在应用的时候不能完全依赖于异步复位时的状态,对于重要的状态机
阅读全文
摘要:最近在维护一些FPGA板卡(EP4CE30F23C8N),发现有十几块FPGA板的3.3V和1.2V都出现了对地短路,拆下外围一些3.3V供电的芯片后,仍然短路,没办法最后直接一狠心把FPGA芯片给拆了,结果短路现象竟然都消失了,原来是FPGA的3.3V和1.2V击穿短路了;进一步查找原因,确定究竟是FPGA的哪个Bank的电源出现了短路,连续测量了好几个FPGA芯片,发现都是Bank5的问题;继续深究,为什么偏偏就是Bank5出问题了呢,其中定有内因,猜想应该是该Bank的某些信号出现了异常导致该Bank被击穿;为了确认这个假设,测量Bank5的相关信号对地阻抗,竟然真的验证了之前的假设,接
阅读全文
摘要:之前调试一块FPGA板卡,上电后总是无法正常工作。现象:nSTATUS指示灯不停的闪烁,测试用的LED(FPGA的GPIO)无法点亮,即FPGA没有进入正常工作状态。调试过程:1、FPGA在上电后,会立刻将nSTATUS配置状态管脚置成低电平,并在上电复位(POR)完成之后释放它,将它置为高电平。作为配置状态输出管脚,在配置过程中如果有任何一个错误发生了,则nSTATUS脚会被置低。nSTATUS不停的闪烁(低电平点亮),说明FPGA没有配置成功。2、为进一步确定原因,测量FPGA的CONF_DONE引脚。上电后,发现CONF_DONE引脚始终为低。正常情况下,在配置过程中该引脚会被置为低电平
阅读全文
摘要:如今,在FPGA系统的设计中,系统的复杂度越来越高,对内存的要求也是越来越高。通常,综合体积、容量等考虑,DDR2已成为FPGA系统的首选。这里,就针对Cyclone IV系列FPGA的DDR2设计作一小结,对于其它系列的FPGA和DDR设计类似。根据Cyclone IV的手册,在进行DDR2设计时,FPGA的管脚分配是要有所考虑的,而不能随意分配。首先,对DDR2的信号引脚做一下说明。这里以MT47H128M8(16Meg×8bit×8banks)为例说明。它的信号线(共34根)包括:时钟及控制线:CLK+/-,CKE,RASn,CASn,CSn,WEn;数据控制线:BA
阅读全文
摘要:1.Found clock-sensitive change during active clock edge at time on register ""原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加 载等)在时钟的边缘同时变化.而时钟敏感信号是不能在时钟边沿变化的.其后 果为导致结果不正确.措施:编辑vector source file2.Verilog HDL assignment warning at: truncated with sizeto match size of target (原因:在HDL设计中对目标的位数进
阅读全文
摘要:Design for portability - clock domain crossingsWhen a signal goes from one clock domain into an other we have what is called a clock domain crossing. To avoid metastability related problems all these signal paths must be designed with care. Problems related to clock domain crossing are seldom observ
阅读全文
摘要:之前做一个IP核,添加的时候出现了一个奇怪的错误,在这里对解决方法作一下简要说明,以免类似的错误再次发生。这个IP核内部有中断信号产生,那么就要对这个irq信号作合适的处理。由于这个irq信号是要向Nios CPU中传送的,所以在自定义IP的生成过程中,需要将Interface类型设置为interrupt_sender,Signal Type设置为irq(即中断高电平有效),如下图所示:上述设置完成后,可能会出现错误:Error:interrupt_sender:associatedAddressablePoint out of rangeWarning:interrupt_sender:In
阅读全文
摘要:在VC开发环境下生成正弦信号的初始化ROM表首先,新建一个Win32 Console Application的空工程,再新建一个sin_rom.c文件并将其添加到Source Files中,然后编译、运行。相关C程序如下:#include "stdio.h"#include "math.h"void main(){ int i; float s; printf(" width=10;\n"); printf(" depth=1024;\n"); printf(" address_radix=uns;\n&
阅读全文
浙公网安备 33010602011771号