当前位置:文档之家› 第4节 基于Xilinx FPGA的千兆以太网控制器的开发

第4节 基于Xilinx FPGA的千兆以太网控制器的开发

第4节 基于Xilinx FPGA的千兆以太网控制器的开发
第4节 基于Xilinx FPGA的千兆以太网控制器的开发

第4节基于Xilinx FPGA的千兆以太网控制器的

开发

千兆以太网Rocket I/O

10.4.1 千兆以太网技术

1.千兆以太网技术简介

以太网技术是当今应用广泛的网络技术,千兆以太网技术继承了以往以太网技术的许多优点,同时又具有许多新的特性,例如传输介质包括光纤和铜缆,使用8B/10B的编解码方案,采用载波扩展和分组突发技术等。正是因为具有良好的继承性和许多优秀的新特性,千兆以太网已经成为目前局域网的主流解决方案。

千兆以太网利用了原以太网标准所规定的全部技术规范,其中包括CSMA/CD协议、以太网帧、全双工、流量控制以及IEEE 802.3标准中所定义的管理对象。千兆以太网的关键技术是千兆以太网二层(MAC层)的交换与以太网接口的实现。随着多媒体应用的普及,千兆以太网必将成为各类以太网技术的主力军。

2.Xilinx的千兆以太网解决方案

1)IP的支持

Xilinx提供了可参数化的10/1Gbps以太网媒体访问控制器功能LogiCORE解决方案。

该核设计用来同最新的Virtex-5、Virtex-4和Virtex-II Pro平台FPGA一起工作,并可以无缝集成到Xilinx设计流程中。吉比特级以太网媒体访问控制器核(GEMAC)是针对1Gb/s(Gbps)以太网媒体访问控制器功能的可参数化的LogiCORE IP解决方案。GEMAC核的设计符合IEEE 802.3-2002规范。GWMAC核支持两个PHY端接口选项:GMII或RGMII。并且,Xilinx 全面的1Gb/s以太网解决方案包含吉比特MAC和PCS/PMA IP核产品。Xilinx吉比特以太网MAC解决方案还包括带有内置处理器本地总线(PLB)接口(PLB GEMAC)的配置。该配置通过Xilinx嵌入式开发套件(EDK)提供。GEMAC LogiCORE IP可以实现与1000 Base-X PCS/PMA或SGMII核的无缝集成,并提供3种选项用来与PHY器件接口:1000 BASE-X或10位接口(TBI)或SGMII。

GEMAC核非常适合开发高密度吉比特级以太网通信和存储设备,其关键特性有:

?单速全双工11 Gbps MAC控制器;

?设计符合IEEE 802.3-2002规范;

?具有最小缓冲的直通操作,以最大限度地实现客户端接口的灵活性;

?通过可选的独立微处理器中的接口进行配置和监控;

?直接与以太网统计数据核接口,以便实现功能强大的统计数据收集;

?通过MAC控制暂停帧实现对称的或非对称的可选的流程控制;

?VLAN帧的可选技术支持符合IEEE 802.3-2002规范的要求;

?支持任意长度的“jumbo帧”(可选);

可选的地址滤波器,具有数量可选的地址表输入。

2)相应的开发板套件

Xilinx提供的千兆以太网开发套件为Virtex-5 ML505/ML506开发板(使用的FPGA芯片为:XC5VLX50T-1FF1136),该开发板支持10/100兆、1/10吉以太网,加上Xilinx

公开的基于ML505/506的设计,可为基于以太网开发的设计提供全方位的参考。此外,ML505/506还具备SFP、PCI E、SATA以及SMA接口等其余吉比特接口,是学习和研发高速连接设备的理想平台。

10.4.2 基于FPGA的千兆以太网MAC控制器实现方案

1.整体设计方案

以太网控制器的FPGA设计工作包括以太网MAC子层的FPGA设计、MAC子层与上层协议的接口设计以及MAC与物理层(PHY)的MII接口设计。该以太网控制器的总体结构设计框图如图10-30所示。整个系统分为发送模块、接收模块、MAC状态模块、MAC控制模块、MII管理模块和主机接口模块六部分。发送模块和接收模块主要提供MAC帧的发送和接收功能,其主要操作有MAC帧的封装与解包以及错误检测,它直接提供了到外部物理层芯片的并行数据接口。在实现中物理层处理直接利用商用的千兆PHY芯片,主要开发量集中在MAC控制器的开发上。

图10-30 以太网控制器的结构设计框图

MAC控制模块则用于执行全双工模式中的流量控制功能。MAC状态模块可用来监视MAC操作过程的各种状态信息,并作修改。MII管理模块提供了标准的IEEE 802.3介质独立接口,可用于连接以太网的链路层与物理层。主机接口则提供以太网控制器与上层协议(如TCP/IP协议)之间的接口,以用于数据的发送、接收以及对控制器内各种寄存器(控制、状态和命令寄存器)的设置。

2.MAC控制器结构和工作流程

1)MAC发送模块

MAC发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,再通过PHY提供的载波侦听和冲突检测

信号,在信道空闲时由MII接口将数据以4位的宽度发送给PHY芯片,最后由PHY将数据发送到网络上。

发送模块由CRC生成模块(crc_gen)、随机数生成模块(random_gen)、发送计数模块(tx_cnt)和发送状态机(tx_statem_machine)模块等四个主要子模块组成,其内部结构如图10-31所示。

图10-31 以太网MAC发送模块的结构示意图

发送状态机由Idle_State、Preamble_State、Data0_State、Data1_State、PAD_State、FCS_State、IPG_State、Jam_State、BackOff_State、Defer_State 等十个状态组成。其状态转移图如图10-32所示。

图10-32 发送状态机的状态转移图

系统复位后,发送模块即进入Defer_State状态,并一直检测载波侦听(CarrierSense)信号。当载波侦听信号变成无效(表示信道空闲)时,状态机进入IPG_State状态。此后,在等待一个帧间间隙之后,状态机进入Idle_State状态。如果在帧间间隙的前2/3个周期检测到信道忙信号,状态机将重新回到Defer_State状态。

状态机进入Idle_State状态之后,发送模块将检测载波侦听信号和主机接口的发送请求。若主机模块请求发送,状态机将进入Preamble_State状态,发送模块即通知PHY 发送开始,同时开始发送前序码(7个0x5), 然后发送帧起始定界符(SFD, 0xd)。状态机进入Data0_State后,发送模块将发送一个数据字节的低4位(LSB nibble),当其进入Data1_State状态后,发送模块则发送数据字节的高4位(MSB nibble)。随后,状态机一直在data0和data1之间循环,直到数据发送完毕。当还剩一个字节时,主机模块将通过发送帧结束信号来通知发送模块。如果数据帧的长度大于最小帧并且小于最大帧,状态机就进入FCS_State状态,此时发送模块则将CRC生成模块生成的

CRC值添加到帧的FCS字段中并发送给PHY。

帧发送完之后,状态机进入Defer_State 状态,之后是IPG_State和Idle_State状态。此后状态机又回到初始状态,以重新等待新的发送请求。如果数据帧的长度小于最短帧,状态机就进入PAD_State状态,发送模块根据系统设置确定是否在数据之后添加填充码。然后,状态机进入FCS_State状态。如果数据帧的长度大于最大帧,而系统设置又支持发送超长帧,那么,状态机就进入FCS_State状态;如果不支持发送超长帧,发送模块将放弃发送,状态机直接进入Defer状态,然后是IPG状态,最后回到Idle状态。

在发送数据的过程中,发送模块会一直检查冲突检测信号(collision detected)。如果发现冲突且状态机正处于Preamble_State,状态机将在发送完前序码和SFD之后进入Jam_State,并发送拥塞码,然后进入BackOff状态,以等待重试。之后,状态机经过Defer和IPG回到Idle状态。如果此时重试次数计数器的值没有达到额定值,发送模块将重新开始发送刚才的帧,并将重试次数计数器的值加1;如果发现冲突且状态机处于data0、data1或FCS状态,而且没有超过冲突时间窗,那么状态机将马上进入Jam 状态发送拥塞码,之后经过BackOff、Defer、IPG、回到Idle,并根据重试计数器的值决定是否重新发送刚才的数据帧;如果检测到发生冲突的时间超过了冲突时间窗,状态机将进入Defer状态,然后经过IPG到IDLE状态,并放弃重试。

在全双工模式中发送帧时,不会进行延迟(defer), 发送的过程中也不会产生冲突。此时,发送模块将忽略PHY的载波侦听和冲突检测信号。当然,帧与帧之间仍然需遵守帧间间隙的规则。因此,全双工模式下的发送状态机没有Jam_State、BackOff_State、Defer_State三个状态。

2)MAC接收模块

MAC接收模块结构如图10-33所示,负责数据帧的接收。当外部PHY将通信信道的串行数据转换为半字节长的并行数据并发送给接收模块后,接收模块会将这些半字节数据转换为字节数据,然后经过地址识别、CRC校验、长度判断等操作后,再通过主机接口写入外部存储器,并在主机接口模块的接收队列中记录帧的相关信息。此外,接收模块还负责前序码和CRC的移除。

图10-33 以太网MAC接收模块的结构示意图

接收过程的接收状态机由Idle_State、Drop_State、Preamble_State、SFD_State、Data0_ State、Data1_State等六个状态组成, 其状态转移图如图10-34所示。

图10-34 接收状态机的状态转移图

当接收模块检测到数据有效信号之后,,状态机将进入Preamble_State,并开始接收前序码。此后状态机进入SFD_State,接收一个字节的帧起始定界符,之后根据IFGcnt 计数器的值进入不同的状态。如果IFGcnt所确定的时间大于96个比特时间,状态机将进入Data0状态以接收字节的低4位,然后是Data1状态,并接收字节的高4位,之后又回到Data0状态。状态机就一直在这两个状态之间循环,直到数据接收完毕(PHY 清除MRxDV信号)后进入Idle,以重新等待接收新的数据;如果接收到帧起始定界符时,IFGcnt计数器所确定的时间小于96个比特时间,那么状态机将进入Drop_State 状态,并一直维持该状态直到数据有效信号结束(PHY清除MRxDV信号)。之后,状态机再回到Idle等待接收新的数据。如果在接收前序码、帧起始定界符和数据期间,数据有效信号被清除,那么状态机将回到Idle。

3)MII管理模块

MII管理模块用于控制MAC与外部PHY之间的接口,用于对PHY进行配置并读取其状态信息。该接口由时钟信号MDC和双向数据信号MDIO组成。MII管理模块则由时钟生成模块、移位寄存器模块和输出控制模块三部分组成。

时钟生成模块可以根据系统时钟和系统设置中的分频系数来产生MII 管理模块的时钟信号MDC(10 Mbps速率时为2.5 MHz, 100 Mbps速率时为25 MHz)。移位寄存器模块既可用于对PHY的控制数据进行写入操作,也可用于对PHY的状态信息进行读出操作。写控制数据时,移位寄存器根据其他模块的控制信号将并行控制数据转换为串行数据;而在读状态信息时,移位寄存器则将PHY的串行数据转换为并行数据,MAC中的其他模块可将该并行数据写入适当的寄存器。

由于MDIO是双向信号,因此输出控制模块就用来决定MDIO是处于输入状态还是输出状态。当MDIO处于输出状态时,移位寄存器输出的串行控制数据在经过时钟同步后发送到PHY;当MDIO处于输入状态时,移位寄存器将数据线上的串行数据转换为并行数据

4)主机接口模块

主机接口是运行以太网的上层协议(如TCP/IP协议)与MAC控制器的接口。通过该接口,上层协议可以设置MAC的工作模式并读取MAC的状态信息。该接口还可用于上层协议与MAC之间的数据交换。

主机接口模块内有一组寄存器,可用于存储上层协议对MAC设置的参数以及MAC的状态信息。上层协议对MAC设置的参数包括接收超短帧的使能、添加填充码使能、发送超长帧的使能、添加CRC校验值使能、全双工模式或半双工模式、持超长延迟使能、混杂模式

(Promiscuous)、接收广播帧使能、发送和接收使能、中断源和中断使能、帧间间隙的长度、最大帧和最小帧的长度、重试限制和冲突时间窗、MII地址和MII控制命令、接收和发送队列的长度以及本机MAC地址等。

上层协议通过MAC发送和接收数据的操作主要由主机接口模块内的两个队列来进行管理,这两个队列用于对等待发送的多个帧和接收到的多个帧进行排队。发送队列主要记录等待发送的帧的相关信息、发送该帧时对MAC的设置以及该帧发送完之后产生的状态信息。帧的相关信息包括帧的长度、帧在外部存储器中的地址、该帧是否准备好发送以及队列中是否还有其它帧等待发送;对MAC的设置则包括中断使能、填充使能、CRC使能;产生的状态信息包括成功发送之前的重试次数、由于达到重试限制而放弃发送、发送时产生的滞后冲突以及成功发送之前发生过的延迟。

接收队列主要对接收到的数据帧进行排队并记录每个接收到的帧信息。这些信息包括帧的长度、是控制帧还是普通数据帧、帧中包含无效符号、接收到的帧太长或太短、发生CRC错误、接收的过程中发生滞后冲突、帧是否接收完、队列中是否还有其它已接收到的帧以及帧存储在外部存储器中的地址等。同时队列中还有针对每个帧的设置位,用来设置是否在接收到帧时产生中断。发送队列和接收队列的长度都可以在控制寄存器中进行设置。

