CN102411556A - 用于ip核的处理器接口及其自动生成方法 - Google Patents
用于ip核的处理器接口及其自动生成方法 Download PDFInfo
- Publication number
- CN102411556A CN102411556A CN2011102132139A CN201110213213A CN102411556A CN 102411556 A CN102411556 A CN 102411556A CN 2011102132139 A CN2011102132139 A CN 2011102132139A CN 201110213213 A CN201110213213 A CN 201110213213A CN 102411556 A CN102411556 A CN 102411556A
- Authority
- CN
- China
- Prior art keywords
- interface
- kernel
- data
- processor
- signal
- 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
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种用于IP核的处理器接口及其自动生成方法,处理器接口包括接口协议模块和用于数据缓冲、时钟同步的数据缓冲同步单元;自动生成方法实施步骤如下:1)获取IP核接口描述信息;2)根据接口引脚信息获取IP核的数据宽度,根据时钟信号信息获取IP核的工作频率,根据接口时序规则生成互补时序状态机;3)如果IP核的工作频率与处理器的工作频率不相同则生成时钟同步模块;4)如果IP核的数据宽度与处理器的数据宽度不相同则生成数据缓冲模块代码;5)根据接口引脚信息、引脚映射信息和互补时序状态机生成接口协议模块。本发明具有通用性好、开发快捷、对IP核和处理器的兼容性好的优点。
Description
技术领域
本发明涉及处理器开发技术领域,具体涉及一种用于IP核的处理器接口以及寄存器传输级(Register Transfer Level,RTL)代码的自动生成方法。
背景技术
随着半导体制造技术的飞速发展,处理器的规模越来越大,处理器的设计复杂性也不断增加。IP核(Intellectual Property core)是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片,因此重复利用现有的IP核,可以有效节省处理器的设计和验证时间,大大缩短处理器的上市周期、降低处理器的开发成本。
IP核的接口协议一般根据最初设计时的处理器结构进行设计,如果需要在具有不同处理器结构的新处理器中重用该IP核,由于处理器结构不同,因此接口的不匹配使得IP核与处理器之间不能直接相连。因此,实现IP核复用的难点就在于如何高效地将IP核连接到处理器接口上,它需要考虑的问题主要包括:
1)时钟同步,处理器接口和IP核可能工作于不同的时钟频率,信号进行跨时钟域传输需要进行时钟同步;
2)数据缓存,处理器接口和IP核的数据宽度可能不同,为满足不同的数据宽度或接口协议时序约束需要进行数据缓存;
3)协议转换,处理器的接口协议和IP核的接口协议可能互不兼容,因此需要进行协议转换,才能保证数据正确传输。
为了连接接口协议互不兼容IP核和处理器,通常的做法是设计一个接口协议转换逻辑(Wrapper)。但是,这种方法的缺点是对于每个接入处理器的IP核都需要重新设计一个Wrapper,并要进行反复测试,以保证其正确性。因此,这这种方法增加了设计复杂度,降低了IP核的重用性,不能实现IP核的即插即用。
为了能够实现IP核真正的即插即用,目前有第三方组织提出了虚拟组件接口(Virtual Component Interface,VCI)思想来解决这一问题:将VCI协议作为连接IP核和处理器接口的中间协议,且该第三方组织提供VCI协议到各种常用协议的Wrapper,在IP核设计时IP核的接口采用VCI协议设计,IP核连接处理器时选择使用处理器接口协议对应的Wrapper,IP核与Wrapper连接,Wrapper再连接处理器接口。但是,一方面由于VCI思想出现的较晚,并且仅是由第三方组织提出并提供常用协议的Wrapper,因此现有的许多IP核并没与VCI协议兼容,现有IP核的接口必须进行重新设计才能符合VCI协议,这显然并不现实。另一方面,VCI协议作为IP核和处理器之间的中间协议而存在,也降低了IP核和处理器之间的接口性能。因此,基于VCI协议的方法存在兼容性不好、接口效率不高的问题。
发明内容
本发明要解决的技术问题是:提供一种兼容性好、接口效率高、设计复杂度低,能够实现IP核的即插即用、能够将IP核高效连接到处理器的用于IP核的处理器接口及其自动生成方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于IP核的处理器接口,包括相互连接的数据缓冲同步单元和采用IP核互补接口协议的接口协议模块,所述接口协议模块与IP核相连,所述接口协议模块通过数据缓冲同步单元与处理器相连,所述数据缓冲同步单元包括用于缓冲不同数据处理宽度的IP核和处理器之间数据的数据缓冲模块和用于同步不同时钟域的IP核和处理器之间数据时钟的时钟同步模块,所述数据缓冲模块与时钟同步模块相连。
作为本发明用于IP核的处理器接口的进一步改进:
所述时钟同步模块包括多个信号同步逻辑单元,所述信号同步逻辑单元包括用于转换电平信号和第一时钟域脉冲信号的第一电平脉冲转换逻辑、用于将电平信号锁存的锁存器和用于转换电平信号和第二时钟域脉冲信号的第二电平脉冲转换逻辑,所述第一电平脉冲转换逻辑、锁存器和第二电平脉冲转换逻辑依次相连。
所述锁存器为具有电平信号两次锁存功能的两级同步锁存器。
所述数据缓冲模块包括数据分割逻辑和数据组合逻辑,所述数据分割逻辑包括写数据寄存器、写地址寄存器、写控制信号寄存器和带有状态计数器的写入控制器,所述写数据寄存器、写地址寄存器、写控制信号寄存器分别与写入控制器相连;所述数据组合逻辑包括读数据寄存器、读地址寄存器、读控制信号寄存器和带有状态计数器的读取控制器,所述读数据寄存器、读地址寄存器、读控制信号寄存器分别与读取控制器相连。
本发明还提供一种用于IP核的处理器接口自动生成方法,其实施步骤如下:
1)获取IP核的接口引脚信息、时钟信号信息和接口时序规则;
2)根据所述接口引脚信息获取IP核的数据宽度,根据所述时钟信号信息获取IP核的工作频率,根据所述接口时序规则生成互补时序状态机;
3)判断所述时钟信号信息与处理器的工作频率是否相同,如果时钟信号信息的频率与处理器的工作频率不相同则生成时钟同步模块;
4)判断所述数据宽度与处理器的数据宽度是否相同,如果数据宽度与处理器的数据宽度不相同则生成数据缓冲模块代码;
5)根据所述接口引脚信息获取IP核到处理器的引脚映射信息,根据所述引脚映射信息、接口引脚信息和互补时序状态机生成具有与IP核互补接口协议的接口协议模块。
作为本发明用于IP核的处理器接口自动生成方法的进一步改进:
所述步骤2)中根据所述接口时序规则生成互补时序状态机具体包括:根据所述接口时序规则的握手时序规则生成握手互补时序状态机,根据所述接口时序规则的非握手时序规则生成非握手互补时序状态机。
所述根据接口时序规则的握手时序规则生成握手互补时序状态机的详细步骤包括:
⑴、将所述接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0,j=i+1;
⑵、取出当前时序状态Si和下一个时序状态Sj;
⑶、比较当前时序状态Si和下一个时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为当前时序状态Si到下一个时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0则跳转执行步骤⑷,否则执行步骤⑸;
⑷、执行j=j+1,如果j<n则返回执行步骤⑶,都则跳转执行步骤⑸;
⑸、执行i=i+1,如果i≠n-1则返回执行步骤⑵,否则将S0标记为Sn-1的下一个状态且转换条件为空。
所述根据接口时序规则的非握手时序规则生成非握手互补时序状态机的详细步骤包括:
①、将所述接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0、k=i+1、j=k mod n;
②、取出时序状态Si和当前时序状态Si的互补时序状态Sj;
③、比较当前时序状态Si和互补时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为时序状态Si到互补时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0则跳转执行步骤④,否则执行步骤⑤;
④、执行k=k+1、j=k mod n,如果j≠i则返回执行步骤③,否则跳转执行步骤⑤;
⑤、执行i=i+1,如果i<n则返回执行步骤②。
所述步骤5)中生成接口协议模块的详细步骤如下:
Ⅰ)根据所述接口引脚信息和引脚映射信息生成IP核处理器接口的引脚名称、信号宽度和I/O属性描述;
Ⅱ)根据握手互补时序状态机和非握手互补时序状态机的状态转换关系和转换条件,生成各个握手互补时序状态机和非握手互补时序状态机的寄存器传输级代码;
Ⅲ)生成用于实现各个互补时序状态机状态信号输出的寄存器传输级代码;
Ⅳ)针对握手互补时序状态机生成数据传输操作完成信号输出的寄存器传输级代码。
本发明用于IP核的处理器接口具有下述优点:
1、本发明的IP核处理器接口包括用于与IP核进行数据交互的接口协议模块、用于将不同数据宽度、不同时钟域的IP核和处理器之间的数据进行匹配的数据缓冲同步单元,能够实现IP核与处理器之间的通用连接,能够实现IP核的即插即用,具有对IP核的兼容性好、设计复杂度低的优点。
2、本发明的接口协议模块采用与IP核互补的接口协议,使得处理器和IP核之间的数据传输不需要经过协议转换,接口效率更高。
本发明用于IP核的处理器接口自动生成方法具有下述优点:
1、本发明可以支持采用常用接口协议的IP核,对于采用特殊接口协议的IP核,用户可以通过高级语言描述接口规则,从而生成与该协议匹配的对应的接口协议模块,从而实现与不同IP核的重用,具有通用性好、兼容性好、适用范围广泛的优点。
2、本发明通过输入IP核的接口描述信息,自动生成对应的IP核处理器接口的寄存器传输级代码(RTL代码),能够有效减少设计人员的开发时间和验证时间,简化了处理器的开发流程,提高了处理器的开发效率。
3、本发明能够判断IP核的工作频率与处理器的工作频率是否相同,如果时钟信号信息的频率与处理器的工作频率不相同则生成时钟同步模块;判断IP核的数据宽度与处理器的数据宽度是否相同,如果接口引脚信息的数据宽度与处理器的数据宽度不相同则生成数据缓冲模块代码,通过时钟同步模块和数据缓冲模块可以支持各种不同工作频率、数据宽度的IP核,支持的IP核工作频率范围广,且采用专用脉冲同步模块对IP核和处理器间的信号传输进行时钟同步,对IP核与处理器频率间的高低和比例没有要求。
附图说明
图1为本发明实施例用于IP核的处理器接口的框架结构示意图。
图2为本发明实施例中时钟同步模块的结构示意图。
图3为本发明实施例中数据分割逻辑的结构示意图。
图4为本发明实施例中数据组合逻辑的结构示意图。
图5为本发明实施例用于IP核的处理器接口自动生成方法的流程示意图。
图6为本发明实施例握手时序规则对应的互补状态机与数据传输的关系示意图。
图例说明:1、接口协议模块;2、数据缓冲同步单元;21、数据缓冲模块;2111、写数据寄存器;2112、写地址寄存器;2113、写控制信号寄存器;2114、写入控制器; 2121、读数据寄存器;2122、读地址寄存器;2123、读控制信号寄存器;2124、读取控制器;22、时钟同步模块;221、第一电平脉冲转换逻辑;222、锁存器;223、第二电平脉冲转换逻辑。
具体实施方式
如图1所示,本发明实施例用于IP核的处理器接口包括相互连接的数据缓冲同步单元2和采用IP核互补接口协议的接口协议模块1,接口协议模块1与IP核相连,接口协议模块1通过数据缓冲同步单元2与处理器相连,数据缓冲同步单元2包括用于缓冲不同数据处理宽度的IP核和处理器之间数据的数据缓冲模块21和用于同步不同时钟域的IP核和处理器之间数据时钟的时钟同步模块22,数据缓冲模块21与时钟同步模块22相连。
本实施例中,接口协议模块1按照接口描述信息自动生成,接口协议模块1采用与IP核互补的接口协议,从而可以准确高效的完成处理器与IP核的数据交换。时钟同步模块22解决处理器和IP核间的信号跨时钟域传输问题,如果处理器的工作频率与IP核相同,则不使用时钟同步模块22。数据缓冲模块21解决处理器和IP核间数据宽度不匹配的问题,如果处理器的数据宽度与IP核相同,则不使用该模块。
如图2所示,时钟同步模块22包括多个信号同步逻辑单元,信号同步逻辑单元包括用于转换电平信号和第一时钟域脉冲信号的第一电平脉冲转换逻辑221、用于将电平信号锁存的锁存器222和用于转换电平信号和第二时钟域脉冲信号的第二电平脉冲转换逻辑223,第一电平脉冲转换逻辑221、锁存器222和第二电平脉冲转换逻辑223依次相连。每一个信号同步逻辑单元的功能就是从某个时钟域接受一个单时钟宽度脉冲信号,然后在另一个时钟域中生成一个相应的单时钟宽度脉冲。本实施例中锁存器222为具有电平信号两次锁存功能的两级同步锁存器,第一电平脉冲转换逻辑221和第二电平脉冲转换逻辑223均可完成双向转换。如图2所示,以给出了一个请求信号Req和一个响应信号Ack的同步逻辑图为例,对于Clock1时钟域的Req_Clk1信号,第一电平脉冲转换逻辑221将输入的单时钟宽度的脉冲信号Req_Clk1转化为电平信号Req_L1,第一电平脉冲转换逻辑221每收到一个脉冲信号就引起Req_L1的一次电平翻转;两级同步锁存器222将信号Req_L1在Clk2时钟域锁存两次,消除亚稳态;第二电平脉冲转换逻辑223将电平信号Req_L3转变为Clock2时钟域的单时钟宽度的脉冲信号Req_Clk2,信号Req_L3的每次电平变化都会引起一个脉冲信号Req_Clk2,Ack的同步逻辑类似。
如图3和图4所示,数据缓冲模块21包括数据分割逻辑和数据组合逻辑,数据分割逻辑包括写数据寄存器2111、写地址寄存器2112、写控制信号寄存器2113和带有状态计数器的写入控制器2114,写数据寄存器2111、写地址寄存器2112、写控制信号寄存器2113分别与写入控制器2114相连;数据组合逻辑包括读数据寄存器2121、读地址寄存器2122、读控制信号寄存器2123和带有状态计数器的读取控制器2124,读数据寄存器2121、读地址寄存器2122、读控制信号寄存器2123分别与读取控制器2124相连。如图3所示,写入控制器2114用于记录当前的工作状态(共N个状态)并选择合适的数据块输出,它包含一个n bit的状态计数器(State Counter, SC),写数据寄存器2111包含N块(数据块0~数据块N-1)数据。当数据分割逻辑检测到一个处理器写操作时,首先缓存写数据和写地址,此时SC计数为0。然后数据块0和写地址作为第一个写IP核操作发出。当第一个写操作完成后,SC自增1,写地址寄存器自增Addr_Incr。之后发出第二个写IP核操作,写数据为数据块1。当第M(M<N)个写IP核操作完成后,SC自增1至M,写地址寄存器自增Addr_Incr,然后触发第M+1个写IP核操作。当第N个写IP核操作完成后(此时SC=N-1),数据分割逻辑向处理器返回一个写完成信号,标志此次写操作完成,同时SC自增1,变为0。如图4所示,读数据寄存器2121用于记录当前的工作状态(共N个状态)并将IP核返回的数据写入合适的数据块位置,它包含一个状态计数器SC。读数据寄存器2121包含N个数据块位置(数据块0~数据块N-1)。当数据组合逻辑检测到一个处理器读操作时,读地址首先被存储在读地址寄存器2122中。然后按读地址发出第一个读IP核操作,此时SC值为0。当第一个读数据返回后,读数据存入数据块0位置,SC自增1,读地址寄存器自增Addr_Incr。之后按读地址寄存器值发出第二个读IP核操作。当第M(M<N)个读IP核操作的数据返回后,读数据放入数据块M-1位置,SC自增1至M,读地址寄存器自增Addr_Incr,然后触发第M+1个读IP核操作。当第N个读IP核操作的读数据返回后(此时SC=N-1)。数据组合逻辑向处理器返回读数据,此次读操作完成,同时SC自增1,变为0。
如图5所示,本发明实施例用于IP核的处理器接口自动生成方法的实施步骤如下:
1)获取IP核的接口引脚信息、时钟信号信息和接口时序规则;
2)根据接口引脚信息获取IP核的数据宽度,根据时钟信号信息获取IP核的工作频率,根据接口时序规则生成互补时序状态机;
3)判断时钟信号信息与处理器的工作频率是否相同,如果时钟信号信息的频率与处理器的工作频率不相同则生成时钟同步模块;
4)判断数据宽度与处理器的数据宽度是否相同,如果数据宽度与处理器的数据宽度不相同则生成数据缓冲模块代码;
5)根据接口引脚信息获取IP核到处理器的引脚映射信息,根据引脚映射信息、接口引脚信息和互补时序状态机生成具有与IP核互补接口协议的接口协议模块。
本实施例中为了方便读取以及利用步骤1)获取的信息,步骤1)中对获取的IP核相关描述信息采用高级语言来进行描述。IP核相关描述信息包括5部分内容:
1、IP核的接口引脚信息。IP核的接口引脚信息包括信号名,信号宽度,信号输入输出I/O(Input/Output)属性和信号类别,其中信号类别包含系统信号、控制信号和控制信号三类信号。
2、IP核的接口时序规则。每种数据传输操作对应一套或多套时序规则,由于接口的读时序和写时序不同,所以整个接口协议至少包含两套时序规则,每套时序规则内容包含数据传输涉及的引脚,规则属性,多个时序状态和一个时序状态序列。
接口时序规则的规则属性是指时序规则的属性,本实施例时序规则的属性包括两种:握手时序规则和非握手时序规则。握手时序规则是指数据传输时,发送端在数据传输前或数据传输时先发出传输请求信号,接收端接收完数据后返回传输完成信号。握手时序规则要求接口单元和IP核之间每次数据传输都需要进行至少一次完整的握手过程,当前数据传输的握手过程完成后才能进行下一次传输;非握手时序规则允许多次数据传输的握手过程重叠进行,即允许下一个数据传输的请求信号先于当前数据传输的完成信号发出。
时序规则所包含的所有引脚信号称为该时序规则的引脚。握手时序规则和非握手时序规则的引脚有所不同。握手时序规则的引脚只包含部分接口引脚。非握手时序规则的引脚除IP核的接口引脚外,还包含相应数据缓冲的传输请求信号或完成信号。
在一个时钟周期内这些引脚的状态分为6种:
状态1:Input,表示此时引脚上为有效的输入数据;
状态2:Output,表示此时引脚上为有效的输出数据;
状态3:Any,表示此时引脚上可为任意值,值的变化不产生任何影响;
状态4:Value,表示此时引脚上值为Value;
状态5:0,表示此时引脚信号为低电平;
状态6:1,表示此时引脚信号为高电平。
每个时序状态定义引脚的一种状态组合。时序状态序列由一组连续的时序状态组成,描述一次数据传输过程中各个引脚的状态转换。在时序状态序列中允许一个时序状态出现多次。在时序状态序列中,采用了2种辅助符号(*和+)来说明时序状态保持的周期数。如果某个时序状态后有*符号,表示该状态持续周期数≥0;如果有+符号,表示该状态持续周期数≥1;如果没有任何符号,表示该状态持续1个时钟周期数。
3、IP核的时钟信号信息。时钟信号信息包括IP核的工作频率信息。
4、IP核的复位信号信息。复位信号信息包括IP核的复位信号的有效电平,可以通过IP核的复位信号信息判断出是否和对接的微处理器拥有相同的复位信号有效电平,如果复位信号有效电平。
5、IP核的数据信号信息。数据信号包括四类:读数据、读地址、写数据和写地址。
本实施例中,步骤2)通过分析步骤1)中采用高级语言来描述的IP核相关描述信息,来获取IP核的配置信息,配置信息包括IP核的接口引脚信息、引脚映射信息、时钟异步信息、数据宽度信息和工作频率信息等。步骤2)中根据接口时序规则生成互补时序状态机具体包括:根据接口时序规则的握手时序规则生成握手互补时序状态机,根据接口时序规则的非握手时序规则生成非握手互补时序状态机。假定接口序规则中包含的时序状态序列由n个时序状态组成,按顺序分别记为S0、S1、……、Sn-1。其中,S0为互补状态机的初始状态,Sn-1为结束状态。当前状态标记为Si,当前状态的下一个状态标记为Sj。步骤2)中针对不同类型的时序规则生成互补状态机的过程不同:
如图2所示,本实施例生成的IP核处理器接口包括三部分:时钟同步模块、数据缓冲模块和接口协议模块。时钟同步模块解决处理器和IP核间的信号跨时钟域传输问题。如果处理器的工作频率与IP核相同,则不使用时钟同步模块。数据缓冲模块解决处理器和IP核间数据宽度不匹配的问题,如果处理器的数据宽度与IP核相同,则不使用该模块。接口协议模块按照接口描述信息自动生成。接口协议模块采用与IP核互补的接口协议,准确高效的完成处理器与IP核的数据交换。
根据接口时序规则的握手时序规则生成握手互补时序状态机的详细步骤包括:
⑴、将接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0,j=i+1;
⑵、取出当前时序状态Si和下一个时序状态Sj;
⑶、比较当前时序状态Si和下一个时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为当前时序状态Si到下一个时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0(即Sj跟随的辅助符号为*)则跳转执行步骤⑷,否则执行步骤⑸;
⑷、执行j=j+1,如果j<n则返回执行步骤⑶,都则跳转执行步骤⑸;
⑸、执行i=i+1,如果i≠n-1则返回执行步骤⑵,否则将S0标记为Sn-1的下一个状态且转换条件为空。
根据接口时序规则的非握手时序规则生成非握手互补时序状态机的详细步骤包括:
①、将接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0、k=i+1、j=k mod n;
②、取出时序状态Si和当前时序状态Si的互补时序状态Sj;
③、比较当前时序状态Si和互补时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为时序状态Si到互补时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0(即Sj跟随的辅助符号为*)则跳转执行步骤④,否则执行步骤⑤;
④、执行k=k+1、j=k mod n,如果j≠i则返回执行步骤③,否则跳转执行步骤⑤;
⑤、执行i=i+1,如果i<n则返回执行步骤②。
如图6所示,在握手互补时序状态机与数据传输的关系图中,握手互补时序状态机初始时保持在初始状态S0,当检测到状态机对应的数据传输类型发出一个传输操作后,互补状态机才能依照状态转换条件,从S0开始进行状态转换。当互补状态机回复到初始状态S0时,说明对应的传输操作完成,发出一个操作完成信号。
步骤3)中,如果处理器和IP核工作频率不相同,则采用时钟同步模块来解决IP核和处理器间的信号跨时钟域传输问题,时钟同步模块包含多个时钟同步逻辑,每个时钟同步逻辑对一个控制信号进行时钟同步,数据信号的跨时钟域传输则由控制信号控制。在处理器和IP核间的跨时钟域数据传输通过控制信号来控制。对于一个处理器的写操作,写信号只需要给出一个时钟宽度的脉冲信号,但写数据和写地址需要保持多个周期。写信号经过时钟同步器同步传输到IP核时钟域后,写数据和写地址会被锁存到寄存器,然后对IP核进行写操作。写操作完成后,IP核给出一个时钟宽度的响应信号,响应信号经过脉冲同步器传回处理器时钟域。处理器查询到此信号后,完成此次传输。
步骤4)中,数据缓冲模块包含数据缓冲模块的大小和宽度。数据缓冲模块分为两个部分:数据分割逻辑和数据组合逻辑。处理器的数据宽度为A (A = 2a),IP核的数据宽度是B(B=2b)。处理器和IP核的接口的数据宽度的比值定为N = A/B,(N=2n, n=a-b)。数据分割和数据组合逻辑根据参数N,n和Addr_Incr自动生成。其中Addr_Incr是当一个处理器的读或写操作变为多个读写IP核操作时,地址的自增值。
步骤5)中根据接口引脚信息、引脚映射信息和互补时序状态机生成接口协议模块的详细步骤如下:
Ⅰ)根据接口引脚信息和引脚映射信息生成IP核处理器接口的引脚名称、信号宽度和I/O属性描述。
Ⅱ)根据握手互补时序状态机和非握手互补时序状态机的状态转换关系和转换条件,生成各个握手互补时序状态机和非握手互补时序状态机的寄存器传输级代码;握手互补状态机需要增加转换条件。互补状态机初始时保持在初始状态S0,当接口协议模块检测到状态机对应的数据传输类型发出一个传输操作后,互补状态机才能依照第二步的状态转换条件,从S0开始进行状态转换。
Ⅲ)生成用于实现各个互补时序状态机状态信号输出的寄存器传输级代码;互补状态机的每个状态对应接口时序规则中的一个时序状态。当互补状态机执行到某个状态时,所有输出信号(对应到相应的接口时序规则中的输入信号)按相应的时序状态中的信号引脚状态输出。
Ⅳ)针对握手互补时序状态机生成数据传输操作完成信号输出的寄存器传输级代码,当互补状态机回复到初始状态时,说明对应的传输操作完成,操作完成信号有效。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种用于IP核的处理器接口,其特征在于:包括相互连接的数据缓冲同步单元(2)和采用IP核互补接口协议的接口协议模块(1),所述接口协议模块(1)与IP核相连,所述接口协议模块(1)通过数据缓冲同步单元(2)与处理器相连,所述数据缓冲同步单元(2)包括用于缓冲不同数据处理宽度的IP核和处理器之间数据的数据缓冲模块(21)和用于同步不同时钟域的IP核和处理器之间数据时钟的时钟同步模块(22),所述数据缓冲模块(21)与时钟同步模块(22)相连。
2.根据权利要求1所述的用于IP核的处理器接口,其特征在于:所述时钟同步模块(22)包括多个信号同步逻辑单元,所述信号同步逻辑单元包括用于转换电平信号和第一时钟域脉冲信号的第一电平脉冲转换逻辑(221)、用于将电平信号锁存的锁存器(222)和用于转换电平信号和第二时钟域脉冲信号的第二电平脉冲转换逻辑(223),所述第一电平脉冲转换逻辑(221)、锁存器(222)和第二电平脉冲转换逻辑(223)依次相连。
3.根据权利要求2所述的用于IP核的处理器接口,其特征在于:所述锁存器(222)为具有电平信号两次锁存功能的两级同步锁存器。
4.根据权利要求1或2或3所述的用于IP核的处理器接口,其特征在于:所述数据缓冲模块(21)包括数据分割逻辑和数据组合逻辑,所述数据分割逻辑包括写数据寄存器(2111)、写地址寄存器(2112)、写控制信号寄存器(2113)和带有状态计数器的写入控制器(2114),所述写数据寄存器(2111)、写地址寄存器(2112)、写控制信号寄存器(2113)分别与写入控制器(2114)相连;所述数据组合逻辑包括读数据寄存器(2121)、读地址寄存器(2122)、读控制信号寄存器(2123)和带有状态计数器的读取控制器(2124),所述读数据寄存器(2121)、读地址寄存器(2122)、读控制信号寄存器(2123)分别与读取控制器(2124)相连。
5.一种用于IP核的处理器接口自动生成方法,其特征在于其实施步骤如下:
1)获取IP核的接口引脚信息、时钟信号信息和接口时序规则;
2)根据所述接口引脚信息获取IP核的数据宽度,根据所述时钟信号信息获取IP核的工作频率,根据所述接口时序规则生成互补时序状态机;
3)判断所述时钟信号信息与处理器的工作频率是否相同,如果时钟信号信息的频率与处理器的工作频率不相同则生成时钟同步模块;
4)判断所述数据宽度与处理器的数据宽度是否相同,如果数据宽度与处理器的数据宽度不相同则生成数据缓冲模块代码;
5)根据所述接口引脚信息获取IP核到处理器的引脚映射信息,根据所述引脚映射信息、接口引脚信息和互补时序状态机生成具有与IP核互补接口协议的接口协议模块。
6.根据权利要求5所述的用于IP核的处理器接口自动生成方法,其特征在于所述步骤2)中根据所述接口时序规则生成互补时序状态机具体包括:根据所述接口时序规则的握手时序规则生成握手互补时序状态机,根据所述接口时序规则的非握手时序规则生成非握手互补时序状态机。
7.根据权利要求6所述的用于IP核的处理器接口自动生成方法,其特征在于:所述根据接口时序规则的握手时序规则生成握手互补时序状态机的详细步骤包括:
⑴、将所述接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0,j=i+1;
⑵、取出当前时序状态Si和下一个时序状态Sj;
⑶、比较当前时序状态Si和下一个时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为当前时序状态Si到下一个时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0则跳转执行步骤⑷,否则执行步骤⑸;
⑷、执行j=j+1,如果j<n则返回执行步骤⑶,都则跳转执行步骤⑸;
⑸、执行i=i+1,如果i≠n-1则返回执行步骤⑵,否则将S0标记为Sn-1的下一个状态且转换条件为空。
8.根据权利要求7所述的用于IP核的处理器接口自动生成方法,其特征在于:所述根据接口时序规则的非握手时序规则生成非握手互补时序状态机的详细步骤包括:
①、将所述接口时序规则中包含的n个时序状态按照顺序分别标记为S0、S1、……、Sn-1,初始化变量i=0、k=i+1、j=k mod n;
②、取出时序状态Si和当前时序状态Si的互补时序状态Sj;
③、比较当前时序状态Si和互补时序状态Sj中的所有输出控制信号,如果输出控制信号的状态不同,则将变化的输出控制信号分别作为时序状态Si到互补时序状态Sj之间的转换条件,且各转换条件之间的关系为与;如果下一个时序状态Sj的保持周期数大于或者等于0则跳转执行步骤④,否则执行步骤⑤;
④、执行k=k+1、j=k mod n,如果j≠i则返回执行步骤③,否则跳转执行步骤⑤;
⑤、执行i=i+1,如果i<n则返回执行步骤②。
9.根据权利要求5或6或7或8所述的用于IP核的处理器接口自动生成方法,其特征在于所述步骤5)中生成接口协议模块的详细步骤如下:
Ⅰ)根据所述接口引脚信息和引脚映射信息生成IP核处理器接口的引脚名称、信号宽度和I/O属性描述;
Ⅱ)根据握手互补时序状态机和非握手互补时序状态机的状态转换关系和转换条件,生成各个握手互补时序状态机和非握手互补时序状态机的寄存器传输级代码;
Ⅲ)生成用于实现各个互补时序状态机状态信号输出的寄存器传输级代码;
Ⅳ)针对握手互补时序状态机生成数据传输操作完成信号输出的寄存器传输级代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110213213.9A CN102411556B (zh) | 2011-07-28 | 2011-07-28 | 用于ip核的处理器接口自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110213213.9A CN102411556B (zh) | 2011-07-28 | 2011-07-28 | 用于ip核的处理器接口自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102411556A true CN102411556A (zh) | 2012-04-11 |
CN102411556B CN102411556B (zh) | 2014-05-14 |
Family
ID=45913635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110213213.9A Active CN102411556B (zh) | 2011-07-28 | 2011-07-28 | 用于ip核的处理器接口自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102411556B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519011A (zh) * | 2013-09-27 | 2015-04-15 | 无锡华润微电子有限公司 | 半导体设备管理系统及其协议转换模块、半导体设备管理方法 |
CN111651950A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种跨时钟域时序约束文件的生成方法、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101001139A (zh) * | 2006-01-13 | 2007-07-18 | 硕颉科技股份有限公司 | 信号同步方法与装置 |
US7536669B1 (en) * | 2006-08-30 | 2009-05-19 | Xilinx, Inc. | Generic DMA IP core interface for FPGA platform design |
CN101593167A (zh) * | 2008-05-26 | 2009-12-02 | 联想(北京)有限公司 | 片上系统的桥接装置及方法 |
-
2011
- 2011-07-28 CN CN201110213213.9A patent/CN102411556B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101001139A (zh) * | 2006-01-13 | 2007-07-18 | 硕颉科技股份有限公司 | 信号同步方法与装置 |
US7536669B1 (en) * | 2006-08-30 | 2009-05-19 | Xilinx, Inc. | Generic DMA IP core interface for FPGA platform design |
CN101593167A (zh) * | 2008-05-26 | 2009-12-02 | 联想(北京)有限公司 | 片上系统的桥接装置及方法 |
Non-Patent Citations (2)
Title |
---|
WESTE,H.E等: "《CMOS超大规模集成电路设计》", 1 April 2006, article "第七章第7.6节同步器", pages: 384-385 * |
汪东等: "基于Gray码的异步FIFO接口技术及其应用", 《计算机工程与科学》, vol. 27, no. 1, 27 January 2005 (2005-01-27), pages 58 - 60 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519011A (zh) * | 2013-09-27 | 2015-04-15 | 无锡华润微电子有限公司 | 半导体设备管理系统及其协议转换模块、半导体设备管理方法 |
CN111651950A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种跨时钟域时序约束文件的生成方法、设备及介质 |
CN111651950B (zh) * | 2020-05-09 | 2024-02-13 | 山东浪潮科学研究院有限公司 | 一种跨时钟域时序约束文件的生成方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102411556B (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101599053B (zh) | 支持多种传输协议的串行接口控制器及控制方法 | |
CN100585852C (zh) | 使用最少引脚而被测试的半导体器件、以及测试其的方法 | |
US20090150706A1 (en) | Wrapper circuit for globally asynchronous locally synchronous system and method for operating the same | |
CN101694512A (zh) | 测试电路和片上系统 | |
CN102970013A (zh) | 基于扫描链的芯片内部寄存器复位方法及复位控制装置 | |
CN113009961B (zh) | 一种跨时钟同步电路及SoC系统 | |
CN110825344A (zh) | 一种异步数据传输方法和结构 | |
KR101334111B1 (ko) | 쿼드 데이터 레이트(qdr) 제어기 및 그의 실현방법 | |
CN102411556A (zh) | 用于ip核的处理器接口及其自动生成方法 | |
CN108667628B (zh) | 一种接口转换装置和接口转换方法 | |
CN116560457B (zh) | 基于iic通信的跨时钟域同步电路及方法 | |
US8510485B2 (en) | Low power digital interface | |
Pham-Thai et al. | A novel multichannel UART design with FPGA-based implementation | |
CN107392292A (zh) | 用于传送数据的电子电路和方法 | |
CN111723541A (zh) | 一种跨时钟域数据接口的实现方法 | |
CN103065672A (zh) | 一种基于同步静态随机存储器ip的异步静态随机存储器 | |
CN111506529B (zh) | 一种应用于flash的高速spi指令应答电路 | |
CN102778645B (zh) | 一种jtag主控制器及其实现方法 | |
CN115437972A (zh) | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 | |
CN101398802A (zh) | 一种I2C Slave接口的通信方法及装置 | |
CN101751357B (zh) | 一种数字锁相回路装置 | |
CN114756498A (zh) | 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备 | |
CN202495946U (zh) | 一种基于物联网管理控制的fpga的总线型通信系统 | |
CN203482180U (zh) | 通讯接口同步电路 | |
CN203085182U (zh) | 一种基于同步静态随机存储器ip 的异步静态随机存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |