当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 在常规FPGA中设计了基于LUT的异步状态保持单元,实现了全局异步局部同步系统的接口电路、时钟暂停电路,进一步完成四相单轨握手协议。基于Quartus软件的逻辑锁定技术,采用Verilog HDL进行行为描述,构建了无冒险C单元库。在Altera CycloneⅡ EP2C35F672C6器件上,完成了GALS系统的时序仿真,证明了四相单轨握手的正确性。
关键词: 四相单轨握手协议;FPGA;Muller C;GALS;无冒险

异步电路所具有的低功耗、低电磁噪声辐射、高速等突出特点,使其逐渐成为当前设计的焦点。现有异步电路的实现方法往往通过定制的VLSI结构完成,或者设计独特的异步FPGA结构来实现,而现有基于常规FPGA设计的异步电路,往往难于解决其中的冒险、延迟等问题。
全局异步局部同步[1]GALS(Globally Asynchronous Locally Synchronous)系统,结合了同步设计和异步设计的优点,在解决多时钟域问题和模块更新的复用性等方面有巨大优势,其特点是在各同步模块需要处理时才工作,其余时间可以处于暂停状态,不用引入太多异步单元,较易于使用常规FPGA实现,特别是在现有SoC[2]系统中多同步模块异步互联方面有着突出优势,且其具有低功耗、高吞吐量的特点。
参考文献[3]描述的是一种全局异步局部同步的专用FPGA(GAPLA),其内部结构通过同步逻辑模块实现数据计算,在逻辑模块间由同步、异步互换接口完成异步互联,其关键技术是同步、异步互换接口和时钟暂停(Pausible clocking)电路结构,而在常规FPGA中不包含这些结构。参考文献[4]在常规FPGA实现GALS系统,是通过信号状态转换图(STG)的方法设计接口电路,利用Petrify软件实现的一种GALS系统异步封装电路,其将接口模块同步分解成逻辑门电路,容易产生冒险。参考文献[5]则通过使用带复位端的D触发器及延迟单元来完成接口电路的设计,其接口中的延迟单元要求是FPGA内部的标准单元,而在常规FPGA中不包含此标准单元。
本文基于常规FPGA中大量的LUT结构,通过Quartus软件的逻辑锁定[6]技术将设计的C单元锁定在一定区域,保证了C单元的无冒险性,同时建立标准C单元库。使用C单元实现了GALS系统所需要的延迟电路、接口电路、时钟暂停[7]电路。利用状态机设计的计数器作为同步模块,基于四相单轨握手协议[8],完成两同步模块的异步互联。
1 点对点GALS系统
GALS系统从局部来看各同步模块独立设计;从全局来看,各模块彼此时钟独立,以各自工作频率独立运行,其互联通过设计的异步接口完成。且各同步模块时钟具有可暂停性,保证不需要数据处理时时钟不运行的效果,具有低功耗的特点。点对点GALS系统是采用单点同步模块对应单点通信的方式实现的异步电路。整个结构由三部分组成:局部同步区域、握手区域、时钟可暂停区域。在同步区域完成的是同步模块的设计,其同步模块可更新复用;握手区域通过同步、异步互换接口及锁存器完成,由两边同步模块发送的WR、RD信号来触发握手区域进行握手;时钟可暂停区域由内部产生的时钟及握手区域输出的暂停信号(STRETCH)进行时钟的调整,确保系统的低功耗运行。其组成框图如图1所示。

在点对点GALS系统中,设计的重点是接口电路及局部时钟可暂停模块,由于不需要引入外部时钟,所以在全局复位后,时钟可暂停模块就应当产生时钟信号,时钟信号的频率根据各同步模块需求情况设定。在同步模块的设计中,其既要有数据接收模块和数据处理模块,又要产生上级的接收信号(RD)和下级的数据处理完毕信号(WR),以确保电路接连不断地工作。
2 状态保持单元的设计
异步电路中为了避免冒险现象的发生,常需要设计一些适合异步电路的状态保持单元,通常难于设计的就是无冒险的Muller C单元,且其为异步电路的重要组成部分。Muller C标准单元(c_std)的基本功能为:当输入信号A、B同时为“1”时,输出S为“1”;当输入信号A、B同时为“0”时,输出S为“0”;当输入信号A、B处于其他状态时,输出保持原信号。从而当输出信号为“1”时,就能指示输入信号都为“1”。输出为“0”的情况同理。由此可以看出其信号的跳变能够指示或确认其他信号的跳变情况,这样就能够确保电路避免冒险现象的发生。而通过逻辑门设计的C单元,常因内部连线延迟以及门延迟的特性,使得其映射到FPGA内部时会出现冒险现象,因而只有通过建立查找表结构的方式设计C单元,才可使得映射到常规FPGA时避免冒险发生。
在图1的GALS系统中使用到的4种标准的C单元,采用Verilog HDL语言编写,通过编译生成.QSF文件,利用Logic-Lock技术生成网表文件,通过这三个文件即可建立常规FPGA可调用的无冒险C单元库。图2描述的是4种C单元库文件符号及c_std相应的Verilog描述。在C单元库中的c_clr_l单元具有置0功能,而c_clr_h具有置1功能。表1列出4种C单元的lut_mask值。