10.4.3 Xilinx 千兆以太网MAC IP Core

1.GMAC IP Core的应用场景和架构

Xilinx提供了三态以太网MAC控制器的IP Core,可实现单条吉比特以太网链路,通过交换机或路由器可与任意以太网端口相连。由于MAC控制器的速率很高,底层传输必须依赖Rocket I/O,在客户端还需要利用FIFO来交换数据,其完整的设计方案如图10-35所示。

图10-35 千兆以太网MACIP Core的应用场合示意图

2.GMAC IP Core的配置界面和接口信号

图10-36 千兆以太网MACIP Core的配置界面

千兆以太网MACIP Core的配置界面如图10-36所示。GEMAC控制器所实现的主要功能如图10-37所示,包括发送引擎、接收引擎、流控制、GMII接口、客户发送接口、客户接收接口以及客户管理接口。

图10-37 千兆以太网MACIP Core的主要功能示意图

下面给出相应模块的功能和接口信号说明。

1)发送引擎

发送引擎通过客户发送端口接收以太网的数据帧,并在帧头添加帧引导区域,甚至在帧长小于最短要求时,添加一定的冗余比特。同时,该模块还会在连续的数据帧之间插入以太网协议所规定的最小延时,将用户数据转化成标准的GMII数据帧,并送至GMII模块。在应用时,面向用户的操作就是将用户数据读入GEMAC核内部

该模块接口信号的简要信息如表10-10所列。

表10-10 发送引擎接口信号列表

发送引擎的时序如图10-38所示。当客户端有数据发送时,将tx_data_valid拉高,同时将数据的第一个字节置于tx_data端口;当GEMAC将第一字节数据读入后,会将tx_ack信号拉高,用户端逻辑检测到tx_ack为高时,要在下一个时钟上升沿将其余的数据发送到数据端口上,当数据发送完毕后,将tx_data_valid拉低。

图10-38 发送引擎的时序图

2)接收引擎

接收引擎接收来自GMII模块的数据,去掉帧头的引导区域,包括为了增加帧长的冗余比特。此外,该模块还能根据数据帧中的检验序列区域、接收到的GMII错误码字以及帧长信息完成错误检测,主要接口信号的简要说明如表10-11所列。

表10-11 接收引擎接口信号列表

接收引擎的时序如图10-39所示。客户端逻辑必须在任何时候都准备好接收数据,因为在GEMAC核中没有接收缓存,有时延就会丢失数据,因此用户可自己添加缓冲逻辑。rx_data_valid为高时立即开始接收连续数据,在检测到rx_data_valid变低后,判断

rx_good_frame信号的电平,如果为高则继续处理该帧数据,否则直接丢弃。

图10-39 接收引擎的时序图

3)流控制

流控制模块是根据IEEE 802.3-2002标准的31项条款设计的,在发送时附带暂停帧,接收时也需要对其处理。在GEMAC核中,它是自动配置的,同时,也提供了用户自定义的配置端口,如表10-12所列。

表10-12 流控制接口信号

4)可选的管理接口

管理接口是一个独立的可选端口,其地址、数据和控制信号相对于其他模块是独立的,提供了和CoreConnec总线的交互能力,可挂在MicroBlaze软核或PowerPC硬核处理器,可用于配置GEMAC核以及通过MDIO接口直接读写外部PHY芯片的内部配置寄存器。该模块包括用户管理的接口和MDIO接口两部分,后者直接与PHY芯片相连,全部接口信号的简要说明如10-13所列。

表10-13 管理模块的接口信号

5)复位操作

管理模块具备自己独立的软件复位信号,但当管理接口模块被旁路掉,其相应的配置信号被作为configuration_vector[64:0]输入信号使用。此外,GEMAC核提供了硬件复位信号,如表10-14所列。

表10-14 复位信号列表

6)GMII模块

GMII模块的接收信号一般都是直接连到PHY芯片上,负责和PHY芯片的数据交互,其信号和PHY芯片的接口是一一对应的,如表10-15所列。

表10-15 GMII模块接口信号列表

配置完成后,可在工程管理区选中GEMAC核,在过程管理区,点击“View HDL Instantiation Template”命令,查看其例化代码,它在代码中的例化方法和一般IP Core 的方法是一样的。

10.5 本章小结

高速串行传输技术是FPGA未来的三大应用领域之一,本章主要介绍了Xilinx公司的Rocket I/O解决方案。首先给出高速传输的背景,指出串行方式是吉比特以及更高速率链路的必然选择。其次,给出了吉比特串行传输的通用架构,为后文做好铺垫。接着重点介绍了Xilinx公司Rocket I/O的系统组成、相关协议、时钟设计方案、开发要素以及Rocket I/O的使用方法。最后说明了千兆以太网MAC控制器IP Core的使用方法。读者需要注意的是Rocket I/O是Xilinx高端FPGA中的内嵌组件,和DCM、硬核乘法器、块RAM等的使用方法是一样的,可通过IP Core调用。高速传输是一种新技术,开发难度较大,本章只是介绍了其中的主要核心部分和基本原理,还需要读者阅读大量的文献和实际操作才能熟练开发相关系统。

参考文献

Xilinx FPGA 引脚功能详细介绍

