可编程逻辑电路

2024-07-20

可编程逻辑电路(精选十篇)

可编程逻辑电路 篇1

目前三大可编程逻辑器件厂商Xilinx、Altera、Lattice占据90%以上的市场份额, 各自都有完善产品链、开发工具链以及解决方案, 都与MATLAB公司合作开发了相应的系统级建模工具, 在很多方面扩展了Simulink平台。这3家公司的建模工具分别是System Generator、DSP Builder、SYSDSP, 它们都提供了系统级设计能力, 允许在相同的环境进行软、硬件的仿真、执行、验证, 而不需要书写HDL代码。在这些工具中可以直接对IP核进行调用, 利用Simulink建模和仿真环境来实现FPGA设计, 而无需了解和使用RTL级硬件语言, 让设计者能够发挥基于FPGA的最大性能和灵活性, 并缩短整个设计的周期。下面以System Generator为例介绍其开发流程。

System Generator可以看成MATLAB软件中的一个硬件设计工具包, 提供了丰富的的应用子模块, 实现信息和硬件综合都能被自动添加到芯片的配置文件中, 用户无需熟悉FPGA的设计流程以及HDL语言, 只需通过鼠标拖曳连接子模块搭建成应用系统即可。首先安装MATLAB及相应版本的ISE、System Generator。在Simulink的可视化环境中, 根据系统的设计的功能将Xilinx模块连接成所设计的系统, 定义合适的系统参数;然后运用System Generator将Simulink模型转换成硬件可执行模型, 将定义的参数对应至硬件实现的实体以及输入/输出端口, 并自动完成综合、仿真与实现。整个开发流程分为浮点算法开发、浮点算法至定点算法实现、硬件系统设计与实现、代码优化。下面将建立一个DDS正弦波形发生器系统, 同时介绍System Generator的使用。此应用可以产生频率、相位可调的正弦信号。

在MATLAB环境中根据DDS控制原理建立如图1所示的模型:在ROM中存储正弦数据, ROM的Depth为:4096, Initia Value Vector为:2047*sin (pi* (0:4095) /2048) +2047。System Generator在编译过程中自动产生一个存储4 096个正弦数据的ROM。ROM中的每个值设置成12位无符号数。Accumulator模块用来进行相位的累加, AddSub模块将相位偏移量与相位累加值相加, 作为ROM的地址输入。在仿真前, 设置相位控制字为PWord=512, 由公式算出移相后的波形应该较基准正弦波偏移2π· (PWord/Depth) =2π· (512/4096) =π/8;设置频率控制字FWord=4, 将仿真时间设置为2 048, 这样从理论上我们应该可以看到两个周期的完整波形输出。仿真时, 将Scope中观察到如图2 (a) 所示的波形。改变控制字的值, 就可以得到不同频率、不同相位的波形, 如图2 (b) 所示。

在ISE中实现并仿真。点击System Generator的Generate按钮, 生成可综合的VHDL代码, 并在ISE中打开。先对代码使用Synthesize-XST进行综合, 通过之后可以观察到系统RTL级视图。然后创建一个.tbw文件对综合后的设计进行仿真, 能够得到和MATLAB环境下一样的仿真结果 (按照正弦规律变化的离散数值序列) 。

PLC可编程逻辑器件的选择方法 篇2

摘要:介绍了在控制系统中选择PLC的一般方法,详细说明了在PLC机型的多样性,以及在PLC的输入输出点数功能等方面作如何选择。

关键词:PLC I/O 选择 开关量 模拟量 数字量

随着PLC的推广普及,PLC产品的种类和数量越来越多,而且功能也日趋完善。近年来,从美国、日本、德国等国引进的PLC产品及国内厂家组装或自行开发的产品已有几十个系列、上百种型号。PLC的品种繁多,其结构型式、性能、容量、指令系统、编程方法、价格等各不相同,适用场合也各有侧重。因此,合理选择PLC,对于提高PLC在控制系统中的应用起着重要作用。

1 机型的选择

PLC机型选择的基本原则是,在功能满足要求的前提下,选择最可靠、维护使用最方便以及性能价格比的最优化机型。

在工艺过程比较固定、环境条件较好(维修量较小)的场合,建议选用整体式结构的PLC;其它情况则最好选用模块式结构的PLC。

对于开关量控制以及以开关量控制为主、带少量模拟量控制的工程项目中,一般其控制速度无须考虑,因此,选用带A/D转换、D/A转换、加减运算、数据传送功能的低档机就能满足要求。

而在控制比较复杂,控制功能要求比较高的工程项目中(如要实现PID运算、闭环控制、通信联网等),可视控制规模及复杂程度来选用中档或高档机。其中高档机主要用于大规模过程控制、全PLC的分布式控制系统以及整个工厂的自动化等。根据不同的应用对象,表1列出了PLC的几种功能选择。

表1 PLC的功能及应用场合

序 号应用对象功 能 要 求应 用 场 合1替代继电器继电器触点输入/输出、逻辑线圈、定时器、计数器替代传统使用的继电器,完成条件控制和时序控制功能2数学运算四则数学运算、开方、对数、函数计算、双倍精度的数学运算设定值控制、流量计算;PID调节、定位控制和工程量单位换算3数据传送寄存器与数据表的相互传送等数据库的生成、信息管理、BAT-CH(批量)控制、诊断和材料处理等4矩阵功能逻辑与、逻辑或、异或、比较、置位(位修改)、移位和变反等这些功能通常按“位”操作,一般用于设备诊断、状态监控、分类和报警处理等5高级功能表与块间的传送、校验和、双倍精度运算、对数和反对数、平方根、PID调节等通信速度和方式、与上位计算机的联网功能、调制解调器等6诊断功能PLC的诊断功能有内诊断和外诊断两种。内诊断是PLC内部各部件性能和功能的诊断,外诊断是中央处理机与I/O模块信息交换的诊断--7串行接口(RS-232C)一般中型以上的PLC都提供一个或一个以上串行标准接口(RS-232C),以例连接打印机、CRT、上位计算机或另一台PLC--8通信功能现在的PLC能够支持多种通信协议。比如现在比较流行的工业以太网等对通信有特殊要求的用户

对于一个大型企业系统,应尽量做到机型统一。这样,同一机型的PLC模块可互为备用,便于备品备件的采购和管理;同时,其统一的功能及编程方法也有利于技术力量的培训、技术水平的提高和功能的开发;此外,由于其外部设备通用,资源可以共享,因此,配以上位计算机后即可把控制各独立系统的多台PLC联成一个多级分布式控制系统,这样便于相互通信,集中管理。

2 输入/输出的选择

PLC是一种工业控制系统,它的控制对象是工业生产设备或工业生产过程,工作环境是工业生产现场。它与工业生产过程的联系是通过I/O接口模块来实现的。

通过I/O接口模块可以检测被控生产过程的各种参数,并以这些现场数据作为控制信息对被控对象进行控制。同时通过I/O接口模块将控制器的处理结果送给被控设备或工业生产过程,从而驱动各种执行机构来实现控制。PLC从现场收集的信息及输出给外部设备的控制信号都需经过一定距离,为了确保这些信息的正确无误,PLC的I/O接口模块都具有较好的抗干扰能力。根据实际需要,一般情况下,PLC都有许多I/O接口模块,包括开关量输入模块、开关量输出模块、模拟量输入模块、模拟量输出模块以及其它一些特殊模块,使用时应根据它们的特点进行选择。

2.1 确定I/O点数

根据控制系统的.要求确定所需要的I/O点数时?应再增加10%~20%的备用量,以便随时增加控制功能。对于一个控制对象,由于采用的控制方法不同或编程水平不同,I/O点数也应有所不同。

表2列出了典型传动设备及常用电气元件所需的开关量的I/O点数。

表2 典型传动设备及常用电气元件所需的开关量的I/O点数

序 号电气设备、元件输入点数输出点数序 号电气设备、元件输入点数输出点数1Y-起动的笼型异步电动机4312光电管开关2-2单向运行的笼型异步电动机4113信号灯-13可逆运行的笼型异步电动机5214拨码开关4-4单向变极电动机5315三档波段开关3-5可逆变极电动机6416行程开关1-6单向运行的直流电动机9617接近开关1-7可逆运行的直流电动机12818制动器-18单线圈电磁阀2119风机-19双线圈电磁阀3220位置开关2-10比例阀3521单向运行的绕线转子异步电动机3411按钮1-22可逆运行的绕线转子异步电动机45

