可编程逻辑的阵列

2024-06-03

可编程逻辑的阵列(精选十篇)

可编程逻辑的阵列 篇1

现场可编程门阵列即FPGA (Field Programmable Gate Array) , 它是在可编程器件的基础上进一步发展的产物。随着EDA技术的发展, 采用现场可编程门阵列的扫描键盘因其结构简单, 能有效防止按键颤抖带来的信号混乱等优点在电子信号输入电路的应用中得到广泛使用。本文通过采用FPGA图形编辑实现一个4*3的键盘扫描电路, 来说明现场可编程门阵列在此类电路的设计和应用中的优点。笔者使用的软件环境是MAX+PlusⅡ, 将整个电路分成各个分模块, 再使用VHDL硬件描述语言进行程序设计并生成模块, 最后将各个分模块采用图形编辑最终实现设计要求。

2 基于FPGA的4*3式键盘扫描程序的设计

2.1 颤抖消除电路

因为按键大多数是式开关结构, 在开关切换的瞬间会在接触点出现来回颤抖的现象, 对于激活关闭一般电器如开关日光灯、电视等一般电子用品, 并不会有何影响, 但对于灵敏度较高的电路, 这种现象却可能造成错误动作影响到正确性。颤抖现象产生的原因可从图1说明, 虽然是按下按键一次然后放掉, 然而实际产生的按键信号却不只跳动一次, 经过取样信号的检查后, 将会造成误判, 以为键盘按下了两次。

如果调整抽样频率 (如图2) , 可以发现颤抖现象获得了改善。

程序如下:

编译仿真如图3:

由仿真波形图可看出, 原本的颤抖现象经过颤抖消除电路处理后已经消除, 不会再产生混乱的信号。

2.2 键盘扫描:

键盘上的每一个按键都是开关电路, 当某个按键按下时, 该按键的触点的状态为逻辑0, 反之, 未被按下时的状态为逻辑1。扫描信号由KA3~KA0进入键盘, 变化的逻辑状态顺序依次为1110→1101→1011→0111→1110。每次扫描一排, 依序地循环。

程序如下:

说明:当键盘扫描所需的信号从计数器中取出后, 将键盘扫描信号利用WHEN…ELSE语句将计数结果进行转换, 依序1110→1101→1011→0111→1110…循环下去。因为WHEN…ELSE语句为并行同时性语句, 所以必须放在process指令的外部。

编译仿真结果: (图4)

仿真图中的CLK_SCAN (3 DOWNTO 0) 是电路所产生的键盘扫描序列 (1110→1101→1011→0111→1110…., 即KA3~KA0) 。由仿真图看出, 扫描序列与键盘扫描信号一一对应。实现了对键盘的扫描。

2.3 键盘译码。

根据上述键盘的按键特点, 按键可分为数字按键和文字按键, 没一个按键都可能负责不同的功能。数字按键主要是用来输入数字, 键盘所产生的输出 (KB2~KB0) 无法直接拿来使用;另外不同的数字按键也担负不同的功能, 因此必须由键盘译码电路来规划每个按键的输出形式, 以便执行相应的动作。设计键盘译码电路程序如下:

说明: (1) 因为三次取样到“1”才会输出1, 两次取样到“0”才会输出0。 (2) 为了让每一次按键反映的时间长度都维持一个脉冲波形的时间长度而采用了微分的方式。

编译仿真: (图5)

说明:从仿真图的结果可以看到, 00 011代表按下的按键为“1”。01 100为“15”10 101为“8”。键盘译码程序能正确地执行各项动作, 未出现颤抖和错误的按键情况。

3 总结

通过测试, 根据程序所设定的列扫描信号和对应的键盘响应信号来确定按键的位置。通过本文的研究表明, 使用现场可编程门阵列实现了键盘扫描电路的设计, 减少了复杂的硬件电路的设计, 对于复杂键盘的扫描程序的设计带来便利和可行性。

参考文献

[1]番松, 黄继业.EDA技术与VHDL[M].北京:清华大学出版社, 2005.7.

[2]袁文波.FPGA应用开发从实践到提高[M].中国电力出版社, 2007.

可编程逻辑控制器在机顶盒中的应用 篇2

机顶盒市场概览

机顶盒市场正经历着前所未有的快速增长,预计在以前每年的需求量都将以百万台的数量级增长。

目前机顶盒市场依据网络类型来分有三大应用市场:卫星电视、有线电视和天线电视。除按电视信号发射系统划分外,机顶盒还可按功能不同分为低端、中端和高端。其中:低端机顶盒可将解码后的音频和视频输出到模拟电视或数字电视上;中端机顶盒加入了有限的交互性,可以实现交互式广告和节目安排程序;高端机顶盒可实现高水平的交互功能,如网页浏览和硬盘视频存贮。

机顶盒市场是一个变化快,对成本异常敏感的市场。为了提供竟争对手所没有的特性,广播公司必须不断为自己的机顶盒加上新的特征并迅速推向市场。Xilinx的大容量FPGA和CPLD器件为系统设计者提供了性能价格比很高的解决方案,同时还保持了传统PLD快速推向市场的优势。虽然很多功能最终会被吸收用在特殊应用标准产品ASSP(Application Specific Standard Products)器件中. 但不断提出的很多新功能或标准芯片组目前还不能提供,或者还不能完全利用ASSP完成,因此可编程逻辑的应用非常重要。

机顶盒的基本结构

构成机顶盒系统的功能块主要有:

连接卫星接收器或线缆调制解调器的连接块;

天线电视接收器或可并发解调数据流的xDSL调制解调器;