XilinxFPGA引脚功能详细介绍 注:技术交流用,希望对大家有所帮助。 IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表bank号 2.IO_LXXY_ZZZ_# 多功能引脚 ZZZ代表在用户IO的基本上添加一个或多个以下功能。 Dn:I/O(在readback期间),在selectMAP或者BPI模式下,D[15:0]配置为数据口。在从SelectMAP读反馈期间,如果RDWR_B=1,则这些引脚变成输出口。配置完成后,这些引脚又作为普通用户引脚。 D0_DIN_MISO_MISO1:I,在并口模式(SelectMAP/BPI)下,D0是数据的最低位,在Bit-serial模式下,DIN是信号数据的输入;在SPI模式下,MISO是主输入或者从输出;在SPI*2或者SPI*4模式下,MISO1是SPI总线的第二位。 D1_MISO2,D2_MISO3:I,在并口模式下,D1和D2是数据总线的低位;在SPI*4模式下,MISO2和MISO3是SPI总线的MSBs。 An:O,A[25:0]为BPI模式的地址位。配置完成后,变为用户I/O口。 AW AKE:O,电源保存挂起模式的状态输出引脚。SUSPEND是一个专用引脚,AWAKE 是一个多功能引脚。除非SUSPEND模式被使能,AWAKE被用作用户I/O。 MOSI_CSI_B_MISO0:I/O,在SPI模式下,主输出或者从输入;在SelectMAP模式下,CSI_B是一个低电平有效的片选信号;在SPI*2或者SPI*4的模式下,MISO0是SPI总线的第一位数据。 FCS_B:O,BPI flash 的片选信号。 FOE_B:O,BPI flash的输出使能信号 FWE_B:O,BPI flash 的写使用信号 LDC:O,BPI模式配置期间为低电平 HDC:O,BPI模式配置期间为高电平 CSO_B:O,在并口模式下,工具链片选信号。在SPI模式下,为SPI flsah片选信号。 IRDY1/2,TRDY1/2:O,在PCI设计中,以LogiCORE IP方式使用。 DOUT_BUSY:O,在SelectMAP模式下,BUSY表示设备状态;在位串口模式下,DOUT 提供配置数据流。 RDWR_B_VREF:I,在SelectMAP模式下,这是一个低电平有效的写使能信号;配置完成后,如果需要,RDWR_B可以在BANK2中做为Vref。 HSW APEN:I,在配置之后和配置过程中,低电平使用上拉。 INIT_B:双向,开漏,低电平表示配置内存已经被清理;保持低电平,配置被延迟;在配置过程中,低电平表示配置数据错误已经发生;配置完成后,可以用来指示POST_CRC 状态。 SCPn:I,挂起控制引脚SCP[7:0],用于挂起多引脚唤醒特性。 CMPMOSI,CMPMISO,CMPCLK:N/A,保留。 M0,M1:I,配置模式选择。M0=并口(0)或者串口(1),M1=主机(0)或者从机(1)。 CCLK:I/O,配置时钟,主模式下输出,从模式下输入。 USERCCLK:I,主模式下,可行用户配置时钟。 GCLK:I,这些引脚连接到全局时钟缓存器,在不需要时钟的时候,这些引脚可以作为常规用户引脚。 VREF_#:N/A,这些是输入临界电压引脚。当外部的临界电压不必要时,他可以作为

DC综合全过程及使用的命令

DC综合全过程及使用的命令 DC的初始化文件.synopsys.dc.setup,该文件是隐藏文件,需要用ls –a显示 读取文件 DC支持多种硬件描述格式,.db .v .vhd等 对于dcsh工作模式来说,读取不同的文件格式需要不同的参数 Read -format Verilog[db\vhdl ect] file //dcsh工作模式 对于tcl工作模式来说,读取不同文件格式使用不同的命令。

Read_db file.db //tcl工作模式读取db格式 Read_verilog file.v //tcl工作模式读取verilog格式 Read_vhdl file.v //tcl工作模式读取vhdl格式 读取源程序的另外一种方式是配合使用analyzer命令和elaborate命令; Analyzer是分析HDL的源程序并将分析产生的中间文件存于work(用户可以自己指定)的目录下 Elaborate则在产生的中间文件中生成verilog的模块或者VHDL的实体 缺省情况下,elaborate读取的是work目录中的文件 当读取完所要综合的模块后,需要使用link命令将读到DC存储区中的模块或实体连接起来 注意:如果在使用link命令后,出现unresolved design reference的警告信息,需要重新读取该模块,或者在.synopsys_dc.setup 文件中添加link_library,告诉DC到库中去找这些模块,同时还要注意search_path中的路径是否指向该模块或单元电路所在的目录 Link命令执行后,DC就将模块按照RTL级或者门级的描述将电路连接起来,之后的各种限制条件就可以对该电路的顶层模块施加 DC限制条件施加的对象 针对以下电路成分:输入输出端口、模块、子模块的实例化、单元电路、连线及电路的引脚。在使用DC命令的时候,不要使用模糊的对象,例如,如下面的电路: Set_load 3 Clk 由于在电路中含有名称为CLK的pin、port和net,因此,DC无法知道该处的load是施加在哪个对象上,注意到一般连线会驱动负载,该命令就改为: Set_load 3 [get_nets Clk] TCL mode Set_load 3 find(net,”Clk”)dc_shell mode 路径的划分与合法路径 DC综合的时候是基于路径的优化,对于DC来说,合法的路径必须满足以下条件 路径的起点为输入端口或者是触发器的数据端 路径终点为输出端口或者是触发器的时钟端 DC设定的限制条件的值都是无单位的,这些单位都是由工艺库中给定的 可以用report_lib lib_name来查看所有在工艺库中设定的各个参数的单位 定义电路的工作环境和综合环境

xilinxFPGASelectIO模块

5.1.6 SelectIO模块 Virtex-6每个I/O片(I/O Tile)包含两个IOB、两个ILOGIC、两个OLOGIC 和两个IODELAY,如图5-24 所示。 图5-24 I/O 片结构图 本小节就以下几个方面介绍Virtex-6 的SelectIO 资源。 (1) SelectIO 的电气特性。 (2) SelectIO 的逻辑资源——ILOGIC 资源和OLOGIC 资源。 (3) SelectIO 的高级逻辑资源——ISERDES 资源、OSERDES 资源和Bitslip。 一、SelectIO IO 的电气特性 所有的Virtex-6 FPGA 有高性能的可配置SelectIO 驱动器与接收器,支持非常广泛的接口标准。强大的功能SelectIO 包括输出强度和斜率的可编程控制以及使用数控阻抗(DCI)的片上终端。

IOB 包含输入、输出和三态SelectIO 驱动器。支持单端I/O 标准(LVCMOS、 HSTL、SSTL)和差分I/O 标准(LVDS、HT、LVPECL、BLVDS、差分HSTL 和SSTL)。 注意:差分输入和VREF 相关输入由VCCAUX 供电。 IOB、引脚及部逻辑的连接如图5-25 所示。 图5-25 IOB、引脚及部逻辑连接图 IOB 直接连接ILOGIC/OLOGIC 对,该逻辑对包含输入和输出逻辑资源,可实现数据和三态控制。ILOGIC和OLOGIC可分别配置为ISERDES和OSERDES。Xilinx软件库提供了大量与I/O相关的原语,在例化这些原语时,可以指定I/O 标准。与单端I/O相关的原语包括IBUF(输入缓冲器)、IBUFG(时钟输入缓冲器)、OBUF(输出缓冲器)、OBUFT(三态输出缓冲器)和IOBUF(输入/输出缓冲器)。与差分I/O相关的原语包括IBUFDS(输入缓冲器)、IBUFGDS (时钟输入缓冲器)、OBUFDS(输出缓冲器)、OBUFTDS(三态输出缓冲器)、IOBUFDS(输入/输出缓冲器)、IBUFDS_DIFF_OUT(输入缓冲器)和IOBUFDS_DIFF_OUT(输入/输出缓冲器)。 二、SelectIO的逻辑资源 SelectIO的逻辑资源主要是指ILOGIC和OLOGIC资源,它们完成了FPGA引脚到部逻辑的连接功能,包括组合输入/输出、三态输出控制、寄存器输入/输出、寄存器三态输出控制、DDR输入/输出、DDR输出三态控制、IODELAYE1高分辨率可调整延迟单元及其控制模块。 下面简要介绍ILOGIC和OLOGIC功能。

