一种外设系统的自动连接配置方法与流程

摘要: 本技术涉及集成电路设计的,尤其涉及一种外设系统的自动连接配置方法。背景技术:1、芯片设计通常包含大量的外设子系统(包括不同速率的外设接口),外设子系统需要连接外...
一种外设系统的自动连接配置方法与流程

本技术涉及集成电路设计的,尤其涉及一种外设系统的自动连接配置方法。

背景技术:

1、芯片设计通常包含大量的外设子系统(包括不同速率的外设接口),外设子系统需要连接外部模块进行数据搬运,外设子系统和外部模块之间可能涉及到跨层次的连接,涉及到的模块数量比较多,且模块之间的连接接口较多,造成芯片中两个模块之间的复杂接口连接,现有技术依赖人工手动操作,存在以下缺陷:

2、效率低下:手动连接需逐行编写verilog代码,耗时较长,尤其在信号数量庞大时更为突出。

3、易出错:接口命名规则复杂或位宽不一致时,易出现信号遗漏、命名错误或连接错误。

4、重复性:在同一芯片中,许多接口的连接是重复性的(例如,多个外设子系统需要连接到同一内存空间),手动完成这些重复性工作会降低开发效率。

5、维护困难:需求变更时需手动调整代码,接口连接也需要随之调整,难以保证一致性和可扩展性。

6、专利申请号为202110317192.9的中国发明专利公开一种用于描述寄存器的文件的转换控制方法,转换控制方法是以脚本文件的形式在一种脚本工具中运行,所述转换控制方法在脚本工具运行后,在excel格式文件的每个分页内逐行地进行合法性遍历,只需通过修改用于描述寄存器的excel格式文件就可以通过脚本工具比较规范地将用于描述寄存器的excel格式文件转换为所述符合ralf格式的文件,降低一次性转换可能产生的出错机会,促进不同设计模块内的待验证的寄存器的设计规范的一致性。但是在脚本工具运行所述转换控制方法之前或之后,需要系统设计人员根据excel表格的格式手动把寄存器描述信息(包括字段名称、字段位宽、访问属性、复位值)填写到各个分页的对应一行单元格内,另外,运行所述转换控制方法时整体上没有解决外设系统例化过程(或者手动连接外设接口)中存在的前述提及的效率低下、易出错以及重复性。

技术实现思路

1、本技术提出一种外设系统的自动连接配置方法,具体的技术方案如下:

2、一种外设系统的自动连接配置方法,外设系统包括至少一个外设子系统;自动连接配置方法包括以下步骤:步骤1:从外设系统的硬件描述文件中识别总线信号,其中,总线信号是预先定义在外设系统的硬件描述文件中的用于外设子系统与总线功能模块之间交互的信号;步骤2:依次识别步骤1提取的总线信号中各个比特位的信号名称,再按照信号类型对各个比特位的信号名称进行分类存储,生成外设信号名称列表;步骤3:通过对步骤2生成的外设信号名称列表进行按位解码,为外设信号名称列表中各个信号名称分配位索引,并将外设信号名称列表中各个信号名称按顺序映射到所需连接的总线功能模块的对应总线接口;步骤4:对步骤3中已分配位索引的信号名称进行字符串格式化处理,生成接口连接代码片段;步骤5:将步骤4生成的接口连接代码片段按顺序写入步骤1所述的硬件描述文件中的指定区域,生成新硬件描述文件,以通过运行该新硬件描述文件来控制各个信号名称在外设子系统中对应的接口分别与所需连接的总线功能模块的对应总线接口连接。

3、综上所述,步骤1至步骤5共同构成了一个完整的自动化脚本,能够高效地生成不同外设子系统与所需连接的总线功能模块的接口连接代码。实现支持所有外设下的各种信号类型的总线信号按照统一定义的命名规则、排序规则以及信号类型定义进行各个比特位信号的统一命名、自动排序、自动连接,既可以显著减少手动操作的时间以提高开发效率,也可以消除人为错误以提高连接准确率和设计的可靠性,解决多个外设子系统在顶层例化过程中存在的接口连线重复性问题、效率低下问题以及出错问题。

4、进一步地,步骤3为外设信号名称列表中各个信号名称分配位索引时,将外设信号名称列表中各个信号名称按顺序映射到总线接口组名称列表中对应的接口名称;步骤4生成接口连接代码片段时,支持使用各个信号名称对应的信号对步骤3的总线接口组名称列表中对应的接口名称进行赋值;其中,总线接口组名称列表是外设子系统所需连接的总线功能模块中,用于传输步骤1提取的总线信号的总线接口的接口名称组成。基于此,后续生成接口连接代码片段时,自动使用外设信号名称列表中各个信号名称分别对相映射的接口名称进行赋值,方便顶层模块快速集成整个外设系统。

5、进一步地,每当通过执行步骤1来提取出一个外设子系统所需传输的总线信号后,通过执行步骤2来为同一个外设子系统所需传输的总线信号中各个比特位的信号名称进行分类,得到同一个外设子系统对应的各个外设信号名称列表;然后通过执行步骤3来为各个外设信号名称列表中的信号名称分配位索引以映射到所需连接的总线功能模块的对应总线接口;然后通过执行步骤4生成各个外设信号名称列表对应的接口连接代码片段;其中,同一个外设子系统对应的一个外设信号名称列表是同一个外设子系统所需传输的同一信号类型的总线信号中各个比特位的信号名称组成,同一个外设信号名称列表内的各个比特位的信号名称均按照位索引有序映射到同一个总线接口组名称列表中对应的接口名称,同一个外设子系统所需连接的一个总线功能模块中用于传输同一信号类型的总线信号的总线接口的接口名称组成同一个总线接口组名称列表。实现例化为一个外设信号名称列表中的信号名称通过位索引连接到总线功能模块的对应总线接口。而且执行步骤4来生成新的接口连接代码片段,无需修改步骤4的代码生成逻辑。解决手动操作中的重复性、易错性问题。

6、进一步地,步骤1中,从外设系统的硬件描述文件中识别出至少一个外设子系统的总线信号;其中,每个外设子系统均用于传输至少一个总线信号;一个总线信号中的一个比特位信号使用一个信号名称进行标识,一个总线信号中的一个比特位信号支持在一个外设子系统的一个接口及其所需连接的一个总线功能模块对应的一个接口之间传输,使步骤5控制各个外设子系统中用于传输各个比特位信号的接口与所需连接的总线功能模块的对应总线接口连接;其中,一个外设子系统用于连接至少一个总线功能模块,使一个外设子系统所需连接的总线功能模块的数量为至少一个。从而通过自动化脚本解析信号的名称,可以在顶层模块中自动集成不同外设子系统与其外部的总线功能模块的各种类型的总线接口,以确保连接的正确性,克服手动连接接口可能导致信号遗漏或错误连接问题。

7、进一步地,步骤2中,按照信号类型对各个比特位的信号名称进行分类存储的方法包括:针对同一个外设子系统,控制其所传输的同一信号类型的总线信号中各个比特位的信号名称有序存入列表,再将所存入的列表标识为一个外设信号名称列表;其中,同一个外设子系统包括至少一个ip核;一种信号类型的总线信号包括至少一个总线信号,使一个外设子系统中不同ip核传输的同一信号类型的总线信号均对应于同一个外设信号名称列表。实现所述外设系统可以根据需求灵活扩展外设子系统及其内部的ip核和信号数量并能够集成到脚本中,支持更多的外设子系统及其内部的更多ip核通过位索引映射到更多的总线功能模块。

8、进一步地,步骤3中,通过对步骤2生成的外设信号名称列表进行按位解码,为外设信号名称列表中各个信号名称分配位索引的方法包括:逐个比特位地遍历各个外设信号名称列表内各个信号名称,再将每次遍历到的一个信号名称配置为一个位信号的名称,以实现将步骤1识别的总线信号拆分成位信号;针对同一个外设子系统传输的同一信号类型的总线信号,依次为每个位信号分配位索引以支持通过位索引追溯到位信号所在的总线信号,使同一个外设信号名称列表内的各个信号名称按照位索引有序排列成一组信号组名称;其中,一组信号组名称按位拆分出的各个信号名称的位索引支持按顺序映射到所需连接的总线功能模块对应的总线接口组名称列表中对应的接口名称。使各比特位信号命名的信号名称按顺序连接到总线功能模块对应的总线接口的各位,在例化时能够与顶层模块中的对应位连接。

9、进一步地,在步骤4中,所述对步骤3中已分配位索引的信号名称进行字符串格式化处理,生成接口连接代码片段的方法包括:每遍历一个外设信号名称列表,则确定当前遍历的一个外设信号名称列表中各个信号名称均映射到总线接口组名称列表中对应一个接口名称,再将所映射到的对应一个接口名称标识为当前映射的总线接口名称;其中,当前映射的总线接口名称及各个信号名称均以字符串的形式存储;计算当前遍历的一个外设信号名称列表中各个信号名称的长度,再从中筛选长度最大的信号名称的长度作为位信号对齐长度;并计算当前映射的总线接口名称的长度为总线对齐长度;在当前遍历的一个外设信号名称列表中,每遍历一个信号名称,则结合总线对齐长度和位信号对齐长度,控制所述当前映射的总线接口名称及所遍历的一个信号名称左对齐,生成符合硬件描述语言格式的赋值语句;直至遍历完当前遍历的一个外设信号名称列表中各个信号名称,将依次生成的各个赋值语句组成一份所述接口连接代码片段,使当前遍历的一个外设信号名称列表对应一份所述接口连接代码片段。基于此,按照前述生成接口连接代码片段的方法依次遍历不同信号类型对应的外设信号名称列表时,可以实现动态计算总线对齐长度和位信号对齐长度,并利用总线对齐长度和位信号对齐长度进行字符串格式化处理,确保生成的各条赋值语句在列对齐,实现代码风格的一致性,提升可读性,也支持硬件设计中的信号连接逻辑自动化,解决了手动编码的重复性和易错性问题。

10、进一步地,所述结合总线对齐长度和位信号对齐长度,控制所述当前映射的总线接口名称及所遍历的一个信号名称左对齐的方法包括:在同一行的左侧设置字符串assign;从字符串assign的右侧开始,按照总线对齐长度来在同一行中左对齐所述当前映射的总线接口名称,使所述当前映射的总线接口名称在硬件描述文件的同一行中自左向右地排布且从左端开始占据的占位长度等于总线对齐长度;将当前遍历的一个信号名称所分配的位索引配置为括号内,构成位索引占位符;再添加至所述当前映射的总线接口名称的右侧;从添加位索引占位符后的所述当前映射的总线接口名称的右侧开始,在同一行中自左向右地设置占位长度为2个字符长度的空间;从所设置的占位长度为2个字符长度的空间的右侧开始,在同一行中设置字符=;从字符=的右侧开始,按照位信号对齐长度来在同一行中左对齐当前遍历的一个信号名称,使所述当前遍历的一个信号名称从开始自左向右地排布且在硬件描述文件的同一行中占据的占位长度等于位信号对齐长度;然后,将同一行中自左向右设置好的字符串assign、所述当前映射的总线接口名称、当前遍历的一个信号名称所分配的位索引、字符=以及当前遍历的一个信号名称组成一条符合硬件描述语言格式的赋值语句,完成对当前遍历的一个信号名称进行字符串格式化处理。

11、进一步地,步骤5中,所述将步骤4生成的接口连接代码片段按顺序写入步骤1所述的硬件描述文件中的指定区域并覆盖该指定区域内的原有内容的方法包括:逐行地读取所述外设系统的硬件描述文件中的内容;并且通过执行步骤1至步骤4来生成接口连接代码片段;其中,所述接口连接代码片段包括至少一条符合硬件描述语言格式的赋值语句,所述接口连接代码片段所包括的赋值语句的数量等于外设信号名称列表中存在的信号名称的数量;当读取至所述外设系统的硬件描述文件中预先注释的起始标记行时,从预先注释的起始标记行的下一行开始,逐行地将步骤4生成的接口连接代码片段写入所述外设系统的硬件描述文件中,并且每往一行写入一条赋值语句时,则在所述外设系统的硬件描述文件中删除被写入的一行中原来保存的内容,并在所写入的一条赋值语句末尾添加换行符;直至往所述外设系统的硬件描述文件中写入所有生成的接口连接代码片段后,将所述外设系统的硬件描述文件标识为所述新硬件描述文件。综上实现根据待添加的信号内容高效地插入相应代码,完成接口修改,设计人员无需逐个文件打开再修改,有效减少了人工劳动与操作错误,适用于大规模芯片设计中的外设系统自动化集成,降低芯片模块接口变更的复杂度。

12、进一步地,所述预先注释的起始标记行的下一行的索引是所述外设子系统实例化起始行号,从所述外设子系统实例化起始行号开始,逐行地写入各个外设子系统各自传输的各种信号类型的总线信号对应的接口连接代码片段,直至写入到预先注释的结束标记行的上一行,以覆盖到所述外设系统的硬件描述文件中从所述预先注释的起始标记行至预先注释的结束标记行之间所有行的内容;其中,所述外设系统的硬件描述文件中从所述预先注释的起始标记行至预先注释的结束标记行之间所有行是步骤5所述的指定区域。确保运行硬件描述文件时接口连接的准确性,提升开发效率,适应快速迭代的芯片设计需求。