可作进一步MPEG-2解码的密码操作系统;

中央处理器,如ARM,MIP或是嵌入其他功能的x86处理器;

带音频、视频输出的MPEG-2解码器;

外部标准接口,如RS232,USB;

用于连接由广播公司控制的拨号系统的低数据率的调制解调器。

在这些设计中,Xilinx器件主要用于完成各主要模块间的接口功能。大多数接口都很类似,只是简单的逻辑改变。图2和图3给出了用到Xilinx器件的主要模块示意。

为市面上所有不同类型的系统分别开发接收器代价很高,但机顶盒的主要处理部分是很通用的。可编程逻辑器件可以在数据通道上提供所需的接口逻辑。

利用可编程逻辑使机顶盒制造商不必依赖于某一个芯片组供应商。另外,广播公司对机顶盒功能的要求,很大程度上影响到机顶盒中不同模块芯片的选用。所以,多数情况下使用单一厂商芯片组的机顶盒方案不能满足所有需要。可编程逻辑器件是实现这一点的理想选择。

Xilinx芯片应用的另一个重要方面是密码操作(Conditional Access,CA)系统(见图2)。

在系统的这一部分信号被解码。为顺利进行解码,信号发送时要使用适当的算法。算法可用软件或包含在智能卡上的硬件实现。然而,多数广播公司有自己独特的算法,因此目前应用的解码方法种类很多。在密码操作系统中采用可编程逻辑器件可以简化制造过程,机顶盒的制造过程完全统一,只是针对不同广播公司的特殊加密要求对可编程器件进行编程就行了。这样机顶盒就成为可以批量制造的标准产品,从而可以体现出大批量制造的优势。

在保证广播公司可以使用自己喜欢的方法的同时,却能够得到单一解码系统的好处,这就是设计通用接口(Common Interface)标准的目的。“通用接口”定义了主处理模块与解码电路间的连接标准。它是在欧洲电子技术标准协会(CENELEC)的支持下标准化的,并被数字音频及视频委员会(DAVIC)采纳,以CA0接口的名义出现在DAVIC规范中。同样这一接口也构成了美国国家可更新安全标准(NRSS)委员会相应标准的基础。

预计新出现的机顶盒设计将会逐渐采用通用接口标准。这样可使机顶盒以很好的性价比支持多种解码标准。Xilinx Spartan和CPLD器件被广泛地用在此类设计中,以实现机顶盒与加密智能卡间的桥接。

硬盘存储技术

Xilinx器件在标准的机顶盒系统中有用武之地,特别是前面介绍过的方面。但其主要应用还是在那些具有先进特性的新机顶盒设计中。其中最有意思的发展之一可能是硬盘存储技术在机顶盒中的应用。ReplayTV、NDS和Pace Technologies公司都开发了此类产品。

Xilinx同计划在机顶盒中采用硬盘存储技术的一些制造商进行了合作。由于硬盘每10GB存储的价格已降低到100美元以下,所以此类合作使双方都受益非浅。利用硬盘存储电影比视频录像机存储有很多优点。例如,可以同时进行读写。消费者可以将节目录下来稍后再看。

对于录像机来说,一边录制节目,一边播放15分钟前该节目播放的内容是不可能的。采用硬盘技术则可以让观看者在接电话或为人开门后回来再观看原来正在看的节目,就象什么也没做一样,只是实际上,他们看到的节目比实际传输的时间向后推迟了。同样,观众可以拥有即时回放和慢动作播放能力。这对广告业的影响也是深远的。有10-15分钟的灵活时间,观众可能会快速跳过播放的广告。电视公司非常关注这一点。这就是为什么大多数机顶盒都有一个回送通道的原因之一。该通道一般利用相对较低速率的调制解调器。晚上,特定客户的观看习惯被送回广播公司。广播公司可以建立该客户的档案,将来技术的发展可能允许只发送针对该客户需求的广告。

硬盘技术的应用发展很快。毫无疑问,将来会有很多专门为此开发的硬盘控制专用芯片组,但目前Xilinx的Spartan器件提供了实现这一功能的有效且低价的方法。带有片上RAM的Spartan器件可以相对方便地构成控制电路以及数据传输所需的先进先出(FIFO)缓冲。可编程功能允许机顶盒制造商针对不同的厂家的硬盘进行优化。这样,机顶盒制造商可以支持不同厂家采用最新技术的硬盘,其好处是显然的。

