一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种片上系统可配置装置的制作方法

2022-09-04 04:37:11 来源:中国专利 TAG:


1.本技术涉及芯片设计领域,具体而言本技术实施例涉及一种片上系统可配置装置。


背景技术:

2.现有的基于现场的可编程逻辑片上系统有以下几种:
3.一种方式是将微控制器(asic芯片),可编程存储器和现场可配置阵列(fpga)进行互联,行程数据通路。用户利用现场可配置阵列实现其期望的逻辑,而微控制器用于编程储存器,存储器内存储用户定义的配置信息。
4.另一种方式是将核及相关外设的逻辑作为asic构造集成到现场可编程门阵列片(fpga)上。这样,通过配置合适的接口,可以使asic设计部分和fpga其余部分相连接,从而实现可编程系统。
5.现有的方案主要有以下几个缺点:
6.始终无法摆脱现场可配置阵列(fpga),而fpga的单价较高,会大大提升成本,不利于大规模使用。
7.对于第一种方法,由于是采用外部链接的方式来实现设备的互联,这样将会引入额外的信号延迟,从而影响系统的速度、稳定性和抗干扰能力。
8.可编程功能通过fpga实现,但编程后的信号要再次被利用,则需要作为事件再次送到asic部分进行处理,而不能客户自己通过配置去自动触发一系列操作。灵活度还是不够高。


技术实现要素:

