兼容SRAM总线的I3C接口电路的制作方法

文档序号:19217025发布日期:2019-11-26 01:47阅读:447来源:国知局
兼容SRAM总线的I3C接口电路的制作方法

本发明涉及集成电路ip核设计技术领域,尤其涉及一种兼容sram总线的i3c接口电路。



背景技术:

ip核全称知识产权核(intellectualpropertycore),是指某一方提供的芯片设计模块。设计人员能够以ip核为基础进行专用集成电路或现场可编程逻辑门阵列(fpga)的逻辑设计,以缩短设计周期、提高设计质量与效率。

随着4g/5g、物联网等技术的飞速发展,传感器作为数据信息采集的入口、物联网的“心脏”,受到越来越多的重视。i2c总线因其简单、资源消耗少、多从机、低功耗等优点被广泛应用,然而随着传感器的智能化及微型化的发展趋势,传感器在i2c接口上的局限性逐渐凸显出来。为解决该问题,mipi联盟提出了i3c接口规范,该接口规范是i2c的升级版,具有低功耗、高数据速率、支持带内中断处理等优点。

因i3c通讯协议的复杂性,i3c通讯控制器势必要有复杂的配套功能,为了使i3c通讯控制器可实现灵活控制,可使i3c通讯控制器采用自定义接口。当前i3c通讯控制器的自定义接口往往通过将各个功能的csr寄存器(controlstatusregister的简称,即控制状态寄存器)和数据缓冲寄存器(如sramcache寄存器)暴露给用户,以完成用户与i3c通讯控制器的交互控制。这种方法在功能相对简单,控制规模相对小的场景下往往效率很高,因而十分奏效。但由于i3c通讯控制器的功能十分丰富,需要控制的参量非常多,应用非常灵活,在控制规模较大的场景下,通讯控制器与宿主系统连线将会变得十分繁杂,从而影响i3c通信的效率。



技术实现要素:

本发明提供一种兼容sram总线的i3c接口电路,以解决通讯控制器和宿主系统连线繁杂,影响i3c通信的效率的问题。

本发明提供一种兼容sram总线的i3c接口电路,包括:

操作层电路,与i3c通讯控制器相连,包括与所述i3c通讯控制器相连的用于实现自定义功能的n个配置寄存器,每一所述配置寄存器对应一寄存器接口,用于与所述i3c通讯控制器进行通信;

总线包装层电路,与所述操作层电路上的n个所述配置寄存器相连,并与sram总线相连,用于将所述配置寄存器对应的寄存器接口包装成sram总线接口,以实现与所述sram总线进行通信。

优选地,所述总线包装层电路包括用于实现地址译码功能的地址译码器和用于实现数据读写功能的读写控制器,所述地址译码器和所述读写控制器均与所述配置寄存器相连。

优选地,所述操作层电路包括用于获取起始地址的1个基址寄存器、用于实现控制功能的n-k-1个csr寄存器和用于实现数据缓冲功能的k个数据缓冲寄存器。

优选地,所述csr寄存器包括基础配置寄存器、呼叫配置寄存器、预分频寄存器、sdr消息长度寄存器、ddr消息长度寄存器、静态地址寄存器、字节传输计数器、字传输计数器、sdr呼叫地址寄存器、ddr呼叫地址寄存器、读写缓冲指针寄存器、缓冲指针复位寄存器、状态寄存器和中断标识寄存器。

优选地,所述基址寄存器的输入端与数据输入总线相连,输出端与所述地址译码器和所述读写控制器相连,用于获取与所述数据输入总线上的当前设备的起始地址,并将所述起始地址发送给所述地址译码器和所述读写控制器;

所述csr寄存器和所述数据缓冲寄存器的输入端与所述地址译码器相连,输出端与所述读写控制器相连,以使所述地址译码器获取csr寄存器和所述数据缓冲寄存器的实际地址,并使所述读写控制器基于所述实际地址进行读写控制。

优选地,所述地址译码器包括1个基址逻辑门、n-1个译码加法器和n-1个译码逻辑门,每一所述译码加法器与一所述译码逻辑门相连;

所述基址逻辑门与所述基址寄存器相连,以配合所述基址寄存器获取所述起始地址;

每一当前译码加法器的输入端与所述基址寄存器或者上一译码加法器相连,输出端与当前译码逻辑门或者与所述当前译码逻辑门和下一译码加法器相连,用于根据所述起始地址或者上一寄存器实际地址,获取与所述当前译码逻辑门相连的所述csr寄存器或者所述数据缓冲寄存器对应的当前寄存器实际地址,并将所述当前寄存器实际地址输入到所述当前译码逻辑门或者所述当前译码逻辑门和下一译码加法器。