synopsys DC10.03图文安装配置详解

喾林原创 Synopsys DC10.03安装配置 1、需准备安装包: 1)、Synopsys DC(design compiler)安装包 2)、SCL 安装包(注:此包为synopsys license 管理)。 3)、Synopsys 图像安装工具:installer2.0及以上均可。 (注:图形安装操作简单,不易出错,故采用图形安装界面) 4)、Synopsys license 制作工具( EFA LicGen 0.4b 和Synopsys SSS Feature Keygen )。 2、开始安装DC : 1)、启动图形安装界面 于linux 系统下解压installer2.0包(在windows 下解压文件易损坏)。解压后运行setup.sh 得如图(一)所示界面。 图 (一)

喾林原创点击“start ”有如图(二)所示界面开始安装。在“Source ”栏选中DC 安装文件所在上层目录。“Done ”后“Next ”(此次“Next ”时间较长,耐心等待)。 图 (二) 之后可一直“NEXT ”到如图(三)所示。 图 (三)

在该界面勾选linux选项即可,继续下一步到如图(四)所示。选择安装路径后继续下一步直到结束。 喾林原创 图(四) 至此DC安装结束。 3、开始安装SCL: 此安装与DC安装步骤一直,几乎没有差别,唯一不同的就是安装路径不同。 4、license的制作: License的制作是在windows下制作的。

1)、打开EFA LicGen 0.4b文件夹运行LicGen.exe程序出现如图(五)所示界面。 喾林原创 图(五) 点击“OPEN”选择Synopsys.lpd文件,“打开”。回到图(五)所示界面。勾选上Custon、Use Daemon及最后一个Custon。

Xilinx_FPGA中文教程

Spartan-3E Starter Kit Board User Guide

Chapter 1: Introduction and Overview Chapter 2: Switches, Buttons, and Knob Chapter 3: Clock Sources Chapter 4: FPGA Configuration Options Chapter 5: Character LCD Screen Chapter 6: VGA Display Port Chapter 7: RS-232 Serial Ports Chapter 8: PS/2 Mouse/Keyboard Port Chapter 9: Digital to Analog Converter (DAC) Chapter 10: Analog Capture Circuit Chapter 11: Intel StrataFlash Parallel NOR Flash PROM Chapter 12: SPI Serial Flash Chapter 13: DDR SDRAM Chapter 14: 10/100 Ethernet Physical Layer Interface Chapter 15: Expansion Connectors Chapter 16: XC2C64A CoolRunner-II CPLD Chapter 17: DS2432 1-Wire SHA-1 EEPROM

Chapter 1:Introduction and Overview Spartan-3E 入门实验板使设计人员能够即时利用Spartan-3E 系列的完整平台性能。 设备支持设备支持::Spartan-3E 、CoolRunner-II 关键特性关键特性::Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner?-II (XC2C64A-5VQ44C)与Platform Flash (XCF04S-VO20C) 时钟时钟::50 MHz 晶体时钟振荡器 存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM 连接器与接口: 以太网10/100 Phy, JTAG USB 下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED 输出, 四个瞬时接触按钮, 100管脚hirose 扩展连接端口与三个6管脚扩展连接器 显示器: VGA 显示端口,16 字符- 2 线式 LCD 电源电源::Linear Technologies 电源供电,TPS75003三路电源管理IC 市场: 消费类, 电信/数据通信, 服务器, 存储器 应用: 可支持32位的RISC 处理器,可以采用Xilinx 的MicroBlaze 以及PicoBlaze 嵌入式开发系统;支持DDR 接口的应用;支持基于Ethernet 网络的应用;支持大容量I/O 扩展的应用。 Choose the Starter Kit Board for Your Needs Spartan-3E FPGA Features and Embedded Processing Functions Spartan3-E FPGA 入门实验板具有Spartan3-E FPGA 系列突出独特的特点和为嵌入式处理发展与应用提供了很大的方便。该板的特点如下: Spartan3-E 特有的特征:并行NOR Flash 配置;通过并行NOR Flash PROM 实现FPGA 的多种配置方式 嵌入式系统:MicroBlaze? 32-bit 嵌入RISC 处理器;PicoBlaze? 8-bit 嵌入控制器;DDR 存储器接口 Learning Xilinx FPGA, CPLD, and ISE Development Software Basics Spartan3-E FPGA 入门实验板比其他的入门实验板先进、复杂。它是学习FPGA 或CPLD 设计和怎样运用ISE 软件的基础。 Advanced Spartan-3 Generation Development Boards 入门实验板示范了MicroBlaze? 32-bit 嵌入式处理器和EDK 的基本运用。其更先进的地方

synopsys简易教程

以.cshrc 及用户根目录下的.synopsys_vss.setup .synopsys_dc.setup 已经配置为前提)1.创建工作目录; 2.编写vhdl源程序; 3.编写.synopsys_vss.setup 和.synopsys_dc.setup文件; 4.编译vhdl源程序; 5.运行vhdldbx 仿真器; 6.运行synopsys的综合器; 7.完成综合后的门级仿真; 以一个一位加法器为例,进行具体说明(用户界面为CDE): 1)创建adder 目录: 可以在资源管理器中完成,也可以在unix环境下完成:mkdir adder; 2)在adder目录下创建work目录; 3)编写.synopsys_vss.setup文件并存入adder目录;.synopsys_vss.setup的内容如下:WORK >DEFAULT DEFAULT:work TIMEBASE = NS 4)编写一位加法器的源程序(adder1.vhd)并存入adder目录下: library ieee; use ieee.std_logic_1164.all; entity adder1 is port(din1 : in std_logic; din2 : in std_logic; cin : in std_logic; dout: out std_logic; cout: out std_logic); end adder1; architecture rtl of adder1 is begin dout <= din1 xor din2 xor cin; cout <= (din1 and din2) or (cin and (din1 xor din2)); end rtl; 5)编写一位加法器的测试基准(即test_bench)并存入adder目录下:(tb_adder1.vhd)library ieee; use ieee.std_logic_1164.all; entity tb_adder1 is end tb_adder1; architecture rtl of tb_adder1 is component adder1 is port(din1 : in std_logic; din2 : in std_logic; cin : in std_logic;

Xilinx-FPGA配置的一些细节

Xilinx FPGA配置的一些细节 2010年07月03日星期六 14:26 0 参考资料 (1) Xilinx: Development System Reference Guide. dev.pdf, v10.1 在Xilinx的doc目录下有。 (2) Xilinx: Virtex FPGA Series Configuration and Readback. XAPP138 (v2.8) March 11, 2005 在Xilinx网站上有,链接 (3)Xilinx: Using a Microprocessor to Configure Xilinx FPGAs via Slave Serial or SelectMAP Mode.XAPP502 (v1.5) December 3, 2007 在Xilinx网站上有,链接 注:此外xapp139和xapp151也是和配置相关的。 (4)Xilinx: Virtex-4 Configuration Guide. UG071 (v1.5) January 12, 2007 (5) Tell me about the .BIT . 链接: 1 Xilinx配置过程 主要讲一下Startup Sequence。 Startup Sequence由8个状态组成. 除了7是固定的之外,其它几个的顺序是用户可设置的,而且Wait for DCM和DCI是可选的。 其中默认顺序如下: 这些在ISE生成bit文件时通过属性页设定。 这几个状态的具体含义如下: Release_DONE : DONE信号变高 GWE : 使能CLB和IOB,FPGA的RAMs和FFs可以改变状态 GTS : 激活用户IO,之前都是高阻。

启动dc_shell工具的.synopsys.setup文档

设置启动dc_shell-t工具的 .synopsys.setup文件 Author:周建伟 Company:西安邮电大学SOC组 Date:2013.10.30 摘要:若你在读不进你的库,即在你的运行报告中总是有:warning:Can?t read link_library file …your_library.db?,这边文档会对你有一定的帮助

逻辑综合环境 启动文件 启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为“.synopsys_dc.setup”的启动文件(位置:inst_dir/admin/setup/.synopsys_dc.setup)。启动时,DC会以下述顺序搜索并装载相应目录下的启动文件: DC安装目录($DC_PATH/admin/setup) 用户主目录 工具启动目录 注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置 本文档重在讲述怎么设置工具启动目录 1、把inst_dir/admin/setup/.synopsys_dc.setup文件拷贝到你DC脚本目录下(也就是和你 脚本在同个目录下) 2、在.synopsys_dc.setup文件的第92行,即set link_force_case “check_reference”命令下 修改内容如下: A、set lib_path /library/smic18/feview~2/version2.2(注:lib_path为你smic18库安装 目录,不同于DC安装目录) B、set link_library [list * $lib_path/STD/Synopsys/smic18_ss.db \ $lib_path/IO/Synopsys/smic18IO_line_ss.db \ $lib_path/IO/Synopsys/smic18IO_stagger_ss.db ] C、set search_path [list . ${synopsys_root}/libraries/syn ${synopsys_root}/dw/syn_ver \ ${synopsys_root}/dw/sim_ver \ $lib_path/STD/Synopsys $lib_path/IO/Synopsys ] D、set target_library [list $lib_path/STD/Synopsys/smic18_ss.db \ $lib_path/IO/Synopsys/smic18IO_line_ss.db \ $lib_path/IO/Synopsys/smic18IO_stagger_ss.db ] E、set synthetic_library “” set command_log_file “./command.log” set designer “zjw” set company “soc of xupt”

xilinxfpga引脚功能详细介绍

注:技术交流用,希望对大家有所帮助。 IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表bank 号 2.IO_LXXY_ZZZ_# 多功能引脚 ZZZ代表在用户IO的基本上添加一个或多个以下功能。 Dn:I/O(在readback期间),在selectMAP或者BPI模式下,D[15:0]配置为数据口。在从SelectMAP读反馈期间,如果RDWR_B=1,则这些引脚变成输出口。配置完成后,这些引脚又作为普通用户引脚。 D0_DIN_MISO_MISO1:I,在并口模式(SelectMAP/BPI)下,D0是数据的最低位,在Bit-serial模式下,DIN是信号数据的输入;在SPI模式下,MISO是主输入或者从输出;在SPI*2或者SPI*4模式下,MISO1是SPI总线的第二位。 D1_MISO2,D2_MISO3:I,在并口模式下,D1和D2是数据总线的低位;在SPI*4模式下,MISO2和MISO3是SPI总线的MSBs。 An:O,A[25:0]为BPI模式的地址位。配置完成后,变为用户I/O口。 AWAKE:O,电源保存挂起模式的状态输出引脚。SUSPEND是一个专用引脚,AWAKE是一个多功能引脚。除非SUSPEND模式被使能,AWAKE被用作用户I/O。 MOSI_CSI_B_MISO0:I/O,在SPI模式下,主输出或者从输入;在SelectMAP模式下,CSI_B是一个低电平有效的片选信号;在SPI*2或者SPI*4的模式下,MISO0是SPI总线的第一位数据。 FCS_B:O,BPI flash 的片选信号。 FOE_B:O,BPI flash的输出使能信号 FWE_B:O,BPI flash 的写使用信号 LDC:O,BPI模式配置期间为低电平 HDC:O,BPI模式配置期间为高电平 CSO_B:O,在并口模式下,工具链片选信号。在SPI模式下,为SPI flsah片选信号。 IRDY1/2,TRDY1/2:O,在PCI设计中,以LogiCORE IP方式使用。

DC基本问题

1.14. translation这一步是用什么DC命令来实现的? 我们知道,DC综合过程包括3个步骤:translation + logic optimization + mapping transition 对应命令为 read_verilog(read_vhdl等) logic optimization 和 mapping 对应于 compile 1.15. 逻辑优化和映射(logic optimization + mapping)又是用什么DC命令来实现的? logic optimization 和 mapping 均在compile命令完成,但是可以指定使用特殊的优化方法:structural 和flatten,建议大家在synthesis时同时生成structural 和flatten格式的netlist,然后打开看看到底有什么不同之处。 1.17. 基于路径的综合的意思是什么? 路径(path),是DC中的一个重要概念。它包括4种路径方式: 1 input到FF的D端。 2 FF的clk到另一个FF的D端。 3 FF的clk到输出Q。 4 input到output。 基于路径的综合就是对这四种路径进行加约束,综合电路以满足这些约束条件。 1.24 reference 是指什么? 和cell 有什么区别? 当存在一个模块被多次例化,那么该模块就称为reference 1.25 如何读入一个design? 使用analyze + elaborate 或者 read_verilog、read -f verilog、 read_vhdl、read_file 命令。 1.26 analyze+ elaborate 和 read 命令有什么区别? read_file 是可以读取任何synopsys支持格式的;analyze和eloborate 只支持verilog和VHDL两个格式,但是他们支持在中间过程中加入参数而且以便以后可以加快读取过程。

Encounter使用入门教程

Encounter使用入门教程 本教程介绍一下自动布局布线工具Encounter的使用知识,开始以一个简单的十进制计数器版图的自动实现为例子,之后介绍包含block模块的复杂的版图自动实现。 在Designer Compiler使用入门教程中,笔者设计了一个十进制计数器,并经过Design Compiler对其进行综合后获得了门级综合网表文件counter.sv以及约束文件counter.sdc,根据这两个文件,我们就可以使用SOC Encounter实现十进制计数器的物理版图设计了。首先,我们要准备使用Encounter进行版图自动设计时所需要的数据: 时序库文件:fast.lib,slow.lib,tpz973gwc.lib,tpz973gbc.lib 物理库文件:tsmc18_6lm_cic.lef,tpz973g_5lm_cic.lef,tsmc18_6lm_antenna_cic.lef 门级网表文件:pad_counter.sv 时序约束文件:pad_counter.sdc IO位置放置文件:pad_counter.io //在设计导入Encounter中指定PAD的放置位置文件,不是必须文件 还有其它一些文件在后面用到时进行介绍。 一、网表中添加PAD、编写IO Assignment File 这里,pad_counter.sv是加入PAD后综合得到的门级网表。工程项目中设计制作完成后的芯片要进行封装,PAD就是芯片在封装时连接封装引线的地方。一般信号输入/输出PAD即I/O PAD要在综合前添加进入网表中,电源电压PAD 可以在综合时添加也可以在综合后添加。接下来就先介绍一下如何在网表中加入PAD,其实给网表加入PAD就是一般的module例化,和Verilog中一般的module 模块例化是一样的。 这里介绍在综合时给设计中加入I/O PAD。十进制计数器的Verilog源程序如下:module Cnt10(reset_n,clk,in_ena,cnt,carry_ena); input clk; input reset_n; input in_ena; output [3:0] cnt; output carry_ena; reg [3:0] cnt; reg carry_ena; always @(posedge clk or negedge reset_n) begin if(!reset_n) cnt<=4'b0; else if(in_ena && cnt==4'd10)

xilinx fpga开发实用教程——fpga结构

1.2.1 FPGA工作原理与简介 如前所述,FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。 根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。 查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有 4位地址线的的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。 下面给出一个4与门电路的例子来说明LUT实现逻辑功能的原理。 例1-1:给出一个使用LUT实现4输入与门电路的真值表。 表1-1 4输入与门的真值表 从中可以看到,LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。 由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与逻辑组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。其组成部分主要有可编程输入/输出单元、基本可

DC使用全书(Design Compiler)

DC学习----第一章基本概念 作者:未知时间:2010-08-15 15:02:50 来自:网络转载 1.1 启动文件 启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为“.synopsys_dc.setup”的启动文件,启动时,DC会以下述顺序搜索并装载相应目录下的启动文件: 1)、DC的安装目录; 2)、用户的home目录; 3)、当前启动目录。 注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置。 下面是一个DC启动文件的实例,它包含了几乎所有重要的设置,下文将结合该实例解释启动文件中各项设置的具体含义。 例1-1(一个DC启动文件): search_path= search_path + {“.”, synopsys_root + “/dw/sim_ver” } search_path= search_path + { “~/risc32/synthesis/libraries” } target_library={ tcb773stc.db } synthetic_library={dw_foundation.sldb} link_library = { “*”, dw_foundation.sldb, tcb773stc.db } symbol_library = { tcb773s.sdb } synlib_wait_for_design_license = {"DesignWare-Foundation"} alias rt “report_timing” designer= XXXXX company= “ASIC Lab, Fudan Univ.” search_path指定了综合工具的搜索路径。 target_library为综合的目标库,它一般是由生产线提供的工艺相关的库。 synthetic_library是综合库,它包含了一些可综合的与工艺无关的IP。dw_foundation.sldb是Synopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑、可综合存储器等IP,在综合是调用这些IP有助于提高电路性能和减少综合时间。 link_library是链接库,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。 symbol_library为指定的符号库。 synlib_wait_for_design_license用来获得DesignWare-Foudation的许可(license)。 alias语句与UNIX相似,它定义了命令的简称。 最后的designer和company项则表明了设计者和所在公司。 另外,在启动文件中用符号“/*” 和“*/” 进行注释。 1.2 设计实体 在DC中,总共有8种设计实体: λ设计(Design):一种能完成一定逻辑功能的电路。设计中可以包含下一层的子设计。 单元(Cell):设计中包含的子设计的实例。λ λ参考(Reference):单元的参考对象,即单元是参考的实例。 端口(Port):设计的基本输入输出口。λ λ管脚(Pin):单元的输入输出口。 连线(Net):端口间及管脚间的互连信号。λ λ时钟(Clock):作为时钟信号源的管脚或端口。

