接口确认今后,FPGA内部怎么规划?首要需求考虑便是时钟和复位。
时钟:依据时钟的分类,能够分为逻辑时钟,接口时钟,存储器时钟等;
(1)逻辑时钟取决与逻辑的要害途径,最终值是规划和优化的成果,从经历而不是实践动身:低端FPGA(cyclone spantan)作业频率在40-80Mhz之间,而高端器材(stratix virtex)可达100-200Mhz之间,依据各系列的先后功用会有所提高,但不是革命性的。
(2)接口时钟,异步信号的时序一般也是经过FPGA片内同步逻辑发生,一般需求同步化,即接口的同步化采样。某些接口的同步时钟一般是固定而准确的,例如下表所示,如SERDES的时钟尽量由该BANK的专用时钟管脚输入,这样可确保一组SERDES组成的高速接口时钟偏斜共同。
(3)外部存储器时钟:这儿时钟主要为LPDDR/DDR2/DDR3等器材的时钟,一般来说FPGA的接口不必作业在相应器材的最高频率。能够满意体系缓存数据的功用即可,可是一般这些IP的接口都规则了相应的最小时钟频率,由于这些接口状况机需不断进行外部器材的改写(充电),过低的频率或许会引起改写的问题,形成数据丢掉或许不安稳。
(4)别的一些需求输出的低速时钟,例如I2C、MDIO、低速采样等操作,能够经过内部分频得到。不必经过PLL/DCM发生所需时钟。在XILINX的FPGA中,制止PLL发生的时钟直接输出到管脚上,而ALTERA的器材能够如此操作。处理此类问题的办法可经过ODDR器材经过时钟及其180度相位时钟(反向)接入的时钟管脚别离采样0、1逻辑得到。
由于有了DCM/PLL这些专用发生时钟的器材,好像发生恣意时钟输出都是或许是,但实践例化的成果,时钟的输出只能选取某些规模和某些频率,取决于输入时钟和分频系数,CLK_OUT = CLK_IN *(M/N) 。这些分频系数根本取整数,其发生的频率也是有限的值。
复位:依据复位的分类,FPGA内部复位能够分为硬复位,逻辑复位、软复位等;
硬复位:故名思议,即外部引脚引进的复位,能够在上电时给入,使整个FPGA逻辑装备完成后,能够到达安稳的状况,这种复位重要性在于杂乱单板上除了FPGA外,或许还有多个器材(CPU、DSP),其上电次序不同,在未完成悉数上电之前,其作业状况为不安稳状况。这种复位引脚能够经过专用时钟管脚引进,也可经过一般I/O引进,一般由单板MCU或许CPLD给出。
逻辑复位:则是由FPGA内部逻辑发生,例如能够经过计数发生,等候一段时间开端作业,一般等候外部某些信号准备好,另一种FPGA内部逻辑准备好的状况信号,常见的有DCM/PLL的LOCK信号;只要内部各逻辑准备好后,FPGA才干正常作业。别的FPGA内部如规划逻辑的看门狗的话,其发生的复位归于这个层次。
软复位:严厉的说,应归于调试接口,指FPGA接纳外部指令发生的复位信号,用于复位某些模块,用于定位和扫除问题,也归于可测性规划的一部分。例如FPGA经过EMIF接口与CPU衔接,内部设定软复位寄存器,CPU经过写此寄存器能够复位FPGA内部单元逻辑,经过写内部寄存器进行软复位,是杂乱IP常用的功用接口。调试时,FPGA回来过错或无回来,经过软复位能否康复,能够敏捷定位切割问题,加速调试速度。
复位一般经过与或许或的方法(高电平或、低电平与),发生一致的复位给各模块运用。模块软复位信号,只在本模块内部运用。
问题:同步复位好、仍是异步复位好? XILINX尽管引荐同步复位,但也不混为一谈,复位的意图是使整个体系处于初始状况,这依据个人写代码经历,这些操作都能够,条件是整个规划为同步规划,时钟域之间彼此离隔,复位信号满足长,而不是毛刺。下面引荐一种异步复位的同步化方法,其电路图如下:
时钟和复位根本上每个模块的根本输入,也是FPGA架构上首要要规划的部分,而不要用到才考虑,搞的整个规划处处例化DCM或许输出LOCK进行复位,这些关于工程的可维护性和问题定位都没有好处。《治家格言》说:“宜未雨而绸缪,毋临渴而掘井。这与FPGA时钟和复位的规划是同一个意思。