优选地,当前译码加法器的第一输入端与所述基址寄存器的输出端或者上一译码加法器的输出端相连,用于接收起始地址或者上一寄存器实际地址;第二输入端与所述i3c通讯控制器相连,用于接收与所述当前译码逻辑门相连的所述csr寄存器或者所述数据缓冲寄存器对应的偏移增量;加法输出端与所述当前译码逻辑门或者与所述当前译码逻辑门和下一译码加法器相连,用于输出基于所述起始地址或者上一寄存器实际地址和所述偏移增量获取的当前寄存器实际地址;

所述当前译码逻辑门的输入端与所述地址总线、写使能总线和当前译码加法器相连;输出端与所述csr寄存器或者所述数据缓冲寄存器相连,用于根据所述地址总线输入的目标地址与所述当前寄存器实际地址的比较结果,控制所述csr寄存器或者所述数据缓冲寄存器。

优选地,所述读写控制器包括控制减法器、控制逻辑门、数据选择器和数据输出寄存器;所述控制减法器与所述基址寄存器和所述数据选择器相连,用于根据所述基址寄存器输出的起始地址获取当前偏移量,并发送给所述数据选择器;所述控制逻辑门与sram总线、所述基址寄存器和所述数据输出寄存器相连,用于根据所述sram总线输入的信号和所述起始地址,获取目标使能信号,并将所述目标使能信号发送给所述数据输出寄存器;所述数据选择器与所述配置寄存器、所述控制减法器和所述数据输出寄存器相连,用于根据所述配置寄存器的寄存器输出和所述当前偏移量,向所述数据寄存器输出选择信号;所述数据输出寄存器与所述sram总线、所述数据选择器和所述控制逻辑门相连,用于根据所述选择信号和所述目标使能信号进行读写控制。

优选地,所述控制减法器的第一输入端与所述地址总线相连,用于接收所述地址总线输入的目标地址;第二输入端与所述基址寄存器相连,用于接收所述起始地址;减法输出端与所述数据选择器相连,用于根据所述目标地址和所述起始地址获取当前偏移量,并将所述当前偏移量发送给所述数据选择器;

所述控制逻辑门的输入端与所述地址总线、写使能总线和所述基址寄存器相连,输出端与所述数据输出寄存器相连,用于根据所述目标地址、所述写使能总线输入的写使能信号和所述起始地址,获取目标使能信号,并将所述目标使能信号发送给所述数据输出寄存器;

所述数据选择器的第一输入端与n个所述配置寄存器的输出端,第二输入端与所述控制减法器的减法输出端相连,减法输出端与所述数据输出寄存器相连,用于根据所述当前偏移量获取选择信号,并将所述选择信号发送给所述数据输出寄存器;

所述数据输出寄存器的输入端与所述数据选择器和所述控制逻辑门相连,输出端与数据输出总线相连,用于根据数据选择器输入的选择信号和所述控制逻辑门输入的目标使能信号,与所述数据输出总线进行数据读写控制。

优选地,所述配置寄存器和所述数据输出寄存器的输入端还与系统时钟总线相连;所述csr寄存器和所述数据缓冲寄存器的输入端还与系统复位总线相连。

上述兼容sram总线的i3c接口电路中,在操作层电路上设有与i3c通讯控制器相连的n个配置寄存器,每一配置寄存器对应的寄存器接口与总线包装层电路相连,以使总线包装层电路将寄存器接口包装成sram总线接口,以便通过该sram总线接口连接到sram总线上,以使i3c通讯控制器可通过sram总线与宿主系统进行通信,在保证i3c通讯控制器灵活性的前提下,简化i3c通讯控制器与宿主系统的连线,提供通用灵活的总线连接方式,从而使得i3c总线设备具有更广泛的兼容性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中兼容sram总线的i3c接口电路的一示意图;

图2是本发明一实施例中兼容sram总线的i3c接口电路的另一示意图;

图3是本发明一实施例中兼容sram总线的i3c接口电路的一电路图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出本实施例一实施例中的兼容sram总线的i3c接口电路的示意图。如图1所示,该兼容sram总线的i3c接口电路设置在i3c通讯控制器和sram总线之间,用于将i3c通讯控制器的自定义接口包装成sram总线接口,以方便i3c通讯控制器通过sram总线挂载到中央处理器(cpu)或微控制器(mcu)系统等宿主系统上,实现在不降低i3c通讯控制器灵活性的前提下,简化i3c通讯控制器与cpu和mcu等宿主系统的连线,以提供通用灵活的总线连接方式,提高i3c总线设备适应的广泛性。

操作层电路,与i3c通讯控制器相连,包括与i3c通讯控制器相连的用于实现自定义功能的n个配置寄存器,每一配置寄存器对应一寄存器接口,用于与i3c通讯控制器进行通信。

总线包装层电路,与操作层电路上的n个配置寄存器相连,并与sram总线相连,用于将配置寄存器对应的寄存器接口包装成sram总线接口,以实现与sram总线进行通信。

其中,i3c通讯控制器是用于实现基于i3c通讯协议进行通信的控制器。配置寄存器是设置在操作层电路上自定义配置的所有寄存器的统称。配置寄存器的数量为n个,由于该配置寄存器需基址寄存器、csr寄存器和数据缓冲寄存器,因此,该配置寄存器的数量至少为三个,即n≥3。寄存器接口是设置在配置寄存器上的基于i3c通讯协议的自定义接口。该寄存器接口可以理解为与总线包装层电路相连的接口,以使总线包装层电路可将寄存器接口包装成sram总线接口,以实现与sram总线进行通信的目的,方便该i3c通讯控制器可通过sram总线挂载到中央处理器(cpu)或微控制器(mcu)系统等宿主系统上,简化i3c通讯控制器与宿主系统的连线。

一般来说,i3c通讯控制器要挂载到中央处理器(cpu)或微控制器(mcu)系统等宿主系统上时,其通讯方式一般要自定义一组csr寄存器(controlstatusregister的简称,即控制状态寄存器),用于解决工作流程控制的问题;并设置一组数据缓冲寄存器(如sramcache寄存器),用于解决数据交换问题。因此,为了实现i3c通讯控制器挂载到宿主系统,以实现其通讯功能,该操作层电路上需配置csr寄存器和数据缓冲寄存器等配置寄存器,以使每个配置寄存器可实现i3c通讯控制器对应的自定义功能。也即操作层电路上的配置寄存器包括csr寄存器和数据缓冲寄存器,其中,csr寄存器包括控制寄存器和状态寄存器。

具体地,操作层电路向下与i3c通讯控制器相连,向上与总线包装层电路相连,可依据i3c通讯控制器的操作特性,自定义配置操作层电路中各配置寄存器的功能。例如,可根据i3c通讯控制器中抽离出需要控制的信号,自定义控制寄存器;根据i3c通讯控制器中抽离出需要监控的信号,定义状态寄存器;并在操作层电路中配置数据缓冲寄存器。该数据缓冲寄存器可以采用sramcache寄存器,sram主要用于二级快速缓存,利用晶体管来存储数据;与dram相比,sram的速度快,控制简单,但在同样面积中sram的容量要比其它类型的内存小,恰好适合通讯控制器的数据缓存应用。

相应地,总线包装层电路向下与操作层电路相连,向上与sram总线相连,用于将配置寄存器对应的寄存器接口包装成sram总线接口,以实现与sram总线进行通信。也即总线包装层电路,可将操作层电路中的所有配置寄存器对应的自定义接口包装成通用且标准的sram总线接口,该sram总线接口可接入到sram总线上,以使操作层电路中的所有配置寄存器接口与sram总线通信,以使i3c通讯控制器可通过sram总线挂载到中央处理器(cpu)或微控制器(mcu)系统等宿主系统上,以实现在保证i3c通讯控制器灵活性的前提下,简化i3c通讯控制器与宿主系统的连线,提供通用灵活的总线连接方式。可以理解地,在总线包装层电路将寄存器接口包装成sram总线接口时,需使该总线包装层电路可完成基址配置、地址译码、读写控制、数据存储、中断控制等功能,以保障i3c通讯控制器的控制功能可实现。

本实施例所提供的兼容sram总线的i3c接口电路中,在操作层电路上设有与i3c通讯控制器相连的n个配置寄存器,每一配置寄存器对应的寄存器接口与总线包装层电路相连,以使总线包装层电路将寄存器接口包装成sram总线接口,以便通过该sram总线接口连接到sram总线上,以使i3c通讯控制器可通过sram总线与宿主系统进行通信,在保证i3c通讯控制器灵活性的前提下,简化i3c通讯控制器与宿主系统的连线,提供通用灵活的总线连接方式,从而使得i3c总线设备具有更广泛的兼容性。

在一实施例中,如图2所示,总线包装层电路包括用于实现地址译码功能的地址译码器和用于实现数据读写功能的读写控制器,地址译码器和读写控制器均与配置寄存器相连。

其中,该地址译码器是设置在总线包装层电路上的用于完成地址译码功能的电路,以获取连接在sram总线上的当前设备的地址。由于该地址译码器与操作层电路中的每一配置寄存器相连,以便地址译码器获知每一配置寄存器的地址,以便后续针对相应的配置寄存器进行相应的控制。读写控制器是设置在总线包装层电路上的用于与配置寄存器配合,以实现读写控制、数据存储和中断控制等功能的电路。

本实施例中,通过地址译码器确定各个配置寄存器的实际地址,并通过读写控制器的读写控制,以将操作层电路中各个配置寄存器对应的寄存器接口包装成可与sram总线进行通信的sram总线接口,以保证i3c通讯控制器可与sram总线进行通信,在保证i3c通讯控制器灵活性的前提下,简化i3c通讯控制器与宿主系统的连线,提供通用灵活的总线连接方式。

在一实施例中,如图2所示,操作层电路包括用于解决工作流程控制问题的csr寄存器组和用于解决数据交换问题的数据缓冲寄存器组。本实施例中,该csr寄存器组包括用于获取起始地址的1个基址寄存器和用于实现控制功能的n-k-1个csr寄存器,该数据缓冲寄存器组包括用于实现数据缓冲功能的k个数据缓冲寄存器。本实施例中,基址寄存器可以理解为用于解决工作流程控制的专用于获取当前设备的起始地址的csr寄存器。由于操作层电路中至少包括一个数据缓冲寄存器,则k≧1。

在一实施例中,csr寄存器包括基础配置寄存器、呼叫配置寄存器、预分频寄存器、sdr消息长度寄存器、ddr消息长度寄存器、静态地址寄存器、字节传输计数器、字传输计数器、sdr呼叫地址寄存器、ddr呼叫地址寄存器、读写缓冲指针寄存器、缓冲指针复位寄存器、状态寄存器和中断标识寄存器。具体地,操作层电路中各个自定义的配置寄存器的名称、偏移和功能如下表一所示:

表一寄存器信息表

如表一所示,在操作层电路中,设置如下配置寄存器及其相应的功能如下:

设置与i3c通讯控制器相连的一号基础控制寄存器,用于配置i3c总线的系统时钟。

设置与i3c通讯控制器相连的二号基础控制寄存器,用于配置i3c总线的速度。

设置与i3c通讯控制器相连的呼叫控制寄存器,用于发起一次i3c通讯。

设置与i3c通讯控制器相连的挂断控制寄存器,用于终止i3c通讯。

设置与i3c通讯控制器相连的预分频寄存器,用于配置i3c总线上scl的频率。

设置与i3c通讯控制器相连的sdr消息长度寄存器和ddr消息长度寄存器,用于决定一次通讯时,sdr消息和ddr消息的长度。

设置与i3c通讯控制器相连的静态地址寄存器,用于配置i3c通讯控制器的静态地址。

设置与i3c通讯控制器相连的字节传输计数器,用于获取i3c总线已经传输的sdr字节(byte)数。

设置与i3c通讯控制器相连的字传输计数器,用于获取i3c总线已经传输的ddr字(doublebyte)数。

设置与i3c通讯控制器相连的sdr呼叫地址寄存器和ddr呼叫地址寄存器,用于分别配置sdr和ddr通讯过程中目标设备的地址。

设置读写缓冲指针寄存器(即表一中的cache_wptrl、cache_wptrh、cache_rptrl、cache_rptrh和cachepointerresetregister等寄存器组),用于确定速度数据缓冲的状态,配合已传输的字节数或者字数,获知待发送/已缓存在数据缓冲寄存器中的确切位置。

设置与i3c通讯控制器相连的状态寄存器,用于获取i3c通讯控制器的当前状态。

设置与i3c通讯控制器相连的一号中断标识寄存器和二号中断标识寄存器,用于获取i3c总线上发生的中断事件。

本实施例中,通过配置与i3c通讯控制器相连的可实现不同功能的csr寄存器,以使i3c通讯控制器可通过不同csr寄存器以实现相应的功能,使得i3c通讯控制器的功能更丰富,以提高i3c总线设备应用的广泛性。

为了说明操作层电路中的csr寄存器如何完成i3c通讯控制器的控制过程,以下以i3c通讯控制器实现动态地址分配为例进行说明,其执行过程包括如下步骤:

s101:对操作层电路进行初始化设置;

s102:设置无响应时的操作;

s103:读取读写缓冲指针寄存器中读缓冲指针对应的cache_rptr当前值,具体可读取cache_rptrl和cache_rptrh的当前值;

s104:根据用户需要确定是否需要重置读缓冲指针的当前值;若是,则重置读缓冲针对,获取更新后的当前值;若否,则执行步骤s105;

s105:配置sdr字节数;

s106:填充公用广播命令地址头,entdaa命令,预分配动态地址;

s107:基于预分配动态地址,通过呼叫控制寄存器发起一次i3c通讯;

s108:基于中断标识寄存器判断中断状态,以使i3c通讯控制器根据中断状态处理中断;

s109:收到中断完成通知之后,读取读写缓冲指针寄存器中写缓冲指针对应的cache_wptr当前值,具体可读取cache_wptrl和cache_wptrh的当前值;

s110:读取字节传输计数器的值;

s111:获取起始地址,所述起始地址=cache_wptr当前值-字节传输计数器的值;

s112:从数据缓冲寄存器中读取数据,获取设备slave发来的64bitid,以实现给设备slave动态分配地址的目的。

如图3所示,本实施例中的sarm总线包括系统复位总线、系统时钟总线、写使能总线、数据输入总线、地址总线和数据输出总线。

具体地,基址寄存器的输入端数据输入总线相连,输出端与地址译码器和读写控制器相连,用于获取与数据输入总线上的当前设备的起始地址,并将起始地址发送给地址译码器和读写控制器。该基址寄存器的输入端与数据输入总线相连,可以根据该数据输入总线输入的数据,确定挂载到该总线上的当前设备的起始地址。进一步地,该基址寄存器的输入端还与系统时钟总线相连,可以使基址寄存器可以获取该系统时钟总线输入的系统时钟。

基址寄存器存储当前设备在sram总线整个地址空间中的起始地址。假定16位地址位宽的sram总线,其地址线从0x0000到0xffff即为其全部的地址空间,那么挂接到该sram总线上的不同设备可以占据全部地址空间的一部分,从而可确定数据输入总线对应的当前设备在整个地址空间的起始地址。可以理解地,基址寄存器可以将起始地址发送给地址译码器,以便对操作层电路配置的csr寄存器和数据缓冲寄存器的实际地址进行译码;并将起始地址发送给读写控制器,以使读写控制器基于起始地址对相应的csr寄存器和数据缓冲寄存器进行读写控制操作,从而保障总线包装层电路可以将各配置寄存器的寄存器接口包装成sram总线接口的实现。

具体地,csr寄存器和数据缓冲寄存器的输入端与地址译码器相连,输出端与读写控制器相连,以使地址译码器获取csr寄存器和数据缓冲寄存器的实际地址,并使读写控制器基于实际地址进行读写控制。也即操作层电路中的csr寄存器和数据缓冲寄存器对应的寄存器接口分别与地址译码器和读写控制器相连,以使地址译码器对相应的寄存器进行地址译码,确定其实际地址;再由读写控制器根据该实际地址,对相应的寄存器进行数据读取或者数据写入等操作,以完成寄存器与sram总线通信的目的。

如图3所示,csr寄存器和数据缓冲寄存器的输入端还与系统时钟总线和系统复位总线相连。即csr寄存器和数据缓冲寄存器的输入端分别与系统时钟总线相连,用于获取该系统时钟总线输入的系统时钟。该csr寄存器和数据缓冲寄存器分别与系统复位总线相连,用于根据系统复位总线发送的复位信号进行系统复位,以实现复位功能。

如图3所示,地址译码器包括1个基址逻辑门、n-1个译码加法器和n-1个译码逻辑门,每一译码加法器与一译码逻辑门相连。每一译码加法器与一译码逻辑门配合形成一地址译码组件,用于对一个csr寄存器或者一个数据缓冲寄存器进行译码,以获取csr寄存器或者数据缓冲寄存器对应的实际地址。即每一地址译码组件与一csr寄存器或者数据缓冲寄存器相匹配。

基址逻辑门与基址寄存器相连,以配合基址寄存器获取起始地址。如图3所示,基址逻辑门的输入端与地址总线、写使能总线和基址寄存器相连,输出端与基址寄存器相连,用于根据地址总线和写使能总线输入的信号生成相应的控制信号,并将控制信号发送给基址寄存器,以使基址寄存器获取起始地址,并将起始地址发送给地址译码器和读写控制器。

每一当前译码加法器的输入端与基址寄存器或者上一译码加法器相连,输出端与一当前译码逻辑门或者与当前译码逻辑门和下一译码加法器相连,用于根据起始地址或者上一寄存器实际地址,获取与当前译码逻辑门相连的csr寄存器或者数据缓冲寄存器对应的当前寄存器实际地址,并将当前寄存器实际地址输入到当前译码逻辑门或者与当前译码逻辑门和下一译码加法器。可以理解地,由于每一当前译码加法器的输入端与上一译码加法器相连,说明除了最后一个当前译码加法器之外的每一当前译码加法器的输出端与下一译码加法器的输入端相连,以将当前译码加法器的当前寄存器实际地址作为上一寄存器实际地址,输入到下一译码加法器的输入端。其中,当前译码加法器是用于对当前寄存器(csr寄存器或者数据缓冲寄存器)进行译码的加法器,上一译码加法器是与当前译码加法器的输入端相连的译码加法器,下一译码加法器是与当前译码加法器的输出端相连的译码加法器。当前译码逻辑门是与当前译码加法器相连的逻辑门。可以理解地,若某一当前译码加法器存在下一译码加法器,则当前译码加法器的输出端与当前译码逻辑门和下一译码加法器相连;若某一当前译码加法器不存在一下译码加法器,则当前译码加法器的输出端与当前译码逻辑门相连。

