用于AHB总线向Crossbar总线的通讯转换桥设备
技术领域
本发明涉及一种通讯转换桥设备,尤其涉及一种用于AHB总线向Crossbar总线的通讯转换桥设备。
背景技术
AHB(Advanced High-performance Bus)总线规范是AMBA总线规范的一部分。AMBA总线规范是ARM公司提出的总线规范。由于AMBA的规范是对外开放的,利用许可条款设计者可以免费的开发自己的AMBA接口,使得AMBA片上总线技术得到广泛的应用。
AHB总线规范用来作为SoC设计的内部高速总线,挂载高速设备。AHB总线系统由主设备、从设备和基础设备构成。基础设备由仲裁器、数据多路选择器、地址控制多路选择器和译码器构成。由需要占用总线的主设备向仲裁器提出占用总线请求,仲裁器授权给指定的主设备。任一时间周期只有一个主设备可以接入总线,对其指定的从设备进行读写操作。总线统一规划从设备的地址,译码器根据地址选择哪个从设备与主设备进行数据通信。授权访问机制通过多路选择器实现:仲裁器将获得授权的主设备序号传输给地址和写数据多路,以选择哪个主设备接入总线;地址译码器根据主设备需要访问的地址选择主设备,并为写数据多路提供控制信号以选通相应的从设备。
主设备必须获得授权接入总线,才可以进行AHB传输。这一过程开始于总线向仲裁器发出请求信号,然后仲裁器决定哪个主设备可以获得授权接入总线。
获得授权的总线开始AHB传输,首先发出地址和控制信号。这些信号提供地址信息、传输方向和带宽以及burst类型。根据地址和控制信号确定主设备与哪个从设备链接,进行数据传输,数据传输通过数据总线完成。为避免出现三态总线,AHB将读写总线分开,写数据总线用于从主设备到从设备的数据传输,读数据总线用于从从设备到主设备的数据传输。每比传输包括一个地址和控制周期,一个或多个数据周期。地址控制周期不能被扩展,因此从设备必须在一个周期采样地址信号。数据周期可以通过HREADY信号扩展。但HREADY为低时给传输加入一个等待状态以使从设备从设备获得额外的时间来提供或采样数据。另外从设备通过响应信号HRESP反映传输状态。
一般情况下主设备完成的完整的burst传输,仲裁器才会授权给其他的主设备接入总线。然而为避免过大的判决延迟,仲裁器也可能打断burst传输。在这种情况下主设备必须请求再次接入总线以进行中断的burst的剩余部分的传输。
Crossbar(即CrossPoint)被称为交叉开关矩阵或纵横式交换矩阵,它是业界公认的用于构建大容量系统的首选交换网络结构。总线交换、环形交换和共享内存交换结构都是某种程度上的共享带宽,而Crossbar结构的交换网完全突破了这种限制,在交换网络内部没有带宽的瓶颈,不会因为带宽资源不够而产生阻塞。Crossbar结构的交换网采用了一种矩阵结构实现了无阻塞交换。Crossbar交换网络在数据平面没有任何瓶颈。这正是因为Crossbar引入了交换矩阵这种新的交换方式,摒弃了共享带宽的交换方式,在数据交换方式上是一种革命性的变化。Crossbar交换网的扩展能力非常强,交换容量可以做的很大,基本不受硬件条件限制,目前单颗芯片交换容量在256G-700G之间,多颗芯片可以构建T级乃至几T容量的大型交换网络,足以满足当前和未来几年网络对交换容量的需求,并且随着硬件集成技术的进步,单颗Crossbar芯片支持的容量会更大。
每一条输入线路与每个输出线路都有一个交叉点。在交叉点处由一个半导体开关连接输入线路与输出线路。当来自某个接口的输入线路需要交换到另一个接口的输出点时,在CPU或交换矩阵控制器的控制下,将交叉点的开关连接,数据就发送到另一个接口。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种用于AHB总线向Crossbar总线的通讯转换桥设备。
本发明的目的通过以下技术方案来实现:
用于AHB总线向Crossbar总线的通讯转换桥设备,包括有装置本体,其中:所述的装置本体内设置有AHB总线,所述的AHB总线上连接功能控制装置,所述功能控制装置分别连接有用来存放通过从机读取数据的读数据FIFO装置,用来存放主机发出地址的地址FIFO装置,控制FIFO装置,地址产生装置,数据选择器,二输入或门装置;设AHB总线数据位宽为L,Crossbar的位宽为M,且L≥M,定义N=L/M,所述数据选择器采用至少三个N位的数据选择器MUX81、数据选择器MUX82和数据选择器MUX83组成,所述地址产生装置的地址输入端口为din81端口,输出端口为dout81端口至dout8N端口。
上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的控制FIFO装置包括,写时钟输入端口wclk81,读时钟输入端口rclk81,控制输入端口writen_in81和readen_in81,控制信息输入端口write_in8,控制信息输出端口write_out81~write_out8N,空满状态输出端口read_out81,write_out81;AHB总线时钟输入给控制FIFO装置的写时钟端口wclk81,由Crossbar的总线时钟输入给控制FIFO装置读时钟rclk81端口;由功能控制装置cout81a端口和功能控制装置cout81b端口产生的read_en8信号1和write_en81信号输入到控制输入端口writen_in81和控制输入端口readen_in81;将AHB总线中的Hwrite信号输入到FIFO装置的控制信息输入端口write_in8,及或门的输入端口;由控制输入端口read_out81和控制输入端口write_out81产生Read_full81信号、Write_full8信号,输入给功能控制装置的控制coin81a端口和coin81b端口;由空满状态输出端口write_out81~write_out8N端口产生N个控制信号write81~write8N输入到N位的数据选择器MUX81的数据端口。
进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的地址FIFO装置包括,写时钟输入端口wclk82,读时钟输入端口rclk82,控制输入端口writen_in82和readen_in82,地址信息输入端口addr_in8,控制信息输出端口addr_out81~addr_out8N,空满状态输出端口read_out82,write_out82,AHB总线时钟输入给控制FIFO装置的写时钟端口wclk82,由Crossbar的总线时钟输入给控制FIFO装置读时钟端口rclk82,由功能控制装置cout82a端口和cout82b端口产生的read_en82信号和write_en82信号输入到控制输入端口writen_in82和控制输入端口readen_in82,由AHB总线中的Hdaddr信号输入到信息输入端addr_in8端口;由read_out82端口和write_out82端口产生Read_full82、Write_full82输入给功能控制装置的控制coin82a和coin82b端口;由addr_out81~addr_out8N端口产生N个地址信号addr81~addr8N输入到N位的数据选择器MUX82的数据端口。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的写数据FIFO装置,包括写时钟输入端口wclk83,读时钟输入端口rclk83,控制输入端口writen_in83、控制输入端口readen_in83,数据信息输入端口wdata_in8,控制信息输出端口wdata_out81~wdata_out8N,空满状态输出端口read_out83与空满状态输出端口write_out83,由AHB总线时钟HCLK输入给控制FIFO装置的写时钟端口wclk83,由Crossbar的总线时钟TCLK输入给控制FIFO装置读时钟端口rclk83;由功能控制装置端口cout83a和功能控制装置端口cout83b产生的read_en83信号和write_en83信号输入到控制输入到控制输入端口writen_in83、控制输入端口readen_in83,由AHB总线中的Hwdata信号输入到信息输入端wdata_in8端口;由read_out83端口和write_out83端口产生Read_full83、Write_full83输入给功能控制装置的控制端口coin83a和控制端口coin83b端口;由wdata_out81~wdata_out8N端口产生N个数据信号addr81~addr8N输入到N位的数据选择器MUX83的数据端口。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的读数据FIFO装置包括,写时钟输入端口wclk84,读时钟输入端口rclk84,控制输入端口writen_in84、控制输入端口readen_in84,数据信息输入端为rdata_in8,控制信息输出端口rdata_out8,空满状态输出端口read_out84,空满状态输出端口write_out84,由AHB总线时钟HCLK输入给控制FIFO装置的写时钟端口wclk84,由Crossbar的总线时钟输入给控制FIFO装置读时钟端口rclk84;由功能控制装置的端口cout84a和端口cout84b产生的read_en84信号和write_en84信号输入到控制输入端口writen_in84和端口readen_in84;由Crossbar总线中的Crdata信号输入到信息输入端rdata_in8端口;由read_out84端口和write_out84端口产生Read_full84信号、Write_full84信号输入给功能控制装置的控制端口coin84a和控制端口coin84b;由rdata_out8端口产生读数据信号Hrdata8输送到AHB总线的读数据线Hrdata中。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的功能控制装置包括,时钟信号输入端口clk8;控制信号输入端口coin81a、coin81b、coin82a、coin82b、coin83a、coin83b、coin84a、coin84b、Hsel8;控制信号输出端口cout81a、cout81b、cout82a、cout82b、cout83a、cout83b、cout84a、cout84b、selo81、selo82、selo83;由AHB总线时钟HCLK输入给功能控制装置时钟端口clk8;由AHB总线选中信号Hsel输入给功能控制装置控制信号输入端口Hsel8;由控制FIFO装置的read_out81端口和write_out81端口产生Read_full81、Write_full81输入给功能控制装置的控制coin81a和coin81b端口;由地址FIFO装置的read_out82端口和write_out82端口产生Read_full82、Write_full82输入给功能控制装置的控制coin82a和coin82b端口;由写数据FIFO装置的read_out83端口和write_out83端口产生Read_full83、Write_full83输入给功能控制装置的控制coin83a和coin83b端口;由读数据FIFO装置的read_out84端口和write_out84端口产生Read_full84、Write_full84输入给功能控制装置的控制coin84a和coin84b端口;由功能控制装置cout81a和cout81b端口分别产生的read_en81和write_en81信号输入到控制FIFO装置的writen_in81和readen_in81端口;由功能控制装置cout82a和cout82b端口分别产生的read_en82和write_en82信号输入到地址FIFO装置的writen_in82和readen_in82端口;由功能控制装置cout83a和cout83b端口分别产生的read_en83和write_en83信号输入到写数据FIFO装置的writen_in83和readen_in83端口;由功能控制装置cout84a和cout84b端口分别产生的read_en84和write_en84信号输入到读数据FIFO装置的writen_in84和readen_in84端口,同时Read_en84信号还要输入给二输入或门装置Or8的输入2端口;由功能控制装置selo81端口输出sel81信号到MUX81的选择端,selo82端口输出sel82信号到MUX82的选择端,selo83端口输出sel83信号到MUX83的选择端。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的功能控制装置至少包括七种工作状态,包括待机状态,开始状态,写数据等待状态;地址、控制、数据信息发送状态,地址、控制信息发送状态,读数据等待状态,读数据发送状态;所述七种工作状态的转换关系为,1)待机状态;进入开始的条件是当Hsel8为高的时候,否则一直停留在该待机状态;2)开始状态;当Hwrite8信号为高时下一状态为写数据等待状态;当Hwrite8信号为低时下一状态为地址、控制、数据信息发送状态;3)写数据等待状态;进入地址、控制、数据信息发送状态的条件是检测Read_full83是否为低电平,当它为高时依旧停留在此状态;4)地址、控制、数据信息发送状态;当Read_full82为低电平时,则继续判断之前写入控制FIFO装置的下一位为低电平则进入地址、控制信息发送状态;若之前写入控制FIFO装置的下一位为高电平则进入地址、控制、数据信息发送状态;当Read_full82为高电平时,进入待机状态;5)地址、控制信息发送状态,下一状态是读数据等待状态;6)读数据等待状态;若Read_full84为高时,则继续停留在此状态等待;若Read_full84为低时,则进入读数据发送状态;7)读数据发送状态,下一状态是待机状态。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:在不同状态下对应的信号变化为,1)在待机状态下,该状态用于进行初始化,进入该状态要对四个FIFO装置做清空初始化,清空数据选择器的选择信号,清除FIFO装置的读与写的使能;2)在开始状态下,输出地址FIFO装置写使能信号、控制FIFO装置写使能信号和写数据FIFO装置的写使能信号用来存储地址和控制信息,以及提前准备接收数据;其余信号依旧保持上一状态的值;3)在写数据等待状态下,该状态所有信号保持上一状态的值;4)在地址、控制、数据信息发送状态下,发送地址FIFO装置的读使能信号、控制FIFO装置的读使能信号和写数据FIFO装置的读使能信号;其中MUX的选择信号sel1=sel1+1、sel2=sel2+1、sel3=sel3+3;其余信号依旧保持上一状态的值;5)在地址、控制信息发送状态下,发送地址FIFO装置的读使能信号、控制FIFO装置的读使能信号和读数据FIFO装置的写使能信号;其余信号依旧保持上一状态的值;6)在读数据等待状态下,该状态所有信号保持上一状态的值;7)在读数据发送状态下,发送读数据FIFO装置的读使能信号;其余信号依旧保持上一状态的值。
更进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:所述的数据选择器MUX81产生Cwrite8信号输送到Crossbar总线上的控制线Cwrite,数据选择器MUX82产生Caddr8信号输送到Crossbar总线上的地址线Caddr,数据选择器MUX83产生Cwdata8信号输送到Crossbar总线上的写数据线Cwdata,二输入或门装置Or8产生Hready8信号输入给AHB总线的准备好信号Hready。
再进一步地,上述的用于AHB总线向Crossbar总线的通讯转换桥设备,其中:地址产生装置将AHB总线的地址线Hdaddr输入到地址产生装置的输入端口din81,由地址产生装置产生地址信号daddr81~daddr8N输入到地址FIFO装置写数据端口daddr_in81~daddr_in8N,其中地址信号daddr81~daddr8N之间的关系如下所述,daddr81=Hdaddr、daddr82=Hdaddr+1、daddr83=Hdaddr+2直至daddr8N=Hdaddr+N。
本发明技术方案的优点主要体现在:通过AHB总线,与各个功能FIFO装置相配合,构成有效的转接桥结构,实现AHB总线中主设备向Crossbar总线中的从设备发起的读/写操作,使数据在满足两边总线各自的时序规范的同时可以无出错的进行通信。
附图说明
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。
图1是AHB到Crossbar同等位宽数据传输的写操作示意图。
图2是AHB到Crossbar不同位宽数据传输的写操作(AHB-32位,Crossbar-16位)示意图。
图3是AHB到Crossbar同等位宽数据传输的读操作示意图。
图4是AHB总线向Crossbar总线的通讯转换桥设备连接原理示意图。
图5是AHB到Crossbar不同位宽转换桥示意图。
图6是AHB到Crossbar转换桥状态机示意图。
具体实施方式
如图1~6所示的用于AHB总线向Crossbar总线的通讯转换桥设备,包括有装置本体,其与众不同之处在于:在装置本体内设置有AHB总线,AHB总线上连接功能控制装置。具体来说,所述功能控制装置分别连接有用来存放通过从机读取数据的读数据FIFO装置,用来存放主机发出地址的地址FIFO装置,控制FIFO装置(读写控制,1表示写,0表示读),地址产生装置,数据选择器,二输入或门装置(Or8)。为了便于实现信号处理,设AHB总线数据位宽为L,Crossbar的位宽为M,且L≥M,定义N=L/M。同时,数据选择器采用至少三个N位的数据选择器MUX81、数据选择器MUX82和数据选择器MUX83组成。为了提高处理量,地址产生装置的地址输入端口为din81端口,输出端口为dout81端口至dout8N端口。由此,地址产生装置将AHB总线的地址线Hdaddr输入到地址产生装置的输入端口din81,由地址产生装置产生地址信号daddr81~daddr8N输入到地址FIFO装置写数据端口daddr_in81~daddr_in8N。并且,其中的地址信号daddr81~daddr8N之间的关系如下所述,daddr81=Hdaddr、daddr82=Hdaddr+1、daddr83=Hdaddr+2直至daddr8N=Hdaddr+N。
就本发明一较佳的实施方式来看,控制FIFO装置包括,写时钟输入端口wclk81,读时钟输入端口rclk81,控制输入端口writen_in81和readen_in81,控制信息输入端口write_in8,控制信息输出端口write_out81~write_out8N,空满状态输出端口read_out81,write_out81。具体来说,AHB总线时钟(HCLK)输入给控制FIFO装置的写时钟端口wclk81,由Crossbar的总线时钟(TCLK)输入给控制FIFO装置读时钟rclk81端口。由功能控制装置cout81a端口和功能控制装置cout81b端口产生的read_en8信号1和write_en81信号输入到控制输入端口writen_in81和控制输入端口readen_in81;将AHB总线中的Hwrite信号输入到FIFO装置的控制信息输入端口write_in8,及或门的输入端口。由控制输入端口read_out81和控制输入端口write_out81产生Read_full81信号、Write_full8信号,输入给功能控制装置的控制coin81a端口和coin81b端口。由空满状态输出端口write_out81~write_out8N端口产生N个控制信号write81~write8N输入到N位的数据选择器MUX81的数据端口。
进一步来看,本发明采用的地址FIFO装置包括,写时钟输入端口wclk82,读时钟输入端口rclk82,控制输入端口writen_in82和readen_in82,地址信息输入端口addr_in8,控制信息输出端口addr_out81~addr_out8N,空满状态输出端口read_out82,write_out82。具体来说,AHB总线时钟输入给控制FIFO装置的写时钟端口wclk82,由Crossbar的总线时钟输入给控制FIFO装置读时钟端口rclk82,由功能控制装置cout82a端口和cout82b端口产生的read_en82信号和write_en82信号输入到控制输入端口writen_in82和控制输入端口readen_in82,由AHB总线中的Hdaddr信号输入到信息输入端addr_in8端口。由read_out82端口和write_out82端口产生Read_full82、Write_full82输入给功能控制装置的控制coin82a和coin82b端口;由addr_out81~addr_out8N端口产生N个地址信号addr81~addr8N输入到N位的数据选择器MUX82的数据端口。
为了有效写入对应数据,写数据FIFO装置,包括写时钟输入端口wclk83,读时钟输入端口rclk83,控制输入端口writen_in83、控制输入端口readen_in83,数据信息输入端口wdata_in8,控制信息输出端口wdata_out81~wdata_out8N,空满状态输出端口read_out83与空满状态输出端口write_out83。由此,通过AHB总线时钟HCLK输入给控制FIFO装置的写时钟端口wclk83,由Crossbar的总线时钟TCLK输入给控制FIFO装置读时钟端口rclk83。由功能控制装置端口cout83a和功能控制装置端口cout83b产生的read_en83信号和write_en83信号输入到控制输入到控制输入端口writen_in83、控制输入端口readen_in83。并且,由AHB总线中的Hwdata信号输入到信息输入端wdata_in8端口。同时,由read_out83端口和write_out83端口产生Read_full83、Write_full83输入给功能控制装置的控制端口coin83a和控制端口coin83b端口。并且,由wdata_out81~wdata_out8N端口产生N个数据信号addr81~addr8N输入到N位的数据选择器MUX83的数据端口。
再进一步来看,为了适应前述的写数据需要,实现对应的读数据,采用的读数据FIFO装置包括,写时钟输入端口wclk84,读时钟输入端口rclk84,控制输入端口writen_in84、控制输入端口readen_in84,数据信息输入端为rdata_in8,控制信息输出端口rdata_out8,空满状态输出端口read_out84,空满状态输出端口write_out84。实际处理时,由AHB总线时钟HCLK输入给控制FIFO装置的写时钟端口wclk84,由Crossbar的总线时钟输入给控制FIFO装置读时钟端口rclk84。同时,由功能控制装置的端口cout84a和端口cout84b产生的read_en84信号和write_en84信号输入到控制输入端口writen_in84和端口readen_in84。由Crossbar总线中的Crdata信号输入到信息输入端rdata_in8端口。由read_out84端口和write_out84端口产生Read_full84信号、Write_full84信号输入给功能控制装置的控制端口coin84a和控制端口coin84b。由rdata_out8端口产生读数据信号Hrdata8输送到AHB总线的读数据线Hrdata中。
考虑到能够匹配不同的功能需要,采用功能控制装置包括,时钟信号输入端口clk8;控制信号输入端口coin81a、coin81b、coin82a、coin82b、coin83a、coin83b、coin84a、coin84b、Hsel8;控制信号输出端口cout81a、cout81b、cout82a、cout82b、cout83a、cout83b、cout84a、cout84b、selo81、selo82、selo83。实际处理时,由AHB总线时钟HCLK输入给功能控制装置时钟端口clk8。同时,由AHB总线选中信号Hsel输入给功能控制装置控制信号输入端口Hsel8。由控制FIFO装置的read_out81端口和write_out81端口产生Read_full81、Write_full81输入给功能控制装置的控制coin81a和coin81b端口。并且,由地址FIFO装置的read_out82端口和write_out82端口产生Read_full82、Write_full82输入给功能控制装置的控制coin82a和coin82b端口;由写数据FIFO装置的read_out83端口和write_out83端口产生Read_full83、Write_full83输入给功能控制装置的控制coin83a和coin83b端口。由读数据FIFO装置的read_out84端口和write_out84端口产生Read_full84、Write_full84输入给功能控制装置的控制coin84a和coin84b端口;由功能控制装置cout81a和cout81b端口分别产生的read_en81和write_en81信号输入到控制FIFO装置的writen_in81和readen_in81端口。由功能控制装置cout82a和cout82b端口分别产生的read_en82和write_en82信号输入到地址FIFO装置的writen_in82和readen_in82端口;由功能控制装置cout83a和cout83b端口分别产生的read_en83和write_en83信号输入到写数据FIFO装置的writen_in83和readen_in83端口。由功能控制装置cout84a和cout84b端口分别产生的read_en84和write_en84信号输入到读数据FIFO装置的writen_in84和readen_in84端口,同时Read_en84信号还要输入给二输入或门装置Or8的输入2端口。由功能控制装置selo81端口输出sel81信号到MUX81的选择端,selo82端口输出sel82信号到MUX82的选择端,selo83端口输出sel83信号到MUX83的选择端。
结合本发明的实际使用情况来看,采用的功能控制装置至少包括七种工作状态,包括待机状态,开始状态,写数据等待状态;地址、控制、数据信息发送状态,地址、控制信息发送状态,读数据等待状态,读数据发送状态。具体来说,七种工作状态的转换关系为,1)待机状态;进入开始的条件是当Hsel8为高的时候,否则一直停留在该待机状态;2)开始状态;当Hwrite8信号为高(主机发出写数据命令)时下一状态为写数据等待状态;当Hwrite8信号为低(主机发出读数据命令)时下一状态为地址、控制、数据信息发送状态;3)写数据等待状态;进入地址、控制、数据信息发送状态的条件是检测Read_full83是否为低电平(要写的数据已经存入到写数据FIFO装置中),当它为高(要写的数据没有存入到写数据FIFO装置中)时依旧停留在此状态;4)地址、控制、数据信息发送状态;当Read_full82为低电平(地址非空,则主机还需要和从机通信)时,则继续判断之前写入控制FIFO装置的下一位为低电平(读命令)则进入地址、控制信息发送状态;若之前写入控制FIFO装置的下一位为高电平(写命令)则进入地址、控制、数据信息发送状态;当Read_full82为高电平(地址已空,主机和从机通信已经结束)时,进入待机状态;5)地址、控制信息发送状态,下一状态是读数据等待状态;6)读数据等待状态;若Read_full84为高(读数据FIFO装置为空,从设备还没有将数据缓存至读数据FIFO装置)时,则继续停留在此状态等待;若Read_full84为低(读数据FIFO装置非空,从设备还已经将要读的数据缓存至读数据FIFO装置)时,则进入读数据发送状态;7)读数据发送状态,下一状态是待机状态。
再者,为了实现数据处理的顺利过渡,在不同状态下对应的信号变化为:1)在待机状态下,该状态用于进行初始化,进入该状态要对四个FIFO装置做清空初始化(将每个FIFO装置复位),清空数据选择器的选择信号(sel1=0、sel2=0、sel3=0),清除FIFO装置的读与写的使能(Write_en81=0、Write_en82=0、Write_en83=0、Write_en84=0、Read_en81=0、Read_en82=0、Read_en83=0和Read_en84=0)。2)在开始状态下,输出地址FIFO装置写使能信号(Write_en82=1)、控制FIFO装置写使能信号(Write_en81=1)和写数据FIFO装置的写使能信号(Write_en83=1)用来存储地址和控制信息,以及提前准备接收数据;其余信号依旧保持上一状态的值。3)在写数据等待状态下,该状态所有信号保持上一状态的值。4)在地址、控制、数据信息发送状态下,发送地址FIFO装置的读使能信号(Read_en82=1)、控制FIFO装置的读使能信号(Read_en81=1)和写数据FIFO装置的读使能信号(Read_en83=1)。其中MUX的选择信号sel1=sel1+1、sel2=sel2+1、sel3=sel3+3,其余信号依旧保持上一状态的值。5)在地址、控制信息发送状态下,发送地址FIFO装置的读使能信号(Read_en82=1)、控制FIFO装置的读使能信号(Read_en81=1)和读数据FIFO装置的写使能信号(Write_en84=1);其余信号依旧保持上一状态的值;6)在读数据等待状态下,该状态所有信号保持上一状态的值;7)在读数据发送状态下,发送读数据FIFO装置的读使能信号(Read_en84=1);其余信号依旧保持上一状态的值。
结合各个数据选择器的实际工作情况来看,数据选择器MUX81产生Cwrite8信号输送到Crossbar总线上的控制线Cwrite,数据选择器MUX82产生Caddr8信号输送到Crossbar总线上的地址线Caddr,数据选择器MUX83产生Cwdata8信号输送到Crossbar总线上的写数据线Cwdata。同时,二输入或门装置Or8产生Hready8信号输入给AHB总线的准备好信号Hready。
换句话说,采用本发明时,根据AHB地址信号和数据信号的流水线传输,需要在AHB至Corssbar增加相应的异步FIFO来保证AHB的主机可以顺利访问Corssbar的从机。该转换桥在AHB总线上作为一个从设备工作,在Crossbar总线中作为主设备工作。
AHB主机对Crossbar从机访问的信号变化时序图如图1(同等位宽写操作)、图2为不同位宽写操作、图3为读操作。其中图4为两总线采用相同位宽时的特殊情况,图5为一般情况。如图4所示,该AHB至Crossbar转换桥总共包括3个模块,分别是异步FIFO模块、地址产生模块和控制模块以及3个N位的数据选择器和1个二输入或门。
异步FIFO装置由4个FIFO组成,分别是:控制FIFO、地址FIFO、写数据FIFO和读数据FIFO。控制FIFO在HCLK时钟上升沿触发下存放AHB总线中主机发送过来控制信息Hwrite;地址FIFO在HCLK时钟上升沿触发下存放主机发送过来的地址信息Hdaddr;写数据FIFO在HCLK的上升沿触发下存放主机发送过来的数据信息Hwdata;读数据FIFO用来存放来自Crossbar从机的数据。异步FIFO的时序分别由AHB的时钟和经过时钟产生模块后的TCLK时钟分别控制。4个FIFO模块将空满标志位传给,以方便进行下一步操作的控制。需要强调的是该数据FIFO的位宽由位宽较小的决定。
该系统的的地址转换模块的作用主要是当两个总线位数不匹配时用于产生与数据相匹配的地址。本系统中的三个MUX的位数也要和两总线的倍数相匹配。最后由MUX组来输出相匹配的地址、数据和控制信息给从机。
本系统中写数据FIFO和读数据FIFO的位宽跟随相应读出的总线位宽变化,地址FIFO和控制FIFO也要根据相应的倍数成倍增加。而在读数据时,位宽低的接口则只取与之相匹配的低位作为有效位,高位丢弃。下面两个例子可以解释地址产生模块的工作过程:
例:AHB为32位总线,Crossbar为16位总线,则写数据FIFO的位宽取16位,读数据FIFO的位宽取32位。总共需要两组地址FIFO、控制FIFO和写数据FIFO来存储和发送数据。
AHB位宽(Hsize)/Crossbar位宽(定值)=2
则地址产生模块作用在AHB的主机对Crossbar从机写数据上。当写数据时地址产生模块会自动地加2进行高字节的填充。通过1位的MUX进行数据、地址和控制信息输出的切换。
而读数据的FIFO则将会从Crossbar读过来的数据写入读数据FIFO,将高16位自动填零,对应的地址信息不发生改变。
例:假若AHB为32位总线,Crossbar为128位总线,则相应的写数据FIFO的位宽取32位,读数据FIFO为32位。写数据时自动将高位填充至零。
写数据FIFO将从AHB总线上传过来的数据自动存储至低位,高位填充全零。
读数据FIFO则需要进行数据拆分,存储低32位。不同的是在这里只有低32位有效,高位无效。本系统的控制模块主要控制整个模块的工作使能,相应FIFO的写使能和读使能,以及和主设备的通信任务。如图6所示。
首先,整个系统在接收到由主机发送过来的选中信号Hsel,开始准备接收AHB总线的信号。根据AHB总线中传输地址和数据的流水方式,转换桥会在第一个HCLK上升沿接收到由主机发送过来的地址和控制信息。地址信息直接存入相应的地址FIFO,控制信息在存入控制FIFO的同时还要输送给控制模块。控制模块在此时需检测主机发过来的命令是读还是写。
如果检测到是写命令,则进入等待状态,并且这时状态机开始检测写数据FIFO空满状态,当写数据FIFO非空时进入数据发送状态。在数据发送状态会在Crossbar总线的TCLK时钟下同步发送地址、数据和控制信息至Crossbar总线。下面则检测该写数据FIFO是否非空,若FIFO非空,则继续停留在发送数据状态;如果FIFO已空则根据Hsel信号确定下一个状态,当Hsel=1,表明还需要继续传送,回到开始状态状态,准备下一次的传输;当Hsel=0,表明传输结束,回到待机状态。
如果检测到是读命令,则根据相应的组合逻辑使信号产生Hready=0(从机没有准备好的信号)给主机,这时进入数据发送状态,同样的会在TCLK时钟下同步发送地址和控制信息至Crossbar总线。然后进入等待状态,这时控制器会检测读数据FIFO的空满状态,当检测到读数据FIFO为非空状态则进入数据发送状态。此时将数据通过Hrdata端口发送至AHB总线中,并同时产生准备好信号(Hready=1)。由于此时从Crossbar传过来的数据高于AHB总线的高位无效,故此时不需要检测读数据FIFO的空满状态,直接根据Hsel信号确定下一个状态,当Hsel=1,表明还需要继续传送,回到开始状态,准备下一次的传输;当Hsel=0,表明本次传输结束,回到待机状态。
通过上述的文字表述可以看出,采用本发明后,通过AHB总线,与各个功能FIFO装置相配合,构成有效的转接桥结构,实现AHB总线中主设备向Crossbar总线中的从设备发起的读/写操作,使数据在满足两边总线各自的时序规范的同时可以无出错的进行通信。
这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。