硬盘制造商Western Digital最近推出了一系列针对机顶盒市场的硬盘产品。其它硬盘制造商也发布了类似的产品。与PC不同,机顶盒要求极高的可靠性和较小的运行噪声。视频流对硬盘的要求也与PC不同。Western Digital发展了称为StreamWeaver的指令集,专门为音频/视频性能进行了优化。它允许数据流可以同时写入和读出,满足了机顶盒制造商的`要求。

Internet和电子商务

根据预测,机顶盒可能会成为消费者在Internet上利用电子商务购买商品和服务的主要方式。一些厂商正寻求在机顶盒上实现可附加的智能卡读取器,利用智能信用付费卡可以保证网上消费时的安全。

值得注意的是PC业的很多厂商都在迅速地转向机顶盒市场,希望能占领一席之地。

目前,机顶盒的Web功能还很有限。诸如MP3播放器和文件阅读器之类的功能,目前的机顶盒也还不支持。这种情况将来会有改变。微处理器厂商在机顶盒市场的竟争非常激烈。可编程逻辑使机顶盒厂商可以很容易地将微处理器应用到机顶盒系统中。在基本的机顶盒中合并更多的功能是一个趋势,然而灵活性可能是一个更关键的要求,

至少在开发阶段是如此。Xilinx XC9500系列和CoolRunner器件非常广泛地应用于微处理器和系统芯片的接口。两个系列的芯片都是可在系统编程的(ISP),可以在开发周期的各个阶段进行修改,甚至已经现场应用的情况下也可以。这为设计人员带来很大的灵活性,可以满足由于微处理器、外围芯片协议的迅速变化对系统的要求。

视频游戏

机顶盒和视频游戏机间的很多电路是共同的。最新的视频游戏机也整合了Web能力。主要的区别在于3D图像处理能力。可以想象这一功能将来也会集成到机顶盒芯片组中。ST MicroElectronics公司计划集成Nvidiar RIVA-128核心以增强其3D性能。这样强大的3D图像处理能力是提供大众游戏所需要的。

高分辨率电视(HDTV)

现在几乎所有的机顶盒设计都是针对标准分辨率电视的,如PAL、SECAM和NTSC。可以预见,特别是在美国,将来对高分辨率(HDTV)电视服务的要求会不断增强。消费者对高质量电影和体育节目的要求会推动HDTV的发展。

但在可预期的将来,对HDTV的需求还比不上标准分辨率电视。由于HDTV额外的处理要求,有限的市场需求以及不明确的目标市场,只有利用可编程逻辑才可以为产品开发提供最大的灵活性。

可编程逻辑的阵列 篇3

关键词:PCI总线;数据传输;FPGA

中图分类号:TP399文献标识码:A文章编号:16723198(2007)11026301

1引言

近年来PCI总线已经在高档测试仪器中得到越来越广泛的应用。由于PCI总线协议非常复杂,不便于与测量控制逻辑直接连接,需要经过一个PCI接口控制器作为桥梁。另外考虑到软件的处理速度和工作效率,测量电路高速采集的数据也不能立即传送给主机,因此在FPGA内部设计了FIFO缓冲器。设计方案如图1所示。当送入FIFO的测量数据达到预定的数量时,本地中断逻辑通过PCI总线接口控制器向主机提出中断请求,主机响应中断后,通过PCI总线控制器从FIFO中取走测量数据。

PCI接口控制器的设计相对来说比较复杂。目前比较常用的方案有两种:第一种是用可编程逻辑器件设计实现,第二种方案是采用专用接口芯片。由于前者方案需要投入大量的人力、物力进行逻辑验证和时序分析工作,延长了开发周期,因此本文选择了专用接口芯片方案。具体型号是PLX公司的PCI9054芯片。使用这种专用芯片桥接PCI总线和本地总线,开发者可以省去考虑很多复杂的PCI总线规范,而集中精力开发硬件和驱动程序。

以下主要论述图1虚线框内的FPGA设计与实现。重点是与PCI9054接口的本地总线控制逻辑和中断逻辑。

2数据采集接口逻辑的设计

2.1PCI9054本地总线研究

对本地总线操作过程及控制信号时序关系的分析是应用PCI9054芯片和设计本地总线控制器的基础性工作。PCI9054本地总线的信号包括:LHOLD(输出)申请占用本地总线信号;LHOLDA(输入)本地总线应答信号;ADS#(输出)地址选通信号;BLAST#(输出)传输结束指示信号;LW/R(输出)读写状态信号(高电平表示写,低电平表示读);READY#(输入)外部等待信号;LCLK(输出)本地时钟;LRESET#(输出)本地复位信号;LA[31:2](输出)本地地址总线;LD[31:0](输入/输出)本地数据总线。上述信号名后带有“#”的表示低电平有效,另外输入输出是针对PCI9054芯片而言的。 

当读数据时,本地总线上的各信号时序关系如图2所示,控制信号有效边沿的含义已标注于图中。图2所示的PCI从方式读操作中,每次传输的数据有多个字,ADS#信号变低表示数据传输周期的开始,之后每个时钟周期的上升沿将本地数据总线上的数据读入9054内部,在紧接着的时钟下降沿自动增加本地地址总线上的地址;数据传输状态将一直持续到BLAST#信号变低,表示当前数据期已经是传输的最后一个数据期,数据传输即将结束。这种传输方式称为突发传输。相对应的PCI9054也支持单周期传输。在单周期传输时,每次只传输一个字,BLAST#信号在ADS#信号有效后的下一个时钟周期就会出现。显然单周期方式的数据传输率较之突发传输方式会慢很多,由于FPGA内的FIFO数据传输率能够与PCI9054的数据传输率相适应,本文采用突发传输方式以提高PCI总线的传输效率。

2.2本地总线控制

根据前文可以明确出本地总线控制器的设计目标:根据输入的控制信号LHOLD、ADS#、BLAST#生成符合本地总线时序要求的控制信号LHOLDA、READY#和FIFO的读请求信号RDREQ。 对于LHOLD信号的应答问题,采用Verilog语言中的always和assign语句就能简便高效的实现。对READY#信号的处理可以采用同步状态机,其状态图如图3所示:

2.3对于本地中断的分析和应用

当采集并存储在FIFO中的数据达到一定数量,为了避免FIFO溢出主机需要将测试数据从FIFO中取走。从提高效率的角度出发,采用中断方式完成该工作。

在PCI9054 的中断被使能的情况下,如果本地逻辑向PCI9054芯片输出本地中断信号,PCI9054芯片将生成PCI中断信号。需要特别注意的是:PCI9054芯片生成的PCI中断信号是电平信号,而非脉冲信号,因此当该PCI中断被PCI主机响应后需要在中断服务程序的入口处手动禁止PCI中断,否则会导致多次触发中断的异常情况出现。同时由于在中断服务程序出口处重新打开了PCI中断,因此须在中断服务程序执行期间撤销本地中断源以避免中断服务程序一旦结束就将再次触发中断的异常情况出现。

基于以上分析,本地中断处理逻辑需要实现两点功能要求:① 当触发条件满足时,生成本地中断输入信号LINT#。② 在中断服务程序执行期间,撤销本地中断输入信号LINT#。对于第一点要求,采用的方法是用减计数器的溢出信号来作为本地中断输入信号,该计数器的初值可以由应用程序根据被测器件和测量模式来灵活设置。对于第二个功能要求,在开发实践中采用了一种效率更高、移植性更好的本地中断信号撤销机制。其关键点在于将撤销本地中断信号的控制权由本地逻辑转移到中断服务程序中。具体方法是:在本地端设计一个中断处理触发器。该中断处理触发器的clear端口连接的是数据总线的最低位与译码器输出信号相与后的信号,D端口置1,clk端口连接上述减计数器的溢出信号,q端口上输出信号经过非门作为LINT#信号输出。当FIFO中的数据量达到预先设定值时,减计数器溢出,触发器q端输出高电平,经过反相器即产生低有效的本地中断输入信号。当主机响应中断,并进入中断服务程序后,执行一次对该触发器置1的操作,这样连接clear端口的与门的两个输入端都为高电平,进而将该触发器的q端输出置0,经过反相后,LINT#信号变为高电平,即撤销本地中断信号。

3结论

本文讨论分析PCI9054接口控制器的本地总线操作过程,并在此基础上研究与设计了数据采集接口逻辑。该数据采集接口逻辑是PCI9054芯片与数据FIFO进行信息交互的桥梁。该设计已用Verilog硬件描述语言进行了功能描述,并仿真验证和综合。设计方案已经应用在某晶体管特征曲线图示仪产品开发实践中,实践运行证明该数据采集接口电路能够高效、稳定的工作。

参考文献

[1] PLX technology PCI 9054 Data Book Version 2.12000,(1).

可编程逻辑的阵列 篇4

1 基于现场可编程门阵列技术采集系统的设计结构

(1) 通过利用现场可编程门阵列技术作为控制模块, 采用现场可编程门阵列技术加上MCU的结构, 现场可编程门阵列技术在系统中起到连接MCU和集成电路的作用, MCU主要是负责数据的处理以及传输。现场可编程门阵列技术作为控制模板改变传统单片机的缺点, 现在由现场可编程门阵列技术来实现数据的硬件采集[3]。首先主要是由单片机把带有任务的采集表扫描到现场可编程门阵列技术的内部任务区, 在RAM里面主要设置好采集所需要的相关寄存器, 最后再实现现场可编程门阵列技术的工作。由现场可编程门阵列技术通过一系列的时钟运算以及逻辑运算, 再按照用户的需求从而完成RAM里面的带有任务的采集表, 完成任务的采集表然后保存到数据的缓存区FIFO中, 一旦达到FIFO中的余度值后, 再有单片机进行余下的工作。 (2) 在这个系统的结构中, 通过运行现场可编程门阵列技术在很大程度上减轻了单片机的运行时间, 从而提高了数据的采集效率, 也是数据提高了可靠性以及时效性。

2 现场可编程门阵列技术的应用方案和工作原理

(1) 设计采集参数转换。对采集参数的转化以及任务调度的设计主要是建立所需要的硬件电路, 一直等采集数据的到来就立即启动AD, 从而进行数据采集工作。如下图1所示:

在这个采集参数的设计中, 对于快任务 (FastTask) 在采集时扫描时针开始工作主要取决于单片机对数据的采集, 当单片机开始启动对数据的采集时, 扫描时钟才开始运动, 这时, 扫描周期计时器以及采样周期计时器也相继开始工作[4]。此时, AD采集这一次的快任务 (FastTask) , 一旦FastTask当前的寄存器得到更新, 就立即进行采集参数的转换。将转换完的的数据采集到AD芯片之前的采集模拟电路中, 等待下次的采集时间。

快慢任务的任务选择控制图如下图2所示:

(2) 数据的采集和存储。在数据的采样和存储中, 由于ADs8325芯片的工作特点, 采集来的数据需要经过串联或者并联后转换成十六位的并行数据。在内部缓存区 (FIFO) 控制下存储到FIFO中。如下图3所示:

4 现场可编程门阵列技术的模块设计

4.1 设计控制模块

控制模块主要是由两部分组成的, 一个是control interface模块, 另一个是control enable模块, 主要的任务是负责图像的采集显示接口的同时使用, 当完成解码芯片以后, 从CONFIGURACION OK键能够输入使能信号, 启动这个模块, 然后在通过href以及odd信号来启动图像模块和显示接口的模块, 只有当href=1时就表示通过UPO传输像索数据, 当odd=0时表示的是偶数场, 当odd=1时表示的是奇数场。

4.2 设计Inter-Integrated Circuit总线配配置模块

Inter-Integrated Circuit总线配配置模块主要是通过利用I2C总线的协议对视频解码器进行配置的, 时钟率主要为20KH2。利用这个模块能够完成对视频解码器的配置, 配置模块如下图5所示:

在这个配置模块中, inicio conf表示的是启动对视频解码器进行配置, 高电平是有效的;CONFIGURACION OK表示的是视频解码芯片配置好, 完成以后能够输出一个控制信号给控制模块, 实现数据的采集;SDA和SCL主要表示的是为视频解码器相应的信号。

4.3 双口RAM的设计模块

(1) 主要功能。主要是通过单片机首先将采集任务下载到现场可编程门阵列技术的内部不缓存区中, 然后当现场可编程门阵列技术工作时, 就会按照RAM中的数据进行采集[5]。它主要的信号有W C LK, 读写使能 (W E=1写或者W E=0禁写, 以及W A D D R和RADDR等等。

(2) 双口RAM的设计模块的仿真。主要是通过调用Max+PlusI软件中的LPM模块, 选择符合设计要求的RAM来进行修改, 最后进行仿真, 如图5所示。

4.4 设计视频解码器的图像采集接口模块

图像采集模块主要是用于图像的采集并且将模拟的视频信号转换成位数字视频信号。这个模块与视频解码器的VPO数据总线以及RTS1、RTS0相连, RTS1、RTS0分别表示的是场同步信号以及行同步信号, 在这两种信号同时有效的时候, 输出的数据才是有效的图像数据, 反之, 就是消隐信号。视频信号有效主要可以分为两种场, 一种是偶数场, 一种是奇数场, 有效数据总共有576行, 在这有效数据中, 偶数场的有效数据有336-623行, 奇数场的有效数据位23-310行, 剩下的数据就是垂直控制信号。标准ITUYDU的格式如下表1所示:

4.5 设计格式转换模块

对于将摄像头采集到的图像要显示在显示器上, 必须对采集的图像数据进行格式转换, 将YDU的格式转换成RGB的格式。YDU格式的数据是两个相邻的像素公用一对的Cb和Cr分量, 因此, 在进行格式的转换时应该先解交织, 最后进行数据的转换, 主要运用的公式是:

因为在现场可编程门阵列技术中进行浮点运算比较困难。因此, 可以将上面的公式经过放大进行整数的运算, 放大后的公式如下所示:

通过上述的公式能够得到r、g、b的结果, 最后将结果都向右移动10位, 最终完成除法运算, 得到RGB的数值。

5 结语

综上所述, 通过利用现场可编程门阵列技术在数据采集系统中的应用, 能够使数据的运行速度加快, 增加了系统的灵活性, 从而提高了数据的采集效率以及增加了数据的可靠性。因此, 利用现场可编程门阵列技术进行的数据采集系统是一种比较高效的数据采集方案。

参考文献

[1]杨书杰, 郭宗莲.基于FPGA的高速数据采集系统研制[J].电力自动化设备, 2008, 28 (6) :46-49.

[2]张文爱, 姜敏, 赵磊.基于FPGA的动态轨道衡数据采集系统[J].同济大学学报 (自然科学版) , 2010, 38 (10) :40—43.

[3]安荣, 任勇峰, 李圣昆, 基于FPGA和USB2.0的数据采集系统[J].仪表技术与传感器, 2009, 3 (1) :68-71.

[4]李朋勃, 张洪平.基于USB2.0的高速数据采集系统[J].电子技术应用, 2009, 35 (10) :21—23.

可编程逻辑的阵列 篇5

摘要:通过工程实例介绍了在DSP?DigitalSignalProcessing数字信号处理?系统设计中,利用PRO-TEL99SE嵌套的AdvancedProtelPLD99硬件描述语言CUPL进行可编程逻辑器件设计的方法。

 

关键词:可编程逻辑器件(PLD);硬件描述语言(CUPL);Protel99se

1引言

在以往的DSP设计中,采用TTL、CMOS电路和专用数字电路进行设计时,器件对电路的处理功能是固定的,用户不能定义或修改其逻辑功能。但随着电子技术的发展和工程对所需功能复杂程度的进一步提高,系统将需要很多芯片,这样,在芯片之间,以及芯片和印刷电路板的布线和接点也相应增多,因而导致系统的可靠性下降和功耗增加,这样也就越来越不能满足工程实际的需要。而大规模可编程逻辑器件?PLD:ProgrammableLogicDevice?和基于芯片的EDA?ElectronicDesignAutomatic电子设计自动化?工具软件则可以解决这一问题。半导体技术的提高使ASIC?ApplicationSpecificIntegratedCircuit:特定用途集成电路?设计技术日趋完善,同时可编程逻辑器件在结构、工艺、集成度、功能、速度、灵活性等方面的改进和提高,也为高效率、高质量、灵活设计数字系统提供了可靠性。此外,CPLD?ComplexPro-grammableLogicDevice?或FPGA?FieldProgrammableArray?技术的.出现,又为DSP提供了一种崭新的方法,并使CPLD或FPGA设计的DSP系统具有良好的实用性和极强的实时性。

在Protel99se嵌套的PLD99的开发环境下,可编程逻辑器件设计可以直接面向用户要求,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成能够下载到器件的JED文件,该方法结构严谨,易于操作,其设计流程如图1所示。

2实例介绍

在某工程中,要求利用SYN0,SYN1,SYN2,SYN3,SYN4,SYN5作为同步信号进行64个通道的选择,以使64个通道在不同时刻进行工作,电路产生的发射脉冲连接在64个双晶探头上,然后将双晶探头产生的原始回波信号a1,b1,c1,d1经过AD8184?四选一开关?输出到信号板进行处理。

3设计过程

3.1确定设计目的

由于每一通道的电路都是相同的,考虑到硬件电路以及电路板容量的问题,可先将64个通道分成16组,即每块电路PCB板设计四个通道,这16组利用SYN2,SYN3,SYN4,SYN5和拨码开关S1选通,然后利用SYN0,SYN1产生选通每块电路板的四个通道的选通信号A0、A1和输出使能EN,其电路原理如图2所示,信号的先后次序及逻辑关系见图3。

3.2PLD器件的选择和输入输出的确定

由于CUPL语言与器件和生产厂家无关,根据设计目的和要求,最简单、最常用的GAL22V10可以作为目标器件。根据GAL22V10的技术资料和器件各个管脚的定义,可将同步信号SYN0,SYN1,SYN2,SYN3,SYN4,SYN5和拨码开关S1的四个管脚作为输入信号,即选择2~11为输入管脚,13脚直接接地,14~20为输出管脚,其中14~17脚用来进行通道选择,18、19脚作为AD8184的选通信号,20脚作为AD8184的输出使能,参见图2。

图3信号逻辑关系图

3.3创建包括头信息的源文件

在PLD99的开发环境下,根据上述设想及管脚分配,利用Protel99se模板和硬件描述语言CUPL定义输入输出管脚,以创建包括头信息的文本文件Tan-Shang.pld,然后用CUPL语言写出如下的中间变量逻辑式和逻辑等式?注:由于描述变量EN的乘积项过多,故将变量EN分成中间变量EN1和EN2?,并完善文本文件。经过一系列设置后便可编译原文件,编译成功后会提示Compilationsuccessful,方法如下:

/**DeclarationsandIntermediateVariables**/

EN1=!(k1&k2&k3&k4&syn2&syn3&syn4&syn5

#!k1&k2&k3&k4&!syn2&syn3&syn4&syn5

#k1&!k2&k3&k4&syn2&!syn3&syn4

&syn5

#!k1&!k2&k3&k4&!syn2&!syn3&syn4&syn5

#k1&k2&!k3&k4&syn2&syn3&!syn4&syn5

#!k1&k2&!k3&k4&!syn2&syn3&!syn4&syn5

#k1&!k2&!k3&k4&syn2&!syn3&!syn4&syn5

#!k1&!k2&!k3&k4&!syn2&!syn3&!syn4&syn5??

EN2=!(k1&k2&k3&!k4&syn2&syn3&syn4&!syn5

#!k1&k2&k3&!k4&!syn2&syn3&syn4&!syn5

#k1&!k2&k3&!k4&syn2&!syn3&syn4&!syn5

#!k1&!k2&k3&!k4&!syn2&!syn3&syn4&!syn5

#k1&k2&!k3&!k4&syn2&syn3&!syn4&!syn5

#!k1&k2&!k3&!k4&!syn2&syn3&!syn4&!syn5

#k1&!k2&!k3&!k4&syn2&!syn3&!syn4&!syn5

#!k1&!k2&!k3&!k4&!syn2&!syn3&!syn4&!syn5);/**LogicEquations**/

EN=EN1&EN2?

A1=!syn1&!EN?

A0=!syn0&!EN?

a=!A1&!A0&!EN?

b=!A1&A0&!EN?

c=A1&!A0&!EN?

d=A1&A0&!EN?

图4查看波形输出文件

3.4设置仿真向量

通过创建仿真测试文件TanShang.SI可进行仿真测试,以产生如图3的仿真波形,当编译和仿真成功后,即可得到可下载到可编程逻辑器件的JED文件。该仿真测试文件Tanshang.SI如下:

ORDER:syn5,syn4,syn3,syn2,syn1,syn0,k4,k3,k2,k1,OE,EN,A1,A0,a,b,c,d;

VECTORS:

00000000001LHHLLLH

00000100001LHLLLHL

00001000001LLHLHLL

00001100001LLLHLLL

从仿真结果很明显地可以看出:拨码开关的四位K1,K2,K3,K4分别代表00~0F(十六进制码)这16组,而每组的四个通道的输出为a,b,c,d;由于SYN0,SYN1,SYN2,SYN3,SYN4,SYN5可组成00~3F(十六进制码)共64个通道,从而实现了利用SYN0,SYN1,SYN2,SYN3,SYN4,SYN5分时选通64个通道回波信号的功能。由于EN始终为低电平信号,因此保证了AD8184的选通信号能够起作用。

4结论

可编程逻辑的阵列 篇6

关键词:阵列孔,数控加工,编程,循环

阵列孔是生产中机械零件的常见结构。孔的分布形式主要有圆盘阵列、三角阵列、矩形阵列、菱

1 阵列孔消除传动间隙工艺分析

阵列孔的数控加工一般在数控铣床或加工中心上完成。因为零件结构不同, 孔的排列规则也不同, 但一般具有规则的尺寸分布。提高阵列孔的加工精度很大程度上取决于各孔之间的相对位置精度。对于数控机床而言, 首要应该考虑消除反向间隙对孔位置加工的影响。数控机床虽然在机械结构上最大限度地提高了精度, 数控系统也具备误差补偿的功能, 但是机床的传动中不可避免地存在间隙和磨损后的间隙增大, 如果在编程时不考虑丝杠、齿轮传动中的误差和反向运动中间隙的影响, 将导致孔的相互位置加工精度的降低。如加工图2零件上的孔时加工路线可采用两种方案。

方案一如图2 (a) 所示, 按照孔的实际位置顺序加工, 由于孔4与孔123的定位方向相反, 刀具由孔3的位置移动到孔4的位置时滚珠丝杠旋转方向变更, X轴的反向间隙会使定位误差增大, 从而影响孔4与其他孔的位置精度。

方案二如图2 (b) 所示, 在加工完孔3后刀具沿X反方向移动越过孔4到达A点, 然后再返回孔4位置来加工孔4, 这样孔4的定位方向与其他孔的定位方向一致, 滚珠丝杠旋转方向在加工各孔时相同, 从而减少了传动间隙对加工精度的影响, 保证了4个孔的位置精度。

2 孔加工循环的固定动作

多数数控系统具有孔加工固定循环功能, 主要用于钻孔、镗孔、攻螺纹等。通常使用一个程序段就可以完成一个孔加工的全部动作。孔加工的动作不变时程序中所有模态的数据可以不写, 因此大大简化了程序。指令编程的使用技巧因系统而不同, 但是其固定循环的动作基本相同。主要有6个动作组成: (1) 孔加工位置快速定位; (2) 快进到起始平面R点; (3) 孔加工; (4) 孔底的动作; (5) 返回到R点; (6) 快速返回到初始点。图3中表示了固定循环的动作, 图中虚线表示快速进给, 实线表示切削进给。几个平面的定义非常重要, 编程者必须熟悉。一般系统初始平面是为安全下刀而规定的平面。使用G98使刀具返回到初始平面上的初始点;安全平面R又叫做R参考平面, 这个平面作为刀具下刀时由快进转为工进的高度参考平面, 一般可取离工件表面2~5mm。使用G99时刀具将返回到该平面上的R点。

对于孔底平面而言, 加工盲孔时是孔底的Z轴高度, 加工通孔时一般刀具要伸出工件底平面一段距离, 主要保证全部孔都加工到尺寸。钻削加工时还要考虑钻头的钻尖对孔深的影响。

3 常用数控系统孔加工循环编程方法

FANUC和FAGOR系统是目前应用较广的两种数控系统。对于FANUC-0i-MC系统的孔循环格式为:G90/

主要参数含义如下:G73~G89指孔加工方式如钻孔加工、高速深孔钻加工、镗孔加工等;X, Y:孔的位置坐标;Z:指自R点到孔底平面的距离;R:安全面 (R面) 的坐标增量方式时为起始点到R面的增量距离, 在绝对方式时为R面的绝对坐标;Q:每次切削深度;P:孔底的暂停时间;K:规定重复加工次数。FANUC系统的固定循环功能一般结合子程序方式进行编程。如图4板材从下向上成排加工深度10mm的阵列孔。程序如下:

FAGOR是西班牙的先进数控系统。它的格式:G81~G86G99 G00 G91 X~Y~Z~I~K~F~S~N~。其中编程者必须明确I指安全平面到孔底的矢量方向尺寸;Z指起始平面到安全平面的矢量方向尺寸;N是执行次数。其它代码和FANUC相同。该系统结合跳转指令G25进行。G25指的是从程序某句到后面的某句连续执行的次数。程序和主要说明如下:

4 结语

编写阵列孔的数控加工程序时首先要对孔的分布情况进行分析, 针对不同阵列进行灵活处理编程。基本思路是从一个方向加工一排后返回顺次进行成排加工。如果孔的个数各排不同只能单排编程, 孔个数各排相同采用子程序调用或跳转加工编程。

参考文献

[1]张超英, 罗学科.数控机床加工工艺、编程及操作实训[M].北京:高等教育出版社, 2003.

[2]周虹.数控原理与编程实训[M].北京:人民邮电出版社, 2005.

可编程逻辑的阵列 篇7

实时视频处理技术广泛应用于高速公路, 治安卡口, 十字路口等监控管理领域[1], 对自动化和智能管理有着重要的作用, 视频监控技术也正向智能化发展[2]。随着科学技术的不断发展, 产品的更新换代也在加速, 对监控装置的实时处理的要求也越来越高, 针对各种需求, 一些关键技术也相继问世[3]。

目前普遍使用的监控装置彩色显示, 能够清楚地显示监控区域并保存数据, 但不能对画面进行实时处理。如发生突发事件只能通过事后观看录像来解决问题, 这必然会带来一些实质性的后果, 针对以上问题设计这种实时视频处理装置。该装置不仅能够实时显示, 而且能够实时处理突发事件, 特别是这种无级缩放技术可对感兴趣的区域进行无级缩放处理, 并且可以任意指定感兴趣的区域和缩放后的显示区域。

目前一些监控场合的监控系统并不完善, 通常只能记录概况而得不到所需的细节。针对这一弊端, 该装置将视频叠加技术应用于上述场合, 成功升级了监控系统。该装置不仅能够正常显示概况, 而且可以将所需要的细节通过另一台摄像机拍摄后叠加显示在同一个监视器上, 即一个显示器可以同时显示两路视频信号, 一路正常输出, 另一路缩小一定比例后显示在某个区域, 并且可以切换两路输入信号。

1 原 理

实时视频处理装置的结构框图如图1所示。实时视频处理装置主要构成部分为视频解码芯片, 视频编码芯片, 可编程逻辑器件, RAM存储器, 控制器, 电源模块和一些逻辑芯片。其中控制器通过I2C总线对视频编码芯片和解码芯片进行初始化以确定其工作状态。视频解码芯片将CVBS格式的模拟视频信号转换为YUV 4∶2∶2格式的数字视频信号并送至可编程逻辑器件, 可编程逻辑器件通过外部按键信息来实现无级缩放或者视频叠加功能。对活动视频进行无级缩放处理时, 可编程逻辑器件将需要处理部分的数字信号写入RAM存储器并根据缩放倍数从RAM存储器中重复读取并抽样, 再与原画面叠加;对两路视频信号进行视频叠加处理时, 可编程逻辑器件控制存储器对其中一路视频信号进行抽样, 1/3抽样过程如图2所示。再与另一路视频信号进行叠加[4]。处理后的数字视频信号通过视频编码芯片转化为CVBS格式的模拟视频信号并输出。电源模块负责提供多路电源信号。

活动视频的无级缩放, 即有理数倍缩放, 是指可将感兴趣区域的大小任意倍数地缩放[5]。如对图像进行M/N倍缩放, M, N都为整数, 先做M倍放大, 再做1/N抽样。假设感兴趣区域大小为80×60, 缩放倍数为3/2, 则先经过3倍放大, 即先将每个点重复读取三次再对每一行读取三次, 然后再对行和列分别做1/2抽样, 这样输出图像的大小为120×90, YUV 4∶2∶2格式数据的缩放过程示意图见图3, 放大两倍时序仿真图如图4所示。

视频解码芯片采用Philips公司的SAA7113, 它可以切换输入4路CVBS视频信号或2路S-Video视频信号, 输出为8位“VPO”总线, 数据格式为标准的ITU 656, YUV 4∶2∶2格式。SAA7113内部具有一系列寄存器, 可以配置为不同的参数, 对色度、亮度等的控制通过对相应寄存器改写不同的值, 寄存器的读写通过I2C总线进行。该芯片初始化后将视频信号转化为数字视频流、行场同步信号、视频格式信号 (RTCO) 和点时钟信号[6]。

视频编码芯片采用Philips公司的SAA7121。SAA7121内部具有一系列寄存器, 可以配置为不同的参数, 所有的控制都是通过对相应寄存器改写不同的值, 寄存器的读写需要通过I2C总线进行。SAA7121通过8位数据总线接收数字视频数据, 再由内置编码器将数字亮度信号与色度信号同时编码成模拟的CVBS和S-Video视频信号。

可编程逻辑器件采用Altera公司的CPLD (EPM1270) , EPM1270共有1 270个宏单元。EPM1270通过读取外部按键信息来确定实现无级缩放或视频叠加功能, 上述两种功能均通过CPLD控制RAM存储器实现。整个装置运行需要520个宏单元, 占EPM1270的41%, 考虑到二次开发时功能扩展后的额外开销, 故选用此款CPLD[7]。

实时视频处理装置不仅能够清晰地实时显示监控区域, 而且能够实时处理突发事件, 总延时小于20 ns, 实时性好。特别是这种无级缩放技术能对感兴趣区域进行实时无级缩放处理, 并且可以任意指定感兴趣区域和缩放后显示区域, 平滑效果好。实时视频处理装置还可将两路视频信号叠加显示在一个显示器上, 并且可以切换两路信号。图5是本设备实际效果图。

2 结 语

实时视频处理技术一方面广泛应用于高速公路, 治安卡口, 十字路口等监控管理领域, 对自动化和智能管理有着重要的作用;另一方面, 随着机顶盒的问世和数字电视的推广, 实时视频处理技术在该领域中也扮演了相当重要的角色。实时视频处理技术还可与计算机, 因特网技术相结合, 能够满足远程监控, 远程医疗等要求, 使其应用更加广泛, 因而具有广阔的发展前景和巨大的市场容量[8]。

传统的监控装置功能单一, 只能实时显示而不能实时处理, 如发生突发事件只能通过事后处理视频录像来解决问题。实施视频处理装置解决了以上问题, 视频图像局部实时无级缩放技术可对感兴趣的区域实时地进行无级缩放处理并显示, 并且可以通过外部控制来指定感兴趣区域和缩放后的显示区域, 这对反恐、刑侦、安防工作等都带来了极大的帮助。

数字电视在全国范围内的推广, 促进了数字视频处理技术的进步, 实时视频处理装置可以实时地对电视节目的局部进行无级缩放处理, 用户可以任意指定感兴趣的区域进行细节观察, 使得电视更加人性化, 该技术通过独立外部设备或者内嵌在电视机控制电路中实现。

实时视频处理装置能够较好的升级现有的监控系统, 并且已经申报国家发明专利, 其中一项已经获得国家发明专利, 专利公开号: CN101500093。

摘要:针对目前视频监控的不足之处, 提出以可编程逻辑器件为核心, 可对活动视频进行无级缩放和视频叠加的一种实时视频处理装置。在详细阐述了对视频信号进行无级缩放和视频叠加的实现方法后给出了实验结果, 这些方法不仅在视频监控领域有很好的应用价值, 在数字电视领域也有很好的应用前景。

关键词:无级缩放,视频叠加,实时处理,FPGA

参考文献

[1]樊启宏.视频监控系统的发展及其实际应用[J].水利水电快报, 2008, 29 (5) :29-31.

[2]张季.未来视频监控系统的走向——智能化视频监控系统[J].中国安防, 2008 (11) :58-61.

[3]张睿萍.视频监控系统关键技术研究[J].兵工自动化, 2008, 27 (3) :66-68.

[4]袁杰.采用大规模专用OSDC芯片的数字视频混合器研究[J].南京大学学报:自然科学版, 2003, 39 (4) :510-516.

[5]Tsai F S.Zoom Optics Design and Optimization with DigitalImage Process[A].Novel Optical Systems Design and Opti-mization[C].2008.

[6]毛文安, 张海峰.视频图像处理系统CPLD控制和EDMA数据搬移的实现[J].现代电子技术, 2008, 31 (4) :139-141.

[7]Lawal N, Thornberg B, O′Nils M.Address Generation forFPGA RAMS for Efficient Implementation of Real-timeVideo Processing Systems[A].International Conference onField Programmable Logic and Applications[C].2005:136-141.

可编程逻辑的阵列 篇8

为了确保产品符合最新的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.

可编程逻辑的阵列 篇9

目前三大可编程逻辑器件厂商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环境下一样的仿真结果 (按照正弦规律变化的离散数值序列) 。

可编程逻辑的阵列 篇10

各种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.

上一篇:语文练习下一篇:民办公助