2.2 开关量输入/输出

通过标准的输入/输出接口可从传感器和开关(如按钮、限位开关等)及控制(开/关)设备(如指示灯、报警器、电动机起动器等)接收信号。典型的交流输入/输出信号为24~240V,直流输入/输出信号为5~240V。

尽管输入电路因制造厂家不同而不同,但有些特性是相同的。如用于消除错误信号的抖动电路;免于较大瞬态过电压的浪涌保护电路等。此外,大多数输入电路在高压电源输入和接口电路的控制逻辑部分之间都设有可选的隔离电路。

在评估离散输出时,应考虑熔丝、瞬时浪涌保护和电源与逻辑电路间的隔离电路。熔丝电路也许在开始时花费较多,但可能比在外部安装熔丝耗资要少。

2.3 模拟量输入/输出

模拟量输入/输出接口一般用来感知传感器产生的信号。这些接口可用于测量流量、温度和压力,并可用于控制电压或电流输出设备。这些接口的典型量程为-10~+10V、0~+10V、4~20mA或10~50mA。

一些制造厂家在PLC上设计有特殊模拟接口,因而可接收低电平信号?如RTD、热电偶等?。一般来说,这类接口模块可用于接收同一模块上不同类型的热电偶或RTD混合信号。

2.4 特殊功能输人/输出

在选择一台PLC时,用户可能会面临一些特殊类型且不能用标准I/O实现的I/O限定?如定位、快速输入、频率等?。此时用户应当考虑供销厂商是否提供有特殊的有助于最大限度减小控制作用的模块。有些特殊接口模块自身能处理一部分现场数据,从而使CPU从耗时的任务处理中解脱出来。

2.5 智能式输入/输出

当前,PLC的生产厂家相继推出了一些智能式的输入/输出模块。一般智能式输入/输出模块本身带有处理器,可对输入或输出信号作预先规定的处理,并将处理结果送入CPU或直接输出,这样可提高PLC的处理速度并节省存储器的容量。

智能式输入/输出模块有高速计数器(可作加法计数或减法计数)、凸轮模拟器(用作绝对编码输人)、带速度补偿的凸轮模拟器、单回路或多回路的PID调节器、ASCII/BASIC处理器、RS―232C/422接口模块等。表3归纳了选择I/O模块的一般规则。

表3 选择PLC的I/O接口模块的一般规则

I/O模块类型现场设备或操作(举例)说 明离散输入模块和I/O模块选择开关、按钮、光电开关、限位开关、电路断路器、接近开关、液位开关、电动机起动器触点、继电器触点、拨盘开关输入模块用于接收ON/OFF或OPENED/CLOSED(开/关)信号,离散信号可以是直流的,也可以是交流的离散输出模块和I/O模块报警器、控制继电器、风扇、指示灯,扬声器、阀门、电动机起动器、电磁线圈输出模块用于将信号传递到ON/OFF或OPENED/CLOSED(开/关)设备。离散信号可以是交流或直流模拟量输入模块温度变送器、压力变送器、湿度变送器、流量变送器、电位器将连续的模拟量信号转换成PLC处理器可接受的输入值模拟量输出模块模拟量阀门、执行机构、图表记录器、电动机驱动器、模拟仪表将PLC处理器的输出转为现场设备使用的模拟量信号(通常是通过变送器进行)特种I/O模块电阻、电偶、编码器、流量计、I/O通信、ASCII、RF型设备、称重计、条形码阅读器、标签阅读器、显示设备通常用作位置控制、PID和外部设备通信等专门用途

3 PLC存储器类型及容量选择

PLC系统所用的存储器基本上由PROM、E-PROM及PAM三种类型组成,存储容量则随机器的大小变化,一般小型机的最大存储能力低于6kB,中型机的最大存储能力可达64kB,大型机的最大存储能力可上兆字节。使用时可以根据程序及数据的存储需要来选用合适的机型,必要时也可专门进行存储器的扩充设计。

PLC的存储器容量选择和计算的第一种方法是:根据编程使用的节点数精确计算存储器的实际使用容量。第二种为估算法,用户可根据控制规模和应用目的,按照表4的公式来估算。为了使用方便,一般应留有25%~30%的裕量,获取存储容量的最佳方法是生成程序,即用了多少字。知道每条指令所用的字数,用户便可确定准确的存储容量。表4同时给出了存储器容量的估算方法。

表4 控制目的估算存储器容量的方法

控制目的公 式说 明代替继电路M=Km(10DI+5D0)DI为数字(开关)量输入信号;Do为数字(开关)量输出信号;AI为模拟量输入信号;Km为每个接点所点存储器字节数;M为存储器容量模拟量控制M=Km(10DI+5Do+100AI)多路采样控制M=Km[10DI+5Do+100AI+(1+采样点×0.25]

4 软件选择

在系统的实现过程中,PLC的编程问题是非常重要的。用户应当对所选择PLC产品的软件功能有所了解。通常情况下,一个系统的软件总是用于处理控制器具备的控制硬件的。但是,有些应用系统也需要控制硬件部件以外的软件功能。例如,一个应用系统可能包括需要复杂数学计算和数据处理操作的特殊控制或数据采集功能。指令集的选择将决定实现软件任务的难易程度。可用的指令集将直接影响实现控制程序所需的时间和程序执行的时间。

5 支撑技术条件的考虑

选用PLC时,有无支撑技术条件同样是重要的选择依据。支撑技术条件包括下列内容:

(1)编程手段

●便携式简易编程器主要用于小型PLC,其控制规模小,程序简单,可用简易编程器。

●CRT编程器适用于大中型PLC,除可用于编制和输入程序外,还可编辑和打印程序文本。

●由于IBM―PC已得到普及推广,IBM―PC及其兼容机编程软件包是PLC很好的编程工具。目前,PLC厂商都在致力于开发适用自己机型的IBM―PC及其兼容机编程软件包,并获得了成功。

(2)进行程序文本处理

●简单程序文本处理以及图、参量状态和位置的处理,包括打印梯形逻辑;

●程序标注,包括触点和线圈的赋值名、网络注释等,这对用户或软件工程师阅读和调试程序非常有用。

●图形和文本的处理。

(3)程序储存方式

对于技术资料档案和备用资料来说,程序的储存方法有磁带、软磁盘或EEPROM存储程序盒等方式,具体选用哪种储存方式,取决于所选机型的技术条件。

(4)通信软件包

对于网络控制结构或需用上位计算机管理的控制系统,有无通信软件包是选用PLC的主要依据。通信软件包往往和通信硬件一起使用,如调制解调器等。

6 PLC的环境适应性

由于PLC通常直接用于工业控制,生产厂都把它设计成能在恶劣的环境条件下可靠地工作。尽管如此,每种PLC都有自己的环境技术条件,用户在选用时,特别是在设计控制系统时,对环境条件要给予充分的考虑。

一般PLC及其外部电路(包括I/O模块、辅助电源等)都能在表5所列的环境条件下可靠工作。

表5 PLC的工作环境

序 号项 目

说 明

1湿度工作温度范围为0~55℃,最高为60℃,贮存温度范围为-40~+85℃2湿度相对湿度5%~95%*无凝结霜)3振动和冲击满足国际电工委员会标准4电源采用220V交流电源,允许变化范围为-15%~+15%,频率为47~53Hz,瞬间停电保持10ms5环境周围空气不能混有可燃性、爆炸性和腐蚀性气体

7 结束语

可编程逻辑电路 篇3

由于继电控制线路与可编程的逻辑设计中的逻辑函数有一一对应的关系,在可编程高职类教材中时有叙述,电工类专业教材《可编程控制技术》梯形图程序设计也介绍了相关内容,但比较简单,在具体应用上会有些问题。尤其是对于电路可能出现的“临界竞争”问题。

可编程的逻辑设计,主要是对开关量的控制过程,用逻辑函数式来表示,可编程控制器的输入和输出的逻辑关系、分析控制课题明确控制任务、完成设计可编程程序很有帮助。而且逻辑函数表达式与梯形图的对应关系,可以互相转换。既可根据控制要求先写出逻辑函数表达式,再根据逻辑函数式,画出对应梯形图。也可根据梯形图,写出对应逻辑函数表达式。通过下面例子,我们可以看出,可编程的逻辑设计方法最大的好处是可以把很多的逻辑关系最简化。