9.本技术实施例的目的在于提供一种片上系统可配置装置以及片上系统,该系统内部它内部包含了数个功能不同的子可配置模块。这些模块既有时序逻辑功能,也有组合逻辑功能,它们的具体功能都是可配置的,并且可以通过软件配置互联,以实现定制的数字逻辑功能。通过这样的方式,其可以被用来增强现有外设并且摆脱了现有方案对fpga的依赖。
10.第一方面,本技术的一些实施例提供一种片上系统的可配置装置,所述可配置装置包括:可配置的逻辑模块,被配置为用于实现目标时序逻辑功能以及目标组合逻辑功能;以及高阶控制器模块,至少被配置为基于输入的目标事件触发一系列与所述目标事件对应的预定义操作,其中,所述目标事件包括由所述可配置的逻辑模块输出的事件。
11.本技术的一些实施例通过可配置逻辑模块和高阶控制器模块,能够实现对现有外设进行功能增强及再配置,摆脱了可配置片上系统对fpga的依赖。
12.在一些实施例中,所述高阶控制器模块进一步包括:事件握手模块,被配置为按优先级从接收的多个事件中选择所述目标事件,其中,所述优先级可配置;动作执行模块,被配置为根据与所述目标事件对应的预设指令,完成所述预定义操作,其中,通过与动作执行模块对应的配置寄存器完成所述预设指令的配置操作。
13.本技术的一些实施例让用户可以通过编程的方式,自动等待特定事件去触发一系列的操作,使系统的灵活可配性进一步加强,这样的设计可以减少模块运行时cpu的参与度,节省了系统的资源开销。
14.在一些实施例中,所述高阶控制器模块还被配置为:预先为多个事件中的每个事件分配专用指令地址,并向所述专用指令地址写入对应命令;若确认发生目标事件后,将从与所述目标事件对应的指令地址处执行所有命令,其中,所述目标事件属于所述多个事件中的任一事件。
15.本技术的一些实施例中可以对与事件对应的命令进行配置,以便在检测到相关事件后触发与该事件对应的操作(即执行对应的命令)。
16.在一些实施例中,所述高阶控制器模块还被配置为:预先为多个事件中的每个事件分配专用指令地址,并向所述专用指令地址写入对应命令;若确认两个以上事件并发时,按照设置的优先级依次响应各事件对应的命令。
17.本技术的一些实施例还可以对同时输入的多个事件进行优先级配置,方便多个并行事件的处理。
18.在一些实施例中,所述高阶控制器模块还被配置为具有流水线结构的指令操作模式。
19.本技术的一些实施例高阶控制器模块的指令操作具有流水线结构,提高指令执行效率,用户可以根据自己的需求配置指令的操作方式。流水线结构实现的方式是将译码操作和执行操作放在一个时钟周期去实现,互不干扰,从而提升效率。
20.在一些实施例中,所述高阶控制器模块还被配置执行如下命令:加法运算、减法运算、数据迁移、配置计数器模块的匹配值或者根据所述匹配值完成所述计数器模块计数值的配置操作。
21.本技术的一些实施例的高阶控制器模块还被配置为实现各种运算和数据迁移,其中所述数据迁移是指将高阶控制器模块中的数据发送至cpu或者接收来自于cpu的数据。
22.在一些实施例中,所述可配置装置还包括:输入选择器模块,被配置为通过配置信息从全局输入信号、本地输入信号以及软件配置寄存器的方式输入的信号中筛选出n路信号并对所述n路信号进行预处理,得到输入所述可配置的逻辑模块的边界信号。
23.本技术的一些实施例中提供一种输入选择器模块,该模块的设计兼顾了模块的通用性和灵活性。
24.在一些实施例中,所述配置信息包括:选通配置信息、同步配置信息、触发方式配置信息或者外部输入源选择信息。
25.本技术的一些实施例中可以对输入选择器模块进行多种配置操作,以提升该模块的性能。
26.在一些实施例中,所述可配置装置还包括:时钟预处理模块,被配置为通过一个计数器模块对时钟信号进行处理,得到一路本地信号,以供所述可配置的逻辑模块选择使用。
27.本技术的一些实施例的时钟预处理模块采用一个计数器模块来实现,提升了技术方案实现的灵活性。
28.在一些实施例中,所述可配置的逻辑模块进一步包括:计数器模块,被配置为接收所述可配置的逻辑模块包括的其它子模块输出的信号,以控制所述计数器模块的行为。
29.为实现对计数器模块的灵活可配性的目的,该计数器模块的第一部分输入来源于其他子模块的输入,他们可以控制计数器模块的行为也可以提供一些输入信号被计数器模块使用。
30.在一些实施例中,所述计数器模块还被配置为:接收来源于用户的寄存器配置信息,其中,所述寄存器配置信息包括:计数器模块模式控制信号,计数器模块的数个匹配计数值以及预加载值。
31.为实现对计数器模块的灵活可配性的目的,该计数器模块的第二部分输入来源为用户输入的配置信息,这些信号包含计数器模块模式控制信号,计数器模块的数个匹配计数值,预加载值等控制信号。
32.在一些实施例中,所述计数器模块还被配置为:接收来源于所述高阶控制器模块的信号,以使所述计数器模块的计数值被重新加载,其中,所述高阶控制器模块被配置为通过预编辑的指令内存,当目标事件触发后将对所述计数器模块的计数值进行重新加载的操作。
33.为实现对计数器模块的灵活可配性的目的,该计数器模块的第三部分输入来源于高阶控制器模块,该高阶控制器模块具有重新加载计数器模块计数值的能力。
34.在一些实施例中,所述计数器模块还被配置为包括如下端口:重置端口,用于接收优先级最高的输入;第一模式控制端口,用于所述计数器模块的使能端;第二模式控制端口,用于所述计数器模块的方向控制端;事件控制端口,用于接收目标事件,以使所述计数器模块执行与所述目标事件对应的目标操作;匹配信号输出端口,被配置为产生当计数器模块的计数值与参考值相等时输出匹配信号,其中,所述参考值属于被动态加载的值或者被静态加载的值,所述参考值存储在匹配参考寄存器中,且通过所述高阶控制器模块把所述参考值写入所述匹配参考寄存器中。
35.本技术的一些实施例通过上述端口实现了对计数器模块的灵活配置。
36.在一些实施例中,通过计数器模块使能端信号mode_0和计数器模块方向控制端信号mode_1对所述计数器模块进行配置使其执行计数功能,若事件来临则所述计数器模块根据行为输入信号调整工作行为,其中,所述工作行为包括:向下计数、向上计数、加载计数器模块值、计数器模块右移、计数器模块左移、计数器模块减法操作以及计数器模块加法操作。
37.本技术的一些实施例的计数器模块可以工作于第一种模式,即普通计数模式,在这种模式下可实现计数功能也可通过事件调整计数器模块的工作参数,提升了计数器模块的灵活可配置。
38.在一些实施例中,通过使能计数器模块串行使能信号端,所述计数器模块被配置为执行串行器的工作,其中,所述计数器模块的事件输入端被配置为位输入信号端,所述计数器模块的匹配信号输出端口被配置为串行输出所述计数器模块的数值,通过所述计数器模块的输出控制信号端的信号控制所述匹配信号输出端口输出目标位数据。
39.通过配置本技术的一些实施例的计数器模块还可以被配置为实现串行器的功能,提升了片上系统的功能。
40.在一些实施例中,通过使能所述计数器模块的串行使能信号端以及线性反馈使能信号端,则所述计数器模块被配置为实现线性反馈移位寄存器的功能。
41.通过灵活配置本技术的一些实施例的计数器模块可以实现线性反馈移位寄存器的功能。
42.在一些实施例中,所述可配置的逻辑模块还包括:状态机模块,被配置为提供实现可编程状态机的功能。
43.本技术的一些实施例的可编程的可配置的逻辑模块能够实现可编程状态机功能。
44.在一些实施例中,所述状态机模块还被配置为实现组合逻辑函数对应的运算。
45.为了增加灵活性,本技术一些实施例的状态机模块还可被配置为实现组合逻辑函数的运算。
46.在一些实施例中,所述可配置的逻辑模块还包括:逻辑运算查找表模块,被配置为实现对多个输入的组合逻辑布尔运算,其中,通过对与所述逻辑运算查找表模块对应的控制寄存器配置可实现对组合逻辑布尔运算公式的编辑。
47.本技术的一些实施例使得用户通过对一个控制寄存器的配置编程可以实现对这个多数输入的组合逻辑布尔运算公式的编辑。
48.在一些实施例中,所述可配置装置还包括:异步输出处理模块,被配置为包括三级处理,且在进入下一级之前,输入在每一级都对应不同类型的逻辑处理,其中,所述三级处理包括:第一级处理、第二级处理以及第三级处理,所述第一级处理可对输入信号进行翻转操作,所述第二级处理可基于所述第一级处理后得到的信号进行选通逻辑运算,所述第三级处理可根据所述第二级处理后得到的信号的边沿来置位或清零输出信号。
49.本技术的一些实施例负责整个片上可配置的逻辑模块输出前的处理。
50.在一些实施例中,所述可配置装置还包括:静态切换模块,用于对所述可配置片上系统包括的各模块之间的互连情况进行配置,其中,通过配置与所述静态切换模块对应设置的寄存器可实现所述可配置片上系统包括的目标模块之间的互连。
51.本技术的一些实施例用户可以通过配置寄存器实现内部子模块的互连。
52.第二方面,本技术的一些实施例提供一种片上系统,所述片上系统包括:cpu处理单元以及如第一方面任一实施例所述的可配置装置。
53.第三方面,本技术的一些实施例提供一种基于高阶控制器模块的信息处理方法,所述信息处理方法包括:根据n个触发源选择输入信号;基于所述输入信号对内存进行命令编辑,从而编辑每个触发条件对应的动作;等待触发事件,其中,对于并发触发事件按优先级进行排序;执行与所述触发事件对应的动作,其中,所述动作包括:与其它设备进行通信和数据交换、进行数据运算、进行内部数据迁移、发出中断、配置计数器模块的匹配值或者根据所述匹配值完成所述计数器模块计数值的配置操作。
附图说明
54.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
55.图1为本技术实施例提供的片上系统的组成示意图;
56.图2为本技术实施例提供的片上系统的可配置装置的组成框图之一;
57.图3为本技术实施例提供的片上系统的可配置装置的组成框图之二;
58.图4为本技术实施例提供的输入选择模块的组成示意图;
59.图5为本技术实施例提供的时钟预处理模块的组成示意图;
60.图6为本技术实施例提供的计数器模块的输入输出引脚示意图;
61.图7为本技术实施例提供的状态机模块的组成示意图;
62.图8为本技术实施例提供的逻辑运算查找表模块的输入输出引脚示意图;
63.图9为本技术实施例提供的异步输出处理模块的组成示意图;
64.图10为本技术实施例提供的高阶控制器模块的组成示意图之一;
65.图11为本技术实施例提供的高阶控制器模块的组成示意图之二;
66.图12为本技术实施例提供的基于高阶控制器模块的信息处理方法的流程图。
具体实施方式
67.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
68.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
69.本技术的一些实施例设计了一个片上可配置的逻辑模块来实现用户可编程的目标,它内部包含了数个功能不同的子可配置模块。这些模块既有时序逻辑功能,也有组合逻辑功能,它们的具体功能都是可配置的,并且可以通过软件配置互联,以实现定制的数字逻辑功能。通过这样的方式,其可以被用来增强现有外设并且摆脱了现有方案对fpga的依赖。此外,本技术的一些实施例还提供一个高阶控制器模块,该高阶控制器模块被配置为实现如下功能:可以提供一种本模块与asic芯片中其他部分进行通信和数据交互的方式;实现了一个可编程的基于事件的操作系统,其可以执行计算、逻辑功能操作和数据迁移。这些行为操作可以由用户配置决定。从而进一步加强了系统的灵活可配性。另外,这样的设计可以减少模块运行时cpu的参与度,节省了系统的资源开销。
70.请参看图1,图1为本技术的一些实施例提供一种片上系统10,该系统10包括cpu处理器11以及片上系统的可配置装置13。
71.cpu处理器被配置为片上系统的运算和控制核心,是信息处理和程序运行的最终执行单元。例如,在片上系结构中,cpu是对所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元。cpu是计算机的运算和控制核心。
72.片上系统的可配置装置13与外设连接(即通过图1的第一外设接口14、第二外设接口15以及第三外设接口16等与外部设备连接),该可配置的装置包括:可配置的逻辑模块,利用该模块来实现用户可编程的目标,它内部包含了数个功能不同的子可配置模块。这些模块既有时序逻辑功能,也有组合逻辑功能,它们的具体功能都是可配置的,并且可以通过软件配置互联,以实现定制的数字逻辑功能。通过这样的方式,其可以被用来增强现有外设并且摆脱了现有方案对fpga的依赖。此外,本技术的一些实施例可配置装置还提供一个高阶控制器模块,该高阶控制器模块被配置为实现如下功能:可以提供一种本模块与asic芯片中其他部分进行通信和数据交互的方式;实现了一个可编程的基于事件的操作系统,其可以执行计算、逻辑功能操作和数据迁移。这些行为操作可以由用户配置决定。从而进一步
加强了系统的灵活可配性。另外,这样的设计可以减少模块运行时cpu的参与度,节省了系统的资源开销。
73.需要说明的是,相关技术中采用fpga替换片上系统的可配置装置13,而结合背景技术部分的描述可知,fpga的单价较高,会大大提升成本,不利于大规模使用,且如果可编程功能通过fpga实现,但编程后的信号要再次被利用,则需要作为事件再次送到asic部分进行处理,而不能客户自己通过配置去自动触发一系列操作,灵活度还是不够高。因此本技术的实施例设计了片上系统的可配置装置13。
74.可以理解的是,本技术的一些实施例通过可配置逻辑模块和高阶控制器模块,能够实现对现有外设进行功能增强及再配置,摆脱了可配置片上系统对fpga的依赖。
75.下面结合图2示例性阐述本技术一些实施例提供的片上系统的可配置装置。
76.如图2所示,本技术一些实施例的片上系统的可配置装置,该可配置装置包括:可配置的逻辑模块100以及高阶控制器模块200。
77.可配置的逻辑模块100,被配置为用于实现目标时序逻辑功能以及目标组合逻辑功能。
78.高阶控制器模块200,至少被配置为基于输入的目标事件触发一系列与所述目标事件对应的预定义操作,其中,所述目标事件包括由所述可配置的逻辑模块输出的事件。
79.下面结合图3示例性阐述可配置装置的结构。
80.如图3所示,在本技术的一些实施例中,可配置装置还包括:输入选择器模块101,该输入选择器模块101被配置为通过配置信息从全局输入信号和本地输入信号,以及通过软件配置寄存器的方式给进来的输入信号中筛选出n路信号并对所述n路信号进行根据配置信息对n路信号进行预处理(即得到由该模块输出的n路边界输入信号),得到可输入可配置的逻辑模块的边界信号。例如,所述配置信息包括:选通配置信息、同步配置信息、触发方式配置信息或者外部输入源选择信息。本技术的一些实施例中提供一种输入选择器模块,该模块的设计兼顾了模块的通用性和灵活性。本技术的一些实施例中可以对输入选择器模块进行多种配置操作,以提升该模块的性能。
81.下面结合图4示例性阐述输入选择器模块101的结构。
82.输入选择器模块101,该模块具有多路输入,分为全局输入信号和本地输入信号,在所有可配置的逻辑模块实例化的模型中,它们都具有相同的全局输入信号及独立的本地输入信号(也就是说,(不同的可配置的逻辑模块clboc,例如一个芯片中包含3个clboc,那么这三个clboc模块具有相同的全局输入和不同的本地输入信号),这些信号既可以是和可配置的逻辑模块时钟来源同步的信号,也可以是异步输入信号。这样的设计兼顾了模块的通用性和灵活性。输入选择器模块就是让用户通过软件配置选择出n路信号,且输出的n路信号可以被可配置的逻辑模块信号内部使用。在信号被输入到可配置的逻辑模块内部前,会经过多重的处理,他们完全由用户的软件配置决定。这些配置信息包括:选通、同步、触发方式、软件输入源及外部输入源选择等。
83.如图4所示,输入选择器模块101包括:多个多路选择器,其中,从左向右第一个多路选择器111用于接收全局输入信号,且该第一多路选择器还用于接收用户配置的全局输入信号选择信息。第二个多路选择器112用于接收本地输入信号,并接收第一多路选择器111输出的信号,且该第二多路选择器还用于接收用户配置的本地输入信号选择信息。第三
多路选择器113,用于输入对第二多路选择器输出信号和由用户软件配置的输入信号,且该第三多路选择器还用于接收用户配置的软硬件信号源选择信息。第四多路选择器114的输入信号包括第三路选择器输出的信号和对该输出信号进行同步处理后的信号,且该第三多路选择器还用于接收用户配置的同步处理选择信息。第五个多路选择器115的输入信号包括第四个多路选择器114输出的信号进行滤波处理后的信号,和对该输出信号进行同步处理后的信号,且该多路选择器还用于接收用户配置的同步处理选择信息,通过第五个多路选择器的输出端可以输出clboc的输入信号[n]。可以理解的是,通过图4的五级级联的多路选择器就可以从输入的本地输入信号和全局输入信号中选择出多路输入信号,该输入信号可输入可配置的逻辑模块。例如,经过级联多路选择器选择出的信号,可以被clboc内部的所有模块使用,该模块内部的模块通过静态切换模块,选择它们的输入源,其中就包括8路被输入选择器模块选择出来的输入信号。
[0084]
在本技术的一些实施例中,可配置装置还包括:时钟预处理模块102,该时钟处理模块102被配置为通过一个计数器模块对时钟信号进行处理,得到一路本地信号,以供所述可配置的逻辑模块选择使用。本技术的一些实施例的时钟预处理模块采用一个计数器模块来实现,提升了技术方案实现的灵活性。
[0085]
为了增加灵活性,本技术一些实施例的时钟预处理模块102可以通过一个计数器模块实现,该模块的时钟处理后也当做一路本地信号,供可配置的逻辑模块100选择使用。例如,在本技术的一些实施例中,该时钟预处理模块102输出的信号需要输入输入选择器模块101,再经由输入选择器模块处理后输出。也就是说,如图3所示可知经过时钟预处理模块102处理后的信号也作为输入选择器模块101的一路输入信号,且输入选择器模块101的输出信号为n路边界输入信号,这个信号可以输入静态切换模块107(关于该模块的功能和结构会在后文描述)。
[0086]
如图5所示,时钟预处理模块102用于接收输入的时钟信号即clboc_clk,且该时钟预处理模块102包括一个判决器121,该判决器用于判断用户配置的匹配值与计数器模块的计数值是否相等,当两者相等输出判决结果信号,将判决结果信号和用户配置的抽头系数输入多路选择器122,该多路选择器用于输出时钟预处理后的信号,且该多路选择器还可以接收用户配置的输出信号处理方式。例如,用户配置的输出信号的处理方式包括:当预分频器计数值与其匹配值匹配时输出高电平,还是按照用户配置的预分频器计数器的抽头系数输出信号。
[0087]
如图3所示,在本技术的一些实施例中,可配置的逻辑模块100进一步包括:计数器模块103,且该计数器模块103的个数为一个或多个,该计数器模块被配置为接收可配置的逻辑模块100包括的其它子模块(例如图3的各模块)输出的信号,以控制计数器模块103的行为。
[0088]
为实现对计数器模块的灵活可配性的目的,该计数器模块的第一部分输入来源于其他子模块的输入,他们可以控制计数器模块的行为也可以提供一些输入信号被计数器模块使用。
[0089]
在本技术的一些实施例中,计数器模块103还被配置为:接收来源于用户的寄存器配置信息,其中,所述寄存器配置信息包括:计数器模块模式控制信号,计数器模块的数个匹配计数值以及预加载值。
[0090]
为实现对计数器模块的灵活可配性的目的,该计数器模块的第二部分输入来源为用户输入的配置信息,这些信号包含计数器模块模式控制信号,计数器模块的数个匹配计数值,预加载值等控制信号。
[0091]
在本技术的一些实施例中,计算器模块103还被配置为:接收来源于所述高阶控制器模块的信号,以使所述计数器模块的计数值被重新加载,其中,所述高阶控制器模块被配置为通过预编辑的指令内存,当目标事件触发后将对所述计数器模块的计数值进行重新加载的操作。
[0092]
为实现对计数器模块的灵活可配性的目的,该计数器模块的第三部分输入来源于高阶控制器模块,该高阶控制器模块具有重新加载计数器模块计数值的能力。
[0093]
在一些实施例中,计数器模块103还被配置为包括如下端口:重置端口,用于接收优先级最高的输入;第一模式控制端口,用于所述计数器模块的使能端;第二模式控制端口,用于对所述计数器模块的方向控制端;事件控制端口,用于接收目标事件,以使所述计数器模块执行与所述目标事件对应的目标操作;匹配信号输出端口,被配置为产生当计数器模块的计数值与参考值相等时输出匹配信号,其中,所述参考值属于被动态加载的值或者被静态加载的值,所述参考值存储在匹配参考寄存器中,且通过所述高阶控制器模块把所述参考值写入所述匹配参考寄存器中。
[0094]
本技术的一些实施例通过上述端口实现了对计数器模块的灵活配置。
[0095]
在本技术的一些实施例中,通过第一模式控制端口和第二模式控制端口的信号对所述计数器模块进行配置使其执行计数功能,若事件来临则所述计数器模块根据行为输入信号调整工作行为,其中,所述工作行为包括:向下计数、向上计数、加载计数器模块值、计数器模块右移、计数器模块左移、计数器模块减法操作以及计数器模块加法操作。
[0096]
本技术的一些实施例的计数器模块可以工作于第一种模式,即普通计数模式,在这种模式下可实现计数功能也可通过事件调整计数器模块的工作参数,提升了计数器模块的灵活可配置。
[0097]
在本技术的一些实施例中,通过使能计数器模块串行使能信号端,所述计数器模块被配置为执行串行器的工作,其中,所述计数器模块的事件输入端被配置为位输入信号端,所述计数器模块的匹配信号输出端口被配置为串行输出所述计数器模块的数值,通过所述计数器模块的输出控制信号端的信号控制所述匹配信号输出端口输出目标位数据。
[0098]
通过配置本技术的一些实施例的计数器模块还可以被配置为实现串行器的功能,提升了片上系统的功能。
[0099]
在本技术的一些实施例中,通过使能所述计数器模块的串行使能信号端以及线性反馈使能信号端,则所述计数器模块被配置为实现线性反馈移位寄存器的功能。
[0100]
通过灵活配置本技术的一些实施例的计数器模块可以实现线性反馈移位寄存器的功能。
[0101]
下面结合图6示例性阐述本技术一些实施例的计数器模块的各输入输出端口。
[0102]
本技术一些实施例的计数器模块的输入分为三个部分,第一部分输入来源于可配置的逻辑模块100包括的其它各模块(即图3可配置的逻辑模块包括的各模块)的输入,它们可以控制计数器模块的行为(例如,这些行为包括连接mode0、mode1、reset、event端)也可以提供一些输入信号被计数器模块使用。计数器模块对应的第二部分输入来源于用户配置
的寄存器,这些信号包含计数器模式控制信号,计数器模块的数个匹配计数值,预加载值等控制信号。计数器模块对应的第三部分输入来源于高阶控制器模块200,该高阶控制器模块具有重新加载计数器模块计数值的能力。实际使用中通过预编辑高阶控制器模块的指令内存,当特定事件触发后,高阶控制器模块将对计数器模块的计数值进行重新加载的操作。计数器模块的输入包含数个匹配输出,0值匹配输出,计数值输出。在计数器模块属于不同功能时,计数器模块匹配输出的意义也各有不同。也就是说,当计数器模块处于计数器功能时,计数器计数值与matchn匹配时,matchn输出将拉高。计数器计数值为0时,zero端口输出拉高。当计数器模块处于串行器模式时(serializer mode),matchn输出用作输出移位数据,此时计数器模块的计数寄存器当作移位寄存器使用则matchn具体输出移位寄存器的哪一位,且具体输出哪一位是可以通过软件配置的。
[0103]
如图6所示,本技术的一些实施例的计数器模块的输入如下,需要说明过的是下面的端口是硬件输入端口,对应的是上面所述的mode0/1、reset、event:
[0104]
重置端口reset:它是优先级最高的输入,会被最先处理。电平敏感,高有效,计数器模块将在下一个时钟周期被复位成0。
[0105]
第一模式控制端口mode_0:它是计数器模块的使能端,高有效(即采用高电平表征该信号是有效信号)。
[0106]
第二模式控制端口mode_1:它是计数器模块的方向控制端。当mode_0有效时,mode_1为高时计数器模块将向上计数,mode_1为低时计数器模块将向下计数。计数器模块向上计数时,在0xffffffff后将绕回到0x00000000,反之亦然。需要说明的是,当一个event事件恰好在同一时间发生,这将导致计数器模块加载一个新的计数值。
[0107]
事件控制端口event:它的作用是基于特定事件触发计数器模块发生一些行为。事件本身可以来自于其他模块(例如,可配置的逻辑模块)的输入或者tile的外部输入(即由上面所述的输入选择模块选出来的输出信号)。计数器模块的static control in counter mode输入定义了event发生时,计数器模块的行为。它由事件的沿触发。计数器模块的行为可以被配置如下:将一个在load value寄存器预先定义好的32位值,加载到计数寄存器中;或,将计数器模块寄存器的计数值向左或向右移动0-31位;或,加减一个预先定义好的32-bit值,加减法被当做无符号数运算,没有饱和溢出。需要说明的是,event输入的影响仅持续一个时钟周期,在下一个周期计数器模块将按照mode_0、mode_1和reset的输入继续运行。
[0108]
匹配信号输出端口match1-n ref是32-bit的参考值,它用来产生match1-n输出。每当计数器模块对应寄存器的计数值与32位的match1-nref值匹配时,match1-n电平变为高。match1-n ref的值可以再计数器模块计数前被静态加载,也可以在计数器模块工作中被动态加载。高阶控制器hlc模块可以把想要加载的值加载到match1-n ref寄存器中去。
[0109]
计数器模块的行为输入static control in counter mode,其控制的是计数器模块在counter mode下,event事件来到时,计数器模块的行为。对应的行为具体包括如下几种:
[0110]
第一种,count_event_ctrl_x:这个比特位定义了计数器模块在event来临时的操作。0表示event来临时,计数器模块将重新加载一个静态值。1表示event来临时,计数器模块将进行add/shift操作。例如,
[0111]
第二种,count_add_shift_x:1表示add,0表示shift。
[0112]
第三种,count_dir_x:1表示左移或累加,0表示右移或递减。
[0113]
第四种,串行器模式(serializer mode)及线性反馈移位功能(lfsr)模式控制输入信号,用来控制模式的使能。
[0114]
第五种,输出控制信号,用来选择match1-n的信号来源。
[0115]
第六种,高阶控制器模块控制输入信号端即hlc control,高阶控制器模块通过该端口可以对计数器模块的计数值进行动态或静态配置。
[0116]
可以理解的是,计数器模块如下三种工作模式:
[0117]
第一种工作模式,普通计数器模块模式(即),在此模式下,计数器模块通过mode_0和mode_1的配置进行相应的计数功能,而当event来临时,计数器模块则根据static control in counter mode输入的控制信号,确定计数器模块的行为,此行为只在event沿被发现的第一个周期有效,表1为普通计数器模块模式下的计数器模块行为模式。
[0118]
表1普通计数模式行为类型
[0119][0120][0121]
其中,event来临时,计数器模块的操作具体的操作如下(event_load_val为计数器模块的输入):
[0122]
加载:cntval=event_load_val
[0123]
计数器右移:cntval=cntval》》event_load_val
[0124]
计数器左移:cntval=cntval《《event_load_val
[0125]
计数器减法操作:cntval=cntval-event_load_val
[0126]
计数器加法操作:cntval=cntval event_load_val
[0127]
第二种工作模式,当计数器模块的串行器模式使能信号有效时,串行器功能即被启用,计数器模块可以作为串行器(serializer)来操作。在此模式下,计数器模块作为移位寄存器(也就是串行器)使用。在serializer mode下,event输入被用作为位输入信号,移位到计数器模块的计数寄存器中。match1-n端口被配置用于输出移位寄存器的数据。计数寄存器的任意一位可以被从match1-n端口数出。用户可以通过配置输出控制信号match_1-n_
tap_sel来决定模块输出match1-n端口输出的是计数寄存器中的那一位。该模式下的移位和方向由mode_0(使能)和mode_1(方向)。
[0128]
第三种工作模式,当计数器模块的串行器模式使能信号有效时且线性反馈功能使能输入信号也有效时,计数器模块将当作线性反馈移位寄存器来操作。通过配置lsfr的特性,计数器模块可以用于计算串行bit流的crc校验。lfsr的多项式存在match2的reference register中,反馈bit位,位置由match1的reference register决定。下图为两种线性反馈移位的结构,用户可以配置计数器模块使用那种结构实现lfsr功能。
[0129]
在本技术的一些实施例中,可配置的逻辑模块还包括:至少一个状态机模块104,且该状态机模块104被配置为提供实现可编程状态机的功能。在本技术的一些实施例中,所述状态机模块还被配置为实现组合逻辑函数对应的运算。本技术的一些实施例的可编程的可配置的逻辑模块能够实现可编程状态机功能。为了增加灵活性,本技术一些实施例的状态机模块还可被配置为实现组合逻辑函数的运算。
[0130]
也就是说,本技术的一些实施例的状态机模块fsm(或称为有限状态机模块)提供了可编程状态机的能力,状态数支持到2^n个状态。其中n为外部输入信号的数量。状态机的每位都被单独输出至本模块(即状态机模块),它有n个寄存器bit和n个外部输入,既可以被当做n个2状态状态机使用也可以当做一个2^n状态状态机使用。每个状态均有自己的函数来确定。为了增加灵活性,模块还有n路辅助输入(extra_ext_in0-(n-1)),通过放弃状态机功能,来实现更复杂的组合逻辑函数。也就是说,状态机模块内部包含一个纯组合逻辑查找表,输入分别为外部输入和内部状态。为了增加灵活性,扩大查找表的计算范围,可以用来extra_ext_in0-(n-1)代替内部的状态s_0-s_n。为方便说明,signal_n,其中n表示有n路信号,可以是n路信号的任意一路模块输入如图7所示。需要说明的是,这里的signal是泛指,因为所有的输出输出信号都有n路。
[0131]
如图7所示,状态机模块可以接收来自于本模块(即可配置的逻辑模块)中包括的其它模块的输出信号,也可以接收用户的寄存器配置信息,且该状态机模块输出的fsm_lut_out可被本模块中的其它模块选做他们的输入源,该状态机模块输出的fsm_s_0直至fsm_s_n可被本模块中的其它模块选做他们的输入源。
[0132]
图7的外部输入信号ext_in_n,可以来源于可配置的逻辑模块中其他模块的任意输出,用作模块组合逻辑输出(fsm_lut_out)或是状态机输出s_n状态。
[0133]
图7的状态机函数输入信号s_n_nxt_state_equation来源于用户的寄存器配置,决定状态机每一位的状态跳转。
[0134]
图7的外部输入信号extra_ext_in_n,可以来源于可配置的逻辑模块的任意输出,用来和ext_in_n共同使用,生成组合逻辑输出。
[0135]
图7的组合逻辑输入选择信号extra_sel_n,来源于用户的寄存器配置,决定逻辑运算输出fsm_lut_out的输入源是内部状态机s_n还是外部输入extra_ext_in_n。
[0136]
图7的逻辑运算函数输入fsm_lut_equation,来源于用户的寄存器配置。根据输入源的值,通过运算函数的引索决定逻辑fsm_lut_out的输出值。
[0137]
如图3所示,在本技术的一些实施例中,可配置的逻辑模块还包括:至少一个逻辑运算查找表模块105,该逻辑运算查找表模块105被配置为实现对多个输入的组合逻辑布尔运算,其中,通过对与所述逻辑运算查找表模块对应的控制寄存器配置可实现对组合逻辑
布尔运算公式的编辑。本技术的一些实施例使得用户通过对一个控制寄存器的配置编程可以实现对这个多数输入的组合逻辑布尔运算公式的编辑。
[0138]
如图8所示,逻辑运算查找表模块lut,该模块为一个n输入的查找表模块。用户通过对一个控制寄存器的配置编程可以实现对这个多数输入的组合逻辑布尔运算公式的编辑,即对寄存器可以配置布尔逻辑运算公式。
[0139]
图8逻辑运算查找表模块的in_n端口用于进行外部信号输入,这些外部信号可以来源于片上系统的可配置装置13上其它模块的任意输出。
[0140]
图8的逻辑运算查找表模块的逻辑运算函数输入端用于输入fsm_lut_equation信号(即图8的lut_equation信号),该信号来源于用户的寄存器配置。
[0141]
图8的逻辑运算查找表模块的输出信号为lut_out,其中,该输出信号可以被片上系统的可配置装置13上其它模块选做输入信号。
[0142]
如图3所示,在本技术的一些实施例中,片上系统的可配置装置13还包括:异步输出处理模块106,该模块被配置为包括三级处理,且在进入下一级之前,输入在每一级都对应不同类型的逻辑处理,其中,所述三级处理包括:第一级处理、第二级处理以及第三级处理,所述第一级处理可对输入信号进行翻转操作,所述第二级处理可基于所述第一级处理后得到的信号进行选通逻辑运算,所述第三级处理可根据所述第二级处理后得到的信号的边沿来置位或清零输出信号。本技术的一些实施例负责整个片上可配置的逻辑模块输出前的处理。结合图3可知,异步输出处理模块与可配置的逻辑模块输出端连接,可对可配置的逻辑模块输出再次进行处理。
[0143]
如图9所示,该图为异步输出处理模块(aoc)的整体结构组成示意图,该模块负责整个片上可配置的逻辑模块100所有信号输出前的处理,共有n个输入。每个输入都可以对应到可配置的逻辑模块100的边界输入和逻辑运算查找表模块的输出。如果是后者被选中,那么它会被寄存器锁存一拍后再做处理。每一级处理中,均有bypass选择(即bypass就是不作处理,及可以选择进行处理或直接不做处理进入下一级模块)。结合图3可知,异步输出处理模块的输入信号为n路输出逻辑运算查找结果信号且输出为n路边界输出信号。
[0144]
异步输出处理模块的逻辑可以被切分成3级,在进入下一级之前,输入在每一级都会经过不同类型的逻辑处理。
[0145]
第一级:输入信号可以被翻转,即第一级就是进行取反操作。
[0146]
第二级:来自第一级信号可以用选通信号进行选通逻辑运算,选通信号可以来自于软件也可以来outlut子模块的输出。选通函数可以是and、or、xor。也就是说,该第二级对应的四个操作分别是bypass(不作处理直接通过)、and、or、xor,最后通过mux选择第二级处理的处理方式,然后把它输入给第三级。
[0147]
第三级:可以利用输入信号的上升沿来置位/清零输出信号。这是一个纯异步操作,不需要任何时钟。释放控制信号(release control signal),当为高电平时,将会把输出恢复到默认状态(如果输入信号接在异步清零时,则输出默认态为high。如果输入信号接在异步置位时,则默认状态为low),释放控制信号可以来自于软件也可以来自outlut的输出。另外,输入信号既不做置位也不做清零而仅仅是被延迟一拍。需要说明的是,第三级处理方式分别有不作处理、做异步复位、做异步置位信号、或者被寄存器延时一拍的处理方式。当做异步复位、做异步置位信号时,其处理单元还有对应的释放信号,该信号可以来自
于软件配置或者来自于可配置的逻辑模块输出。具体各处理方式的实现过程如下:
[0148]
bypass:就是不作处理。
[0149]
异步复位:当第二级处理信号输出一个上升延时,第三级模块输出立刻变为0,此部分为异步操作,不需要时钟也可以完成,而对应的释放信号拉高时,第三级输出变为1。
[0150]
异步置位:当第二级处理信号输出一个上升延时,第三级模块输出立刻变为1,此部分为异步操作,不需要时钟也可以完成,而对应的释放信号拉高时,第三级输出变为0。
[0151]
延迟:第二级处理信号的输出被延迟一个时钟周期。
[0152]
如图3所示,在本技术的一些实施例中,片上系统的可配置装置13还包括:静态切换模块107,该静态切换模块107用于对可配置的逻辑模块包括的各模块之间的互连情况进行配置,其中,通过配置与所述静态切换模块对应设置的寄存器可实现所述可配置片上系统包括的目标模块之间的互连。本技术的一些实施例用户可以通过配置寄存器实现内部子模块的互连。因为可配置的逻辑模块内部各个子模块见具有高度灵活的互联型,任何子模块的输出都可以作为其他子模块的输入信号,因此本技术的一些实施例还设计了静态切换模块,通过该模块用户可以通过配置寄存器实现内部子模块的互连。结合图3可知,该模块的输入为输入选择器模块101的输出信号,且该模块的输出端用于向可配置的逻辑模块上的各模块提供信号。
[0153]
需要说明的是,图3的可配置的逻辑模块还包括输出逻辑运算查找表模块108,该模块与lut模块功能相同,只不过是输出专用,可配置逻辑模块的输出都是经过outlut处理后输出的。
[0154]
下面结合示例性阐述图3的片上系统的可配置装置包括的高阶控制器模块的结构和功能。参考图3可知,高阶控制器模块的输入信号是异步输出处理模块输出的n路边界信号,其输出端用于向可配置的逻辑模块包括的各模块提供信号。例如,该高阶控制模块被配置为根据输入的n路边界信号进行组合逻辑运算。
[0155]
如图10所示,在本技术的一些实施例中,高阶控制器模块200进一步包括:事件握手模块210以及动作执行模块220。
[0156]
事件握手模块210,被配置为按优先级从接收的多个事件(和其他模块一样,触发事件的输入可以由用户进行软件配置。如图3所示,hlc的触发事件相比于其它子模块来讲,除了可以来自于静态切换模块选择出的信号,还可以来自于n路输出信号)中选择所述目标事件,其中,所述优先级可配置。
[0157]
动作执行模块220,被配置为根据与所述目标事件对应的预设指令,完成所述预定义操作,其中,通过与动作执行模块对应的配置寄存器完成所述预设指令的配置操作。
[0158]
本技术的一些实施例让用户可以通过编程的方式,自动等待特定事件去触发一系列的操作,使系统的灵活可配性进一步加强,这样的设计可以减少模块运行时cpu的参与度,节省了系统的资源开销。
[0159]
在本技术的一些实施例中,高阶控制器模块还被配置为:预先为多个事件中的每个事件分配专用指令地址,并向所述专用指令地址写入对应命令;若确认发生目标事件后,将从与所述目标事件对应的指令地址处执行所有命令,其中,所述目标事件属于所述多个事件中的任一事件。本技术的一些实施例中可以对与事件对应的命令进行配置,以便在检测到相关事件后触发与该事件对应的操作(即执行对应的命令)。
[0160]
在本技术的一些实施例中,所述高阶控制器模块还被配置为:预先为多个事件中的每个事件分配专用指令地址,并向所述专用指令地址写入对应命令;若确认两个以上事件并发时,按照设置的优先级依次响应各事件对应的命令。本技术的一些实施例还可以对同时输入的多个事件进行优先级配置,方便多个并行事件的处理。
[0161]
在本技术的一些实施例中,所述高阶控制器模块还被配置为具有流水线结构的指令操作模式。本技术的一些实施例高阶控制器模块的指令操作具有流水线结构,提高指令执行效率,用户可以根据自己的需求配置指令的操作方式。流水线结构实现的方式是将译码操作和执行操作放在一个时钟周期去实现,互不干扰,从而提升效率。
[0162]
在本技术的一些实施例中,所述高阶控制器模块还被配置执行如下指令:加法运算、减法运算或数据迁移。本技术的一些实施例的高阶控制器模块还被配置为实现各种运算和数据迁移,其中所述数据迁移是指将高阶控制器模块中的数据,通过模块内部的发送接收fifo,与外界模块如dma、cpu或其他外设模块进行数据交互。。
[0163]
需要说明的是,本技术一些实施例的高阶控制器模块hlc主要实现两个功能:第一,提供与设备其余部分(例如,cpu dma或其他外设模块)进行通信和数据交换的手段。第二,提供一个可编程的,基于事件(即图3中输入到hlc的信号就是事件)的操作系统。此系统用于执行计算,逻辑功能操作和数据迁移。也就是说,每个事件输入可以被配置去触发一系列被提前定义好的操作,或者去发起一笔与设备其他部分的数据交换。系统最多可以处理n个并发事件,事件可以来自于可配置的逻辑模块100的边界输入、可配置的逻辑模块100包括的如图3所示的各模块的输出以及可配置的逻辑模块的输出。
[0164]
每个输入hlc的事件每个都有自己的专用指令地址,用户可以预先向指令地址写入命令,这样事件被触发后,命令将从事件对应的指令地址执行的。当事件并发时,事件零event0优先级最高。当优先级高的指令执行完成后,再执行优先级低的指令。每个事件由沿触发,沿类型可以配置。每个事件触发后的指令数目也可以由用户配置。
[0165]
此外,hlc的指令操作具有流水线结构,提高指令执行效率,用户可以根据自己的需求配置指令的操作方式。流水线结构实现的方式是将译码操作和执行操作放在一个时钟周期去实现,互不干扰,从而提升效率。
[0166]
如图11所示,hlc的指令分为下面这些类型可供选择:其中r_n指的是可配置的逻辑模块内部的第n个存储单元,c_n指的是可配置的逻辑模块中计数器模块的第n个实例化单元。mov_t_x中的x表示计数器模块中第x个match参数,其中,mov_t_x是命令的类型(和mov、add、sub一样),因此未体现在图中。
[0167]
mov《src》《dest》,把src移动到dest,src/dest可以是r_n,c_n。
[0168]
mov_t_x《src》《dest》,该命令将src移至dest计数器模块的match_x寄存器中去。src可以为r_n寄存器。dest可以是c_n,他表示第n个计数器模块实例化单元的match_x寄存器值。
[0169]
add《src》《dest》,此命令是32bit无符号加法运算,《dest》=《dest》 《src》.src可以指向r_n,c_n;dest只能是r_n。
[0170]
sub《src》《dest》,此命令是32bit无符号减法运算,《dest》=《dest》-《src》.src可以指向r_n,c_n;dest只能指向r_n。
[0171]
pull《dest》,此命令把cpu接口的高阶数据读缓存器的数据传送到《dest》的寄存
器中去。dest可以指向r_n,c_n。pull这个操作是从hlc的视角来看的,他将数据从内部深度为n的fifo中读取(pull)出来。
[0172]
push《src》,此命令把《src》的高阶数据写缓存器数据发送到cpu接口的中。src可以指向r_n,c_n。push命令是从hlc的视角来看的,他将数据发送(push)到内部深度为n的fifo中。
[0173]
图11的高阶控制器模块包括并行事件处理及操作模块、多个内部存储单元,该高阶控制器模块还与内部指令内存模块、高阶控制器写缓存模块以及高阶控制器读缓存模块连接,其中,高阶控制器写缓存模块和高阶控制器读缓存模块是中央处理器。也就是说,hlc拥有处理n个并行事件的能力,他是通过握手和执行两个步骤来执行的。事件握手模块:当事件来临时,模块内部锁存住事件触发的状态。事件执行模块:如果当前没有其他事件正在执行,则执行当前事件;如果当前事件正在执行,则等待时间结束完成后,清除处理忙状态,然后去查询事件握手模块中的事件触发状态,然后按优先级执行对应的事件。对于同时触发的事件,也是按照优先级去执行。
[0174]
如图12所示,本技术的一些实施例提供一种基于高阶控制器模块的信息处理方法,所述信息处理方法包括:
[0175]
s101,根据n个触发源选择输入信号。
[0176]
s102,基于所述输入信号对内存进行编辑指令,从而编辑每个触发条件对应的动作。
[0177]
s103,等待触发事件,对于并发事件,按优先级进行排序。
[0178]
s104,执行与所述触发时间对应的动作,其中,所述动作包括:与其它设备进行通信和数据交换、进行数据运算、进行内部数据迁移或者发出中断。
[0179]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0180]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0181]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存
储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0182]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0183]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
[0184]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献