zoukankan      html  css  js  c++  java
  • 扒一扒ZYNQ里面缩写 及 Xilinx ZYNQ7000概述

    文章转载自 http://www.eefocus.com/Kevin/blog/11-08/228643_42a39.html 

    kevin是xilinx的大牛,必须膜拜啊。

    还引自http://blog.sina.com.cn/s/blog_6cb263210101g8lv.html

    摘要:本文介绍与XILINX的EPP平台成员, ZYNQ芯片相关的缩写术语和含义.  与简单翻译术语不同,本文对每个缩写在本行业其他公司的展开含义也略作介绍, 避免混淆. 对术语的技术功能也作简单介绍.

    8月份学校放暑假,  大学计划这边紧急的事不多, 因此通常是俺的充电和学习时间.   

    本月的学习任务嘛, 当然是ZYNQ.  资料不多,一个是今年3月份出来的UG804, 是一个简介性质的东东,  24页,  另一个是UG585, 技术手册,目前有1804页.  目前都还是保密的, 合作伙伴需要签NDA才能看到. 

    去年ZYNQ刚出来的时候,文档还没有,俺只有对着仅有的一个框图,对其中的缩写瞎猜了一番. 当时还写了博客.   信马由缰-XILINX的ARM芯片初探(之一) .  看到UG804,终于有机会验证俺当时猜的缩写展开到底对不对.    

    看了之后才发现,  框图中那点看不懂的缩写, 比起UG804中引入的各种缩写, 简直是小巫见大巫.  为了给你一个概念, 假设你3年后碰到一个用过ZYNQ的工程师, 和你说了下面一句话, 你能听懂多少:

    经理啊,  我的PS启动了,可是PL还没加载, 这时,APU复位检查了没问题, MIO连得好好的, EMIO看上去也工作正常,你说我该查GIC呢, 还是AFI呢 ?   

    坑爹啊! 比火星文还火星文的话听了伤不起啊~~~. 下面,开始逐个解释新出现的,或者冷僻的缩写,继续看文档时看见了,才能反映上来是啥意思.  

    开始,还是用最基础的marketing 图。 真正的详细图嘛,要等UG804,UG585正式发布了才能放上来。

    最高一个层级的缩写:

    PS: 处理系统 (Processing System) ,  就是与FPGA无关的ARM的SOC的部分。

    PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分。 之所以叫PL,而不是叫FPGA,我想,原因主要是考虑到让搞软件的兔子们不要看了以后望而生畏。 逻辑嘛,搞软件的也要讲逻辑是不?可编程,软件就是编程是不?

    ZYNQ,往大里说,就是两大功能块,PS 部分和 PL部分, 说白了,就是ARM的SOC部分,和FPGA部分。

    下一个层级, APU部分:

     APU: 应用处理器单元(Application Processor Unit).  位于PS里面的中心位置。 这个名字起的,就有点学问了。 

    APU这三个字,AMD公司曾经用过,特指全称是“Accelerated Processing Units”,加速处理器,它是融聚了CPU与GPU功能的产品,电脑上两个最重要的处理器融合,相互补足,发挥最大性能。XILINX 的APU与AMD的APU在缩写上就是截然不同的两个词, 不能混淆了。

    APU 这个词,在Xilinx内部的术语中,也是撞车了的。 在XILINX 的 PowerPC体系中, 有一个辅助处理单元“Auxiliary Processing Unit” 的概念,指的是在PowerPC硬核外挂的浮点协处理器之类的单元。

    在这个位置上的处理器, 还有各种其他的叫法, 有MCU (微控制器处理单元Microcontroller Unit), MPU (微处理器单元Microprocessor Unit),等等。  MCU这个叫法,暗示了处理器功能不强,只能搞搞输入输出控制啊,写个小状态机啊, 一般都是8位机。  MPU呢,就更先进了一些,成prcessor了,这意味着处理器通常是32位的, 能干点计算的事。 但是, 有一个micro词根在里面, 说明干的是小活, 通常没有正式的和全尺寸的操作系统, 通常没有内存管理单元MMU。  ARM 的Cortex-M系列是干这类活的。

    APU, 带了Application这个词, 意味着在上面可以跑应用程序, 暗示着这个系统是需要全尺寸的操作系统的, 和现在炙手可热的应用商店app store 遥相呼应。 

    APU里面具体包含的内容嘛,就是双ARM-CortexA9核,加上高速缓冲,DMA,定时器,中断控制,浮点和NEON协处理,硬件加速器一致性控制器ACP神马的。  也就是,处理器核心部分。

    套用时下越来越流行的词汇,“嵌入式计算”, "embedded computing", 可以这么说, 用MCU,MPU搭出来的东东,通常叫嵌入式系统。  而APU搭出来的东东, 就够格叫嵌入式计算系统了。

    TTC, 这个词,当年猜了半天也拿不准,看了文档,发现,是Triple Time Counter的意思。 就是这个计数器里面有3个独立通道, 可以独立计数。 挂在APB上,为系统或外设提供定时或计数服务的。


    WDT,  看门狗定时器,有两个, 分别监视ARM-Cortex A9用的。  如果软件跑飞,无法清定时器,一段时间后,看门狗就复位。

    SWDT,系统级看门狗定时器, 这个看门狗的时钟和复位信号,都可以来自于芯片外部, 这样,即使系统有严重故障,比如时钟频率本身都有问题了, 仍然可以通过与系统无关的外部信号计数,计数满就复位。 

     SCU, Snoop Control Unit,  用来保持双核之间的数据Cache的一致性。 也就是是说,第一个A9

    处理器写存储时,只是写在了缓存里,没有进主存,  如果第二个A9读操作,涉及到第一个写脏了的数据段, SCU要保证第二个A9的缓存里是最新的数据。  如果第二个A9写同样数据段的数据,需要在第一个中体现出写的内容。   SCU的存在,才使得两个核成互相联系的“双核”,才能成为MPsoc。   在原先XILINX的双PowerPC的芯片中, 是木有这个东东的。 不少学校的老师拿XILINX的双powerpc练手和教学,从头搭一个Snoop协议在裸的双PowerPC中,倒也不错。 

    ------------------------------这里是第二部分---------------zynq的概述--------

    前学习zynq的时候翻译的zynq-7000数据手册里面的部分内容。翻译的比较随意,也只选取了主要内容来翻译。可用来学习,不可用作查阅的。具体还请参照官方文档。

    Xilinx ZYNQ-7000概述

    处理器子系统(PS)概述

    基于ARM 双核CortexA9 的应用处理器

    ARM-v7架构 高达1GHz

    单/双精度浮点单元

    NEON多媒体处理引擎

    ...

    3个看门狗 1个全局计数器 两个三倍计数器

    缓存

    每个CPU 32KB 1级指令和数据缓存

    512KB 2级缓存 2个CPU共享

    支持8位奇偶校验

    片内存储

    片上boot ROM

    256KB 片内RAM

    外部存储接口

    多协议动态内存控制器

    16/32 bit DDR2、DDR3接口

    16位ECC支持

    1GB地址空间

    静态存储接口: 8bit SRAM,并行NOR Flash,ONFI1.0 NANDFlash接口,1-4bit SPI Flash支持

    8通道 DMA控制器

    ...

    IO外设和接口

    两个千兆网卡支持:发散-聚集DMA ,GMII,RGMII,SGMII接口

    两个USB2.0 OTG接口,每个最多支持12节点

    两个CAN2.0B总线接口

    两个SD卡、SDIO、MMC兼容控制器

    2个SPI,2个UARTs,2个I2C接口

    4组32bit GPIO,54(32+22)作为PS系统IO,64连接到PL

    互联

    PS内和PS到PL的高带宽连接

    基于ARM AMBA AXI总线

    传输质量控制和带宽控制

    可编程逻辑(PL)概述

    可编程逻辑块

    LUT、触发器、级联加法器

    36Kb 块RAM

    全双口

    最高72bit宽度

    DSP单元

    ...

    可编程IO块

    支持LVCMOS,LVDS和SSTL

    1.2V到3.3V IO

    可编程延时和SerDes

    JTAG边界扫描

    PCI-E接口

    串行收发器

    最高16收发器,最高12.5Gb/s数据速率

    两个AD转换器

    片上电压、温度感应,高达17外部差分输入通道,1MSa/s

    Zynq-7020特定的性能和资源量

    PS:CPU有667MHz,733MHz,800MHz三个速度等级

    PL:85K逻辑单元(约等效于130万门);53.2K 查找表;106K触发器;220个DSP单元;2个12bit XADC最多17通道

    总的结构框图


    [转载]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻译

     

    详细描述部分摘录

    主要包括与开发有关的内容如下:

    l  内存接口;

    l  IO外设;

    l  PS和PL的启动和配置方式;

    l  内部可以的逻辑资源,时钟管理与性能,DDR内存性能与速率;

    l  网络收发支持;

    l  PS与PL之间的接口(AXI总线)带宽;

    l  输入输出,包括高速串行收发模块(用于接收LVDS的图像数据)的详细介绍;

    l  ADC性能与参数;

    l  DDR内存--能不能部分用作CPU的内存,部分用作图像缓存;

    l  调试工具、接口;

    l  功耗

             与开发关系不大的一些内容未译,以“...”代替。

    PS部分

    处理器单元(APU)

    ...

    内存接口

             内存接口单元包括动态内存控制器和静态内存接口模块。动态内存控制器支持DDR2,DDR3,LPDDR2。静态存储控制器支持NAND flash, Quad-SPI flash,并行数据总线,并行 NOR flash 接口。

    动态内存接口

             它可配置成16位或32位来访问1GB的地址空间。 ECC(带有奇偶校验功能的内存)支持16位的总线访问模式。处理器子系统由DDR控制器和相关的物理层组成,包括一系列专用I/O. DDR3的存取速度能达1333Mb/s. DDR内存控制器是一个复用端口,它可以使PS和PL都访问公共内存。DDR控制器具有4个AXI从端口,特征如下:

      •一个64位的端口通过2级缓存控制器专用于ARM CPU,,并可以配置成低延时。

      •2个64位的端口是专用于PL访问,

      •另一个64位的端口是其它的AXI主端口通过内部的互联共同使用。

    静态内存接口

             静态内存接口支持的外部的静态存储器有如下几种:

    •8位数据总线的64M SRAM.

    •8位并行的64M NOR flash.

    •带一位奇偶校验位的ONFI 1.0 NAND flash.

    •1位、2位、3位、4位SPI, 或8位串行NOR flash.

    IO外设(IOP)

    主要的特征:

    •2个10/100/1000Mbps 3种模式的以太网MAC层外设接口,它支持IEEE 802.3标准和IEEE 1588 标准。

        •能够 scatter-gather DMA (分散-集中式直接存储器存取)

    •支持IEEE 1588标准的帧图片传输协议(PTP).

        •支持外部的物理层接口。

    •2个USB 2.0接口,每一个USB接口能接12个终端设备。

        •全速版USB 2.0 由主机,终端和器件IP核组成,它支持高速和全速两种模式。

    •使用32位AHB(Advanced High-performance Bus,用于高性能模块之间连接的总线)

      DMA 主机和AHB从机接口。     

         •提供一个8位的ULPI(低引脚数接口)外部物理层接口

     •2个全速 CAN 2.0B CAN 总线接口控制器。

         •支持 CAN 2.0B标准

         •ISO 118981-1

         •有一个外部物理接口。

     •两个SD/SDIO 2.0 控制器。

     •两个全双工SPI端口

     •两个UART接口

     •两个主从IIC 接口

     •118个GPIO

        使用安全性扩充,两个以太网,两个SDIO,两个USB口可以配置成安全或不安全。

        IO外设通过专用的54个I/O与外部设备通信。虽然同时外接多个设备时54个I/O不够,但很多I/O可以从PL获取。所有的复用I/O支持1.8V HSTL 和 2.5V和3.3V VLCMOS电压标准。

    互联(interconnect)

             APU, 内存接口单元和IO外设是相互连接在一起的,并与PL相连,它们是通过多层的ARM AMBA AXI 总线协议互连的。

    PS外部接口

    ...

    PS-PL 接口

    PS-PL接口包括:

    •原始数据通信的AMBA AXI接口

       •两个32位的 AXI主机接口

       •两个32位的 AXI从机接口

       •4个64位/32位可配置的,可缓冲的AXI 从机接口,并可直接访问DDR内存和OCM,可作为高速AXI接口。

       •一个64位AXI从机接口来连续访问CPU存储器。

    •DMA,中断,事件信号

        •处理器的事件总线用于发送事件信息给CPU.

        •PL 外设通过GIC(通用输入输出通道)将中断发给PS

        •四通道DMA给PL

        •异步触发信号

    •未知的PS外设可以通过可扩展的复用I/O访问PL的I/O

    •时钟和复位

       •4个PS时钟输出到PL用于开启和停止控制

       •4个PS复位信号输出于PL

    •配置以及其余的部分

       •PCAP支持PL的全局和局部配置

       •从PL到PS的接口信号可eFUSE和电池支持

       •XADC 接口

       •JTAG接口

        PS与PL之间电高性能的数据传输接口有AXI接口和ACP接口,一般情况下,高性能的AXI接口将用天PS与PL之间的数据传输。如果硬件需要连续性访问CPU存储器,则ACP接口将会启用。

    高性能的AXI接口

        PL通过高性能的AXI接口访问PS中的DDR和OCM。四个专用的AXI存储器端口从PL到PS可配置成32位或64位的接口,如表3所示,这些接口通过FIFO控制器将PL与内存互连。两个输出端口进入DDR控制器,另一个输出进入OCM.

     [转载]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻译

    每一个高性能的AXI接口有以下特性:

      •减少了PL到PS内存的延时

      •1KB FIFO

      •可配置的32位或64位AXI接口

      •支持32字的缓冲如果读需要的话。

      •支持写访问数据释放控制,更有效地使用AXI互连带宽

      •支持多AXI命令给DDR和OCM

    ACP

        ZYNQ-7000 所有的可编程soc ACP都是64位AXI从机接口,它使APU与PL潜在的加速器功能连接起来,ACP直接连接了PL与ARM Cortex-A9处理器的SCU,使得一级二级缓存都能获得CPU的数据。与传统的高速缓存装载方案相比,ACP提供了一个从PS到PL加速器的低等待时间路径。

    PL 部分

    CLB,Slice和LUT

    ...

    时钟管理 ClockManagement

    关键特性:

    •低时钟偏移的高速缓存和布线

    •频率合成和相位移位

    •低抖动的时钟生成和抖动滤除

    每一个Zynq-7000的所有可编程SOC有8个时钟管理模块,每个模块包含MMCM和PLL.

    MMCM和PLL

    MMCM 和 PLL有很多共同的特点。两者都可作为宽频率范围的频率合成器,并可以滤除输入时钟的抖动。在这两个模块的中间是一个VCO,它可根据从PFD中接收的输入电压决定加速还是降速。

    有3种可编程的分频器:D,M,O. 前一个分频器可以降低输入频率,并馈入传统的PLL相位频率比较器的输入。反馈分频器M作为乘法器,因为在馈入其它相位比较器的输入前

    它除以了VCO的输出频率。D和M必须要合适的选择,以使VCO保持它特定的频率范围内。 VCO有8个等间距的输出相位(0°, 45°, 90°, 135°, 180°, 225°, 270°, 315°)。

    每一个都可以被选择为驱动一个输出分频器,每个可进行可编程配置,从1到128的任意整数分频。MMCM和PLL的有三个输入抖动的过滤器选项:低带宽模式,它有最佳的抖动衰减;

    高带宽模式,它有最好的相位补偿。最优化模式,它能够让工具找到最合适的设置。

    MMCM其它的可编程特性

    MMCM有一个分数计数器,在反馈路径或输出路径里。分数计数器能够非整数的增加1/8,因此频率合成能力增加了8倍。MMCM也提供了混合或动态的极小相位增量,它根据VCO频率而定。1600MHZ时,相移定时增量为11.2 ps。

    时钟描述

    Zynq-7000的所有可编程SOC提供6条时钟线(BUFG, BUFR, BUFIO, BUFH, BUFMR,和高速时钟)来满足高扇出,低延时,低时钟偏移的要求。

    全局时钟线

    在Zynq-7000的所有可编程SOC中,32个全局时钟线能够驱动最大的扇出,并能到达每个触发器的时钟,使能,置/复位端,也能作为很多逻辑输入。任何一个时钟区域有由BUFH驱动的12个全局时钟线,由于每个区域内的时钟可关闭,每个BUFH能独立的启用或禁用。

    因此可精确的(fine-grain)控制时钟区域的能耗。

    全局时钟缓冲器可驱动全局时钟线,它执行时不会产生不稳定的时钟复用,并有时钟使能功能。全局时钟往往被CMT驱动,这样可完全消除的基本时钟分配延迟

    局部时钟

    局部时钟可以在这个区域内可以驱动所有的时钟。这个区域可以定义为50个I/0,50个CLB,半个器件宽度。Zynq-7000的所有可编程SOC可以分为8到24个区域。每个区域内有4个区域时钟路径。每个区域时钟缓冲器能够被这四个有时钟功能的输入引脚的任意一个驱动,并且它的频率可选择性的从1到1/8分频。

    I/O时钟

    I/O时钟是特定为I/O逻辑和并串转换和串并转换电路服务的,它在I/O 逻辑部分描述了。ZYNQ-7000的所有可编程SOC能够从MMCM到低抖动高性能的I/O接口直接的连接。

    块内存(BlockRAM)

    关键特性

    • 双口36kb Block RAM,位宽可达72bit

    • 可编程的FIFO logic

    • 内建错误校正电路

             每一个Zynq-7000 All Programmable SoC都有60-465个双口块RAM,一个双口RAM存储36Kb。每一个块RAM有两个完全独立的接口,两个接口仅仅共享存储数据,操作完全独立。

    异步操作---Synchronous Operation

             每一次内存操作,读或写,都被时钟控制。所有的输入都是锁存的(data, address, clock enables, and write enables etc)。输入的地址是时钟锁存的,保持数据一直到下一次操作。可选的输出数据流水线寄存器允许更高的时钟速率。在写操作期间,数据输出可以映射到之前存储的数据,或新写入的数据,或保持不变。

    可编程的数据宽度----Programmable Data Width

             每一个Port都可以被配置成32K × 1, 16K × 2, 8K × 4, 4K × 9 (or 8), 2K × 18 (or 16), 1K × 36 (or 32), or 512 × 72 (or 64)。 两个port可以被配置成不同的宽度,互不影响。每一个块RAM都可以被分为两个完全独立的18Kb BlockRAM,可以each be configured to any aspect ratio from 16K × 1 to 512 × 36。

           只有在简单的双口模式下(simple dual-port,SDP mode) 数据宽度才可以高于18 bits (18 Kb RAM) 或36 bits (36 Kb RAM) be。这种模式下一个Port只能读,另一个只能写。 In SDP mode, one side (read or write) can be variable, while the other is fixed to 32/36 or 64/72。

             两边都可以是变化的宽度。(Both sides of the dual-port 36 Kb RAM can be of variable width.)

             两个相邻的36 Kb block RAMs可以配置成级联的64K × 1 dual-port RAM ,不需要任何额外的逻辑。

    错误检测和校---Error Detection and Correction

             每一个 64-bit-wide block RAM可以生成、存储和利用8个额外的汉明码bits。读的过程中可以执行单bit错误修正和双bit错误检测 (ECC) 。 ECC logic也可以被用于external 64- to 72-bit-wide memories。

    FIFO控制---FIFO Controller

             内部的FIFO controller对单时钟(同步)或双时钟(异步)操作,增加内部地址并提供四种握手信号: full, empty, almost full, and almost empty.

             Almost full and almost empty flags 可编程。类似于Block RAM,FIFO控制器宽度和深度都是可编程的,但是读端口和写端口位宽必须相同。

             第一个字无效模式显示第一个被写的word在数据的输出,即使在第一次读操作之前(First word fall through mode presents the first-written word on the data output even before the first read operation)。在第一个字读出以后,这个模式与标准模式就一样了。

    DSP slice

    ...

    Input/Output 输入/输出

    关键特性

    • 高性能SelectIO支持 1866 Mb/s DDR3

    • 封装内的高频退偶电容增强信号完整性

    • 数字控制实现过程,以实现3态低功耗,高性能的操作

             每一个IO都是可配置的,并可遵循很多的IO标准。出了电源引脚和少量的专用配置引脚,所有的其他PL的引脚都有相同的性能,取决于用户约束规则-constrained only by certain banking rules。The SelectIO 资源被分类为High Range (HR) or High Performance (HP)。HR I/Os 提供宽的电压范围, from 1.2V to 3.3V。HP I/Os are optimized for highest performance operation, from 1.2V to 1.8V。

             IO按bank分类,每个50pin。每个bank都有相同的VCCO提供输出电压。一些单端输出的缓冲器需要内部和外部的VREF。 There are two VREF pins per bank (except configuration bank 0)。一个bank只能有一个VREF电压值。

             Zynq-7000 提供一系列的封装供用户选择。

    I/O 电气特性(Electrical Characteristics)

             单端输出使用传统的CMOS上拉/下拉方式,输出高为VCCO,低至GND。并可以设置高阻态。系统设计者可以定义斜率(压摆率)和输出强度。端口可以选择设置弱上拉或下拉。

             大多信号pin pairs可以被配置为差分对输入或输出。差分对可以配置为末端100欧姆内部阻抗。可支持的差分标准包括LVDS: HT, RSDS, BLVDS, differential SSTL, and differential HSTL。

    每一个IO都是支持存储器接口,比如single-ended and differential HSTL和single-ended SSTL and differential SSTL。SSTL I/O 标准支持的数据速率高达1866 Mb/s,用于DDR3接口。

    三态控制和低功耗IO特性

             三态可被数字化的阻抗控制(T_DCI),可以控制输出的阻抗或提供并行终端一个输入信号到VCCO或分离到VCCO/2。这允许用户消除off-chip termination for signals using T_DCI。为了节约电路板的空间,在输出或三态时终端(termination)自动关闭,相比off-chip终端节约电能。IO也有低功耗模式for IBUF and IDELAY以提供进一步的能量,尤其是被用于存储器接口时。

    I/O逻辑

    输入和输出延迟

             所有的输入和输出可以被配置成组合逻辑或是寄存器锁存的。所有的IO都支持双倍的数据速率(DDR)。所有输入和部分输出和部分输出可以独立配置延时by up to 32 increments of 78 ps or 52 ps each。 这些延时被实现为IDELAY and ODELAY。延时步骤可以被配置,也可在在使用中增加。

    输入串并转换器和输出串并转换器  ISERDES(input serializer and deserializer) and OSERDES(output serializer and deserializer)

             很多的应用结合了高速率的串行IO,而在片内则为较慢的并行IO结构。这要求IO结构中有一个serializer and deserializer (SerDes, 串并/并串转换器)。

             每一个IO引脚处理一个8-bit串并或并串转换器(8-bit IOSERDES (ISERDES and OSERDES)) ,能够实现serial-to-parallel or parallel-to-serial转换。可编程的宽度为2, 3, 4, 5, 6, 7, or 8 bits。从两个毗邻的引脚级联两个IOSERDES (default from differential I/O), 可支持到10 and 14 bits 。ISERDES 有一个特殊的过采样模式,允许异步数据恢复(capable of asynchronous data recovery),用于比如1.25 Gb/s LVDS I/O-based SGMII接口类似的应用。

    低功耗串行收发器

    关键特性:

    • 高性能的收发器线缆,高达12.5 Gb/s线路速率with flip-chip packages,高达 6.6 Gb/s with lidless flip-chip packages.

    • 为芯片之间的功耗优化

    • 高级的发送预加重和后加重,线性接收机(CTLE)和决策反馈均衡(DFE),,包括自适应均衡作为附加功能。

             Ultra-fast串行数据传输到光学模组,IC和PCB, 电子基架或远距离传输。范围高达200Gb/s。在如此高的数据速率下,它要求芯片内的专用电路和差分IO线缆以应对信号完整性问题。

             Zynq-7000 All Programmable SoCs 有0-16个收发器。每一个收发器是一个发送器和接受器的结合体。不同的Zynq-7000 serial transceivers 可结合使用环形振荡器和LC谐振结构以允许混合灵活性和性能,且允许IP在系列器件间的移植。低数据速率也可以过采样使用。接收和发送电路时独立的电路,使用先进的PLL结构可编程倍频(4-25),倍频参考频率输入,作为其bit时钟。每一个收发器都有很多用户可定义特性和参数,所有这些参数都可以在芯片配置时定义,其中大部分可以在运行过程中修改。

    发送器 Transmitter

             实际上是一个parallel-to-serial converter,转换率为16, 20, 32, 40, 64, or 80。这允许设计者在高性能设计中平衡时序和位宽。单通道差分输出给PCB上的线路。TXOUTCLK是拆分串行信号的时钟,可以直接用于内部逻辑并行数据寄存器。

             ...

    接收器Receiver

             接收器实际上是一个serial-to-parallel converter,将输入的bit-serial 差分信号转换为parallel stream of words。支持16, 20, 32, 40, 64, or 80 bits。这允许设计者在高性能设计中平衡时序和位宽。

             接收器接收输入的差分数据流,将其输入可编程的线性接收回路和裁决反馈均衡器

     (为了补偿PCB和其他互联特性的影响),使用参考输入时钟初始化时钟域,没有必要单独设置一个时钟线。数据向量使用non-return-to-zero (NRZ) 编码并且可选的保证充分的数据传输使用选定的编码方案。并行的数据然后被送往可编程逻辑(PL),使用RXUSRCLK 作为时钟。对于短通道,发送器提供了一个额外的低功耗模式, for additional power reduction。

    带外的信号发送Out-of-Band Signaling

             收发器提供out-of-band (OOB) signaling,常被用于当高速串行数据收发不工作时收发低速信号,这通常用于PDM或未初始化的情形。这有利于PCI Express 和SATA/SAS 的设计

    PCI Block

    ...

    XADC (AD转换器)

             12bit 1M采样率ADC;支持多达17路输入;片内片外基准可选;片内温度传感器(4°C误差Max)和电源电压传感器(1%误差Max);支持JTAG连续读ADC结果

             ADC包括2个12bit,采样率1MSPS的ADC。XADC内部拥有采样保持电路和模拟开关,最大支持500KHz的输入带宽。使用专门的port不经过模拟开关可以增加其带宽。片内自带基准源(1%),为了达到全的12bit精度,推荐使用一个外部的1.25V的参考电压芯片。

    如果在设计中XADC没有被使用,默认的作为测量电压和温度的传感器。结果波存在特定的寄存器里,JTAG可以读出。用户可设置一个limit,可以在高温时自动Poweroff。

    复位和时钟管理

    外部内部上电复位信号

    热启动

    看门狗复位

    可编程逻辑的用户复位

    让用户,看门狗,JTAG提供的复位

    安全冲突复位

             时钟管理:PS装备了3个锁相环(PLL),提供了PS灵活的时钟域。PS内部有3个主时钟域。包括应用处理器(APU),DDR内存控制器,IO外设。各个时钟域之间频率可以独立使用软件进行配置。(The interconnect is designed with synchronizers instantiated at asynchronous boundaries where needed)。在这个模式下,DDR工作在CPU时钟的一半。例如CPU工作在同步模式下800MHz,DDR内存则工作在400MHz或800Mb/s。

    PS的启动和设备的配置

             SOC使用多阶段的启动方式。PS是启动和配置流程的主控方。可以加密也可以不加密启动。加密时启动PL必须启动,有PL的加密模块支持。

             复位时,设备会读取mode pin以判断其启动设备:NOR、NAND、Quad-SPI或SD卡,或JTAG(从JTAG启动时不支持加密)。ARM中一个核心执行片内的ROM,从启动设备里复制FSBL(第一级bootloader)到OCM(片内内存)中。然后开始执行FSBL中的代码。

             Xilinx提供了FSBLs样例,用户也可以开发他们自己的FSBL。FSBL初始化PS的boot,并可以加载和配置PL。PL的配置也可以放在下一步执行。

             FSBL一般加载一个用户程序或可选的第二bootloader(SSBL),比如一个U-boot(支持linux启动的一个bootloader)。用户可以从Xilinx那里获得SSBL,或者自行开发。SSBL继续boot流程,从任意的存储设备中加载代码。PL仍然可以在下一个阶段配置。

             The static memory interface controller (NAND, NOR, or Quad-SPI) 使用默认设置参数。为了加快启动配置速度,these settings can be modified by information provided in the boot image header. 启动以后 ROM boot image不可读取。

    调试接口

             调试系统基于ARM’s CoreSight architecture,使用 ARM CoreSight components including an embedded trace buffer (ETB), a program trace macrocell (PTM), and an instrument trace macrocell (ITM). This enables instruction trace features as well as hardware breakpoints and triggers。可编程逻辑(PL)部分的调试工具使用Xilinx ChipScope™ Pro embedded logic analyzer.

             芯片有两个JTAG接口。可以chained together或单独使用。一起用时一个单独的下载线控制ARM和FPGA调试工具。或者分开使用。一个用来调试PS,一个调试PL和下载bitstream。

    功耗

    PL可以受PS控制Power off

    PS Clock 可以低至30MHz

             使用内部的PLL。时钟速率可以动态改变。为了动态改变时钟。用户必须解锁系统控制寄存器,(unlock the system control register)来访问PS时钟控制寄存器(PS clock control register)或时钟生成寄存器(clock generation control register)。

    单处理器模式

             这种模式下, 使用门控时钟关闭the second Cortex™-A9 CPU,第一个CPU依然完全工作。

    估计功耗

    [转载]Xilinx <wbr>ZYNQ-7000概述 <wbr>部分翻译

    ------------------下面是关于zynq的启动补充的------------------------------

    研究ZEDboard这块开发板就要学习片上SOC的设计,ISE工具中PlanAhead是一个很好的设计工具(据说是在ISE11后才集成进去的),当然也可以单独使用XPS+SDK来进行设计。这里我们多说几句,PlanAhead加入了RTL Design(Synthesize),Netlist Design(Implement)等,以前在Project Navigator中有的功能。现在我们可以将FPGA的设计工作全部交给PlanAhead——据不可靠消息称Xilinx可能在14或者以后的版本中,取消Project Navigator。

    Zynq这款芯片分为PS处理系统(Processing System)与PL可编程逻辑(Programmable Logic)两部分。PS部分主要包括两颗主频为1GHz的Cotex-A9的芯片及其GPIO,I2C等片上外设——这部分占了整个芯片的绝大部分外设;PL部分的逻辑单元个数与Kintex7系列相当,并且在ZYNQ内部还集成了1MHz双通12bit的ADC以及温度和电压传感器等。

    PSandPL

    对于ZedBoard开发板的程序下载,ZebBoard的启动方式貌似与ARM相似。启动方式有四种分别为Q-SPI,Nand Flash,Nor Flash和SD card。我们知道,在传统的FPGA里,FPGA的程序都是编写到外置的非易失性存储器里或者通过jtag一次性下载至FPGA配置里。但是Zynq由于内部集成了处理器硬核和可编程逻辑,其启动过程则大为不同,因此,Zynq的启动过程是分阶段的。首先,经过固化到内部的ROM boot,之后经过FSBL(First Stage Boot Loader),ROM boot 将FSBL放入OCM(on-chip-memory),再经过u-boot之后运行linux kernel,FSBL将u-boot放入DDR,u-boot将linux kernel放入DDR,则启动成功。与常见的ARM处理器一样,Zynq开发板的启动模式也是通过跳线帽来选择的。这里不再做详细解释了。请大家自行阅读技术文档。

    简单总结一下,Zynq做为一个跨界的新“物种”,其已经与Xilinx传统产品在基本开发流程与开发原理上却基本一致。在设计工具上ISE、XPS等等的使用方法也基本相同,但是Zynq突破性的内置了两个ARM核,极大的提高了系统的整体性能,扩展了芯片的应用领域,丰富了设计方案。

  • 相关阅读:
    【xsy2506】 bipartite 并查集+线段树
    Linux K8s容器集群技术
    Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)
    Linux Django项目部署
    Linux Django项目测试
    Linux 首先基本包安装(vim啊什么的),源,源优化,项目架构介绍, (LNMuWsgi)Django项目相关软件mysql,redies,python(相关模块)安装配置测试
    Linux centos系统安装后的基本配置,Linux命令
    Linux 虚拟机上安装linux系统 (ip:子网掩码,网关,dns,交换机,路由知识回顾)
    $ Django 调API的几种方式,django自定义错误响应
    $Django 路飞之显示视频,Redis存购物车数据,优惠卷生成表,优惠卷的一个领取表。(知识小回顾)
  • 原文地址:https://www.cnblogs.com/dujianzw/p/4508751.html
Copyright © 2011-2022 走看看