简谈Altera和Xilinx的FPGA区别

简谈Altera和Xilinx的FPGA区别 大家好,又到了每日学习的时间了,最近有很多人再问我学习FPGA到底是选择Altera的还是xilinx的呢,于是我就苦口婆心的说了一大堆,中心思想大概就是,学习FPGA一定要学习FPGA的设计思想以及设计原理,不要纠结于单一的实验平台或者操作软件,因为你想在这个行业越走越高的话,广度和深度都是要有所了解的,初期学习的时候尤其注重动手,选择一款操作平台以及操作软件是为了让你更好的去动手做,而不是让你在这款软件或者实验平台去做文章,因为不懂原理的话,换个环境你同样是什么都不明白。尤其是现在的科技公司产品更新升级换代还比较快,要学会去掌握最核心的知识点才是王道。下面,就我自己接触,咱们就来简单聊聊Altera和Xilinx的FPGA 区别,欢迎大家一起交流,三人行,必有我师,共同学习,共同进步。对于Altera和Xilinx 的FPGA,本人认为可以分为两个方面去比较一下,基本逻辑资源和内部基本架构。从目前企业中做开发使用的广泛性来说,Xilinx占得比重确实是大一些,但是从其他方面来说,比如价格,相对而言Altera的便宜些。对于两者的特点,Xilinx的短线资源非常丰富,这样在实现的时候,布线的成功率很高,尤其是逻辑做得比较满的时候。而Altera的FPGA 的短线资源经常不够用,经常要占用LE来充当布线资源,这也是为什么Altera的FPGA 可以便宜的原因,资源少些当然便宜,但是如果你是高手,也能把他的性能发挥得很好。另外就是关于块RAM,Xilinx的双口RAM是真的,Altera的没有双口RAM,如果你要实现真正的双口RAM,只能用两块RAM来背靠背地实现,这样你的RAM资源就少了一半,如果你的应用对片内双口RAM的需求很重要,用Altera的就划不来。下面咱们就从我刚才说的基本逻辑资源和内部基本架构这两个方面来聊聊。 1.基本逻辑资源基本的逻辑资源我建议大家可以去看看两家的芯片做个比较,今天时间有限就不给各位详谈了,通过比较你会发现我上面说的还是有点道理的。 2.内部基本架构从1985年Xilinx公司推出第一片FPGA到现在,FPGA的使用已经有近30年的历史了。目前主流市场的FPGA主要还是Xilinx和Altera两大系列,下面分别来介绍下它们各自的基本结构组成。 Xilinx的FPGA主要由以下单元结构组成:可配置