例1:一只电动机的控制要求是,只有在三只按钮中任意一只或任意两只动作时电动机才能运转,而在其他任何情况下都不运转。

逻辑设计基本步骤为:

第一,根据控制要求列出逻辑函数表达式。

第二,对逻辑函数表达式进行化简。

第三,根据化简后的逻辑函数表达式画梯形图。

对于例1在梯形图设计中,将电动机的运行状况,由可编程输出点Y0来控制。三只按钮对应的可编程输入地址为X0、X1、X2。因三只按钮中任何一只动作,可编程的输出点Y0就有输出。可用逻辑函数来表示。其表达式为:

Y01=X0 X1 X2+X0 X1 X2+X0 X1 X2

而三只按钮中任意两只动作时,可编程的输出点Y0也有输出。

用逻辑函数来表示其表达式:Y02=X0 X1 X2+X0 X1 X2+X0 X1 X2

根据控制要求,上述两个条件是“或”逻辑关系。所以电动机运行条件应该是:

Y0=Y01+Y02=X0 X1 X2+X0 X1 X2+X0 X1 X2+X0 X1 X2+X0 X1 X2+X0 X1 X2

简化上式:Y0=X0 (X1 X2)+X0 (X1+X2)根据简化后的逻辑关系,画出的梯形图如图1。从中,我们看出通过逻辑函数的运算,就把原来的逻辑关系简单化了。

例2:根据图2,写出逻辑函数表达式。

图2为具有启动、停止,自保持关断优先型控制线路,写出的逻辑函数表达式为:Y1=(X0+Y1)X1

按照电路结构和工作原理的不同,当控制线路的一个回路中存在两个一起发生状态变化的信号时,该控制线路就存在“竞争”现象。这里的两个信号可以是一个一次信号和一个二次信号,或两个都是二次信号。大部分时间遇到是前一种情况。实际上只有一次和二次信号在暂态期的全1(1,1)组合的1型竞争和一次和二次信号在暂态期的全0(0,0)组合的0型竞争,才会影响线路工作的可靠性。当竞争现象使控制线路出现永久性误动作时,这个竞争现象称为“临界竞争”。对于设计线路是否存在“临界竞争”,可以用“逻辑函数表达式法”和“卡诺图判别法”加以区别判断。

逻辑函数表达式法就是根据写出的逻辑函数表达式中,是否会出现A+A或A×A的形式。若有这两中形式,前者就是存在0型竞争,而后者就存在1型竞争。比如Y=(A+B)×(A+C),若B=C=0时,Y存在1型竞争。

根据逻辑函数表达式Y=AB+AC列出的输出真值表,画出卡诺图如图3a,在卡诺图中,如果两个圈中存在相邻项,并且两个圈没有公共部分,那么这两个圈的和式存在“竞争”。能直观判别逻辑电路是否存在“竞争”,当B=C=1时,上下两个包围圈分别为A和A,输出Y=A+A,就产生0型竞争。

知道了“竞争”的原因,就可消除“竞争”现象的出现。由此设计出的逻辑电路才是合理的可靠的。图3a的卡诺图表明逻辑函数Y=AB+AC,在B=C=1时有“竞争”。但由冗余律得出Y=AB+AC=AB+AC+BC,在Y=A+A+1=1,使Y恒等于1,见图3b卡诺图中两个圈相邻项再圈连就消除了“竞争”。根据消除了“竞争”的逻辑函数表达式画出的梯形图也是合理的可靠的。

可编程逻辑电路 篇4

各种MSI中规模数字集成电路都有自己的主要特性和应用目标,如果进行非常规使用,则改变它的使用方向,就可进一步发挥其功能和作用。扩展专用集成电路的应用领域是一项有实际意义的研究。本文研究了MSI可编程计数器改变应用方向的逻辑修改方法及时序逻辑电路的设计技术。

1 基本原理

74LS161是可编程中规模同步4位二进制加法计数器,图1为其图形符号[1,2,3,4,5,6,7,8,9,10]。其中,Q3,Q2,Q1,Q0为计数状态输出端;C为进位输出端;EP,ET为计数控制端;LD¯为预置数控制端;D3~D0为预置数输入端;RD¯为异步置零控制端;CP为计数脉冲输入端。

表1为可编程计数器74LS161的功能表[1,2,3,4,5,6,7,8,9,10]。

由表1可知,在RD¯=1条件下,74LS161可编程计数器由EP,ET及LD¯控制具有计数、预置数和保持三种功能。

用74LS161可编程计数器Q3Q2Q1Q0端的代码组合表示时序逻辑电路的各个状态,由输入变量控制EP,ET及LD¯端,综合利用计数、置数、保持功能,使计数器的状态变化满足所要求的时序,即用计数功能实现“次态=现态+1”的二进制时序关系,用预置数功能实现“次态=预置数”的非二进制时序关系,用保持功能实现“次态=现态”的自循环时序关系,可实现一般时序逻辑电路[1]。

1.1 可编程计数器状态转换对控制函数的要求

由表1所示的功能表,可确定74LS161可编程计数器各种状态转换时对控制函数的要求,如表2所示。

1.2 基于可编程计数器时序逻辑电路的基本形式

用1个74LS161可编程计数器和2个16选1数据选择器可构成多输入时序逻辑电路的基本形式[1],如图2所示。

图2中,74LS161计数器的现态输出Qn3~Qn0作为数据选择器的选择控制变量,数据选择器的Y输出作为74LS161可编程计数器的EP,ET计数控制信号及LD¯预置数控制信号,数据选择器的输入端D0~D15作为所构成时序网络的外部信号输入端。

74LS161可编程计数器处于不同现态时通过数据选择器选择不同的外部输入信号作用于EP,ET及LD¯端,对74LS161可编程计数器的基本工作时序进行修改,在时钟脉冲CP的作用下,使计数器的输出状态按所要求的时序关系进行改变,即可实现状态个数不超过16个的一般时序逻辑电路。

74LS161可编程计数器的EP,ET及LD¯控制函数可写成如下矩阵形式:

EΡ=EΤ=[Q3nQ2nQ1nQ0n][D0D1D15](1)LD¯=[Q3nQ2nQ1nQ0n][D0D1D15](2)

如果所实现的时序逻辑电路其状态个数不超过8个,可使用74LS161可编程计数器的低3位和2个8选1数据选择器进行组合。

如果所实现的时序逻辑电路其状态个数不超过4个,可使用74LS161可编程计数器的低2位和2个4选1数据选择器进行组合。

由状态转换关系,依表2确定式(1),式(2)中输入矩阵的参数。

1.3 时序逻辑电路的输出函数

所设计的时序逻辑电路为Mealy型时,输出是现态及输入变量的函数,可写成式(3)所示的矩阵形式并用数据选择器实现,由各状态的输出要求确定式(3)中输入矩阵的参数。

Ζ=[Q3nQ2nQ1nQ0n][D0D1D15](3)

所设计的时序逻辑电路为Moore型时,输出仅是现态的函数:

Ζ=f(Q3nQ2nQ1nQ0n)(4)

用卡诺图化简求出最简输出逻辑表达式,用逻辑门实现。

当每态对应一个不同的输出函数时,可用二进制译码器实现输出函数。

1.4 基于可编程计数器时序逻辑电路的设计

一般设计步骤:

(1) 作出状态图

使用MSI可编程计数器及数据选择器设计时序逻辑电路时,状态的简化通常不会简化电路结构,一般不进行状态简化,直接使用原始状态图进行设计,可使各个状态所表示的含义清楚,电路与所实现的逻辑功能之间的对应关系较为明确。

(2) 状态分配

进行状态分配时,尽量使用不需进行预置数的二进制时序,尽量对非二进制时序作相邻分配,以利于预置数的简化。

(3) 求出EP,ET及LD¯的矩阵式,用卡诺图化简求出预置数最简逻辑表达式,求出输出函数逻辑表达式。

(4) 画出逻辑图。

2 设计举例

一个同步时序逻辑电路,输入信号为M1,M2。当M1连续输入4个或4个以上的1时,然后M2输入1个1时,输出Z为1,M1,M2不同时输入1。

由设计要求作出原始状态图如图3所示。其中,S0状态表示起始;S1状态表示M1输入了1个1;S2状态表示M1输入了2个1;S3状态表示M1输入了3个1;S4状态表示M1输入了4个或4个以上的1。

图3中有S0 ~ S4 共5个状态,使用74LS161可编程计数器的低3位代码进行状态分配,按尽量使用二进制时序的分配原则,状态分配关系为:S0: 000;S1: 001;S2: 010;S3: 011;S4: 100。

状态分配后的状态图如图4所示。

由图4及表2,写出74LS161计数器的EP,ET及LD¯矩阵方程式:

EΡ=EΤ=[Q2nQ1nQ0n][Μ1Μ1Μ1Μ10111](5)LD¯=[Q2nQ1nQ0n][1Μ¯2Μ¯2Μ¯2Μ¯2111](6)

其中,不使用的101,110和111状态,将EP,ET及LD¯均设置为1,使计数器处于二进制时序状态工作,能自启动。

作出74LS161计数器预置输入变量的卡诺图及画包围圈化简如图5所示,各预置输入变量的最简逻辑表达式为:

D2=D1=D0=0(7)

由图4所示的状态图,写出输出函数Z的矩阵方程式:

Ζ=[Q2nQ1nQ0n][0000Μ2000](8)

其中,不使用的101,110和111状态的输出设置为0,亦可设置为1。

用1个74LS161可编程计数器,3个8选数据选择器74LS151按式(5)~(8)画出逻辑图如图6所示。

3 结 语

基于可编程计数器的时序逻辑电路设计技术,提出了设计一般时序逻辑电路的状态分配原则及设计步骤,具有实际应用意义。

需要指出,当用单片74LS161可编程计数器控制EP, ET及LD¯构成模数N<16的任意进制计数器时,无输入变量,所用状态仅最后一个是非二进制时序,其余均为二进制时序。由功能表可知,需将EP,ET设置为常数1且不需选择,可将图2所示的一般结构中控制EP,ET的数据选择器简化掉,而LD¯控制函数仅在最后状态为0,可用门简单控制。

参考文献

[1]任骏原,张凤云.电子线路专题研究[M].成都:西南交通大学出版社,1995.

[2]任骏原.电子线路与数字逻辑解题方法指导[M].沈阳:东北大学出版社,1996.

[3]华成英,童诗白.模拟电子技术基础[M].4版.北京:高等教育出版社,2006.

[4]杨素行.模拟电子技术基础简明教程[M].3版.北京:高等教育出版社,2006.

[5]胡晏如.模拟电子技术[M].2版.北京:高等教育出版社,2004.

[6]王佩珠.电路与模拟电子技术[M].南京:南京大学出版社,2001.

[7]付植桐.电子技术[M].北京:高等教育出版社,2000.

[8]康华光,陈大钦.电子技术基础(模拟部分)[M].4版.北京:高等教育出版社,1999.

[9]杨素行.模拟电子电路[M].北京:中央广播电视大学出版社,1994.

可编程逻辑电路 篇5

关键词: 可编程逻辑器件 教学软件 实验教学 教学内容

随着集成电路技术的迅猛发展,作为电子设计自动化(eda)硬件基础的大规模可编程逻辑器件(programmable logic devices,pld)得到广泛应用,pld通过编程可以灵活方便地构建和修改数字电子系统。pld设计技术的发展和普及给数字系统设计带来了革命性的变化,传统的“固定功能集成块+连线”的设计方法正逐步退出历史舞台,而基于大规模可编程逻辑器件的设计方法正在成为电子系统设计方法的主流。作为电子科学与技术专业课的《大规模可编程逻辑器件设计》,主要讲授大规模可编程逻辑器件的原理与应用,帮助学生了解和熟悉大规模可编程逻辑器件设计的基本思想,掌握数字系统设计的方法、cpld/fpga器件、流行的eda设计软件和hdl设计语言等,并通过范例教学和实验课的上机实验,使学生掌握用verilog和vhdl语言设计开发常用的数字电路和数字系统的技能,提高解决实际问题的能力[1]。

在实际的教学与实验过程中,教学手段和教学方法过于单一,仅仅通过多媒体课件的教学手段,由教师讲授程序范例,缺乏学生的课堂参与和互动,难以使学生较好地掌握eda设计软件和硬件描述语言(hdl)等。此外,该课程的实验教学内容较多,需要在实验课前指导学生掌握有关的eda设计软件操作,而仅通过课堂教学和多媒体课件难以实现教学目标[2,3]。因此,依据电子科学与技术专业本科生的该课程实际教学情况,笔者详细分析了实验教学过程中存在的问题,提出了关于实验教学的改革方案。

一、目前教学中存在的问题

1.在课堂教学方面,教学手段和教学方法过于单一,仅由教师讲授程序范例,缺乏学生的课堂参与和互动,难以提高学生的实践和动手能力。教师在课堂上采用常规讲法,费时费力,学生对所讲内容仍无法彻底理解,难以实现对所学知识的灵活运用。

2.在实验课程方面,存在学生对实验准备严重不足,对实验缺乏独立思考的能力等问题。课前预习严重不足,导致实验课时,学生把大多数时间、精力放在程序的编写和设计上。由于大多数学生都是第一次接触硬件描述语言,对verilog语法不能很好地理解和运用,例如并行语句等,程序设计占用时间过多,导致调试、仿真、修改、完善时间不够,部分学生不能完成实验任务。

3.在考查学生实际操作能力的实验考核阶段,缺乏对学生实际掌握有关eda软件操作的能力进行量化考核的有效手段和工具。截至目前,该课程只是通过卷面的考试来考核学生对有关eda设计软件和hdl设计语言等的掌握效果,没有通过实验考试来考核学生实际动手能力的过程,只是对学生利用hdl语言编写相关设计程序进行考试,对eda软件的操作考核只是停留在卷面上,这种死记硬背通过考试的方法不适合《大规模可编程逻辑器件设计》这门以实践为主、强调动手能力的课程。

综上所述,在大规模可编程逻辑器件设计课程的教学过程中还存在一些严重影响教学质量的因素。为了响应国家“十二五”规划中明确提出的建设创新型国家的任务,培养创新型大学生的要求,我们必须逐步改革和完善现有的教学模式、教学手段和实验方法[4,5],提高教学质量,为培养开创未来的全面发展型人才奠定基础。

二、实验教学改革的整体规划

为了优化实验教学和实践环节,提高学生的动手能力,突出实验教学的重点,必须摒弃传统的教学思路,重新构建实验教学体系。在实验教学中要贯彻“激发兴趣、夯实基础、引导创新、全面培养”的教学方针,通过对教学手段和实验方法的改革,扩展“范例”教学模式,对教学内容进行重新设计,采用新的教学手段,整个课程主要围绕大规模可编程逻辑器件实际的设计开发流程展开,加强课堂教学与实践的紧密结合,使学生明确本课程的学习目标是掌握大规模可编程逻辑器件的具体设计和使用流程,进而提高学生的课堂参与度和互动性,增强其学习主动性。

三、实验教学改革的具体内容

对实验教学内容的设计要坚持“从实践出发,通过实例化教学,强调设计流程,提升学生参与度和互动性”的原则[6]。实例化程序和设计流程是本课程的主要内容,要求学生对hdl语言和eda软件设计流程等深入理解[7],熟练掌握。因此,这部分教学内容要通过教学演示软件进行详细讲解,并利用该软件作为教学手段提高学生在课堂教学中的参与性和互动性。

对实验考核部分,通过实验考试软件系统对学生的实际实践能力进行考核,并给出量化的评判和考核结果,根据考核结果有针对性地给出如何提高其实验实践能力的指导性意见,使该实验考试软件系统不仅成为进行实验考核的有效手段,而且作为学生检验自己实际动手能力的标准,根据评判结果缩短学习差距,增强学习效果。具体的实验教学改革内容如下:

