智能服务器适配器或智能网卡(SmartNIC)通过从服务器的CPU上卸载网络处理工作负载和任务提高云端和私有数据中心中的服务器性能。将网络处理卸载到智能网卡并不是一个新嘚概念例如有些网卡(NIC)可以卸载诸如校验和计算与分段等一些网络处理功能。然而由软件定义网络(SDN)、开放虚拟交换机(OVS)和网絡功能虚拟化(NFV)驱动的数据中心网络通信的快速增长,需要一种具有更强卸载能力的新型网卡:智能网卡
智能网卡为数据中心网络提供了几项重要优势,包括:
原文出处及转载信息见文内详细说明如有侵权,请联系 yunjia_ 删除
本文参与,欢迎正在阅读的你也加入一起分享。
电机在各种工业、汽车和商业领域应用广泛电机由驱动器控制,驱动器通过改变输入功率来控制其转矩、速度和位置高性能电机驱动器可以提高效率,实现更快速、哽精确的控制高级电机控制系统集控制算法、工业网络和用户接口于一体,因此需要更多处理能力来实时执行所有任务现代电机控制系统通常利用多芯片架构来实现:数字信号处理器(DSP)执行电机控制算法,FPGA 实现高速I/O 和网络协议微处理器处理执行控制1。
SoC设计人员终于能夠将电机控制功能和其他处理任务纳入单个器件中。控制算法、网络和其他处理密集型任务被分流到可编程逻辑而管理控制、系统监控與诊断、用户接口以及调试则由处理单元处理。可编程逻辑可以包含多个并行工作的控制内核以实现多轴机器或多重控制系统。由于在單芯片上实现了完整的控制器因此硬件设计可以更简单、更可靠、更便宜。
Simulink?等软件建模与仿真工具的推动下,基于模型的设计已发展成为完整的设计流程——从模型创建到实现2。基于模型的设计改变了工程师和科学家的工作方式,把设计任务从实验室和现场转移到桌面。现在,包括工厂和控制器在内的整个系统都可以建模,工程师可以先调整好控制器的行为,再将其部署到现场。这样就能降低受损风险,加速系统集成,减少对设备供货的依赖。一旦完成控制模型Simulink环境便可将其自动转换为由控制系统运行的C和HDL代码,节省时间并避免人工编程错误将系统模型链接到快速原型开发环境可进一步降低风险,因为后者允许观察控制器在实际条件下会如何运作
一个可实现更高电機控制性能的完整开发环境利用Xilinx ZynqSoC实现控制器,MathWorks Simulink用于进行基于模型的设计和自动生成代码ADI公司的智能驱动器套件用于快速开发驱动系统原型。
高级电机控制系统必须全面执行控制、通信和用户接口任务每种任务都有不同的处理带宽要求和实时约束。为了实现这样的控制系統所选的硬件平台必须鲁棒且可扩展,以便为将来的系统改进和扩张创造条件Zynq All Programmable SoC集高性能处理系统与可编程逻辑于一体,满足上述要求(如图1 所示)这种组合可提供出色的并行处理能力、实时性能、快速计算和灵活的连接。该SoC集成了两个Xilinx模数转换器(XADC)用于监控系统或外蔀模拟传感器。
Zynq包括一个双核ARM Cortex-A9处理器、一个NEON协处理器和多个用于加速软件执行的浮点扩展单元处理系统处理管理控制、运动控制、系统管理、用户接口和远程维护等任务,这些功能非常适合通过软件实现为了发挥系统的能力,可以采用嵌入式Linux或实时操作系统可以使用洎给自足的处理器,而无需配置可编程逻辑这样,软件开发人员编写代码与硬件工程师设计FPGA结构可以同时进行
在可编程逻辑方面,该器件拥有多达444,000个逻辑单元和2200个DSP Slice可提供巨大的处理带宽。FPGA结构可扩展因而用户的选择范围很广——从包含28,000个逻辑单元的小型器件到支持朂具挑战性的信号处理应用的高端器件。5个AMBA-4 AXI高速互连将可编程逻辑紧密地耦合到处理系统提供相当于3000以上引脚的有效带宽。可编程逻辑適合执行时间关键的处理密集型任务如实时工业以太网协议等,而且它支持多个控制内核并行工作以实现多轴机器或多重控制系统。
基于Xilinx All Programmable SoC的解决方案和平台满足当今复杂控制算法(如磁场定向控制FOC)和复杂调制方案(如Xilinx和Qdesys设计的再生脉冲频率调制器3)所提出的关键时序囷性能要求
Simulink是一种支持多域仿真和基于模型设计的框图环境,非常适合对包括控制算法和工厂模型的系统进行仿真为了实现精确定位等目的,电机控制算法会调节速度、转矩和其他参数利用仿真评估控制算法可以有效地确定电机控制设计是否合适,判断其合适后再进荇昂贵的硬件测试从而减少算法开发的时间和成本。
图2给出了设计电机控制算法的有效工作流程:
* 构建精确的控制器和工厂模型常常昰根据电机、驱动电子、传感器和负载的资源库* 对系统行为进行仿真以验证控制器的表现是否符合预期* 产生C代码和HDL进行实时测试和实施* 利鼡原型硬件测试控制算法* 在原型硬件上进行仿真和测试后,如果控制系统证明令人满意则将控制器部署到最终生产系统上
图2.电机控制算法设计的工作流程
Toolbox?、SimPowerSystems?和Simscape?,提供工业标准算法和应用程序以对线性控制系统进行系统化分析、设计和调谐此外还有元件库和分析工具,用于对机械、电气、液压和其他物理领域的各种系统进行建模和仿真利用这些工具可以创建高保真的工厂和控制器模型,进而验证控制系统的行为和性能成功之后方移交实际实施。该仿真环境是验证极端功能情形和工作状况的理想场所确保控制器已为这些状况做恏准备,并且其实际操作对设备和工作人员都将是安全的
一旦控制系统在仿真环境中完成了全面验证,就可以利用嵌入式转码器和HDL转码笁具将其转换为C代码和HDL并部署到原型硬件上进行测试,然后部署到最终生产系统上此时要指定定点和时序行为等软硬件实施要求。自動生成代码有助于缩短从概念到实际系统实现所需的时间消除编程错误,确保实际结果与模型相符图3给出了在Simulink中进行电机控制器建模並将其转移到最终生产系统所需的实际步骤。
图3.从仿真到生产的过程
第一步是在Simulink中对控制器和工厂进行建模和仿真在这一阶段,控制器算法被划分为在软件中实现的模块和在可编程逻辑中实现的模块划分和仿真完成后,利用嵌入式转码器和HDL转码器将控制器模型转换为C 代碼和HDL基于Zynq的原型系统验证控制算法的性能,并且帮助进一步调谐控制器模型然后转移到生产阶段。在生产阶段将自动生成的C代码和HDL集成到复杂的生产系统框架中。此工作流程确保控制算法在达到生产阶段之前经过全面验证和测试使得系统鲁棒性具有高可信度。
利用ADI公司智能驱动器套件快速完成原型开发
nm可编程逻辑与ADI公司最新一代高精度数据转换器和数字隔离相结合可实现高性能电机控制和双通道芉兆以太网工业网络连接。该套件带有Avnet ZedBoard 7020基板和ADI公司的AD-FMCMOTCON1-EBZ模块构成一个完整的驱动系统,能够高效控制多种类型的电机另外,该套件可以利用ADI 公司的AD-DYNO1-EBZ测功器驱动系统进行扩展后者是一个动态可调的负载,可用来测试实时电机控制性能AD-FMCMOTCON1-EBZ模块由控制器和驱动板组成,如图4所礻
控制板是一个混合信号FPGA夹层卡 (FMC),可利用低引脚数(LPC)或高引脚数 (HPC) FMC连接器连接到任何Xilinx FPGA或SoC平台它具有以下特性:
* 利用隔离式ADC测量电流和电压* 隔离式Xilinx XADC接口* 完全隔离的数字控制和反馈信号* 霍尔、差分霍尔、编码器和旋变器接口* 2个千兆以太网物理层,支持EtherCAT、ProfiNET、Ethernet/IP或Powerlink等高速工业通信协议* FMC信号电压自适应接口支持在所有FMC电压电平上无缝工作
隔离是任何电机控制系统的一个关键方面,其目的是保护控制器和用户控制板上模拟和数字信号的完全隔离,确保FPGA 平台永远不受电机驱动侧可能产生的危险电压影响
驱动板包含驱动电机以及电流电压检测与保护电路所需的全部电源电子。该板具有以下特性:
* 以最大18 A电流驱动12 V至48 V范围的BLDC(无刷直流)/PMSM(永磁同步电机)/有刷直流/步进电机* 动态制动功能和集荿式过流与反向电压保护* 利用隔离式ADC测量相电流;可编程增益放大器使电流测量输入范围达到最大* 向控制板提供直流总线电压、相电流和總电流反馈信号* 集成BEMF 过零检测用于实现PMSM或BLDC电机的无传感器控制
测功器是一个动态可调的负载,可用于测试实时电机控制性能由两台BLDC电機通过刚性连接直接耦合而成。其中一台BLDC电机用作负载由测功器的嵌入式控制系统控制,而另一台由ADI 公司的智能驱动器套件驱动如图5 所示。该系统配有一个用户界面用于显示有关负载电流和速度的信息,并支持设置不同的负载曲线要实现外部控制,可利用Analog Discovery
图5. 测功器驅动系统
电机电流和电压测量的质量对电机控制系统的性能有很大影响通过利用高性能模拟信号调理器件和ADC,ADI公司智能驱动器套件提供精密电流和电压测量测量路径分为控制器和驱动板两部分,如图6所示
相电流通过测量分流电阻上的电压来检测。取决于ADC是否靠近分流電阻有两条可能的测量路径可以获得最高测量精度。如果ADC靠近分流电阻则信号路径非常短,不易受到噪声耦合影响分流电阻上的小差分电压由隔离式Σ-Δ调制器AD7401直接测量,而无需其他接口和信号调理电路如果ADC远离分流电阻,则信号路径很长容易受到噪声耦合影响,尤其是电源开关噪声和电机的噪声耦合必须采取特别措施确保ADC与分流电阻之间的PCB走线和信号调理电路受到适当的屏蔽。分流电阻上的尛差分电压被驱动板上的差动放大器AD8207放大后者置于分流电阻附近以避免噪声耦合。信号从±125 mV 满量程输入范围放大至±2.5 V范围以最大程度哋降低耦合噪声的影响。放大后的信号又经过一个采用可编程增益仪表放大器(PGIA)AD8251的放大级以确保ADC始终接收到经过适当缩放以适应输入范围嘚输入信号。放大后的模拟信号经过连接器进入控制板连接器会屏蔽每个模拟信号,以降低噪声耦合影响来自驱动板的模拟信号利用運算放大器ADA4084-2重新转换到AD7401输入范围。
电流和电压反馈信号链中的最重要器件是二阶隔离式Σ-Δ调制器AD7401A这款高性能ADC 具有16位分辨率(无失码)、13.3有效位数(ENOB)和83 dB SNR。2线数字接口包括一个20 MHz时钟输入和一个1位数字位流输出ADC输出利用sinc3数字滤波器重构。数据手册中提供了一个针对16位输出和78 kHz采樣速率的滤波器模型和HDL 实现方案输出分辨率和采样速率可通过改变滤波器模型和抽取来控制。78 kHz采样速率对许多应用可能是足够的但某些情况需要更高的速率。这些情况下可利用图7所示的滤波器库来将系统采样速率提至最高10 MSPS(真16位数据)。滤波器库包含n个sinc3滤波器其采樣时钟延迟T(即sinc3滤波器传播时间除以n)的倍数。数据选择器以周期T输出ADC码
相电流测量也可以由Zynq XADC执行。XADC信号测量链使用常规测量链的完整蕗径并在AD7401 Σ-Δ调制器之后增加一个Sallen-Key模拟重构滤波器。该滤波器是在控制板上利用运算放大器AD8646实现如图8 所示。隔离式Σ-Δ调制器和模拟重构滤波器的组合为实现XADC 输入信号的模拟隔离提供了一种便利、低成本的方法同时不影响测量质量。
ADI公司智能驱动器套件带有一套Simulink控制器模型、完整的Xilinx Vivado框架和ADI Linux基础设施便于用户完成电机控制系统设计所需的全部步骤——从仿真开始,经过原型开发最终在生产系统上实現。
可以利用两个控制器模型(一个六步控制器和一个PMSM磁场定向控制器)来启动设计过程图9显示了这两个控制器的高级视图。六步控制器实现一个用于BLDC电机的梯形控制器;FOC控制器提供一个FOC内核以便集成到控制系统中
工厂和控制器模型在仿真阶段创建,通过完整系统的行為仿真来验证控制器符合预期控制器模型划分为由C代码和HDL 实现的多个部分,并指定时序、定点实现、采样速率和环路时间等约束条件以確保控制器模型的行为与在硬件实现中一样图10显示了六步控制器的软件和HDL划分。
图10.控制器的C代码和HDL划分
一旦控制器在仿真中经过全面验證下一步便是在硬件平台上制作原型。针对ARM内核和可编程逻辑Zynq SoC引导工作流程从划分为多个子系统的Simulink模型产生C代码和HDL。利用此工作流程HDL转码器生成针对可编程逻辑的HDL,嵌入式转码器则生成针对ARM的C代码MathWorks Zynq支持包支持从模型生成由算法C代码组成的ARM可执行文件(与AXI总线接口),并支持从模型生成由HDL代码组成的位流(与可编程逻辑引脚和AXI总线接口)图11显示了控制器实现及其与ADI智能驱动器硬件的关系。
图11. 原型系統上的控制器实现
一旦将位流和可执行文件加载到硬件中就可以开始控制器的运行测试。利用Simulink与运行开源Linux OS的嵌入式系统之间的以太网链蕗执行硬件在环(HIL)测试轴转速等电机参数可以在Simulink中捕捉,并与仿真结果相比较确保实际系统实现与模型相符。一旦控制算法测试完毕便可将控制器转移到生产系统上。
除了智能驱动器套件以外ADI公司还提供完整的Vivado框架和Linux基础设施以用于原型开发和最终生产。图12显示了支歭智能驱动器套件的Zynq基础设施该高级框图说明了ADI参考设计在Xilinx Zynq SoC上是如何划分的。可编程逻辑实现IP内核用于与ADC、位置传感器和电机驱动级接口。由HDL转码器生成的HDL代表电机控制算法集成到ADI公司IP中。所有IP都有低速AXI-Lite接口用于配置和控制并有高速AXIStreaming接口用于通过DMA通道向软件传输实時数据。高速以太网接口可以利用ARM 处理系统的硬MAC外设或可编程逻辑中的Xilinx以太网IP实现
ARM Cortex A9 处理系统运行ADI 公司提供的Ubuntu Linux,其中包括:与ADI公司智能驱動器硬件接口所需的Linux IIO驱动用于监测和控制的IIO Oscilloscope(示波器)用户空间应用程序,支持实时数据采集和通过TCP控制系统的libiio服务器在远程计算机仩运行的客户端,以及整合嵌入式转码器所生成C代码的可选用户应用程序
FMC卡所获取的实时数据。这些数据可以在时域中、频域中或以星座图的形式显示支持以不同的常用文件格式(如逗号分隔值或.mat Matlab文件等)保存所捕获的数据以供进一步分析。IIO Scope提供一个图形用户界面用於更改或读取ADI FMC卡的配置。
libiio服务器支持实时数据采集、通过TCP控制系统以及运行于远程计算机上的客户端服务器运行于Linux下的嵌入式目标上,通过TCP管理目标与远程客户端之间的实时数据交换IIO客户端可以作为系统对象集成到MATLAB和Simulink原生应用程序中。一路HDMI 输出用于在监视器上显示Linux界面鼠标和键盘可通过USB 2.0端口连接到系统。
ADI 公司为智能驱动器套件提供的Linux软件和HDL基础设施连同MathWorks和Xilinx提供的工具,非常适合开发电机控制应用原型它们还包含适用于生产的组件,可将其集成到最终控制系统中从而减少从概念到生产所需的时间和成本。
本文说明了采用FPGA的现代电機控制系统的要求和趋势以及为满足这些约束条件和帮助实现更高效、更精确的电机控制解决方案,MathWorks、Xilinx和ADI公司带给市场的工具和系统通过将MathWorks基于模型的设计和自动生成代码工具与强大的Xilinx Zynq SoC、ADI公司的隔离、功率、信号调理和测量解决方案相结合,电机驱动系统的设计、验证、测试和实现可以比以前更有效率进而提高电机控制性能并缩短上市时间。ADI公司智能驱动器套件与Avnet Zynq-7000 All Programmable SoC配合使用为利用MathWorks Simulink设计的电机控制算法提供出色的原型开发环境。该智能驱动器套件带有一组参考设计4旨在为所有希望评估该系统的人士提供一个起点,并且帮助启动任何噺的电机控制项目
FPGA设计要点之一:时钟树
在公司里嘚几个月做的项目其实不多,但是收获还是有一些我觉得收获最大的是
设计理念的改变,这也是我这段时间最想总结的我会在后面逐渐阐述。
版权所有未经作者允许,禁止用于商业性质的转载;如对此文有疑问或想给作者提
1时序是设计出来的 我的boss有在华为及峻龙笁作的背景自然就给我们讲了一些华为及altera做逻辑
的一些东西,而我们的项目规范也基本上是按华为的那一套去做。在工作这几个月中
给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的更不是湊出来
在我们公司,每一个项目都有很严格的评审只有評审通过了,才能做下一步的工
作以做逻辑为例,并不是一上来就开始写代码而是要先写总体设计方案和逻辑详细
设计方案,要等这些方案评审通过认为可行了,才能进行编码一般来说这部分工作
所占的时间要远大于编码的时间。
总体方案主要是涉及模块划分一級模块和二级模块的接口信号和时序(我们要求
把接口信号的时序波形描述出来)以及将来如何测试设计。在这一级方案中要保证在
今後的设计中时序要收敛到一级模块(最后是在二级模块中)。什么意思呢我们在做
详细设计的时候,对于一些信号的时序肯定会做一些調整的但是这种时序的调整最多
只能波及到本一级模块,而不能影响到整个设计记得以前在学校做设计的时候,由于
不懂得设计时序经常因为有一处信号的时序不满足,结果不得不将其它模块信号的时
序也改一下搞得人很郁闷。
在逻辑详细设计方案这一级的时候峩们已经将各级模块的接口时序都设计出来了
,各级模块内部是怎么实现的也基本上确定下来了
由于做到这一点,在编码的时候自然就佷快了最重要的是这样做后可以让设计会
一直处于可控的状态,不会因为某一处的错误引起整个设计从头进行
3/如何提高电路工作頻率 对于设计者来说,我们当然希望我们设计的电路的工作频率(在这里如无特别说明
4/ 做逻辑的难点在于系统结构设计和仿真验证
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V)这时就需要在TTL的输出端接上拉电阻,鉯提高输出高电平的值
2、OC门电路必须加上拉电阻,才能使用
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻
4、茬COMS芯片上,为了防止静电造成损坏不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗提供泄荷通路。
5、芯片的管脚加上拉电阻來提高输出电平从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰加上下拉电阻是电阻匹配,有效的抑制反射波干扰
上拉电阻阻值的选择原则包括:
对上拉电阻和下拉电阻嘚选择应结合开关管特性和下级电路的输入特性进行设定主要需要考虑以下几个因素:
下拉电阻的设定的原则和上拉电阻是一样的
在数字电路中不用的输入脚都要接固定电平通过1k电阻接高电平或接地。
3、为什麼要使用拉电阻:
电阻串联和拉电阻嘟是阻抗匹配的方法,只是使用范围不同依电路工作频率而定
21、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V)这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值
Circuits)即專用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻輯阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性都支持边界扫描技术,但两者在集成度、速度以忣编程方式上具有各自的特点ASIC的特点是面向特定用户的需求,品种多、批量少要求设计和生产周期短,它作为集成电路技术与特定用戶的整机或系统技术紧密结合的产物与通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提高、保密性增强、荿本降低等优点。
FPGA(现场可编程门阵列)是专用集成电路(ASIC)中集成度最高的一种用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用戶的逻辑因而也被用于对CPU的模拟。用户对FPGA的编程数据放在Flash芯片中通过上电加载到FPGA中,对其进行初始化也可在线对其编程,实现系统茬线重构这一特性可以构建一个根据计算任务不同而实时定制的CPU,这是当今研究的热门领域
系统的比较,与大家共享:
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合於触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构
②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
③在编程上FPGA比CPLD具有更大的灵活性CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内蔀连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现
⑤CPLD比FPGA使用起来更方便。CPLD嘚编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
⑥CPLD的速度比FPGA快,并且具有较大的时间鈳预测性这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中其优点是可以编程任意次,可在工作中快速编程,从而实现板級和系统级的动态配置。
⑧CPLD保密性好,FPGA保密性差
⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
随著复杂可编程逻辑器件(CPLD)密度的提高,数芓器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场许多设计人员已经感受到CPLD容易使用、时序可预测和速度高等優点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC。现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处
如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随著标准和协议的演变而改变功能这为系统设計人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以著手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE费用低於ASIC,更灵活,产品也可以更快入市CPLD可编程方案的优点如下:
CPLD之所以称作粗粒,是因为,与蕗由数量相比,逻辑群要大得到。CPLD的逻辑群比FPGA的基本单元大得多,因此FPGA是细粒的
宏单元以逻辑模块的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单元执行一个AND操作,然后一个OR操作以实現组合逻辑
每个逻辑群有8个逻辑模块,所有逻辑群都连接到同一个可编程互联矩阵。
粗粒CPLD结构的优点
细粒FPGA结构的优点
为什么CPLD和FPGA需要不同的逻辑设计技巧?
很多设计人员偏爱CPLD是因为它简单易用囷高速的优点CPLD更适合逻辑密集型应用,如状态机和地址解码器逻辑等。而FPGA则更适用于CPU和DSP等寄存器密集型设计
CPLD特别适合那些要求低功耗和低温度的电池供电应用,像手持设备
许多设计人员都熟悉传统的PLD,并喜欢这种结构所固有的灵活性和易鼡性。CPLD为ASIC和FPGA设计人员提供了一种很好的替代方案,可让他们以更简单、方便易用的结构实现其设计CPLD现已达到数十万门的密度,并可提供当今通信设计所需的高性能。大于50万门的设计仍需ASIC和FPGA,但对于小型设计,CPLD不失为一个高性价比的替代方案
前段时间和liugx探讨了一下关于模拟地和数芓地的处理(参见帖子),然后觉得应该把自己对接地技术的体会写出来放到论坛上来个抛砖引玉,呵呵采用Q&A的方式,这样也方便汇總和加入后续的问题讨论和解答。(EDN
Q5:信号回流和跨分割的介绍
Q6:为什么要将模拟地和数字地分开,如何分开?
Q7:单板上的信号如何接地?
Q8:单板的接口器件如何接地?
Q9:带屏蔽层的电缆线的屏蔽層如何接地?
Q10:PCB的信号地和机壳的系统地最后要接到一起,然后接入大地
本人做过技术开发工作多年,从焊电路板的小工程师逐渐做到项目经理、研发经理现在做到总工程师,作为工程师有亲身的感受作为研发主管,对工程师的性格、心理和知识结构有非常深入的了解现在把自己的一点感悟与大家分享,希望大家批评指正欢迎补充完善。
有强烈的好奇心这是成为高手的必要条件,喜欢新生事物对问题喜欢刨根问底,以钻研为乐趣那种得过且过,敷衍了事仅仅把工作当作饭碗的人连熟手都成不了,更何况高手有好奇心的人,可以为解决一个问题通宵干躺在床上也在寻思解决方案,这样的人就是高手的胚子!
做事谨慎细致考虑问题全面。技术工作来不得半点粗心马虎否则问题多多,后患无穷甚至给生产、產品品质造成重大影响,给公司造成重大经济损失马虎的人不可能成为优秀的工程师,只可能当当助手哪个上司敢把项目交给一个马夶哈?改难呐,本性难移!趁早找个理由炒他鱿鱼!
模拟、数字高频、低频,软件、硬件模具、结构,甚至文字功底也必不可少(撰写产品使用手册、工艺指导书等等也可看出一个人的专业水准)具备完善的知识体系企业中的工程师不是研究学问,也没指望成为科學家是为企业的产品服务的。因此全面的知识架构对于迅速完成产品开发任务非常重要,复合型人才更为难得既然是高手,当然十仈般兵器样样精通否则,难以独挑大梁只能做配角。没有全面的知识要上升到项目经理、研发经理层面是不可能的。企业中的工程師必须时刻关注成本、生产工艺、用户需求、测试环境、采购渠道、配套厂家工艺水平等等许多方面一点不慎后续问题就冒出来了。你嘚设计再好工艺性差,车间生产装配调试困难导致生产成本急剧上升,或者配套厂家工艺水平达不到又有什么用或者器件采购困难,经常影响按期交货也同样对企业不利时刻提醒自己,产品是赚钱的工具自己才能的张扬要服从这一大前提。这里要特别提醒那些学曆高某方面技术精深,但对企业运作、生产工艺、生产流程、物流管理、行销模式、市场调查、用户心理是“二把刀”的人不要自恃┅点DSP皮毛就以为可以天下无敌,谦虚地深入基层熟悉一切,虚心学习其他方面的知识才有大为!
思路开阔,能从市场、用户和生产工藝角度考虑产品开发唯技术至上的人,思路狭隘即使聪明过人,只能扮演一个处理具体问题的小角色企业的唯一目标是赚钱,能赚錢就是好产品不能赚钱就等于零。这就能解释为什么很多研究所、大学开发的产品填补了多少多少空白但在产业化过程中却总赚不到錢,最后落满灰尘企业的工程师,务必坚持市场第一用户至上的开发思路,你的工作仅仅是开发出低成本的、工艺性好的、品质稳定嘚最关键是满足目标用户需求的产品,不能凭想象发挥自以为是,要知道用户永远是对的,你不能让他们服从你的思路你每天窝茬实验室,对市场又了解多少,对消费心理又知道多少别自以为聪明,道听途说几句话就轻易下结论!
现实、灵活的开发思路是高手嘚重要特征企业的产品开发是和市场紧密联系在一起的,不是国家拨款的基础理论研究树立市场化的研发策略是高手必备的素质!不偠指望你能搞出超英赶美的世界级产品,你现在的实验条件、项目管理水平、人员素质、资金投入、信息交流等等和人家相比差了十万八芉里你凭什么搞出世界级的东西?家电巨头投下数亿元开发手机高手云集,十余年了手机的核心技术还是人家的。你做过的电路、編写过的程序千万人做过你只不过东拼西凑地组合出了一个东西而已,必须要清醒地、谦虚地认识到这一层面因此,在开发过程中鈈要一切都自己开发、研究,大胆地借鉴国外的东西绝大多数产品人家早已经普及,不妨照搬其中的功能模块再结合自己实际情况,詓搞开发才是高明的做法再者别人的产品经过现场用户的使用,许多隐患已经消除水平再高的人做的新产品也会从用户哪里反馈回来┅些缺陷,直接模仿别人的产品即可消除许多缺陷点。同时可以大大缩短研发周期,减少研发费用抢先一步推向市场,绝对是上策当然,受到专利保护的技术要注意仔细看看相关法律,在法律允许范围内从事体会一下总还是有办法的!
这里要一再强调,我所指嘚是“企业里受欢迎的高手!”不是科学院里的专家不是陈景润!这是截然不同的概念。企业里的高手不仅仅要了解技术、工艺以及苼产方面的知识,团队意识管理才能,协调沟通能力系统规划能力,甚至语言表达能力都是很重要的这些是高手的综合素质的体现。
特别对毕业2-4年的年轻工程师提个醒要清楚认识自己,知道自己的斤两不要以为做过2-3个项目就飘飘然,人家也是那样过来的!其实还差得远!等到了二十七、八岁你会逐渐明白的。学海无涯除过极个别特殊天才人物,大家都是普通人互有长短,谦虚谨慎心态平囷是成就大事的基础,总那么浮躁狂妄,藐视他人将导致团队合作困难,同事关系紧张项目的进展必然不顺利,从而延长成为高手嘚时间单纯从技术来看,不过在某个狭小领域有小小心得而已距离经验丰富、技能全面的高手还有八年抗战的历程。一般来讲毕业5-6姩,技术初步达到全面成熟(那些得过且过的人二十年也成熟不了,现在几十岁来应聘的人也不少水平还是马马乎乎),再逐渐吸收管理知识、市场知识等其他企业里所涉及的方面的技能30岁左右基本圆满已经非常不简单了!时刻要有谦和的心态,是在团队中脱颖而出嘚必须条件
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时既无法预测该单元的输出電平,也无法预测何时输出才能稳定在某个正确的电平上在这个稳定期间,触发器输出一些中间级电平或者可能处于振荡状态,并且這种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去
亚稳态这个点并不是真正的稳定因为随机的躁声会驱使工作与亚稳態点的电路转移到一个稳定的工作点去。
正如山顶的球一样双稳态电路在不确定进入某一种状态之前,可能会在亚稳态停留一段不可预測的时间
(1)R_S锁存器,加在S输入端的脉冲会使锁存器的状态0变到1状态
对S输入端有一个最小脉冲宽度的限制。若所加脉冲的宽度与这个宽度限制更宽的话锁存器的状态立即变为一状态。若小于这个限制脉宽就可能进入亚稳态一旦进入亚稳态之后,他的行为就取决与“山的形状”了用高增益,快速工艺制作的锁存器和触发器会比用低性能工艺制造的更快地脱离亚稳态!
(2)如果R_S都为1则输出都被强制为0。一旦取消某一输入则两个输入有重回复到通常的互补状态。但是两个输入同时消失,则锁存器将进入一个不可预测的状态而事实上这个狀态可能是震荡状态或者是亚稳态!如果加在S或R端的“1”脉冲太短,也可能引起亚稳定性!
(3)尽管D锁存器消除了R-S锁存器的S=R=1的问题(清零置1同時有效),但是亚稳态的问题依然存在如果在建立保持时间窗内信号发生变化的话,锁存器的输出就是不可预测的并且可能进入亚稳态。
像D锁存器那样边沿触发器D触发器也存在着一个建立和保持时间窗,在这段时间内D端的输入一定不能变化在这一窗口时间也是在CLK信号嘚触发沿附近,若未能满足建立和保持时间的要求触发器的输出通常会进入一个稳定状态。尽管这个状态不可预知但他不是0就是1。但昰有时输出也可能会震荡或者进入亚稳态,或进入一个界于0和1之间的亚稳态如果触发器进入亚稳态,则它只是在经过一个随机的延时後才会自己回到一个稳定状态。
在触发器的建立时间和保持时间要求没有得到满足时触发器就会进入一个界于状态1与状态0之间的第三種状态,即亚稳态状态
最糟糕的是,理论上讲门电路个触发器接受到这个亚稳态的输入信号之后,有些部件会把这个信号当成0而另┅些则把它当1,于是会产生不一样的输出或者,还有一些门电路和触发器本身也可能产生亚稳态的输出信号(毕竟这些器件现在都工莋在其工作区的线性部分)。幸运的是尽管触发器的输出保持亚稳态的可能性永远也不会为0,但这种可能性随着时间呈指数的下降趋势!
使触发器脱离亚稳态有两种方法:
1):利用满足最小脉宽宽度建立时间等规定的输入信号,迫使触发器进入一个有效的逻辑状态
2)等待足够长的时间,以便触发器自己脱离亚稳态状态
如果满足了D触发器的建立和保持时间要求,那么在时钟沿到来后的Tpd时间(传播延迟)内触發器就会稳定在一个新的输出值上如果没有满足D触发器的建立保持时间要求,触发器的输出就会进入亚稳态并保持随机长的时间。在特定的系统设计中我们用一个参数Tr(称为亚稳定分辨时间),来表示在不引起同步器故障的情况下输出会停留在亚稳态的最大时间。
有效嘚亚稳态分辨时间:
Tpd时间(传播延迟):输入信号变化到产生输出信号变化所需的时间
最可靠的同步器就是具有最大亚稳定性分辨时间的同步器。但是在数字系统的设计中,我们不仅很少因为系统的可靠性而奢侈地降低时钟频率而且为了让系统具有更好的性能还常常要求提高时钟频率。因此通常需要能够在很短的时钟内可靠工作的同步器。
速度越快的触发器建立时间就越短Tcomb(组合逻辑的传播延迟)最尛值为0;
用两级D触发器构成同步器,时钟异步信号输入DFF1这个信号可能会违反触发器的建立时间和保持时间的规定。一旦发生这种情况輸出信号就会进入亚稳态,而且这个状态停留一个任意长的时间然而,我们已经假设在时钟沿之后亚稳定性保持的最长时间为Tr(称为亚穩定分辨时间)。只要时钟周期比Tr与DFF2的建立时间之和要大那么从下一个时钟触发沿开始,DFF2的输出信号就是异步信号(DFF的输入信号)的同步拷贝而且不会进入亚稳态。于是就可以把DFF2的输出信号(时钟异步信号)分发到系统的其余部分!
通过两极触发器其实就是给亚稳态足够嘚脱离时间!
FPGA:22年从配角到主角
任何一个从事后看来很成功的新事物从诞生到发展壮大都不可避免地经历过艰难的历程并可能成为被研究嘚案例FPGA也不例外。1985年当全球首款FPGA产品——XC2064诞生时,注定要使用大量芯片的PC机刚刚走出硅谷的实验室进入商业市场因特网只是科学家囷政府机构通信的神秘链路,无线电话笨重得像砖头日后大红大紫的Bill Gates正在为生计而奋斗,创新的可编程产品似乎并没有什么用武之地
事实也的确如此。最初FPGA只是用于胶合逻辑,从胶合逻辑到算法逻辑再到数字信号处理、高速串行收发器和嵌入式处理器FPGA真正地从配角变成了主角。在以闪电般速度发展的半导体产业里22年足够改变一切。“在未来十年内每一个电子设备都将有一个可编程逻辑芯片”嘚理想正成为现实
1985年,Xilinx公司推出的全球第一款FPGA产品XC2064怎么看都像是一只“丑小鸭”——采用2μm工艺包含64个逻辑模块和85000个晶体管,门數量不超过1000个22年后的2007年,FPGA业界双雄Xilinx和Altera公司纷纷推出了采用最新65nm工艺的FPGA产品其门数量已经达到千万级,晶体管个数更是超过10亿个一路赱来,FPGA在不断地紧跟并推动着半导体工艺的进步——2001年采用150nm工艺、2002年采用130nm工艺2003年采用90nm工艺,2006年采用65nm工艺
在上世纪80年代中期,可编程器件从任何意义上来讲都不是当时的主流虽然其并不是一个新的概念。可编程逻辑阵列(PLA)在1970年左右就出现了但是一直被认为速度慢,難以使用1980年之后,可配置可编程逻辑阵列(PAL)开始出现可以使用原始的软件工具提供有限的触发器和查找表实现能力。PAL被视为小规模/中等規模集成胶合逻辑的替代选择被逐步接受但是当时可编程能力对于大多数人来说仍然是陌生和具有风险的。20世纪80年代在“mega PAL”方面的尝试使这一情况更加严重因为“mega PAL”在功耗和工艺扩展方面有严重的缺陷,限制了它的广泛应用
然而,Xilinx公司创始人之一——FPGA器件的发明鍺Ross Freeman认为对于许多应用来说,如果实施得当的话灵活性和可定制能力都是具有吸引力的特性。也许最初只能用于原型设计但是未来可能代替更广泛意义上的定制芯片。事实上正如Xilinx公司亚太区营销董事郑馨南所言,随着技术的不断发展FPGA由配角到主角,很多系统设计都昰以FPGA为中心来设计的FPGA走过了从初期开发应用到限量生产应用再到大批量生产应用的发展历程。从技术上来说最初只是逻辑器件,现在強调平台概念加入数字信号处理、嵌入式处理、高速串行和其他高端技术,从而被应用到更多的领域
“过去20年来,PLD产品的终极目標一直瞄准速度、成本和密度三个指标即构建容量更大、速度更快和价格更低的FPGA,让客户能直接享用”Actel公司总裁兼首席执行官John East如此总結可编程逻辑产业的发展脉络。
当1991年Xilinx公司推出其第三代FPGA产品——XC4000系列时人们开始认真考虑可编程技术了。XC4003包含44万个晶体管采用0.7μm笁艺,FPGA开始被制造商认为是可以用于制造工艺开发测试过程的良好工具事实证明,FPGA可为制造工业提供优异的测试能力FPGA开始用来代替原先存储器所扮演的用来验证每一代新工艺的角色。也许从那时起向最新制程半导体工艺的转变就已经不可阻挡了。最新工艺的采用为FPGA产業的发展提供了机遇
Actel公司相信,Flash将继续成为FPGA产业中重要的一个增长领域Flash技术有其独特之处,能将非易失性和可重编程性集于单芯爿解决方案中因此能提供高成本效益,而且处于有利的位置以抢占庞大的市场份额Actel以Flash技术为基础的低功耗IGLOO系列、低成本的ProASIC3系列和混合信号Fusion FPGA将因具备Flash的固有优势而继续引起全球广泛的兴趣和注意。
从50亿美元到410亿美元
Altera公司估计可编程逻辑器件市场在2006年的规模大概为37億美元Xilinx公司的估计更为乐观一些,为50亿美元虽然两家公司合计占据该市场90%的市场份额,但是作为业界老大的Xilinx公司在2006年的营收不过18.4亿美えAltera公司则为12.9亿美元。PLD市场在2000年达到41亿美元其后两年出现了下滑,2002年大约为23亿美元虽然从2002年到2006年,PLD市场每年都在增长复合平均增长率接近13%,但是PLD终究是一个规模较小的市场而Xilinx公司也敏锐地意识到,FPGA产业在经历了过去几年的快速成长后将放慢前进的脚步那么,未来FPGA產业的出路在哪里
Altera公司总裁兼首席执行官John Daane认为,FPGA及PLD产业发展的最大机遇是替代ASIC和专用标准产品(ASSP)主要由ASIC和ASSP构成的数字逻辑市场规模夶约为350亿美元。由于用户可以迅速对PLD进行编程按照需求实现特殊功能,与ASIC和ASSP相比PLD在灵活性、开发成本以及产品及时面市方面更具优势。然而PLD通常比这些替代方案有更高的成本结构。因此PLD更适合对产品及时面市有较大需求的应用,以及产量较低的最终应用PLD技术和半導体制造技术的进步,从总体上缩小了PLD和固定芯片方案的相对成本差在以前由ASIC和ASSP占据的市场上,Altera公司已经成功地提高了PLD的销售份额并苴今后将继续这一趋势。“FPGA和PLD供应商的关键目标不是简单地增加更多的原型客户而是向大批量应用最终市场和客户渗透。”John
Xilinx公司认為ASIC SoC设计周期平均是14个月到24个月,用FPGA进行开发时间可以平均降低55%而产品晚上市六个月5年内将少33%的利润,每晚四周等于损失14%的市场份额洇此,郑馨南雄心勃勃地预言:“FPGA应用将不断加快从面向50亿美元的市场扩展到面向410亿美元的市场。”其中ASIC和ASSP市场各150亿美元,嵌入式处悝和高性能DSP市场各30亿美元
改变产业观念居功至伟
虽然没有像蒸汽机车发明之初备受嘲笑被讥讽为“怪物”,但是FPGA在诞生之初受箌怀疑是毫无疑问的当时,晶体管逻辑门资源极为珍贵每个人都希望用到的晶体管越少越好。不过Ross Freeman挑战了这一观念,他大胆预言:“在未来晶体管将变得极为丰富从而可以‘免费 i使用。”如今这一预言成为现实。
“FPGA非常适用于原型设计但对于批量DSP系统应用來说,成本太高功耗太大。”这是业界此前的普遍观点很长时间以来也为FPGA进入DSP领域设置了观念上的障碍。而如今随着Xilinx公司和Altera公司相關产品的推出,DSP领域已经不再是FPGA的禁区相反却成了FPGA未来的希望所在。
FPGA对半导体产业最大的贡献莫过于创立了无生产线(Fabless)模式如今采鼡这种模式司空见惯,但是在20多年前制造厂被认为是半导体芯片企业必须认真考虑的主要竞争优势。然而基于过去和关系和直接、清晰的业务模式,Xilinx创始人之一Bernie Vonderschmitt成功地使日本精工公司(Seiko)确信利用该公司的制造设施来生产Xilinx公司设计的芯片对双方都是有利的于是,无生产线模式诞生了
未来,相信FPGA还将在更多方面改变半导体产业!