一种802.11n无线网卡芯片仿真固件优化的处理方法技术

技术编号:8387069 阅读:204 留言:0更新日期:2013-03-07 07:45
本发明专利技术公开了一种无线网卡芯片仿真固件优化的处理方法,该方法针对芯片的前端仿真和后端仿真需求定制固件,并提供支持。方法包括中断的汇编处理、提高CPU总线效率及固件体积优化。通过仿真验证环境中的自检查模块及仿真波形可以判断上述操作的正确性和优化后数据的完整性。

【技术实现步骤摘要】

本专利技术涉及一种基于SoC架构802. Iln无线网卡芯片仿真固件优化的处理方法。
技术介绍
由于SOC通讯芯片复杂度的增加,对功耗及效率的要求越来越严格,这也就对传统的验证方式提出了更高的要求。使用固件与RTL在前后端阶段进行仿真可以解决以往使用CPU模型不够准确及仿真无法测量芯片功耗等问题。基于802. Iln无线网卡芯片复杂度大、仿真时间长特性,考虑通过优化固件以减 少后仿真时间提高仿真效率。此种优化方法通过对汇编及C语言实现形式的修改,在原有功能不受影响的情况下实现固件操作性能的提高,固件体积的减小。同时在初始化汇编代码中加入对向量中断、非向量中断的处理也可以减少C代码量,并且将公用部分整合到了一起方便了以后对此功能的修改。由于在后仿真需要进行时序仿真及波形截取分析功耗等工作,仿真使用固件的操作效率就显得格外重要,优化后的固件在后仿真阶段可以节省仿真时间,使后仿真工作可以尽快收敛。
技术实现思路
本专利技术的方法是利用汇编语言及C语言实现一个可以与验证环境相互配合进行仿真的固件系统,该系统包含初始化和中断响应。初始化包括boots、接口及IO初始化、内部寄存器初始化、密钥表初始化,其中接口及IO初始化可以根据固件应用的不同场景通过宏定义进行区分。中断响应包括下行指令响应、上行数据响应、下行数据响应、UART中断响应、HMER中断响应、WatchDog中断响应、PMU中断响应、SPIRF中断响应等,其中在上行数据响应、下行数据响应中实现了以链表结构操作数据的方式。本专利技术利用固件实现与验证环境及RTL的协同仿真,实现前仿真及后仿真工作;(PU在完成上电复位后开始调用固件程序,固件根据与验证环境协商好的数据结构响应指令与数据,最后由验证环境提供的自动检查模块完成结果判断并结束仿真;固件在与验证环境及RTL协同仿真过程中的流程如下(I)CPU在上电复位后首先调用固件中汇编编写的boots程序,完成对中断控制寄存器的配置,利用boots程序实现中断函数链接及向量中断、非向量中断的初始化操作;在向量中断操作中通过对中断控制寄存器的直接赋值实现清除向量中断的操作;(2)使用联合体数据结构完成接口寄存器、内部寄存器、密钥表、密钥信息区、MAC地址、BD等相关寄存器进行赋值操作,通过联合体数据结构,将零散的数据结构整合到一起进行整字赋值;(3)在对BD寄存器进行赋值操作过程中,使用循环语句代替以展开形式呈现的代码,实现在相同功能下代码的优化;(4)进行中断函数的响应操作,实现下行指令、上下行数据操作;(5)完成本中断函数的响应操作后退出中断函数进行等待下一个中断函数的进程;(6)在验证环境完成各个发送接收数据帧的检查后,终止仿真。附图说明图I是一种基于SoC架构802. Iln无线网卡芯片仿真固件优化的处理方法流程图;图2是使用联合体处理数据示意图; 图3是使用for循环语句初始化BD示意图;图4是验证环境与固件结构示意图。具体实施例方式本专利技术使用EDA仿真工具结合验证与固件协同仿真,在实现原有固件的功能的前提下,通过对固件代码的优化,实现性能的提高及固件面积的减小。通过验证环境提高的自动比较模块及查看波形的方法进行仿真结果的判断,根据其结果验证固件优化的有效性。下面结合附图和实施例对本专利技术进行描述。图I是固件操作流程说明图,描述了固件在与验证环境协同仿真过程中的相关流程。CPU在完成上电复位后开始调用固件程序,固件根据与验证环境协商好的数据结构响应指令与数据,最后由验证环境提供的自动检查模块完成结果判断并结束仿真。101 :CPU在上电复位后会首先调用固件中汇编编写的boots程序,完成对中断控制寄存器的配置。102 :完成接口寄存器、内部寄存器、密钥表、密钥信息区、MAC地址、BD等相关寄存器的初始化操作。103 :进行中断irq函数的响应操作,实现下行指令、上下行数据操作,完成本操作后推出irq函数进行等待下一个irq函数的进程。如果CPU暂时没有处理本irq则不清除中断,等待下个CPU周期扫描到本中断后再进行处理。104 :在完成一个中断irq服务程序的操作后,等待下一个irq程序的发生。105 :在验证环境完成各个发送接收数据帧的检查后,终止仿真。在芯片上电CPU完成复位后,首先调用汇编语言编写的boots程序,对中断的初始化配置操作在这里进行。使用对寄存器的赋值操作“ldr r0, = Addr ;ldr rl, = Data ;strrl, ”实现对中断控制模块配置,如果使用向量中断则通过“ldr r9, = ICVectAddr ;ldrr9,”获得当前中断号并指示PC指针跳转到响应地址,实现对irq中断函数的调用。非向量中断则是通过读取“IRQStatusReg”寄存器的方式完成跳转。C固件中的irq函数为中断处理的实体函数,该函数在处理上述两个中断时没有差异。如图2所示,在完成boots中断初始化及接口初始化等操作后,就可以使用联合体数据结构对密钥表、密钥信息区、MAC地址区等空闲进行赋值操作。该操作的特点在于将本来零散的数据结构整合到一起进行整字赋值。以往固件中多使用指针赋值方法,这样做在固件编写上会更方便,但是会导致总线上的资源浪费。如使用指针赋值4bit“f”,在总线上会表现为“32’hxxxxxxxf”其余的空闲将被浪费,而在数据整理后将以整字输出杜绝了上述浪费,减少了总线操作次数。201 :整合前的数据结构可以为位、字节、半字,而且可以是不连续的。202 :整合后的数据可以以一个整字的形式输出到总线上。如图3所示,实现使用for循环代替Switch语句的操作,从而降低C代码体积。理论上所有的Switch语句都可以进行此优化,只是有的Switch语句行数很少,或太过复杂没必要实现或不好实现该优化。初始化BD链表空间操作就很可以实现在调试稳定后进行for循环语句转换的优化操作。在实际操作中发现C代码的行数越少,编译出来的hex”文件也就越小,反应到仿真过程中固件的加载时间也就越少,可以直接提高仿真效率。 上述固件优化操作在FPGA仿真及实际板级固件也同样适用,只是由于FGPA仿真或板级操作对固件操作的时间不敏感,导致了对固件优化操作的需求不是很迫切。权利要求1.一种基于SoC架构的802. Iln无线网卡芯片仿真固件优化的处理方法,其特征在于利用固件实现与验证环境及RTL的协同仿真,实现前仿真及后仿真工作;CPU在完成上电复位后开始调用固件程序,固件根据与验证环境协商好的数据结构响应指令与数据,最后由验证环境提供的自动检查模块完成结果判断并结束仿真;固件在与验证环境及RTL协同仿真过程中的流程如下 (1)CPU在上电复位后首先调用固件中汇编编写的boots程序,完成对中断控制寄存器的配置,利用boots程序实现中断函数链接及向量中断、非向量中断的初始化操作;在向量中断操作中通过对中断控制寄存器的直接赋值实现清除向量中断的操作; (2)使用联合体数据结构完成接口寄存器、内部寄存器、密钥表、密钥信息区、MAC地址、BD等相关寄存器进行赋值操作,通过联合体数据结构,将零散的数据结构整合到一起进行整字赋值; (3)在对BD寄存器进行赋值操作过程中,使用循环语句代替以展开形式呈现的本文档来自技高网...

【技术保护点】
一种基于SoC架构的802.11n无线网卡芯片仿真固件优化的处理方法,其特征在于:利用固件实现与验证环境及RTL的协同仿真,实现前仿真及后仿真工作;CPU在完成上电复位后开始调用固件程序,固件根据与验证环境协商好的数据结构响应指令与数据,最后由验证环境提供的自动检查模块完成结果判断并结束仿真;固件在与验证环境及RTL协同仿真过程中的流程如下:(1)CPU在上电复位后首先调用固件中汇编编写的boots程序,完成对中断控制寄存器的配置,利用boots程序实现中断函数链接及向量中断、非向量中断的初始化操作;在向量中断操作中通过对中断控制寄存器的直接赋值实现清除向量中断的操作;(2)使用联合体数据结构完成接口寄存器、内部寄存器、密钥表、密钥信息区、MAC地址、BD等相关寄存器进行赋值操作,通过联合体数据结构,将零散的数据结构整合到一起进行整字赋值;(3)在对BD寄存器进行赋值操作过程中,使用循环语句代替以展开形式呈现的代码,实现在相同功能下代码的优化;(4)进行中断函数的响应操作,实现下行指令、上下行数据操作;(5)完成本中断函数的响应操作后退出中断函数进行等待下一个中断函数的进程;(6)在验证环境完成各个发送接收数据帧的检查后,终止仿真。...

【技术特征摘要】

【专利技术属性】
技术研发人员:肖海
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1