微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 赛灵思 FPGA的配置与JTAG(一)

赛灵思 FPGA的配置与JTAG(一)

时间:02-11 来源:网络整理 点击:

二、FPGA配置方式

目前spartan6、Vertex6系列FPGA可以支持多种配置方式:从配置时钟的来源可分为:Master Modes、Slave Modes,从数据读取方式可分为:Parallel、Serial Modes。这样排列组合以下就有如下配置方式:Master Serial、Slave Serial、Slave Parallel、Master Parallel另外Spartan 6等新片子还支持一种SelectMAP 模式,也可以分为Master SelectMAP和Slave SelectMAP两种,这次并没有尝试这两种新式的配置方式,所以没有发言权,所以这两种方式具体的特点参见相关datasheet:ug380等。另外还可以采用JTAG方式在线配置,不过掉电程序是不能保留的。
下面详细讲主串方式,如图是主串方式的连接图:
[[wysiwyg_imageupload:158:]]
主串方式是把FPGA、PROM等器件依照JTAG的标准,串接在同一个链路中,其中串接的含义是JTAG的TDI连接第一个器件的TDI,第一个器件的TDO又连接下一个器件的TDI,直到最后一个器件的TDO又连回到JTAG接口的TDO。这样就形成一个链状的回路,称为JTAG链路。其余两根线TMS(Test Mode Select.)、TCK(Test CLOCK)则分别与每个器件相连。这里TCK、TMS、TDI、TDO四条线均有内部上拉,所以不需要外接上拉电阻。接口上的电源VREF在datasheet上说是接VCCAUX,即2.5V,不过本人实际接到了3.3V也能工作,看了下网上其他人的心得以及实际测量得出该电源是为下载线里面的缓冲芯片HC244供电的,因此只要是能符合它的电平要求2.5~5V理论上都是可以工作的。在正确连接了这些引脚以后,利用jtag便可以识别链路上的芯片了。本人设计的板子在工作在主从模式下,经过JTAG识别到了FPGA芯片但是无法识别PROM,且读取的IDCODE全为"1"。在排除芯片问题之后,出问题的可能性就集中在这四根线上,结果发现PROM的TDI和TCK接反,导致无时钟输入,这样就解释得通了,改正过后果然一切正常了。
 
另外FPGA上还有两个比较重要的引脚:M0、M1,这两个引脚的高低电平组合不同代表了不同模式的选择,以Spartan6为例具体如下:
ConfiguraTIon Mode           M[1:0]       Bus Width         CCLK DirectionMaster Serial/SPI                 01             1, 2, 4                OutputMaster SelectMAP/BPI         00               8, 16                OutputJTAG                                    xx                  1                   Input (TCK)Slave SelectMAP                 10               8, 16                   InputSlave Serial                         11                   1                     Input
所以这里M1接地,M0接高电平,采用主串模式读取。
 
当M0、M1引脚配置无误之后FPGA在上电时就可以从PROM里读取数据了,此时相关的几个引脚有:CCLK、INTB、DONE、ProgramB和DIN如图所示可以看到它们分别与clk、OE/RESET、CE、CF、D0相连。这几个引脚的定义可以参见PROM和相关型号FPGA文档,作用分别是配置时钟、复位和使能、配置完成、串行数据传输。这几个引脚除了D0不需要上拉外在datasheet上都要求上拉了,不过在许多开发板上CCLK信号时候不下拉的,本人尝试了未接下拉依然可以正常传输,不知这样有什么影响。
每次上电的操作时序如下:
[[wysiwyg_imageupload:159:]]
BUSY信号可以不接,在CE拉低和OE拉高之后开始传输数据,PROM中数据传输完成之后DONE拉高。
主要配置流程分4个阶段:存储器清除、初始化、装入配置数据、启动器件。
 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top