具体地,地址译码器中包括依序排列的n-1个地址译码组件,例如,图3所示电路中由上而上排序。在第1个地址译码组件工作时,当前译码加法器1的输入端与基址寄存器相连,输出端与当前译码逻辑门1和下一译码加法器2的输入端相连,用于根据基址寄存器输入的起始地址,获取与当前译码逻辑门1相连的csr寄存器或者数据缓冲寄存器对应的当前寄存器实际地址d_1,将该当前寄存器实际地址d_1发送给当前译码逻辑门1。并将该当前寄存器实际地址d_1作为上一寄存器实际地址发送给下一译码加法器2。相应地,在第2个地址译码组件工作时,当前译码加法器2的输入端与上一译码加法器1的输出端相连,输出端与当前译码逻辑门2和下一译码加法器3的输入端相连,用于根据上一译码加法器1输出的上一寄存器实际地址1,获取与当前译码逻辑门2相连的csr寄存器或者数据缓冲寄存器对应的当前寄存器实际地址d_2,将当前寄存器实际地址d_2发送给当前译码逻辑门2,并将当前寄存器实际地址d_2作为上一寄存器实际地址发送给下一译码加法器3……依此类推,获取第n-1个csr寄存器或者数据缓冲寄存器对应的当前寄存器实际地址。

本实施例中,地址译码器中采用链状加法器形成的地址译码器,即除了第一个当前译码加法器1与基址寄存器相连,以获取起始地址之外;剩余的n-2个当前译码加法器的输入端可与上一译码加法器的输出端相连,以便根据上一译码加法器输出的上一寄存器实际地址,计算与该当前译码加法器对应的csr寄存器或者数据缓冲寄存器的当前寄存器实际地址。这种链状结构,除了在第一个当前译码加法器1需要完整的加法功能外,剩余的n-2个当前译码加法器仅仅需要执行加2的幂次方的功能,常用的可以使2的0,1和2,这取决于目标cpu总线系统的寻址位宽。加固定值为2的幂次方的译码加法器,其电路结构简单,可有效节省逻辑资源的消耗量。相比于传统做法,每个实际地址都从起始地址加起,需要被加的偏移量越来越大,需要的实际加法器位宽也越来越大,因此,本实施例所提供的采用链状加法器的地址译码器可节约逻辑资源的消耗量。

如图3所示,每一当前译码加法器包括第一输入端、第二输入端和加法输出端。当前译码加法器的第一输入端与基址寄存器的输出端或者上一译码加法器的输出端相连,用于接收起始地址或者上一寄存器实际地址。第二输入端与i3c通讯控制器相连,用于接收与当前译码逻辑门相连的csr寄存器或者数据缓冲寄存器对应的偏移增量。加法输出端与译码逻辑门或者与当前译码逻辑门和下一译码加法器相连,用于输出基于起始地址或者上一寄存器实际地址和偏移增量获取的当前寄存器实际地址。可以理解地,由于每一当前译码加法器的第一输入端与上一译码加法器的输出端相连,说明除了最后一个当前译码加法器之外的每一当前译码加法器的加法输出端与下一译码加法器的第一输入端相连,以将当前译码加法器的当前寄存器实际地址作为上一寄存器实际地址输入到下一译码加法器的第一输入端。可以理解地,若当前译码加法器的第一输入端与基地寄存器相连,则其加法输出端输出的是基于起始地址和偏移增量获取的当前寄存器实际地址;若当前译码加法器的第一输入端与上一译码加法器相连,则其加法输出端输出的是基于上一寄存器实际地址和偏移增量获取的当前寄存器实际地址。可以理解地,若某一当前译码加法器存在下一译码加法器,则当前译码加法器的输出端与当前译码逻辑门和下一译码加法器相连;若某一当前译码加法器不存在一下译码加法器,则当前译码加法器的输出端与当前译码逻辑门相连。

如图3所示,在第1个地址译码组件工作时,当前译码加法器1的第一输入端与基址寄存器相连,用于接收基址寄存器输入的起始地址;第二输入端与i3c通讯控制器相连,用于接收i3c通讯控制器输入的csr寄存器1对应的偏移增量1;加法输出端与当前译码逻辑门1和下一译码加法器2的第一输入端相连;用于根据起始地址和偏移增量1进行加法运算,从而获取csr寄存器1对应的当前寄存器实际地址d_1,将当前寄存器实际地址d_1发送给当前译码逻辑门1,并将当前寄存器实际地址d_1作为上一寄存器实际地址发送给下一译码加法器2。

在第2个地址译码组件工作时,当前译码加法器2的第一输入端与上一译码加法器1的加法输出端相连,用于接收上一译码加法器1输入的上一寄存器实际地址;第二输入端与i3c通讯控制器相连,用于接收i3c通讯控制器输入的csr寄存器2对应的偏移增量2;加法输出端与当前译码逻辑门2和下一译码加法器3的第一输入端相连;用于根据上一寄存器实际地址和偏移增量2进行加法运算,从而获取csr寄存器2对应的当前寄存器实际地址d_2,将当前寄存器实际地址d_2发送给当前译码逻辑门2,并将当前寄存器实际地址d_2作为上一寄存器实际地址发送给下一译码加法器3。

依些类推,第n-1个地址译码组件工作时,当前译码加法器n-1的第一输入端与上一译码加法器n-2的加法输出端相连,用于接收上一译码加法器n-2输入的上一寄存器实际地址;第二输入端与i3c通讯控制器相连,用于接收i3c通讯控制器输入的数据缓冲寄存器n-1对应的偏移增量n-1;由于该当前译码加法器n-1不存在对应的下一译码加法器,则其加法输出端只与当前译码逻辑门n-1相连;用于根据上一寄存器实际地址和偏移增量n-1进行加法运算,从而获取数据缓冲寄存器对应的当前寄存器实际地址d_n-1,将当前寄存器实际地址d_n-1发送给当前译码逻辑门n-1。

相应地,当前译码逻辑门的输入端与地址总线、写使能总线和当前译码加法器相连;输出端与csr寄存器或者数据缓冲寄存器相连,用于根据地址总线输入的目标地址与当前寄存器实际地址的比较结果,控制csr寄存器或者数据缓冲寄存器。即该当前译码逻辑门的输出端可以与csr寄存器相连,用于根据地址总线输入的目标地址和当前寄存器实际地址的比较结果和写使能总线输入的信号,对csr寄存器进行控制。该译码逻辑门的输出端也可以与数据缓冲寄存器相连,用于根据地址总线输入的目标地址和当前寄存器实际地址的比较结果和写使能总线输入的信号,对数据缓冲寄存器进行控制。进一步地,该当前译码逻辑门的输入端还可以与数据输入总线相连,用于接收数据输入总线输入的数据。

具体地,每一当前译码逻辑门将地址总线输入的目标地址a的二进制位与当前译码加法器输出的当前寄存器实际地址b的二进制位进行比较,若两者全部相等时,其比较结果为真;若不相等时,其比较结果为假。若比较结果为真,且写使能总线输入的写使能高电平,其数据位为1,则向与该当前译码逻辑门相连的csr寄存器或者数据缓冲寄存器输出1;若比较结果为真,且写使能总线输入的写使能为低电平,其数据位为0,则向与该当前译码逻辑门相连的csr寄存器或者数据缓冲寄存器输出为0;其他情况,寄存器保持原值不变,以使当前译码逻辑门可以根据目标地址与实际地址的比较结果,以及写使能总线输入的信号对csr寄存器或者数据缓冲寄存器进行控制。

在一实施例中,读写控制器包括控制减法器、控制逻辑门、数据选择器和数据输出寄存器。其中,控制减法器与基址寄存器和数据选择器相连,用于根据基址寄存器输出的起始地址获取当前偏移量,并发送给数据选择器,也即控制减法器可根据起始地址计算出当前偏移量,并将当前偏移量发送给数据选择器。控制逻辑门与sram总线、基址寄存器和数据输出寄存器相连,用于根据sram总线输入的信号和起始地址,获取目标使能信号,并将目标使能信号发送给数据输出寄存器,该目标使能信号是可以写使能信号也可以是读使能信号。数据选择器与配置寄存器、控制减法器和数据输出寄存器相连,用于根据配置寄存器的寄存器输出和当前偏移量,向数据寄存器输出选择信号,该配置寄存器对应的寄存器输出是指通过配置寄存器对应的寄存器接口输出到数据选择器中的数据。数据输出寄存器与sram总线、数据选择器和控制逻辑门相连,用于根据选择信号和目标使能信号进行读写控制。即数据输出寄存器可以根据选择信号和目标使能信号,实现sram总线与csr寄存器进行数据读取或者数据写入控制,以实现i3c通讯控制器与sram总线进行通信。即通过控制减法器、控制逻辑门、数据选择器和数据输出寄存器的配合形成读写控制器,控制与该读写控制器相连的配置寄存器与sram总线进行通信,从而达到将配置寄存器的寄存器接口包装成sram总线接口的目的。