1.《大规模可编程逻辑器件设计》课程教学演示软件系统方案设计及开发。开发用于《大规模可编程逻辑器件设计》课程的教学演示软件,通过该软件的使用,与具体实验实践相结合,强化课堂教学效果,提高学生对eda软件的掌握能力。在教学演示软件设计和开发过程中,如何选择教学的实例化程序,如何设计教学演示软件系统,使得其与实践过程一致并提高学生的参与度和互动性是需要解决的关键问题。首先给出典型器件的结构模型,分析其各组成电路的结构,明确具体的设计要素和使用流程及方法,然后通过实例化教学,运用verilog和vhdl讲授程序设计,进而逐步完成大规模可编程逻辑器件的全部设计流程和下载。并通过对电子科学与技术专业本科生实际课堂教学的运用,考察该软件系统的教学效果,对该软件系统进行改进和完善,进而提高学生的课堂参与度和互动性,增强其学习主动性。2.《大规模可编程逻辑器件设计》课程实验考试软件系统设计与开发。开发用于《大规模可编程逻辑器件设计》课程的实验考试软件系统,在实验考试软件系统的设计和开发过程中,如何有针对性地考核学生实际掌握有关eda软件操作的技能,对考核结果进行量化评判,并针对每个学生的成绩给出量化的指导性意见,帮助其提高实践能力是需要解决的另一个关键问题。通过该软件系统可以对学生掌握有关eda软件的操作能力做量化的考核,给出具体的评分标准和结果,对学生的实际操作能力做出量化的、具有实际指导意义的评判,从而为课程教学和学生学习及实验教学的改进和实践能力的提高制定明确且切实有效的目标。

四、结语

《大规模可编程逻辑器件设计》是一门强调实验教学和实践环节的课程,只有通过强化实验教学,才能提高学生实践和创新能力,而教学演示软件的引入可以强化课堂教学效果,提高学生的实验动手能力和具体操作技巧。实验考试软件的引入可以对学生的实际操作能力做出量化的、具有实际指导意义的评判,从而为课程教学和学生学习及实验教学的改进和实践能力的提高制定明确且切实有效的目标,进而有效提高实验教学质量,为培养具有实践创新能力的科技创新型人才奠定基础。

参考文献:

可编程逻辑电路 篇6

振荡器上变频器AD9552和LVDS/CMOS时钟扇出缓冲器ADCLK854共同构成灵活的引脚可编程时钟分配解决方案。AD9552配有一个SPI端口,用于对器件进行编程。此接口支持最高达900 MHz的宽输出频率范围。另一方面,它也可以通过引脚编程,从而简化许多不需要软件可编程性能的设计应用。在引脚可编程模式下,最多可提供64种标准输出频率,具体视输入频率选择而定。因此,AD9552可以像频率引脚可编程VCXO一样工作。此外,AD9552还能采用输入端的晶体谐振器工作,以提供更大的灵活性。AD9552的简化框图如图1所示。

ADCLK854是一款时钟扇出缓冲器,其LVDS和1.8 V CMOS输出均可通过引脚进行编程。ADCLK854提供最多12路LVDS输出、24路CMOS输出或二者的组合。如果需要较少的输出或不同的输出逻辑选择,可以用ADI公司其他几个时钟扇出缓冲器代替ADCLK854。

电路描述

图2的简化电路显示AD9552与ADCLK854客户评估板之间的设置。AD9552可采用26 MHz晶体谐振器工作。然后,AD9552 LVPECL输出驱动ADCLK854评估板,以实现LVDS和/或CMOS扇出功能。选择LVPECL输出是因为它具有较低的抖动和相位噪声。对于低抖动时钟分配,AD9552和ADCLK854是非常合适的组合。两款器件均具有引脚可编程特性,因而可实现独立的时钟发生器解决方案,无需将接口控制线连回FPGA或微控制器。此外,两款器件的尺寸均很小。有关内部连接和材料清单的详细信息,请参考AD9552评估板和ADCLK854评估板文档。

下面的程序说明如何使用板上跳线和拨动开关对AD9552评估板进行手动编程,以便设置用于所选输入和输出频率的逻辑电平。本例中,晶振频率为26 MHz,输出频率为625 MHz。

(1) 确保跳线JMP3处于手动控制位置;

(2) 确认连接器P2上的所有5个跳线均已移除;

(3) 将S3拨动开关的位置设为0111,表示在使用26 MHz晶振;

(4) 将S2拨动开关的位置设为0010,并将S1拨动开关的位置设为0011;

(5) 将示波器、频谱分析仪或其他实验室设备与板右上侧J3至J6 SMA连接器中的任一个相连;

(6) 将评估板插入USB端口,以提供电源;

(7) OUT1 SMA连接器上应能观察到625 MHz的频率;

(8) 如果需要其他输出频率,请从USB端口断开。然后改变拨动开关设置,再次连接USB端口。

每次设置拨动开关后,必须移除USB电缆,使AD9552断电,以便对AD9552重新编程。有关引脚编程的详细说明请参考AD9552数据手册。

ADCLK854输出也是引脚可编程的,可提供最多12路差分LVDS输出或24路单端1.8 V CMOS输出。跳线CTRL_A、CTRL_B、CTRL_C和SLEEP用于配置输出。欲将输出配置为所需设置,请参考网页上表格。

采用可编程逻辑器件实现数字滤波 篇7

Altera公司的FLEX10K是工业界第一个嵌入式的P L D, 具有高密度、低成本、低功率等优点。器件的主要结构特点是除主要的逻辑阵列块 (L A B) 之外, 首次采用了嵌入阵列块 (EAB) 。每个阵列块包含8个逻辑单元 (LE) 和一个局部互连。一个LE又由四输入查找表 (L U T) 、一个可编程寄存器和专用的载运和级联功能的信号通道所组成。

随着设计方法的不断完善, 不仅需要简化设计过程, 而且, 越来越需要降低系统体积和成本, 提高系统的可靠性, 缩短研制周期, 于是希望有一种由很多厂家都可提供的, 具有一定连线的结构和已封装好的全功能的标准电路。由于共同性强, 用量大, 所以成本也不高。这种器件可以由用户根据需要自行完成编程设计工作, 用某种编程技术自己“烧制”使内部电路结构实现再连接, 也就是说用户既是使用者又是设计者和制造者, 这种器件就是P L D, 它的引入就形成了半定制电路设计方法的可编程FLEX10K器件中, 把每一组逻辑单元 (8个LE) 组成一个逻辑阵列块 (LAB) , 所有的逻辑阵列块 (L A B) 排成行和列。在一行里还包含一个单一的EAB。多个LAB和多个E A B采用快速通道互相连接。

嵌入式阵列块 (EAB) 是FLEX10K系列器件在结构设计上的一个重要部件。它是一个输入端口和输出端口都带有寄存器的一种灵活的RAM块, 嵌入阵列块 (E A B) 组成的规模和灵活性对比较多的内存是适宜的。功能包括乘法器、向量的标准和误差矫正电路等。在应用中, 这些功能又能够联合完成数字滤波器和微控制器的功能。

采用可编程的带有只读平台的嵌入阵列块 (E A B) 在配置期间可执行逻辑功能并建立一个大的查找表 (L U T) , 在这个查找表里用查找的结果执行组合逻辑函数, 而不用计算它们。显然, 用这种组合逻辑函数执行比通常在逻辑里应用算法执行要快, 而且专用E A B容易应用, 并且快速提供可能预测的延迟。

以下是应用Altera公司的FLEX10K系列C P L D快速完成卷积的方法实现有限冲激响应 (F I R) 滤波器的设计。

查表法实现卷积运算方法。

有限冲激响应 (F I R) 滤波器的基本结构如是一个分节的延时线, 把每一节的输出加权累加, 得到滤波器的输出。数学上表示为:

根据上式, 可以看出F I R数字滤波器涉及到大量的卷积运算, 使用常规硬件实现时会占用大量的资源。通过充分利用F L E X 1 0 K系列芯片所具有的查表结构, 将卷积运算转化为查表移位求和来实现。例如:对于式:

假设x和h都是无符号整型二进制数, 宽度两位, 取值两位如下:

中间数据p1 (n) 中的4个数据实际上是乘数x (n) 的最低位比特与h (n) 相乘的结果, 并且该值不是0就是h (n) 。进一步考虑, 中间数据p 1和p 2的值, 既“1 0 0”和“011”是由不同的h (n) 之和构成, 而对h (n) 的选择是由乘数x (n) 的相同位的比特决定的。例如上图x (n) 的最低位为1001, 则p1的值为h (1) +h (4) ;其高位为1010, 则p1的值为h (1) +h (3) 。因此利用A l t e r a公司FLEX器件中的查找表 (LUT) 结构, 预先将h (n) 的各种组合存入查找表, 则上例中的原需4次乘法和3次加法的卷积运算转化为1次加法。图3显示了用查找表实现该例的结构。

用查表法实现卷积运算时, 有并行和串行两种结构。图1中为并行结构, 其中两个L U T是完全相同的。在并行结构中, LUT的数量根据x (n) 的数据宽度决定。一位对应一个L U T, 这样速度达到最大, 在FLEX10K的结构中提供了两条专用数据通道, 即进位链和级联链, 通过级联链相邻的L U T可以用来并行计算函数的各个部分。

利用FLEX10K芯片实现FIR数字滤波器。

FELEX10K系列芯片具有查找表结构, 利用其实现采用全局并行的F I R数字滤波器, 也即将输入x (n) 经过不同的延迟后同时进行处理。

控制器模块 (c o n t r) 的作用是产生控制信号对延迟、并串转换、抽头系数、移位相加模块进行控制, 以使它们按一定的形式组合在一起实现滤波器功能。控制器模块在接收到A/D转换结束信号后, 依次产生移位寄存器使能信号、并行到串行转换的装入信号、移位相加的装入信号、加减控制信号和滤波结果输出信号等各种控制信号, 使上述各个模块按照一定的时序进行操作, 从而完成滤波功能。时延环节模块 (shift-reg) 的作用为使A/D转换后的数据通过不同的触发器, 进而产生不同的延迟。并/串转换模块 (p-s-ff) 的作用是将通过时延模块产生的不同延迟分别同时转换为查找表的串行地址, 提供给抽头系数模块。抽头系数模块 (sub-rom) 将抽头系数的各种组合固化在ROM中。它的地址输入端接收并/串转换模块的串行输出, 然后查表得到卷积的中间数据.。移位相加模块通过将中间数据移位相加而实现两个数相乘的功能。

摘要:介绍了一种利用ALTERA公司的复杂可编程逻辑器件 (CPLD) 快速卷积法实现数字滤波器的设计。

关键词:CPLD,数字滤波器,信号处理

参考文献

[1]刘宝琴.Altera可编程逻辑器件及其应用[M].北京:清华大学出版社, 1995.

[2]彭启宗.DSP与实时数字信号处理法[M].电子科技大学出版社, 1995.

[3]Data Book1996.ALTERA, 1998.

可编程逻辑电路 篇8

1.1时钟控制

在复杂的数字电路系统中, 常常会出现这种情况:一个数字系统有时会需多个时钟信号, 为了保证不同时序模块时钟的同步, 系统的外部只能提供一个基准时钟源, 如在设计数字钟时, 数字钟的计数时钟和控制LED数码管位扫描的时钟就是两个不同的时钟信号, 前者的频率是1Hz, 后者的频率要求50~100Hz之间, 而系统外部只提供一个基准时钟信号。对于这种情况, 可以选一个合适高频的基准时钟, 对此时钟进行分频, 分别得到两个不同的时钟信号。当出现设计系统需要多个时钟, 而且, 各时钟频率之间没有整数倍关系时, 可以选一个2倍于最高频率的时钟, 并对此时钟进行采样, 再分别得到所需的各时钟频率。而且此时得到的各时钟频率能满足系统设计要求, 相位还同步。此方法能有效增强设计系统的稳定性。

对于多时钟数字系统, 在设计时要正确处理时钟域之间的接口, 不使用FPGA内部组合逻辑产生的信号作为时钟, 以降低功耗需求。VHDL语言的代码描述为:

门控时钟描述的代码:

GateClk<=input1 and clk ;

Process (GateClk)

Begin

If (GateClk’event and GateClk=’1’) then

If (load=’1’ ) then

Out_data<=data;

End if;

End if;

End process;

时钟使能描述的代码:

enable<= input1 and load;

Process (enable, clk)

Begin

If (clk’event and clk=’1’) then

If (enable=’1’) then

Out_data<=data;

End if;

End if;

End process;

1.2异步/同步时序逻辑

在时序逻辑电路设计时, 可以采用同步电路和异步电路两种设计方法。同步时序电路使用组合逻辑和触发器实现电路功能, 电路的主要信号和输出信号都由统一的基准时钟驱动触发器产生, 可以避免毛刺与竞争冒险。而异步电路采用组合逻辑, 没有统一的时钟信号, 容易产生毛刺和竞争冒险, 电路不稳定。

从电路延迟方面考虑, 异步电路是通过逻辑门电路来实现的, 延迟难以预测, 而同步设计使用计数器或触发器实现延时的, 用于计数器和触发器的时钟稳定性决定了同步时序电路的性能, 现在FPGA内部有专用的时钟资源, 如专用的时钟管理模块、全局时钟布线资源等, 其时钟的质量与性能是可以得到保障的。从资源使用方面考虑, FPGA是以逻辑单元衡量电路面积的, 所以同步设计并不比异步设计浪费资源。目前, 商用的FPGA都是面向同步的电路设计而优化的, 同步时序电路可以很好地避免毛刺, 提倡在设计中采用同步逻辑电路。特别注意, 不同的时钟域的接口需要进行同步。

1.3寄存器/锁存器

寄存器是由具有存储功能的触发器组合起来构成, 用来存放二进制数据或代码的电路, 任何现代数字系统都必须把需要处理的数据和代码先寄存起来, 以便随时取用。对于边沿触发存储单元, 在基于寄存器的设计里, 竞争冒险情况较少甚至不存在, 控制信号和寄存器输入信号上的毛刺不易造成影响, 信号可在一个周期里准确寄存。锁存器是电平敏感存储单元, 它不象寄存器数据存储控制在一个时钟周期内完成, 电路稳定性差。在FPGA器件中集成了很多的寄存器, 相对于利用寄存器完成的设计, 利用锁存器来完成, 这不但逻辑复杂, 而且性能较差。因此, 当设计一个组合逻辑时, 设计者要避免由于VHDL 设计风格的问题, 无意识形成一个锁存器。例如, 当case或者if语句不能完全覆盖所有可能的条件时, 组合反馈可能形成一个锁存器。VHDL语言的代码描述为:

异步复位的寄存器代码:

library ieee;

use ieee.std_logic_1164.all;

entity registerAsyn is

port ( reset, clk, data:in std_logic;

data_out:out std_logic ) ;

end registerAsyn;

architecture behave of registerAsyn is

begin

process (clk, reset, data)

begin

if (reset='1') then q<='0';

else

if (clk'event and clk='1') then

data_out <=data;

end if;

end if;

end process;

end behave;

异步复位锁存器代码:

library ieee;

use ieee.std_logic_1164.all;

entity latchAsyn is

port ( reset, enable, data:in std_logic;

data_out:out std_logic ) ;

end latchAsyn;

architecture behave of latchAsyn is

begin

process (enable, reset, data)

begin

if (reset='1') then q<='0';

elsif ( enable='1') then

data_out <=data;

end if;

end process;

end behave;

1.4状态机的设计

在数字电路的应用设计中, 控制模块可以用有限状态机, 也可以用CPU。有限状态机可以根据系统要求专门设计, 而CPU是通用的电路控制模块。比较而言, 有限状态机比CPU灵巧, 占用硬件资源少。有限状态机越来越被系统设计师青睐。在FPGA设计应用中, 对于多种状态转换的数字系统, 经常使用状态机来控制。有限状态机按输出方式可分为Moore型和Mealy型, Mealy型状态机输出不仅与当前状态有关, 而且还与输入信号有关, 而Moore型的输出只与当前状态有关, 与输入信号无关, 其输出与时钟同步, 应尽可能采用Moore型状态机, 以提高数字系统的稳定性。

在进行有限状态机的状态描述时, 可以将“状态寄存器” 、“次态逻辑”和“输出逻辑”各用一个进程来描述;也可以用一个进程来描述“次态逻辑”和“输出逻辑”, “次态逻辑”只包含状态转换逻辑, “输出逻辑”用来实现数据传输和算术逻辑控制, “状态寄存器”仅实现状态机的逻辑控制部分, 将其与它要控制的电路在设计代码中严格分开, 代码的可读性明显加强, 同时逻辑综合工具会容易进行优化。一个完备的状态机应该具备初始化状态, 当芯片加电或者复位时, 状态机能够自动将所有的判断条件复位, 并进入初始化状态。还应有一个默认状态, 当转移条件不满足或者说状态发生了突变时, 应能确保不进入“死循环”, 也就是要有“自恢复功能”, 一般通过“when…others”或“if…then…else”来建立。

1.5层次化电路设计

在复杂的电路系统设计中, 通常系统设计无法在一个设计实体里实现, 这时就可以将此系统按功能模块划分, 先分别设计各底层的功能模块, 并对每个功能模块进行优化设计, 再将各模块连接起来, 划分功能模块时尽量使各个模块之间的I/O连接最少。完成一个层次化设计之后, 设计者可以在开发工具中通过选项设置, 允许跨越功能模块的边界对设计进行优化, 从而使电路结构更加合理。如果设计者对设计中不同模块有不同的优化条件和要求 (有的要求面积最小, 有的要求速度最快) , 也可以在逻辑综合过程中保持设计原来的层次结构, 并按照设计的要求设置约束条件。

2结语

在FPGA芯片设计过程中, 我们只有积累了丰富的设计经验, 并在掌握上述优化设计思想和方法的基础上, 才能设计出内部资源消耗少、运行速度快、性能优良稳定运行的数字系统。

摘要:硬件描述语言HDL是基于行为级描述的语言, 用HDL设计开发的FPGA芯片, 由于FPGA器件自身的结构特点, 使得FPGA器件在生成的电路结构、电路性能、内部资源的消耗及器件的运行速度等方面存在一定的缺陷。分析探讨了优化FPGA芯片设计, 改进用VHDL语言描述电路结构的几种方法。

关键词:FPGA,HDL,优化设计

参考文献

[1]陈志刚.VHDL语言在电路设计中的优化[J].电子测试, 2008 (9) .

[2]李国丽, 朱维勇.EDA与数字系统设计[M].北京:机械工业出版社, 2010.

[3]潘松.EDA技术实用教程[M].北京:科学出版社, 2002.

可编程逻辑电路 篇9

为了确保产品符合最新的EnergyStar[1]和欧盟行为守则[2] (EC Code of Conduct) 的规定, 设计人员正在寻求创新的方法以便为各个产品线提供低功耗的工作模式。由于PLD提供了功耗优化的灵活性, 实现了整个系统级低于1 W的待机功耗模式, 从而有助于协调整个系统的电源管理。

1 W倡议[3] (One Watt Initiative) 是国际能源机构提出的一项能源节约计划, 提议将所有电器的待机功耗降低至1 W。待机功耗[4,5]是指许多电器在关闭或处于待机模式时消耗的电力, 也被称为吸血鬼或无用的功耗。虽然单台电器的功耗典型值很低 (1 W~25 W) , 但是住宅和商业用途的电器数量高达几十亿, 所有电器待机功耗的总和占据了世界电力使用总量的相当大的一部分。研究表明, 待机功耗占家庭用电总量的比例高达7%~13%。

虽然待机功耗的定义根据所分析产品的不同而有所差异, 但是待机功耗总包括了产品在不执行任何功能时所需的最低功耗。PLD正越来越多地应用到电路中, 使得尽可能多的系统在处于空闲状态时可以断电或处于待机/睡眠模式。

使用PLD的门控时钟

门控时钟是许多同步电路中使用的节省功耗的技术之一。为了节省功耗, 门控时钟支持增加额外的逻辑电路来对时钟树进行删减, 禁用部分电路以使触发器不改变状态, 从而使它们的开关功耗为零, 并且只有漏电流产生。

门控时钟控制硬件检测是否有工作要执行并关闭无需使用的时钟。例如, 桥接或总线可能使用自动门控, 因此可以将其关闭直至应用处理器需要时再使用。如果该总线上的一些电路板外设从未使用过, 则可能被永久关闭。

耦合了低成本晶振Pierce RC电路的CPLD可提供自动硬件门控时钟。图1中的电路所实现的是频率为32.768 kHz的门控实时时钟 (RTC) , 是手持设备 (如智能手机) 中常见的时钟源。

晶振是一种低成本且准确的时钟选择, 可以在众多应用中使用。晶振可提供的基本共振频率范围为30 kHz~50 MHz。振荡器电路建议使用晶振来实现, 因为其具有简单、成本低和可靠性强的特点。设计师可使用CL公式与经验法则来设置图1中C1和C2的初始值, 并使用测试基准最终确定这些值。CLK_EN-ABLE (2:0) 输入使得单个DISTRIBU-TED_CLK (2:0) 输出能启用/禁用子系统, 从而尽量降低功耗。

使用PLD作为系统睡眠管理器

降低待机功耗的技术实现方案之一是使用一个智能电子开关, 在无需驱动负载或在一段时间的休眠后关闭电源, 并在需要时立即恢复。PLD可与常用应用芯片一起使用以降低待机功耗, 并使主处理器检测系统事件所需的上电时间最小。电源管理是一些电子设备的重要功能, 尤其是机顶盒 (STB) 、计算机和计算机外设 (如显示器和打印机) , 这些设备在休眠状态下关闭电源或将系统切换到低功耗状态以实现对电源的管理。

远程唤醒WoL (Wake-on-LAN) 是以太网的计算机网络标准, 允许一台计算机通过网络消息被打开或唤醒。该消息通常由局域网中的另一台计算机上执行的一个简单的程序来发送。低成本的IP电视机顶盒和多功能打印机 (MFP) 是将以太网远程唤醒 (WoL) 用作中断信号, 从而将耗电的应用处理器从睡眠模式下唤醒的理想设备。符合低电流要求的CPLD可用以检测传输到打印机或机顶盒的以太网信号, 是一种理想的智能开关选择。图2所示即为一个使用了CPLD智能开关的IP-TV STB框图。

在机顶盒架构中, 当节目更新或订阅内容从有线电视控制中心发送到用户时, 在正确寻址后, 这些信息的到来可以“唤醒”处于空闲状态的机顶盒。网络正确寻址到该器件后, 一个持续工作的低功耗ispMACH 4000ZE CPLD[6]能够迅速响应并且保持最小的电流消耗。现代的小型CPLD (如LC4032ZE器件) 的静态功耗低至10μA。因为传统的低成本、低速微控制器不能在工作频率为25 MHz的介质无关接口MII (Media Independent Interface) 总线上可靠地检测输入数据, 所以需要用高速的CPLD来检测输入帧。在自动化工厂编程这一步中, 将一个唯一的MAC地址编程到智能开关CPLD中。

节省印刷电路板功耗的技术

电池漏电和幻象电源 (Phantom Power) 造成了印刷电路板漏电, 可使用一些简单的电路技术来解决这些问题。例如, 莱迪思在开发ispLEVER4000ZE Pico开发套件[7]时, 遵循的质量标准之一就是在电路板不工作时必须有极低的静态功耗。考虑到客户和现场应用工程师 (FAE) 在使用该开发板时经常会在装了3 V纽扣电池的情况下将开发板放置一段时间, 因而删除板上所有的漏电路径, 避免了电池耗尽[8]。Pico板使用了多种时钟门控技术, 因此可以仅使能某些需要的电源。在这种情况下, 传感器放大器仅当CPLD要求进行测量时上电。一旦要求测量, CPLD发出输入使能 (ENABLE) 信号, 连接3.1 V电池, 并给传感器电路供电。一旦CPLD接收数据, 则释放使能信号并且使传感器断电, 如图3所示。

PID的节能设计检查表

针对可编程逻辑电路的特点和I/O的多样性, 以下几种节能措施可最大限度地降低PLD本身的功耗。这些技术可以降低I/O缓冲器 (Icco和内部逻辑 (Icc) 的动态电流。

降低I/O功耗的方法

(1) 使能I/O的“mask”或“guard”功能来避免I/O交换。这个PLD功能的一个示例是ispLEVER 4000ZE“Power Guard”在进行与设计无关的输入时, 可选择性地禁用I/O缓冲器输入;

(2) 使用快速摆率来限制Vilmax和Vihmin之间的时间。但请注意, 更快的边沿速率增加了反射和SSO噪声;

(3) 减小I/O电压;

(4) 避免I/O上拉/下拉冲突。

降低逻辑电路功耗的方法

(1) 降低逻辑电路频率, 考虑是否所有的逻辑电路都需要在高速时钟域中运行;

(2) 包括一个待机控制器, 使得逻辑电路在不工作时进入低功耗模式;

(3) 保持比较小的逻辑电路面积;通过软件对没有速度要求的目标功能区域进行优化设置;

(4) 将电压降低到数据手册规定的最小值。

低功耗可编程逻辑器件可以多种不同的形式用作智能开关, “唤醒”空闲状态下的芯片集, 并且在集成了一个低成本的晶振后, 可实现门控时钟网络。经验证, PLD是有助于降低电子产品系统功耗的有价值的器件。随着政府实行更严格的功耗规定, 待机电流消耗成为设计师的一个重要考虑因素。

摘要:随着政府实行更为严格的功耗规定, 如何进一步降低待机功耗成为工程师设计过程中需要考虑的一个重要因素。现代可编程逻辑器件动态电流要求极低, 并能在集成了一个低成本晶振后实现门控时钟网络, 对降低电子产品的系统功耗有很大的使用价值。

关键词:待机功耗,PLD,ispMACH 4000ZE CPLD,门控时钟

参考文献

[1]EnergyStar.http://www.energystar.gov.

[2]欧盟待机倡议.http://re.jrc.ec.eu-ropa.eu/energyefficiency/html/standby_initiative.htm.

[3]一瓦特倡议.http://en.wikipedia.org/wiki/One_Watt_Initiative.

[4]ACPI.http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface.

[5]不知不觉中的电源消耗——待机功耗以及如何对其进行限制, 国际能源机构.http://www.iea.org/text-base/nppdf/free/2000/blipinthe-night01.pdf.

[6]ispMACH4000ZE CPLD.http://www.latticesemi.com/products/cpldspld/ispmach4000ze/.

[7]ispMACH4000ZE Pico开发套件.http://www.latticesemi.com/products/developmenthardware/developmentkits/ispmach4000zepicodevkit.cfm.

[8]ispMACH4000ZE器件的功耗预测, TN1187.http://www.latticesemi.com/documents/tn1187.pdf.

可编程逻辑电路 篇10

1 研发方法

PCI接口控制器的设计相对来说比较复杂。目前比较常用的方案有两种:第一种是用可编程逻辑器件设计实现,目前,部分厂家能够提供这类专用芯片,如AMCC公司开发的主/从控制芯片S5900-33,PLX公司开发的PLX9080和PLX9054,还有PCI接口专用芯片PCI9080等。其中PCI9054具有较强的性能。

第二种方案是采用专用接口芯片。FPGA内部具有丰富的触发器和I/O引脚。FPGA是ASIC电路设计周期最短、开发费用最低、风险最小的器件之一。从这个角度出发,应用可编程逻辑器件FPGA来实现也是一个较好的选择。

总的来说,它们各有特点,前者方案需要投入大量的人力、物力进行逻辑验证和时序分析工作;而后者需要购买价格不菲的专用芯片。但是对PCI的接口设计以及可编程逻辑器件有着良好的开发经历来说,不妨采用第一种方案。FPGA起源于美国兀llnx公司的创造,该公司于1985年发明了世界上第一个FPGA器件。直到今天,FPGA已经经历了二十几年的发展历史。在这二十几年的发展过程中,以FPGA为代表的可编程逻辑器件技术取得了飞速的发展,从最初可以在一块芯片上集成1200个可用门,发展到90年代25万个可以门,到本世纪初,国际上现场可编程逻辑器件著名厂商Altera公司、Xihnx公司陆续推出数百万门至上千万门的单片FPGA,将现场可编程逻辑门阵列芯片的发展提高到一个新的水平。

2 PCI总线

2.1 特点

PCI局部总线是当今PC领域主流的局部总线标准,由于其独立于CPU的架构,而与CPU的时钟无关,因此用户可以将一些高速外设如网络适配卡、图形卡、硬盘控制器等从ISA总线上卸下,而通过PCI局部总线直接挂接在CPU上,使之与高速的CPU总线相匹配,从而打破了数据FO的瓶颈,使高性能的CPU得以发挥。

2.2 组成

PCI总线的中断共享由硬件与软件两部分组成。硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。而只有当所有板卡的中断都得到处理后,中断信号才会回复高电平。软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。以此类推,就会形成一个中断链。而当有中断发生时,系统跳转到中断7对应的内存,也就是ISR_B。ISR_B就要检查是不是B卡的中断,如果是,要处理,并将板卡上的拉低电路放开;如果不是,则呼叫ISR_A。这样就完成了中断的共享。

3 基于FPGA的数据传输接口

与PCI总线目标设备控制器接口的应用设备在PCI总线传输中处于被动的地位,它不会申请对总线的使用权,只是在地址命中的情况下响应由总线主设备提出的总线操作。PCI总线目标设备控制器要生成PCI总线传输中目标设备应产生的总线信号,根据这一原则,将PCI总线目标控制器从功能上划分为7个模块,如图1所示。其中配置模块、基地址译码模块、奇偶校验模块、锁存模块、重试计数模块、有限状态机这6个模块负责实现配置空间读写、地址空间译码、奇偶校验位生成、地址期信号锁存、与目标设备重试连接、目标设备状态转移和接口信号控制等功能,而后端设备模块是为测试PCI总线目标设备控制器的功能而设计的。

3.1 地址数据的控制

由于PCI总线是地址数据复用总线,所以地址数据控制模块是用来对地址数据传输的控制,即按照PCI协议,满足一定的逻辑关系情况下总线上传输的是数据,满足另外的逻辑关系总线上传输的是地址。通过读取地址译码,地址译码产生的信号可实现对各寄存器(源地址、目的地址、计数器寄存器)的寻址,指示对应寄存器完成读写操作。当PCI处理数据时,地址译码单元先获得源地址和目的地址,进而进行数据相应的数据传输操作。

3.2 地址锁存及数据分离

当PCI总线处于空闲状态时,若PCI从设备的FRAME#信号被拉低,这时在CLK的上升沿分别采样地址/数据线、命令/字节使能线上的内容,得到的即为地址和总线命令(即在PCI总线地址期锁存)。这一过程就是地址和命令的锁存,因为PCI总线上地址、数据复用AD信号线,命令、字节使能复用C/BE#信号线,所以在总线地址期应锁存地址和命令。在锁存地址和命令的同时,该电路模块还要锁存初始化设备选择信号IDSEL。

当PCI从设备的FRAME#信号被拉低表示一个总线周期的开始,第一个时钟是地址周期,为了便于后面电路的处理必须将地址AD信号和命令C/BE#信号进行锁存。此锁存电路要把在上述时序中采集的数据传输到地址命令译码器,由译码器检查此次总线访问的对象是否是本设备。

3.3 开发

状态机(FSM)是设计PCI接口逻辑的核心与主干,时序状态机接收来自总线主设备和从设备的控制信号,加以分析处理,无论是否是对本设备的访问,都要引导其作出正确的时序响应,以保证总线交易的正确完成。根据数据传输的要求需要设定六个状态,即空闲状态(IDLE1)、设备选中状态1(DEV_ST1)、配置读状态1(CFG_RD_ST1)、配置读状态2(CFG_RD_ST2)、停止状态(STOP_ST1)、配置读状态3(CFG_RD_ST3),当状态机处于空闲状态时,在cfg_rd_sel或io_rd_sel或mem_rd_sel被选通时,控制器通过译码判断本目标设备是否被选中,若是选中,则转入DEV_ST1,同时如irdy主设备准备好了,则进入配置读状态1,当配置读传输进行了一个数据期后,如若irdy还处于有效状态,则进入CFG_RD_ST2,继续进行传输,否则在配置读状态2停留不动,接下来,如果frame在此时突然拉低,则预示着主设备要求停止当前的数据传输或则数据快传输完毕,进入停止状态STOP_ST1,然后完成最后一次的数据传输,进入配置读状态3(CFG_RD_ST3),当完成最后一次的数据传输后则回到了空闲状态。状态机中空闲状态转到这六个状态根据PCI总线的使用情况而进行转换,从而完成数据的传输。

4 结语

在PCI总线接口的设计中,PCI总线接口的性能将会影响整个系统性能,采用FPGA做为硬件载体,VHDL语言进行功能描述。采用FPGA实现PCI总线接口不但升级简单、容易,而且提高了系统集成度。

摘要:设计了PCI总线的可编程逻辑器件传输接口,接口芯片没采用通常固有芯片而采用FPGA,给出了主要的开发设计。该系统可以很好地应用于PCI的数据采集与测试环境。

关键词:FPGA,PCI,数据传输,接口

参考文献

[1]William Stallings著,张昆藏,等译.计算机组织与体系结构性能设计.第6版[M],北京:清华大学出版社,2000.

[2]王雪梅,施洪昌.基于PCI总线的数据采集卡的设计[J].微计算机信息(测控自动化),2005,(4).

上一篇:水产品卫生管理办法下一篇:科技推动社会管理创新