dc使用

DC使用说明 文件说明:在进行下面的演示时需要用到两个文件,一个是example1.v,它是描述一个电路的verilog代码,我们的目标就是用DC综合这个代码得到满足约束条件的电路网表;另一个是dc.scr,它是综合example1.v的脚本文件。这两个文件都在/home/student1000目录下,大家把它们拷贝到自己的目录下,以备使用。DC既可使用图形界面,也可不使用图形界面而直接运行脚本来综合电路。 一、DC图形界面的使用。 1.DC图形界面的启动 1.1 打开一个终端窗口,写入命令dv –db_mode,敲入回车。 则DC图形界面启动,如下图所示

红框处是DC的命令输入框,以下在图形界面上的操作都可以在命令输入框中输入相应的命令来完成。 选择Help----- Man Pages可以查看DC的联机帮助。相应指令:man。例:man man表示 查看man命令的帮助。man create_clock表示查看creat_clock命令的帮助。

2.设置库文件 选择File---- Setup 需要设置以下库文件,如下图。 相应指令: set search_path [list /tools/lib/smic25/feview_s/version1/STD/Synopsys \ /tools/lib/smic25/feview_s/version1/STD/Symbol/synopsys] set target_library { smic25_tt.db } set link_library { smic25_tt.db } set symbol_library { smic25.sdb }

Xilinx_FPGA下载烧写教程

Step1 学习下载配置Xilinx 之FPGA 配合Mars-EDA 的Spartan2 核心板,用图文方式向大家详细讲述如何下载配置Xilinx 的FPGA。 FPGA 下载模式说明 S1 为 FPGA 下载模式选择跳线,M0,M1,M2 默认状态为通过 4.7K 电阻上拉到 3.3V,当用跳线帽短接 S1 的PIN3 和PIN6 将置 M0 为0,同理,短接 PIN2 和PIN5,PIN3 和PIN4 将置 M1,M2 为0。M0,M1,M2 的电平和 FPGA 下载之间的关系参见下图:(Boundary-scan mode)是调试最常用的 JTAG 模式。当采用板载 PROM 时,采用的跳线模式是 Master Serial Mode –短路 PIN1 和PIN6,PIN2 和PIN5 J2 为Slave Serial Mode 的接口。下载模式跳线 S1 短接PIN1 和PIN6,PIN2 和PIN5 即可。 J3 为 JTAG Mode 的接口。下载模式跳线短接 PIN1 和 PIN6 即可。

S2 跳线说明 1.通过 JTAG 方式烧录 FPGA:短接 PIN1 和PIN3。 2.通过 JTAG 方式烧录 PROM:短接 PIN3 和PIN5,PIN2 和PIN4. 3.通过菊花链下载 FPGA 和烧录 PROM:短接 PIN3 和PIN5,PIN4 和PIN6. 下面我们利用 Spartan2 核心板介绍一下通过 JTAG 菊花链方式下载 FPGA 和烧录 PROM. 硬件跳线选择: 1.跳线 S1: 此时要求 M0 M1 M2 = 100, 设置 FPGA 的下载方式为 Boundary-scan mode, 此时将 M1 和M2 的跳线安上。 跳线 S2 : 通过菊花链下载 FPGA 和烧录 PROM:短接 PIN3 和 PIN5,PIN4 和 PIN6. 2.将 Xilinx 下载线和核心板上 JTAG mode 接口 J3 相连,连接到计算机并口。核心板上电。

中文DC文档

max_transition可以定义为上升或下降电阻和线网负载的乘积,除了工艺库中提供的,用户也可自己定义,而实际采用的是最严格的那个定义值。 相比较max——transition并不直接控制线网的实际电容,而max_capacitance作为直接控制电容的限制而提出的。但是其cost function是基于总的电容而不是瞬态时间。二者可以同时定义。没有违反约束的定义是:驱动pin或者是port的max capacitance大于或者是等于所有被驱动管的电容之和。 Max transition和max fanout 和max capacitance可以用来决定设计中的buffer个数。―――影响时间参数 优化约束―――对时间的约束优先于对面积的约束。在满足对面积的约束之前,会尽量的考虑满足对时间约束条件的满足。 对时间的约束―――-时序电路中通过对时钟的定义来达到,set input delay和set output delay。 ――――组合电路通过对set max delay和set min delay来设定点点之间的时间延迟,max delay通过设定set max delay和creat clock来达到; 而min delay通过设定set min delay和对保持时间的要求来达到。其中的使用set fix hold来固定保持时间。 优化的过程就是减少代价函数的过程――包括设计规则代价函数和优化代价函数。Max delay cost;min delay cost;max power cost;max area cost; 其中max delay cost是代价函数中具有最优权。 Max delay cost的计算:最差的违背和每个路径组的权重之积――worst violation;path group; 当设计不能满足时序单元的建立时间的要求的时候,违背就发生了。一般,把由一个时钟约束的路径组合成一个路径组,这样每个时钟都建立了一个单独的路径组,而剩余的路径组合成默认的路径组,如果在没有时钟的情况下,所有的路径都组合成一个默认的路径组。而综合总是针对路径进行的,所以很容易给每个路径定义其权重。如:max delay cost=1×1+1×2+1×3=6 min delay cost次重。与路径无关,是所有的最差的min delay违背之和,当实际的延迟时间小于设定的期望的延迟时间的时候,违背就发生了。如:min delay=1+2+3=6 max power是用于ECL电路中。 综合时候的时钟设定: 设定时钟树的时候,使用set dont touch network来设定时钟的dont touch参数值,防止 buffers。 Synopsys的STA不报告时序单元中针对时钟管脚的延迟(认为是理想状态-0)。如果时钟经过门单元的话,则不能认为时钟延迟是0,所以也要设定set clock skew-proagated选项来得到非零的时钟延迟,如果ASIC提供商已经定义了相对于时序单元管脚的潜在的时钟skew的上限的话,可以用set clock skew -uncertainty来定义skew。在设定完时钟之后,我们要使用set input delay和set output delay-option来设定输入输出端口的时间设定。用set multicycle path来设定复合时钟。

相关主题
文本预览
相关文档 最新文档