如图3所示,控制减法器的第一输入端与地址总线相连,用于接收地址总线输入的目标地址;第二输入端与基址寄存器相连,用于接收起始地址;减法输出端与数据选择器相连,用于根据目标地址和起始地址获取当前偏移量,并将当前偏移量发送给数据选择器。即该控制减法器可根据地址总线输入的目标地址与基址寄存器输入的起始地址进行减法运行,获取当前偏移量,并将当前位移量发送给数据选择器。

控制逻辑门的输入端与地址总线、写使能总线和基址寄存器相连,输出端与数据输出寄存器相连,用于根据目标地址、写使能总线输入的写使能信号和起始地址,获取目标使能信号,并将目标使能信号发送给数据输出寄存器。即地址总线、写使能总线和基址寄存器一同连接到控制逻辑门的输入端,以使控制逻辑门比较判断地址总线输入的目标地址是否在基址寄存器输入的起始地址与起始地址加上csr寄存器数量之间时,使得该控制逻辑门的输出为1。该控制逻辑门主要用于在地址总线选择当前某个csr寄存器(即目标地址与csr寄存器的实际地址一致)时,根据写使能总线输入的使能信号,获取相应的目标使能信号,并将目标使能信号发送给数据输出寄存器。例如,写使能总线输入的信号为写使能无效,即读取某个csr寄存器时,可以向数据输出寄存器输出一个高电平使能信号,以使csr寄存器将sram数据总线上的数据存储。

数据选择器的第一输入端与n个配置寄存器的输出端,第二输入端与控制减法器的减法输出端相连,减法输出端与数据输出寄存器相连,用于根据当前偏移量获取选择信号,并将选择信号发送给数据输出寄存器。即数据选择器的第一输入端与基址寄存器、n-k-1个csr寄存器和k个数据缓冲寄存器等设置在操作层电路的所有配置寄存器相连,用于接收这些配置寄存器的寄存器输出;第二输入端与控制减法器的减法输出端相连,用于接收减法输出端的当前偏移量,以根据该当前偏移量确定对相应的寄存器输出的选择信号,并将该选择信号发送给数据输出寄存器。

数据输出寄存器的输入端与数据选择器、控制逻辑门和系统时钟总线相连,输出端与数据输出总线相连,用于根据数据选择器输入的选择信号和控制逻辑门输入的目标使能信号,与数据输出总线进行数据读写控制。具体地,通过译码加法器算出各csr寄存器对应的当前寄存器实际地址;当地址总线输入的目标地址与某一csr寄存器对应的当前寄存器实际地址相匹配,可以根据选择信号确定其对应的目标csr寄存器。在确定目标csr寄存器后,若控制逻辑门输入的目标使能信号为高电平信号时,则数据输出寄存器控制目标csr寄存器存储sram总线上的数据,以实现数据写入操作;若控制逻辑门输入的目标使能信号为低电平信号时,则数据输出寄存器将目标csr寄存器锁存,并将相应的数据输出到sram总线,以实现数据读取操作。

本实施例所提供的总线包装层电路中,可实现地址译码功能、读写功能功能、基址配置功能、数据存储功能和中断控制功能,从而保障采用总线包装层电路将所有配置寄存器的寄存器接口包装成sram总线接口,以实现与sram总线进行通信。

具体地,可通过地址译码器实现地址译码功能,即通过与基址寄存器顺次连接的n-1个译码加法器,使得每一当前译码加法器基于基址寄存器输入的起始坡地或上一译码加法器输入的上一寄存器实际地址,获取当前寄存器实际地址,以实现地址译码功能。可在地址总线击中某个配置寄存器对应的当前寄存器实际地址(即目标地址与实际地址相匹配)时,基于写使能总线输入的使能信号;在该使能信号为写的时候,将sram总线上的数据写入对应的csr寄存器;在该使能信号为读的时候,将对应的csr寄存吕中的数据写入数据输出寄存器,由于csr寄存器与数据输出总线相连,则其读出的数据也被放置在sram总线上,以实现读写控制功能。可以理解地,在总线包装层电路可实现读写功能时,可通过写入操作,改变基址寄存器的起始地址,以实现基址配置功能。数据存储功能与读写控制功能类似,不同的是将连续的csr寄存器替换成普通存储器,采用读写控制功能对普通存储器进行数据的存储和读出。中断控制功能是通过将一些csr寄存器配置为中断开关寄存器(可以为上述的一号中断标识寄存器)和中断状态寄存器(可以为上述的二号中断标识寄存器),将中断开关寄存器设置为1,则对应中断开关打开;当发生中断时,通过读对应的中断状态寄存器,可以查询到具体哪个中断发生,并通过向中断状态寄存器写0来清除中断的目的。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1