参考文献[9]使用的是门电路描述的C单元,在EDA软件对其进行综合编译时,容易受到其余同步电路的影响而产生冒险。本文对基于LUT实现的C单元,需要将输出反馈回输入的一端,同时使用Quartus软件的逻辑锁定(Logic-Lock)方式,将C单元综合、布局于一定的区域内,可以避免在与其余电路综合时发生冒险,具有较高实用价值。
3 接口电路及时钟暂停电路的实现
四相单轨握手协议,广泛应用于时序假设中,通常可以使电路获得最好的性能。而在控制电路设计中,最简单的四相单轨握手电路通过一个C门和一个非门组成,即异步电路中常用的Muller流水线[10]。本文采用手工设计方式实现的握手接口电路就是基于Muller流水线的思想,如图3所示。
图3(a)实现的wport接口电路,在全局CLEAR信号为高电平时对全局电路进行复位,其输出REQ、STRETCH信号全为低电平。局部同步模块产生一个WR信号(即同步模块处理完毕)时,通过延迟取反相“与”后输出一个脉冲。当ACK信号为低电平时,左边的C单元输出为“1”,即其暂停信号(STRETCH)置为“1”,停止同步模块时钟运行,此时由于右边的C单元的输入都为“1”,则发出请求信号,完成一次请求;当ACK信号为高电平时,由于右边C单元的置0位为“1”,从而停止请求,实现了一次四相单轨通信。
图3(b)中的rport接口电路,在同步模块发出处理完成信号时,其左边的C单元置1位输入是由RD产生的脉冲信号,从而其输出STRETCH为“1”,即要求同步模块时钟停止,在其请求信号REQ为“1”时,ACK输出为“1”;当REQ为低电位时,由于左边C单元输出为低电位,则ACK输出为“0”,实现了一次四相单轨通信。

结合两接口电路的四相单轨通信则可实现GALS系统的模块互联。对接口电路延迟单元的设计则使用单个标准C单元c_std实现,通过时序约束其延迟量可达到5.125 ns,对整个电路的设计具有较好的延迟效果,且无冒险现象。
在GALS系统中,有些同步模块可能没有自带的时钟信号,常需要系统内部产生特定频率范围的时钟信号,所以可暂停时钟的设计是必须的。实现方法是基于一个C单元及一个延迟单元,以及可随意调节的分频器组成,通过C单元设计的时钟电路可产生频率高的时钟。当CLEAR信号置高时,对电路清0,经过延迟取反后,C单元的输入为1,则输出即为1,以此类推,则产生时钟信号。局部时钟模块的实现如图4所示。通过时序仿真,CLK在未加分频器的情况下可高达500 MHz以上。由于超过目前FPGA的最高时钟,从而其需要通过分频来达到设计要求。此时钟电路根据同步模块需求,频率可进行任意调节,具有较大实用性。


4 GALS系统实现及测试
为了测试由FPGA实现的四相单轨握手协议电路的性能,通过状态机设计无冒险的计数器作为GALS系统两端的同步电路,采用Altera公司CycloneⅡEP2C35F6-
72C6器件作为测试器件,通过逻辑锁定技术将标准C单元模块添加进设计中,通过建立wport、rport的父区域(Parent Region)锁定模块,将子区域(Child Region)锁定的C单元添加进父区域锁定模块,保证了各自时序的独立性,确保了电路功能的实现。其时序仿真结果如图5所示。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着社会经济的不断发展进步,科技的不断飞升,在新时代的背景下网络通信已经成了人们最为常 用的科学技术产品之一,由于生活水平得到了提高人们在日常的追求上也发生着变化,而对于通信 的产品可以说是有着日新月异的变化,人们在网络...

关键字: 通信 协议 控制

据路透社等海外媒体报道,美国商务部官员Wilbur Ross在4月16日透露,因未履行和解协定中的部分协议,美国商务部将禁止美国企业向中兴通讯销售元器件,时间有可能长达7年。该消息公布之后,国内部分产业人士认为是假消息,...

关键字: 协议 元器件 中兴通讯

显然这是目前存在的现状,蓝牙Mesh、Zigbee等一些标准共存于物联网智能家居江湖,但又谁也取代不了谁。正如周巍所说:“没有任何一个标准能在一个应用层垄断,尽管小米阿里在主推蓝牙Mesh,华为在推Zigbee,但未来迟...

关键字: 物联网 协议 通讯

TCP 是基于连接的数据流的协议,先建立连接再进行通信,而且在通信过程中会检查数据是否发送成功。优点就是保证数据的完整性和准确性,缺点就是效率较低。

关键字: TCP 数据流 协议

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

DFP 是什么? 稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol), DF 也可以理解为 Datas Fo...

关键字: 协议 转发数据 应用实例 中继 网关

针对近年来网关在4g,5g方面的应用的一些介绍。

关键字: 无线物联网 协议

在数据通信网中,按一种链路协议的技术要求连接两个或多个数据站的电信设施,称为数据链路,简称数据链。数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路...

关键字: 数据链路 物理线路 协议

分组数据协议是移动通信用户在发送和接收分组数据时应用的协议,内容包括发送和接收数据双方用户的IP地址以及服务质量参数的规定值。

关键字: 分组数据 IP 协议

IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术...

关键字: IP TCP 协议
关闭
关闭