CN113570050A - 一种双向异步同步先进先出适配器 - Google Patents
一种双向异步同步先进先出适配器 Download PDFInfo
- Publication number
- CN113570050A CN113570050A CN202110887132.0A CN202110887132A CN113570050A CN 113570050 A CN113570050 A CN 113570050A CN 202110887132 A CN202110887132 A CN 202110887132A CN 113570050 A CN113570050 A CN 113570050A
- Authority
- CN
- China
- Prior art keywords
- synchronous
- asynchronous
- signal
- token
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种双向异步同步先进先出适配器。适配器用于连接异步时钟芯片和同步时钟芯片,适配器包括主模块、或门、与门等,各个主模块在适配器内并列布置,各个主模块的端口经或门、与门后分别与异步时钟芯片、同步时钟芯片连接,每个时刻只有一个主模块处于工作状态,各个主模块之间通过令牌端口串接,实现各个主模块依次工作;每个主模块包括四种不同功能的子模块和两个FIFO锁存器。本发明可从标准单元库合成,适配器模块的输入输出的大小和数据长度是可配置的,实现了神经形态类脑芯片和传统数字芯片的异构集成,从而实现了紧凑、高效和快速的设计。
Description
技术领域
本发明提出了一种芯片间的适配器连接方案,尤其是提出了一种双向异步同步(A-S)先进先出(FIFO)适配器。
背景技术
人工智能的快速发展促进着神经形态类脑芯片的快速发展,这些芯片集成了神经生物学系统的各种功能,具有很高的能效。
目前,神经形态类脑芯片和传统数字芯片之间是以印刷电路板(PCB)方式集成的,与先进的异构集成技术相比有许多缺点。神经形态类脑芯片与传统数字芯片例如ASIC芯片(Application Specific Integrated Circuit,特定用途集成电路)之间通过外部输入/输出接口模块(如通用串行USB接口),来实现和主机或其他芯片之间的通信。
而应用异构集成技术可以带来更多特性,可以将多个模块化芯片集成到单个封装或者硅片上,获得高性能的片上互连,从而提高性能和优化功耗。基于插入器(interposer)的芯片设计允许分块设计的异构集成,即每个块在不同的技术和工艺环境下分别设计,并通过插入器与其他块集成。
神经形态类脑芯片本质上是异步的。这与传统的数字同步电路不同,电子设计自动化(EDA,Electronic Design Automation)工具并不能很好地支持异步电路的综合和布局。这对设计混合异步同步电路系统,如神经形态类脑芯片与传统数字芯片的异构集成系统提出了很大的挑战。
发明内容
为了实现目标检测、语音控制、目标跟踪、避障和平衡控制等实时任务,神经形态类脑芯片与传统数字芯片,例如特定应用的集成电路(ASIC,Application SpecificIntegrated Circuit)芯片的集成是必然的。与传统的时间同步芯片相比,神经形态类脑芯片本质上是异步的。在这里,本发明提出了一个双向的异步-同步(A-S,Asynchronous toSynchronous)先进先出(FIFO,Fist In Fist Out)适配器模块,用于神经形态类脑芯片和传统数字芯片之间的接口。
本发明设计采用先进先出(FIFO)电路来设计异步电路(神经形态类脑芯片)和同步电路(传统数字芯片)之间的双向适配器,可以帮助神经形态类脑芯片和传统数字芯片实现异构集成结构。因此,将被用于所有的神经形态类脑计算和人工智能应用中。
本发明所采用的技术方案是:
所述的适配器用于连接异步时钟芯片和同步时钟芯片;本发明用于连接神经形态类脑芯片和传统数字芯片,实现两种芯片的连接。神经形态类脑芯片是模拟生物大闹,以实现神经元工作机制为基础的新型异步时钟芯片;而传统数字芯片是以主要以数字电路设计为基础,CMOS工艺实现的同步时钟芯片。
所述的适配器主要由多个主模块、或门、与门等门电路组成,各个主模块在适配器内并列布置,各个主模块的端口经或门、与门后分别与异步时钟芯片、同步时钟芯片连接,每个时刻只有一个主模块处于工作状态,各个主模块之间通过令牌端口串接,实现各个主模块依次工作。
在异步侧:
各个主模块的异步侧数据传输输入端口spk_data_in均共同连接到一起作为适配器的异步侧数据传输输入端口spk_data_in并连接到异步时钟芯片,各个主模块的异步侧数据传输输出端口spk_data_out分别连接到第二或门的各个输入端,第二或门的输出端作为适配器的异步侧数据传输输入端口spk_data_out并连接到异步时钟芯片;各个主模块的脉冲确认输出信号端口ack_spk_out分别连接到第一或门的各个输入端,第一或门的输出端作为适配器的脉冲确认输出信号端口ack_spk_out并连接到异步时钟芯片;各个主模块的脉冲请求输入信号端口req_spk_in均连接到一起作为适配器的脉冲请求输入信号端口req_spk_in并连接到异步时钟芯片;
在同步侧:
各个主模块的同步侧数据传输输入端口syn_data_in均共同连接到一起作为适配器的同步侧数据传输输入端口syn_data_in并连接到同步时钟芯片,各个主模块的同步侧数据传输输出端口syn_data_out分别连接到第三或门的各个输入端,第三或门的输出端作为适配器的同步侧数据传输输入端口syn_data_out并连接到同步时钟芯片;各个主模块的时钟信号端口clk均连接到共同连接到一起作为适配器的时钟信号端口clk并连接到同步时钟芯片;各个主模块的同步系统使能输入信号端口enb_syn_in均共同连接到第四或门后再连接到第一与门的输出端,第一与门的两个输入端分别连接第四或门的输出端和适配器的同步侧请求输入信号req_syn_in;各个主模块的同步侧读写使能信号端口write_read_enb分别连接到第四或门的各个输入端,第四或门的输出端作为适配器的有效数据信号data_v并连接到同步时钟芯片;
各个主模块设有异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in、异步侧令牌交换输出端口spk_token_out、同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in、同步侧令牌交换输出端口syn_token_out的多个令牌端口;各个主模块之间通过令牌端口循环连接形成闭环,相邻两个主模块中,当前主模块的异步侧令牌交换输出端口spk_token_out分别和下一个主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,当前主模块的同步侧令牌交换输出端口syn_token_out分别和下一个主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接。
每个主模块主要由四种不同功能的子模块和两个FIFO锁存器构成,四种子模块分别为异步接口模块、同步接口模块、异步到同步满-空控制模块和同步到异步满-空控制模块,两个FIFO锁存器分别为异步到同步FIFO锁存器和同步到异步FIFO锁存器;
异步到同步FIFO锁存器:异步到同步FIFO锁存器的缓存输入端和主模块的异步侧数据传输输入端口spk_data_in连接,缓存输出端连接到第二与门的一个输入端,第二与门的另一个输入端和主模块的同步侧输出方令牌输入端口syn_get_token_in连接,第二与门的输出端和主模块的同步侧数据传输输出端口syn_data_out连接,异步到同步FIFO锁存器的时钟控制端和异步接口模块的读写信号输出端连接;
同步到异步FIFO锁存器:同步到异步FIFO锁存器的缓存输入端和主模块的同步侧数据传输输入端口syn_data_in连接,缓存输出端连接到第三与门的一个输入端,第三与门的另一个输入端和主模块的异步侧输出方令牌输入端口spk_get_token_in连接,第三与门的输出端和主模块的异步侧数据传输输出端口spk_data_out连接,同步到异步FIFO锁存器的时钟控制端和同步接口模块的读写信号输出端连接;
异步接口模块的读写使能输出端口和主模块的脉冲确认输出信号端口ack_spk_out连接,异步接口模块的脉冲请求输入端口和主模块的脉冲请求输入信号端口req_spk_in连接;异步接口模块的满空信号输入端分别和异步到同步满-空控制模块、同步到异步满-空控制模块的满空信号输出端连接,异步接口模块的读写信号输出端分别和异步到同步满-空控制模块、同步到异步满-空控制模块的读写信号反馈端连接;异步接口模块的令牌输入端口分别和主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,异步接口模块的令牌输出端口和主模块的异步侧令牌交换输出端口spk_token_out连接;
同步接口模块的读写使能输出端口和主模块的同步系统读写信号端口write_read_enb连接,同步接口模块的同步系统使能输入端口和主模块的同步系统使能输入信号端口enb_syn_in连接;同步接口模块的满空信号输入端分别和异步到同步满-空控制模块、同步到异步满-空控制模块的满空信号输出端连接,同步接口模块的读写信号输出端分别和异步到同步满-空控制模块、同步到异步满-空控制模块的读写信号反馈端连接;同步接口模块的令牌输入端口分别和主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接,同步接口模块的令牌输出端口和主模块的同步侧令牌交换输出端口syn_token_out连接。
所述的同步接口模块,异步到同步满-空控制模块和同步到异步满-空控制模块均设有时钟输入端口,同步接口模块,异步到同步满-空控制模块和同步到异步满-空控制模块的时钟输入端口均和主模块的时钟信号端口clk的连接。
所述的异步接口模块包括异步D触发器和两个异步与门,异步与门的第一个输入端以及异步D触发器的缓存输入端均与异步接口模块的令牌输入端口连接,异步与门的第二个输入端和异步接口模块的满空信号输入端连接,异步与门的第三个输入端分别和异步接口模块的同步系统使能输入端口、异步D触发器的时钟信号端连接,异步与门的输出端分别和异步接口模块的读写使能输出端口和读写信号输出端连接,异步D触发器的缓存输出端和异步接口模块的令牌输出端口连接;
所述的同步接口模块包括同步D触发器和两个同步与门,第一同步与门和第二同步与门的一个输入端以及同步D触发器的缓存输入端均与同步接口模块的令牌输入端口连接,第二同步与门的另一个输入端和同步接口模块的满空信号输入端连接,第二同步与门的输出端和同步接口模块的读写使能输出端口连接,第一同步与门的另一个输入端和同步接口模块的同步系统使能输入端口连接,第一同步与门的输出端和同步接口模块的读写信号输出端连接,第一同步与门的另一个输入端和同步D触发器的缓存输入端口连接,同步D触发器的缓存输出端和同步接口模块的令牌输出端口连接。
当异步时钟芯片向同步时钟芯片传输数据时:
同步到异步满-空控制模块和异步到同步FIFO锁存器不工作;
异步时钟芯片写入数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送写入脉冲请求输入信号到异步接口模块的同步系统使能输入端口,进而输入到异步与门中,异步到同步满-空控制模块实时发送满空信号经异步接口模块的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输入方令牌输入端口spk_put_token_in输入后经异步接口模块的令牌输入端口输入到异步接口模块的异步与门和异步D触发器中,异步与门对输入的令牌信号、满空信号、存储写入请求输入信号进行与判断,若其中令牌信号和存储写入请求输入信号均为是、满空信号为空时则从异步接口模块的读写使能输出端口输出为是的写入脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片;
异步时钟芯片接收到写入脉冲确认输出信号后,发出数据经主模块的异步侧数据传输输入端口spk_data_in发送到异步到同步FIFO锁存器中,同时,写入脉冲确认输出信号从异步接口模块的读写信号输出端发送到异步到同步满-空控制模块和异步到同步FIFO锁存器中,异步到同步FIFO锁存器接收到写入脉冲确认输出信号为是时,则接收来自异步时钟芯片的数据进行存储;异步到同步满-空控制模块接收到写入脉冲确认输出信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;异步接口模块的异步FIFO锁存器接收令牌信号后,当脉冲请求输入信号req_spk_in变为是时,再令牌信号从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块;
同步时钟芯片读取数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送读取请求输入信号到同步接口模块的同步系统使能输入端口,进而输入到第二同步与门中,异步到同步满-空控制模块实时发送满空信号经同步接口模块的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输出方令牌输入端口syn_get_token_in输入后经同步接口模块的令牌输入端口输入到同步接口模块的第一同步与门、第二同步与门、同步FIFO锁存器以及第二与门中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为满时则从同步接口模块的读写使能输出端口输出为是的同步侧读取确认输出信号经主模块的同步侧读取使能信号端口write_read_enb返回到同步时钟芯片;第二同步与门中对令牌信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是时则从同步接口模块的读写信号输出端输出为是的读取确认信号到异步到同步满-空控制模块;
同时,第二与门根据从异步到同步FIFO锁存器过来的数据有无和令牌信号进行判断,若令牌信号为是、且异步到同步FIFO锁存器过来的数据为有时,则处理发出异步到同步FIFO锁存器过来的数据到同步侧数据传输输出端口syn_data_out,同步时钟芯片接收到读取确认输出信号后,经主模块的同步侧数据传输输出端口syn_data_out接收来自异步到同步FIFO锁存器的缓存输出端发出的数据;异步到同步满-空控制模块接收到读取确认信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;同步接口模块的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
当同步时钟芯片向异步时钟芯片传输数据时:
异步到同步满-空控制模块和异步到同步FIFO锁存器不工作;
同步时钟芯片写入数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送写入请求输入信号到同步接口模块的同步系统使能输入端口,进而输入到第二同步与门中,同步到异步满-空控制模块实时发送满空信号经同步接口模块的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输入方令牌输入端口syn_put_token_in输入后经同步接口模块的令牌输入端口输入到同步接口模块的第一同步与门、第二同步与门和同步D触发器中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为空时则从同步接口模块的读写使能输出端口输出为是的写入确认输出信号经主模块的同步系统读写信号端口write_read_enb返回到同步时钟芯片;第二同步与门中对令牌信号、写入请求输入信号进行与判断,若其中令牌信号和写入请求输入信号均为是时则从同步接口模块的读写信号输出端输出为是的读取确认信号到同步到异步满-空控制模块和同步到异步FIFO锁存器中;
同步到异步FIFO锁存器接收到读取确认信号为是时,则接收来自同步时钟芯片的数据进行存储;同步时钟芯片接收到为是的读取确认输出信号后,发出数据经主模块的同步侧数据传输输入端口syn_data_in发送到同步到异步FIFO锁存器中存储;
同步到异步满-空控制模块接收到读取确认信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;同步接口模块的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
异步时钟芯片读取数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送读取脉冲请求输入信号到异步接口模块的同步系统使能输入端口,进而输入到异步与门中,同步到异步满-空控制模块实时发送满空信号经异步接口模块的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输出方令牌输入端口spk_get_token_in输入后经异步接口模块的令牌输入端口输入到异步接口模块的异步与门、异步D触发器以及第三与门中,异步与门对输入的令牌信号、满空信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是、满空信号为满时则从异步接口模块的读写使能输出端口输出为是的读取脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片;
同时,第三与门根据从同步到异步FIFO锁存器过来的数据和令牌信号进行判断,若令牌信号为是、且同步到异步FIFO锁存器过来的数据为有时,则处理发出同步到异步FIFO锁存器过来的数据到异步侧数据传输输出端口spk_data_out,异步时钟芯片接收到读取脉冲确认输出信号后,经主模块的异步侧数据传输输出端口spk_data_out接收来自同步到异步FIFO锁存器的缓存输出端发出的数据;同时,读取脉冲确认输出信号从异步接口模块的读写信号输出端发送到同步到异步满-空控制模块,同步到异步满-空控制模块接收到读取脉冲确认输出信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;异步接口模块的异步FIFO锁存器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块。
本发明中采用异步对称持久脉冲协议(asP*,Asynchronous SymmetricPersistent Pulse Protocol)用于适配器和异步时钟的芯片之间进行通信,作为与神经形态类脑芯片侧通信的握手协议,可以实现芯片间的高速通信,传统的数字芯片同步侧应用数字。
本发明设计的双向先入先出适配器中,使用了基于脉冲的握手协议来减轻异步通信协议的复杂性,并采用异步对称持久脉冲协议(asP*)方法使用最小脉冲宽度在发送方和接收方之间来回传输,降低了设计难度,提高了电路速率,使得使用商业EDA工具(如Cadence或Synopsys工具)具有优势。
本发明的有益效果是:
本发明针对并解决了新型神经形态类脑芯片为代表的异步时间系统芯片和传统时间系统芯片的集成、兼容和交互问题,设计了一款双向的异步同步适配器,可以极大地提高不同种类、实现工艺的芯片之间的集成,提高整个集成系统的性能,降低芯片间的传输延迟,提高带宽,对类脑芯片的广泛推广和应用有着巨大的帮助和贡献。
本发明中的FIFO部分作为两种芯片之间传输数据的储存器,其FIFO模块的大小、传输数据的大小、工作频率、传输数据的方向都是可配置的。
本发明所述的适配器内部每个模块均包含两个D触发器,应用于异步接口模块和同步接口模块中。这些D触发器决定FIFO读出或读入的当前状态,提高性能。
本发明的设计为异构集成开辟了一条道路,可以采用异构集成这种可以在不突破芯片加工工艺尺寸的先进技术(如2.5D芯片的异构集成)来实现神经形态类脑芯片和传统数字芯片的异构集成,从而更好地实现了紧凑、高效和快速的结构,提高了整体性能。
附图说明
图1是异步和同步侧之间的双向先入先出适配器结构示意图;
图2是双向先入先出适配器结构示意图;
图3是先入先出结构的单个模块结构示意图;
图4是异步到同步数据传输时的模块结构示意图;
图5是同步到异步数据传输时的模块结构示意图;
图6是异步接口模块结构示意图;
图7是同步接口模块结构示意图;
图8是适配器设计仿真流程图;
图9是异步到同步数据传输图;
图10是同步到异步数据传输图;
图11是异步到同步数据传输波形图;
图12是同步到异步数据传输波形图。
图中:异步接口模块(1)、同步接口模块(2)、异步到同步满-空控制模块(3)、同步到异步满-空控制模块(4)、FIFO锁存器(5)。
具体实施方式
下面结合附图和具体实施对本发明作进一步说明:
如图1所示,适配器用于连接异步时钟芯片和同步时钟芯片;具体可以连接神经形态的类脑芯片和数字芯片,但不限于此。
如图2所示,适配器主要由多个主模块、或门、与门等门电路组成,每个主模块均用于实现异步到同步A-S、同步到异步S-A和先进先出FIFO;各个主模块在适配器内并列布置,各个主模块的端口经或门、与门后分别与异步时钟芯片、同步时钟芯片连接,每个时刻只有一个主模块处于工作状态,各个主模块之间通过令牌端口串接,实现各个主模块依次工作。
各个主模块在适配器内部是并列相同,或门实现主模块数据的并列输入和输出,每个时刻只有一个主模块处于工作状态,与门用于控制在同步时钟芯片同步侧请求输入信号req_syn_in在有效数据data_v为高电平时才输入。同步时钟芯片侧的有效数据信号data_v为高电平时,表示同步侧数据存储模块是空闲的,可以输入同步侧请求输入信号req_syn_in,然后进行数据的正常的写读,即输入和输出
在异步侧:
各个主模块的异步侧数据传输输入端口spk_data_in均共同连接到一起作为适配器的异步侧数据传输输入端口spk_data_in并连接到异步时钟芯片,各个主模块的异步侧数据传输输出端口spk_data_out分别连接到第二或门的各个输入端,第二或门的输出端作为适配器的异步侧数据传输输入端口spk_data_out并连接到异步时钟芯片;
各个主模块的脉冲确认输出信号端口ack_spk_out分别连接到第一或门的各个输入端,第一或门的输出端作为适配器的脉冲确认输出信号端口ack_spk_out并连接到异步时钟芯片;各个主模块的脉冲请求输入信号端口req_spk_in均连接到一起作为适配器的脉冲请求输入信号端口req_spk_in并连接到异步时钟芯片;
在同步侧:
各个主模块的同步侧数据传输输入端口syn_data_in均共同连接到一起作为适配器的同步侧数据传输输入端口syn_data_in并连接到同步时钟芯片,各个主模块的同步侧数据传输输出端口syn_data_out分别连接到第三或门的各个输入端,第三或门的输出端作为适配器的同步侧数据传输输入端口syn_data_out并连接到同步时钟芯片;
各个主模块的时钟信号端口clk均连接到共同连接到一起作为适配器的时钟信号端口clk并连接到同步时钟芯片;各个主模块的同步系统使能输入信号端口enb_syn_in均共同连接到第四或门后再连接到第一与门的输出端,第一与门的两个输入端分别连接第四或门的输出端和适配器的同步侧请求输入信号req_syn_in;各个主模块的同步侧读写使能信号端口write_read_enb分别连接到第四或门的各个输入端,第四或门的输出端作为适配器的有效数据信号data_v并连接到同步时钟芯片。
各个主模块设有异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in、异步侧令牌交换输出端口spk_token_out、同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in、同步侧令牌交换输出端口syn_token_out的多个令牌端口;
各个主模块之间通过令牌端口循环连接形成闭环,相邻两个主模块中,当前主模块的异步侧令牌交换输出端口spk_token_out分别和下一个主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,当前主模块的同步侧令牌交换输出端口syn_token_out分别和下一个主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接。
本发明中,put表示输入方,get表示输出方。
各个主模块之间通过令牌端口循环传递发送令牌信号,进而控制各个主模块中的仅一个主模块单独工作,且各个主模块依次循环工作。
具体实施中,可设置为N个状态为X的一位令牌信号,X是1或者0的二进制信号,令牌信号的数量N和主模块的数量N相同,每个主模块在同一时间有且只会接收到一个令牌信号,N个令牌信号中仅有一个令牌的状态X为1、其余令牌的状态X均为0。例如当前第i个主模块若工作则表示该主模块接受到的令牌信号状态为1、其余模块接受到的令牌信号均为0;当前第i个主模块工作完成后,令牌信号会传递到下一个第i+1个主模块,则当前第i个主模块传递状态X为1的令牌到下一个第i+1个主模块的令牌信号变成为1、其余主模块的令牌的状态X均为0,由此使得仅下一个第i+1个主模块工作,如果该令牌已经到了最后一个主模块,则会使得第一个主模块工作,其余主模块的令牌状态均为0。
当异步时钟芯片向同步时钟芯片传输数据时:
异步时钟芯片先向适配器的脉冲请求输入信号端口req_spk_in发送写入脉冲请求输入信号,进而进入其中一个主模块后经确认是否可写入情况输出,经适配器处理后从脉冲确认输出信号端口ack_spk_out返回写入脉冲确认输出信号,并进行判断:若写入脉冲确认输出信号为确认写入,则异步时钟芯片发出数据到适配器的异步侧数据传输输入端口spk_data_in进而缓存到适配器内部中;若写入脉冲确认输出信号为不写入,则异步时钟芯片不发出数据到适配器的异步侧数据传输输入端口spk_data_in;
同时,同步时钟芯片先向适配器的同步侧请求输入信号req_syn_in发送读取请求输入信号,进而进入其中一个主模块后经确认是否可读取情况输出,经适配器处理后从有效数据信号data_v返回同步侧读取使能信号,并进行判断:若同步侧读取使能信号为确认读取,则适配器的同步侧数据传输输出端口syn_data_out发出数据,同步时钟芯片从适配器的同步侧数据传输输出端口syn_data_out接收数据;若读取脉冲确认输出信号为不读取,则适配器的同步侧数据传输输出端口syn_data_out不发出数据,同步时钟芯片不从适配器的同步侧数据传输输出端口syn_data_out接收数据。
当同步时钟芯片向同步时钟芯片传输数据时:
同步时钟芯片先向适配器的同步侧请求输入端口req_syn_in发送同步侧输入信号,进而进入其中一个正在工作的主模块后经确认是否可写入情况输出,经适配器处理后从有效数据信号data_v返回写入脉冲确认输出信号,并进行判断:若写入脉冲确认输出信号为确认写入,则同步时钟芯片发出数据到适配器的同步侧数据传输输入端口syn_data_in进而缓存到适配器内部中;若写入脉冲确认输出信号为不写入,则同步时钟芯片不发出数据到适配器的同步侧数据传输输入端口syn_data_in;
同时,异步时钟芯片先向适配器的脉冲请求输入信号端口req_spk_in发送读取脉冲请求输入信号,进而进入其中一个正在工作的主模块后经确认是否可读取情况输出,经适配器处理后从脉冲确认输出信号端口ack_spk_out返回读取脉冲确认输出信号,并进行判断:若读取脉冲确认输出信号为确认读取,则适配器的异步侧数据传输输出端口spk_data_out发出数据,异步时钟芯片从适配器的异步侧数据传输输出端口spk_data_out接收数据;若读取脉冲确认输出信号为不读取,则适配器的异步侧数据传输输出端口spk_data_out不发出数据,异步时钟芯片不从适配器的异步侧数据传输输出端口spk_data_out接收数据。
适配器和主模块在异步侧传输信号的同时不额外设置时钟信号端口,在输出信号的端口同时接收时钟信号进行同步;在同步侧传输信号的同时额外设置时钟信号端口,通过时钟信号端口接受时钟信号进行同步。
每个主模块内部组成如图3所示,主要由四种不同功能的子模块和两个FIFO锁存器5构成,四种子模块分别为异步接口模块1、同步接口模块2、异步到同步满-空控制模块3和同步到异步满-空控制模块4,两个FIFO锁存器5分别为异步到同步FIFO锁存器5和同步到异步FIFO锁存器5;
异步到同步FIFO锁存器5:异步到同步FIFO锁存器5的缓存输入端和主模块的异步侧数据传输输入端口spk_data_in连接,缓存输出端连接到第二与门的一个输入端,第二与门的另一个输入端仅和主模块的同步侧输出方令牌输入端口syn_get_token_in连接,第二与门的输出端和主模块的同步侧数据传输输出端口syn_data_out连接,异步到同步FIFO锁存器5的时钟控制端和异步接口模块1的读写信号输出端连接;
同步到异步FIFO锁存器5:同步到异步FIFO锁存器5的缓存输入端和主模块的同步侧数据传输输入端口syn_data_in连接,缓存输出端连接到第三与门的一个输入端,第三与门的另一个输入端仅和主模块的异步侧输出方令牌输入端口spk_get_token_in连接,第三与门的输出端和主模块的异步侧数据传输输出端口spk_data_out连接,同步到异步FIFO锁存器5的时钟控制端和同步接口模块2的读写信号输出端连接;
异步接口模块1的读写使能输出端口和主模块的脉冲确认输出信号端口ack_spk_out连接,异步接口模块1的脉冲请求输入端口和主模块的脉冲请求输入信号端口req_spk_in连接;异步接口模块1的满空信号输入端分别和异步到同步满-空控制模块3、同步到异步满-空控制模块4的满空信号输出端连接,异步接口模块1的读写信号输出端分别和异步到同步满-空控制模块3、同步到异步满-空控制模块4的读写信号反馈端连接;异步接口模块1的令牌输入端口分别和主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,异步接口模块1的令牌输出端口和主模块的异步侧令牌交换输出端口spk_token_out连接;
同步接口模块2的读写使能输出端口和主模块的同步系统读写信号端口write_read_enb连接,同步接口模块2的同步系统使能输入端口和主模块的同步系统使能输入信号端口enb_syn_in连接;同步接口模块2的满空信号输入端分别和异步到同步满-空控制模块3、同步到异步满-空控制模块4的满空信号输出端连接,同步接口模块2的读写信号输出端分别和异步到同步满-空控制模块3、同步到异步满-空控制模块4的读写信号反馈端连接;同步接口模块2的令牌输入端口分别和主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接,同步接口模块2的令牌输出端口和主模块的同步侧令牌交换输出端口syn_token_out连接。
当异步时钟芯片向同步时钟芯片传输数据时:异步接口模块1、同步接口模块2均始终工作,异步到同步满-空控制模块3工作,同步到异步满-空控制模块4不工作;
当同步时钟芯片向同步时钟芯片传输数据时:异步接口模块1、同步接口模块2均始终工作,异步到同步满-空控制模块3不工作,同步到异步满-空控制模块4工作。
同步接口模块2,异步到同步满-空控制模块3和同步到异步满-空控制模块4均设有时钟输入端口,同步接口模块2,异步到同步满-空控制模块3和同步到异步满-空控制模块4的时钟输入端口均和主模块的时钟信号端口clk的连接。
如图6所示,异步接口模块1包括异步D触发器和两个异步与门,异步与门的第一个输入端以及异步D触发器的缓存输入端均与异步接口模块1的令牌输入端口连接,异步与门的第二个输入端和异步接口模块1的满空信号输入端连接,异步与门的第三个输入端分别和异步接口模块1的同步系统使能输入端口、异步D触发器的时钟信号端连接,异步与门的输出端分别和异步接口模块1的读写使能输出端口和读写信号输出端连接,异步D触发器的缓存输出端和异步接口模块1的令牌输出端口连接;
如图7所示,同步接口模块2包括同步D触发器和两个同步与门,第一同步与门和第二同步与门的一个输入端以及同步D触发器的缓存输入端均与同步接口模块2的令牌输入端口连接,第二同步与门的另一个输入端和同步接口模块2的满空信号输入端连接,第二同步与门的输出端和同步接口模块2的读写使能输出端口连接,第一同步与门的另一个输入端和同步接口模块2的同步系统使能输入端口连接,第一同步与门的输出端和同步接口模块2的读写信号输出端连接,第一同步与门的另一个输入端和同步D触发器的缓存输入端口连接,同步D触发器的缓存输出端和同步接口模块2的令牌输出端口连接。
同步到异步满-空控制模块4内存储有满空状态数据,满空状态数据和同步到异步FIFO锁存器5内的满空状态保持始终一致。异步到同步满-空控制模块3内存储有满空状态数据,满空状态数据和异步到同步FIFO锁存器5内的满空状态保持始终一致。
如图4所示,当异步时钟芯片向同步时钟芯片传输数据时:
同步到异步满-空控制模块4和异步到同步FIFO锁存器5不工作,同步到异步满-空控制模块4和异步到同步FIFO锁存器5及其相关的连接关系并不产生信号;
异步时钟芯片写入数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送写入脉冲请求输入信号到异步接口模块1的同步系统使能输入端口,进而输入到异步与门中,异步到同步满-空控制模块3实时发送满空信号经异步接口模块1的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输入方令牌输入端口spk_put_token_in输入后经异步接口模块1的令牌输入端口输入到异步接口模块1的异步与门和异步D触发器中,异步与门对输入的令牌信号、满空信号、存储写入请求输入信号进行与判断,若其中令牌信号和存储写入请求输入信号均为是、满空信号为空时则从异步接口模块1的读写使能输出端口输出为是的写入脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片,否则发出为否的写入脉冲确认输出信号;
异步时钟芯片接收到写入脉冲确认输出信号后,发出数据经主模块的异步侧数据传输输入端口spk_data_in发送到异步到同步FIFO锁存器5中,同时,写入脉冲确认输出信号从异步接口模块1的读写信号输出端发送到异步到同步满-空控制模块3的读写信号反馈端和异步到同步FIFO锁存器5的缓存输入端口中,异步到同步FIFO锁存器5接收到写入脉冲确认输出信号为是时,则接收来自异步时钟芯片的数据进行存储,否则异步FIFO锁存器不接收来自异步时钟芯片的数据进行存储;异步到同步满-空控制模块3接收到写入脉冲确认输出信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;异步接口模块1的异步FIFO锁存器接收令牌信号后,当脉冲请求输入信号req_spk_in变为是时,再令牌信号从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块;
同步时钟芯片读取数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送读取请求输入信号到同步接口模块2的同步系统使能输入端口,进而输入到第二同步与门中,异步到同步满-空控制模块3实时发送满空信号经同步接口模块2的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输出方令牌输入端口syn_get_token_in输入后经同步接口模块2的令牌输入端口输入到同步接口模块2的第一同步与门、第二同步与门、同步FIFO锁存器以及第二与门中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为满时则从同步接口模块2的读写使能输出端口输出为是的同步侧读取确认输出信号经主模块的同步侧读取使能信号端口write_read_enb返回到同步时钟芯片,否则发出为否的同步侧读取使能确认输出信号;第二同步与门中对令牌信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是时则从同步接口模块2的读写信号输出端输出为是的读取确认信号到异步到同步满-空控制模块3;
同时,第二与门根据从异步到同步FIFO锁存器5的缓存输入端口过来的数据有无和令牌信号进行判断,若令牌信号为是、且异步到同步FIFO锁存器5的缓存输入端口过来的数据为有时,则处理发出异步到同步FIFO锁存器5的缓存输入端口过来的数据到同步侧数据传输输出端口syn_data_out,同步时钟芯片接收到读取确认输出信号后,经主模块的同步侧数据传输输出端口syn_data_out接收来自异步到同步FIFO锁存器5的缓存输出端发出的数据;异步到同步满-空控制模块3接收到读取确认信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;同步接口模块2的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
如图5所示,当同步时钟芯片向异步时钟芯片传输数据时:
异步到同步满-空控制模块3和异步到同步FIFO锁存器5不工作,异步到同步满-空控制模块3和异步到同步FIFO锁存器5及其相关的连接关系并不产生信号;
同步时钟芯片写入数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送写入请求输入信号到同步接口模块2的同步系统使能输入端口,进而输入到第二同步与门中,同步到异步满-空控制模块4实时发送满空信号经同步接口模块2的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输入方令牌输入端口syn_put_token_in输入后经同步接口模块2的令牌输入端口输入到同步接口模块2的第一同步与门、第二同步与门和同步D触发器中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为空时则从同步接口模块2的读写使能输出端口输出为是的写入确认输出信号经主模块的同步系统读写信号端口write_read_enb返回到同步时钟芯片,否则发出为否的写入确认输出信号;第二同步与门中对令牌信号、写入请求输入信号进行与判断,若其中令牌信号和写入请求输入信号均为是时则从同步接口模块2的读写信号输出端输出为是的读取确认信号到同步到异步满-空控制模块4和同步到异步FIFO锁存器5的缓存输入端口中;
同步到异步FIFO锁存器5接收到读取确认信号为是时,则接收来自同步时钟芯片的数据进行存储,否则同步到异步FIFO锁存器5不接收来自异步时钟芯片的数据进行存储;同步时钟芯片接收到为是的读取确认输出信号后,发出数据经主模块的同步侧数据传输输入端口syn_data_in发送到同步到异步FIFO锁存器5中存储;
同步到异步满-空控制模块4接收到读取确认信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;同步接口模块2的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
异步时钟芯片读取数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送读取脉冲请求输入信号到异步接口模块1的同步系统使能输入端口,进而输入到异步与门中,同步到异步满-空控制模块4实时发送满空信号经异步接口模块1的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输出方令牌输入端口spk_get_token_in输入后经异步接口模块1的令牌输入端口输入到异步接口模块1的异步与门、异步D触发器以及第三与门中,异步与门对输入的令牌信号、满空信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是、满空信号为满时则从异步接口模块1的读写使能输出端口输出为是的读取脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片,否则发出为否的读取脉冲确认输出信号;
同时,第三与门根据从同步到异步FIFO锁存器5的缓存输入端口过来的数据和令牌信号进行判断,若令牌信号为是、且同步到异步FIFO锁存器5的缓存输入端口过来的数据为有时,则处理发出同步到异步FIFO锁存器5的缓存输入端口过来的数据到异步侧数据传输输出端口spk_data_out,异步时钟芯片接收到读取脉冲确认输出信号后,经主模块的异步侧数据传输输出端口spk_data_out接收来自同步到异步FIFO锁存器5的缓存输出端发出的数据;同时,读取脉冲确认输出信号从异步接口模块1的读写信号输出端发送到同步到异步满-空控制模块4的读写信号反馈端,同步到异步满-空控制模块4接收到读取脉冲确认输出信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;异步接口模块1的异步FIFO锁存器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块。
为了验证和模拟所提出的设计,本发明根据图9中的设计流程,通过Cadence进行了逻辑综合。
首先,本发明已经编写了完整的硬件描述语言Verilog实现的适配器和一个testbench测试文件来验证异步到同步和同步到异步这两种操作模式下适配器是否能够正常工作。然后利用Cadence-Incisive中的企业模拟器对适配器进行寄存器RTL级的仿真测试,如图8所示,并在之后进行了逻辑设计。在逻辑设计中采用了Cadence的综合解决方法Cadence Genus Synthesis Solution。采用freepdk45cmos标准单元库作为工艺库,并考虑到了输入和输出延迟的时间限制。在完成逻辑设计之后,我们使用Cadence-Incisive来进行GLSGate Level Simualtion门级仿真来验证综合逻辑。
本案例中的适配器采用8个主模块、8位数据宽度的FIFO锁存器。并考虑了两种情况;首先,如果一个神经形态类脑芯片需要发送数据到一个传统数字芯片,即异步到同步运行模式。第二种情况是传统数字芯片将数据发送到神经形态类脑芯片,即同步到异步运行模式。
异步到同步运行方式:
在第一个场景中,当数据通过适配器从神经形态类脑芯片传输到传统数字芯片。图9示出了适配器与芯片的连接。在左侧,神经形态类脑芯片通过脉冲请求输入信号req_spk_in,异步侧数据输入信号spk_data_in和脉冲确认输出信号ack_spk_out等信号连接到适配器。传统数字芯片通过同步侧请求输入信号req_syn_in,时钟信号clk,有效数据data_v,同步侧数据输出信号syn_data_out等与适配器相连。
如图11所示,显示的是适配器输入和输出信号的波形。在一个复位信号之后,神经形态类脑芯片发送一个脉冲请求输入信号req_spk_in,发回一个确认脉冲输出信号ack_spk_out并使得异步到同步FIFO锁存器5存储数据,确认脉冲输出ack_spk_out指示神经形态类脑芯片数据已经成功接收。
因为该适配器是先入先出FIFO的,所以使传统数字芯片能从中快速的读取数据。因此,一旦数据存储在适配器主模块中的异步到同步FIFO锁存器5中,第二与门根据从异步到同步FIFO锁存器5的输入数据和主模块令牌信号进行判断,开始处理数据发送到同步侧数据传输输出端口syn_data_out。
同时异步到同步满空控制模块3的满空信号为满,则从同步接口模块2的读写使能输出端口输出的同步侧读写信号write_read_enb通过第四或门返回为有效数据信号data_v为高电平并到达同步时钟芯片;此时有效数据信号data_v为高电平,同步时钟芯片通过第一与门后可以向同步侧使能输入信号端口enb_syn_in发送读取请求输入信号到同步接口模块2的同步系统使能输入端口,改变此时异步到同步满-空控制模块3中的满空信号状态从满变为空,令牌信号从这一个主模块通过同步接口模块2传输到下一个主模块中,重复以上过程,以此激活不同主模块,实现不同位数的数据传输。
波形图仿真结果如图11所示在这个具体实施案例上,使用了20个字的输入数据,每个字的宽度为8位,适配器大小为8个主模块。20个字中有20个成功通过了双向FIFO适配器模块,并成功传输。
同步到异步运行方式:
第二种情况是相反的方向,即数据从传统数字芯片传输到神经形态类脑芯片,如图10所示。传统数字芯片通过同步侧请求输入信号req_syn_in,有效数据信号data_v,时钟信号clk,同步侧数据输入信号syn_data_in与适配器相连。而神经形态类脑芯片通过脉冲请求输入信号req_spk_in,异步侧数据输出信号spk_data_out和脉冲确认输出信号ack_spk_out连接到适配器,实施结果如图12所示。
传输过程从同步芯片同步侧请求输入信号req_syn_in变为高电位开始,此时当有效数据信号data_v为高电平时,如图12所示。因此,同步侧使能输入信号enb_syn_in变高,并允许在时钟信号clk时将同步侧输入数据syn_data_in存储在同步到异步FIFO锁存器5中。另一方面,神经形态类脑芯片向适配器发送脉冲请求信号req_spk_in,请求可用的异步侧数据输出信号spk_data_out。当同步到异步FIFO锁存器5中有数据时,异步接口1向异步到同步满空控制模块发送读取信息,此时同步到异步FIFO锁存器5输出满状态,异步接口1收到满状态,向神经形态类脑芯片发送脉冲确认信号ack_spk_out,同时向同步到异步FIFO锁存器5收到输出数据。
如图12所示,20个字的数据已成功地从传统数字芯片传输到神经形态类脑芯片,每个字的宽度为8位,适配器也因此有8个主模块组成,20个字中有20个成功通过了双向FIFO适配器,并成功传输,证明了适配器有效性。
本发明设计了一个由多个平行且相同的主模块组成的,双向工作的同步到异步先入先出适配器,每个主模块都包括四种不同功能的子模块和两个FIFO锁存器。该适配器可以实现异步时钟芯片例如神经形态类脑芯片和同步时钟芯片例如传统数字芯片之间的快速高性能的信号传输和转换,技术上兼容异构集成,可以降低多种类芯片集成的难度,提高芯片整体系统的性能。
上述实施例为本发明的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合。简化均应为等效的置换方式,都包含在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
由实施可见本发明提出的双向的异步-同步FIFO适配器模块完全可以从标准单元库合成,适配器模块的输入输出的大小和数据长度是可配置的。
本发明的适配器设计通过两个场景进行了验证:使用Cadence IncisiveEnterprise仿真了神经形态的数据传输到传统数字芯片,反之亦然。
上述实施例为本发明的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合。简化均应为等效的置换方式,都包含在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (6)
1.一种双向异步同步先进先出适配器,其特征在于:所述的适配器用于连接异步时钟芯片和同步时钟芯片;所述的适配器主要由多个主模块、或门、与门等门电路组成,各个主模块在适配器内并列布置,各个主模块的端口经或门、与门后分别与异步时钟芯片、同步时钟芯片连接,每个时刻只有一个主模块处于工作状态,各个主模块之间通过令牌端口串接,实现各个主模块依次工作。
2.根据权利要求1所述的一种双向异步同步先进先出适配器,其特征在于:
在异步侧:
各个主模块的异步侧数据传输输入端口spk_data_in均共同连接到一起作为适配器的异步侧数据传输输入端口spk_data_in并连接到异步时钟芯片,各个主模块的异步侧数据传输输出端口spk_data_out分别连接到第二或门的各个输入端,第二或门的输出端作为适配器的异步侧数据传输输入端口spk_data_out并连接到异步时钟芯片;各个主模块的脉冲确认输出信号端口ack_spk_out分别连接到第一或门的各个输入端,第一或门的输出端作为适配器的脉冲确认输出信号端口ack_spk_out并连接到异步时钟芯片;各个主模块的脉冲请求输入信号端口req_spk_in均连接到一起作为适配器的脉冲请求输入信号端口req_spk_in并连接到异步时钟芯片;
在同步侧:
各个主模块的同步侧数据传输输入端口syn_data_in均共同连接到一起作为适配器的同步侧数据传输输入端口syn_data_in并连接到同步时钟芯片,各个主模块的同步侧数据传输输出端口syn_data_out分别连接到第三或门的各个输入端,第三或门的输出端作为适配器的同步侧数据传输输入端口syn_data_out并连接到同步时钟芯片;各个主模块的时钟信号端口clk均连接到共同连接到一起作为适配器的时钟信号端口clk并连接到同步时钟芯片;各个主模块的同步系统使能输入信号端口enb_syn_in均共同连接到第四或门后再连接到第一与门的输出端,第一与门的两个输入端分别连接第四或门的输出端和适配器的同步侧请求输入信号req_syn_in;各个主模块的同步侧读写使能信号端口write_read_enb分别连接到第四或门的各个输入端,第四或门的输出端作为适配器的有效数据信号data_v并连接到同步时钟芯片;
各个主模块设有异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in、异步侧令牌交换输出端口spk_token_out、同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in、同步侧令牌交换输出端口syn_token_out的多个令牌端口;各个主模块之间通过令牌端口循环连接形成闭环,相邻两个主模块中,当前主模块的异步侧令牌交换输出端口spk_token_out分别和下一个主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,当前主模块的同步侧令牌交换输出端口syn_token_out分别和下一个主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接。
3.根据权利要求1所述的一种双向异步同步先进先出适配器,其特征在于:
每个主模块主要由四种不同功能的子模块和两个FIFO锁存器(5)构成,四种子模块分别为异步接口模块(1)、同步接口模块(2)、异步到同步满-空控制模块(3)和同步到异步满-空控制模块(4),两个FIFO锁存器(5)分别为异步到同步FIFO锁存器(5)和同步到异步FIFO锁存器(5);
异步到同步FIFO锁存器(5):异步到同步FIFO锁存器(5)的缓存输入端和主模块的异步侧数据传输输入端口spk_data_in连接,缓存输出端连接到第二与门的一个输入端,第二与门的另一个输入端和主模块的同步侧输出方令牌输入端口syn_get_token_in连接,第二与门的输出端和主模块的同步侧数据传输输出端口syn_data_out连接,异步到同步FIFO锁存器(5)的时钟控制端和异步接口模块(1)的读写信号输出端连接;
同步到异步FIFO锁存器(5):同步到异步FIFO锁存器(5)的缓存输入端和主模块的同步侧数据传输输入端口syn_data_in连接,缓存输出端连接到第三与门的一个输入端,第三与门的另一个输入端和主模块的异步侧输出方令牌输入端口spk_get_token_in连接,第三与门的输出端和主模块的异步侧数据传输输出端口spk_data_out连接,同步到异步FIFO锁存器(5)的时钟控制端和同步接口模块(2)的读写信号输出端连接;
异步接口模块(1)的读写使能输出端口和主模块的脉冲确认输出信号端口ack_spk_out连接,异步接口模块(1)的脉冲请求输入端口和主模块的脉冲请求输入信号端口req_spk_in连接;异步接口模块(1)的满空信号输入端分别和异步到同步满-空控制模块(3)、同步到异步满-空控制模块(4)的满空信号输出端连接,异步接口模块(1)的读写信号输出端分别和异步到同步满-空控制模块(3)、同步到异步满-空控制模块(4)的读写信号反馈端连接;异步接口模块(1)的令牌输入端口分别和主模块的异步侧输入方令牌输入端口spk_put_token_in、异步侧输出方令牌输入端口spk_get_token_in连接,异步接口模块(1)的令牌输出端口和主模块的异步侧令牌交换输出端口spk_token_out连接;
同步接口模块(2)的读写使能输出端口和主模块的同步系统读写信号端口write_read_enb连接,同步接口模块(2)的同步系统使能输入端口和主模块的同步系统使能输入信号端口enb_syn_in连接;同步接口模块(2)的满空信号输入端分别和异步到同步满-空控制模块(3)、同步到异步满-空控制模块(4)的满空信号输出端连接,同步接口模块(2)的读写信号输出端分别和异步到同步满-空控制模块(3)、同步到异步满-空控制模块(4)的读写信号反馈端连接;同步接口模块(2)的令牌输入端口分别和主模块的同步侧输入方令牌输入端口syn_put_token_in、同步侧输出方令牌输入端口syn_get_token_in连接,同步接口模块(2)的令牌输出端口和主模块的同步侧令牌交换输出端口syn_token_out连接。
4.根据权利要求3所述的一种双向异步同步先进先出适配器,其特征在于:
所述的同步接口模块(2),异步到同步满-空控制模块(3)和同步到异步满-空控制模块(4)均设有时钟输入端口,同步接口模块(2),异步到同步满-空控制模块(3)和同步到异步满-空控制模块(4)的时钟输入端口均和主模块的时钟信号端口clk的连接。
5.根据权利要求1所述的一种双向异步同步先进先出适配器,其特征在于:
所述的异步接口模块(1)包括异步D触发器和两个异步与门,异步与门的第一个输入端以及异步D触发器的缓存输入端均与异步接口模块(1)的令牌输入端口连接,异步与门的第二个输入端和异步接口模块(1)的满空信号输入端连接,异步与门的第三个输入端分别和异步接口模块(1)的同步系统使能输入端口、异步D触发器的时钟信号端连接,异步与门的输出端分别和异步接口模块(1)的读写使能输出端口和读写信号输出端连接,异步D触发器的缓存输出端和异步接口模块(1)的令牌输出端口连接;
所述的同步接口模块(2)包括同步D触发器和两个同步与门,第一同步与门和第二同步与门的一个输入端以及同步D触发器的缓存输入端均与同步接口模块(2)的令牌输入端口连接,第二同步与门的另一个输入端和同步接口模块(2)的满空信号输入端连接,第二同步与门的输出端和同步接口模块(2)的读写使能输出端口连接,第一同步与门的另一个输入端和同步接口模块(2)的同步系统使能输入端口连接,第一同步与门的输出端和同步接口模块(2)的读写信号输出端连接,第一同步与门的另一个输入端和同步D触发器的缓存输入端口连接,同步D触发器的缓存输出端和同步接口模块(2)的令牌输出端口连接。
6.根据权利要求1所述的一种双向异步同步先进先出适配器,其特征在于:
当异步时钟芯片向同步时钟芯片传输数据时:
同步到异步满-空控制模块(4)和异步到同步FIFO锁存器(5)不工作;
异步时钟芯片写入数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送写入脉冲请求输入信号到异步接口模块(1)的同步系统使能输入端口,进而输入到异步与门中,异步到同步满-空控制模块(3)实时发送满空信号经异步接口模块(1)的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输入方令牌输入端口spk_put_token_in输入后经异步接口模块(1)的令牌输入端口输入到异步接口模块(1)的异步与门和异步D触发器中,异步与门对输入的令牌信号、满空信号、存储写入请求输入信号进行与判断,若其中令牌信号和存储写入请求输入信号均为是、满空信号为空时则从异步接口模块(1)的读写使能输出端口输出为是的写入脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片;
异步时钟芯片接收到写入脉冲确认输出信号后,发出数据经主模块的异步侧数据传输输入端口spk_data_in发送到异步到同步FIFO锁存器(5)中,同时,写入脉冲确认输出信号从异步接口模块(1)的读写信号输出端发送到异步到同步满-空控制模块(3)和异步到同步FIFO锁存器(5)中,异步到同步FIFO锁存器(5)接收到写入脉冲确认输出信号为是时,则接收来自异步时钟芯片的数据进行存储;异步到同步满-空控制模块(3)接收到写入脉冲确认输出信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;异步接口模块(1)的异步FIFO锁存器接收令牌信号后,当脉冲请求输入信号req_spk_in变为是时,再令牌信号从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块;
同步时钟芯片读取数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送读取请求输入信号到同步接口模块(2)的同步系统使能输入端口,进而输入到第二同步与门中,异步到同步满-空控制模块(3)实时发送满空信号经同步接口模块(2)的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输出方令牌输入端口syn_get_token_in输入后经同步接口模块(2)的令牌输入端口输入到同步接口模块(2)的第一同步与门、第二同步与门、同步FIFO锁存器以及第二与门中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为满时则从同步接口模块(2)的读写使能输出端口输出为是的同步侧读取确认输出信号经主模块的同步侧读取使能信号端口write_read_enb返回到同步时钟芯片;第二同步与门中对令牌信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是时则从同步接口模块(2)的读写信号输出端输出为是的读取确认信号到异步到同步满-空控制模块(3);
同时,第二与门根据从异步到同步FIFO锁存器(5)过来的数据有无和令牌信号进行判断,若令牌信号为是、且异步到同步FIFO锁存器(5)过来的数据为有时,则处理发出异步到同步FIFO锁存器(5)过来的数据到同步侧数据传输输出端口syn_data_out,同步时钟芯片接收到读取确认输出信号后,经主模块的同步侧数据传输输出端口syn_data_out接收来自异步到同步FIFO锁存器(5)的缓存输出端发出的数据;异步到同步满-空控制模块(3)接收到读取确认信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;同步接口模块(2)的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
当同步时钟芯片向异步时钟芯片传输数据时:
异步到同步满-空控制模块(3)和异步到同步FIFO锁存器(5)不工作;
同步时钟芯片写入数据为:
同步时钟芯片向主模块的同步系统使能输入信号端口enb_syn_in发送写入请求输入信号到同步接口模块(2)的同步系统使能输入端口,进而输入到第二同步与门中,同步到异步满-空控制模块(4)实时发送满空信号经同步接口模块(2)的满空信号输入端输入到第一同步与门中,令牌信号从主模块的同步侧输入方令牌输入端口syn_put_token_in输入后经同步接口模块(2)的令牌输入端口输入到同步接口模块(2)的第一同步与门、第二同步与门和同步D触发器中;
第一同步与门中对输入的令牌信号、满空信号进行与判断,若其中令牌信号为是、满空信号为空时则从同步接口模块(2)的读写使能输出端口输出为是的写入确认输出信号经主模块的同步系统读写信号端口write_read_enb返回到同步时钟芯片;第二同步与门中对令牌信号、写入请求输入信号进行与判断,若其中令牌信号和写入请求输入信号均为是时则从同步接口模块(2)的读写信号输出端输出为是的读取确认信号到同步到异步满-空控制模块(4)和同步到异步FIFO锁存器(5)中;
同步到异步FIFO锁存器(5)接收到读取确认信号为是时,则接收来自同步时钟芯片的数据进行存储;同步时钟芯片接收到为是的读取确认输出信号后,发出数据经主模块的同步侧数据传输输入端口syn_data_in发送到同步到异步FIFO锁存器(5)中存储;
同步到异步满-空控制模块(4)接收到读取确认信号为是、且接收前的满空信号为空时,则将满空信号变为满,否则保持不变;同步接口模块(2)的同步D触发器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的同步侧令牌交换输出端口syn_token_out输出到下一个主模块;
异步时钟芯片读取数据为:
异步时钟芯片向主模块的脉冲请求输入信号端口req_spk_in发送读取脉冲请求输入信号到异步接口模块(1)的同步系统使能输入端口,进而输入到异步与门中,同步到异步满-空控制模块(4)实时发送满空信号经异步接口模块(1)的满空信号输入端输入到异步与门中,令牌信号从主模块的异步侧输出方令牌输入端口spk_get_token_in输入后经异步接口模块(1)的令牌输入端口输入到异步接口模块(1)的异步与门、异步D触发器以及第三与门中,异步与门对输入的令牌信号、满空信号、读取请求输入信号进行与判断,若其中令牌信号和读取请求输入信号均为是、满空信号为满时则从异步接口模块(1)的读写使能输出端口输出为是的读取脉冲确认输出信号经主模块的脉冲确认输出信号端口ack_spk_out返回到异步时钟芯片;
同时,第三与门根据从同步到异步FIFO锁存器(5)过来的数据和令牌信号进行判断,若令牌信号为是、且同步到异步FIFO锁存器(5)过来的数据为有时,则处理发出同步到异步FIFO锁存器(5)过来的数据到异步侧数据传输输出端口spk_data_out,异步时钟芯片接收到读取脉冲确认输出信号后,经主模块的异步侧数据传输输出端口spk_data_out接收来自同步到异步FIFO锁存器(5)的缓存输出端发出的数据;同时,读取脉冲确认输出信号从异步接口模块(1)的读写信号输出端发送到同步到异步满-空控制模块(4),同步到异步满-空控制模块(4)接收到读取脉冲确认输出信号为是、且接收前的满空信号为满时,则将满空信号变为空,否则保持不变;异步接口模块(1)的异步FIFO锁存器接收令牌信号后在clk时钟信号上升沿时从自身的缓存输出端输出经主模块的异步侧令牌交换输出端口spk_token_out输出到下一个主模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110887132.0A CN113570050B (zh) | 2021-08-03 | 2021-08-03 | 一种双向异步同步先进先出适配器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110887132.0A CN113570050B (zh) | 2021-08-03 | 2021-08-03 | 一种双向异步同步先进先出适配器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113570050A true CN113570050A (zh) | 2021-10-29 |
CN113570050B CN113570050B (zh) | 2022-09-16 |
Family
ID=78170140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110887132.0A Active CN113570050B (zh) | 2021-08-03 | 2021-08-03 | 一种双向异步同步先进先出适配器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113570050B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124821A (zh) * | 2021-11-25 | 2022-03-01 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片内模块间数据传输方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805473A (zh) * | 2005-12-12 | 2006-07-19 | 沈逸林 | 网络媒体话机的无线网络接口设置方法和装置 |
CN101493759A (zh) * | 2008-01-22 | 2009-07-29 | 深圳安凯微电子技术有限公司 | 一种任意容量异步先入先出存储器的地址控制方法 |
-
2021
- 2021-08-03 CN CN202110887132.0A patent/CN113570050B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805473A (zh) * | 2005-12-12 | 2006-07-19 | 沈逸林 | 网络媒体话机的无线网络接口设置方法和装置 |
CN101493759A (zh) * | 2008-01-22 | 2009-07-29 | 深圳安凯微电子技术有限公司 | 一种任意容量异步先入先出存储器的地址控制方法 |
Non-Patent Citations (2)
Title |
---|
张凤杰等: "中高速数据异步同步变换研究及电路研制", 《华北电力学院学报》 * |
陈致樑等: "时分双工CDMA收发讯机的同步方法", 《桂林电子工业学院学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124821A (zh) * | 2021-11-25 | 2022-03-01 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片内模块间数据传输方法、装置、设备及存储介质 |
CN114124821B (zh) * | 2021-11-25 | 2024-03-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片内模块间数据传输方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113570050B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6715010B2 (en) | Bus emulation apparatus | |
US7743186B2 (en) | Serialization of data for communication with different-protocol slave in multi-chip bus implementation | |
US7761632B2 (en) | Serialization of data for communication with slave in multi-chip bus implementation | |
US7814250B2 (en) | Serialization of data for multi-chip bus implementation | |
US7769933B2 (en) | Serialization of data for communication with master in multi-chip bus implementation | |
CN113570050B (zh) | 一种双向异步同步先进先出适配器 | |
CN107943733A (zh) | 一种单板间并行总线的互联方法 | |
CN110515879B (zh) | 一种异步传输装置及其传输方法 | |
CN110045782B (zh) | 一种数据读写同步电路及数据读写方法 | |
Gaikwad et al. | Verification of AMBA AXI on-chip communication protocol | |
CN106294228B (zh) | 输入输出扩展芯片以及其验证方法 | |
CN112511537B (zh) | 一种sce-mi协议桥及仿真系统 | |
KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
WO2008133940A2 (en) | Serialization of data in multi-chip bus implementation | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
CN102645647A (zh) | 雷达成像信号模拟器 | |
US11169947B2 (en) | Data transmission system capable of transmitting a great amount of data | |
EP1304841A1 (en) | Data transmission device, data transfer system and method | |
CN114443530A (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
Li et al. | UART Controller with FIFO Buffer Function Based on APB Bus | |
CN101228733B (zh) | 在两个异步系统之间传递数据的方法及异步数据缓冲器 | |
CN104518998B (zh) | 一种两个芯片之间进行数据交换的方法 | |
CN114546925B (zh) | 一种适用于高速相机的多设备通信装置及方法 | |
CN202495946U (zh) | 一种基于物联网管理控制的fpga的总线型通信系统 | |
Zhang et al. | McSPI design and verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |