Dsp汇编语言程序验证方法及其装置的制作方法

文档序号:6461776阅读:116来源:国知局
专利名称:Dsp汇编语言程序验证方法及其装置的制作方法
技术领域
本发明涉及一种DSP技术,尤其是涉及一种DSP技术中对于汇编语言程 序的验证方法及其装置。
背景技术
目前,在嵌入式系统中,DSP (Digital Signal Processor:数据信号处理器) 的应用非常广泛。为提高执行效率,往往都使用汇编语言来进行DSP程序编 程。而且,对汇编语言程序进行验证时,通常都通过手工编写汇编语言测试 程序。由于汇编语言编写难度大,所以往往很难编写出复杂且功能强大的汇 编语言测试程序,从而难以发现一些潜在的问题。许多问题往往只能在板级 集成测试中、甚至系统级的测试中才能被发现,从而严重影响产品的开发进 度。图6示出了传统的DSP汇编语言程序验证方法。如图6所示,首先,手动生成两组测试向量,该两组测试向量分别为对 应于待验证的DSP汇编语言程序的输入的第一测试向量和对应于该程序的输 出的第二测试向量(步骤S101)。接着,将第一测试向量送入到待验证的DSP 汇编语言程序中(步骤S102)。然后,采集执行DSP汇编语言程序的输出结 果(步骤S103),并比较判断该DSP汇编语言程序的输出结果和预先生成的 第二测试向量是否相同(步骤S104)。如果两者完全相同(在步骤S104中为 "是"),则输出"该DSP汇编语言程序正确"(步骤S105),并结束验证。 如果两者不相同(在步骤S104中为"否"),则输出"该DSP汇编语言程序 不正确"(步骤S106),并结束验证。在这种验证方法中,由于各测试向量是手动预先生成的,而且涉及测试 向量的比较判断往往也是手工完成的,所以这种验证方法的执行效率低,也 不适合执行大量的测试,因此难以达到足够的覆盖率。发明内容因此,本发明是鉴于上述问题而提出的,其目的在于,提供一种对DSP 汇编语言程序能够进行详尽的自动化随机测试的功能强大且高效率及高覆盖 率的DSP汇编语言程序验证方法及其装置。为了实现上述目的,本发明提供一种DSP汇编语言程序验证装置,具有:转换器,其用于将DSP汇编语言程序转换成高级语言的等效功能模型;高级语言验证装置,其用于验证上述高级语言的等效功能模型。而且,上述DSP汇编语言程序验证装置中的转换器具有文本识别单元, 其用于对DSP汇编语言程序中的各源代码分别进行文本识别处理;基本要素 提取单元,其从文本识别处理后的各源代码中提取各个基本要素;中间代码生成单元,其根据上述基本要素提取单元所提取的各源代码的基本要素,分别生成与各源代码对应的各个中间代码;链接单元,其将上述各个中间代码 链接到一起,形成一个统一的最终中间代码;高级语言代码生成单元,其将 链接单元链接生成的最终中间代码映射到高级语言上,从而生成以高级语言 表示且能够实现原DSP汇编语言程序的功能的高级语言的等效功能模型。还有,上述DSP汇编语言程序验证装置,还具有语法分析单元,该语法 分析单元基于该DSP汇编语言的语法,对文本识别单元识别处理后的各源代 码进行语法分析,判断各源代码的合法性,并将判断结果为合法的各源代码 输出给上述基本要素提取单元。另外,上述DSP汇编语言程序验证装置中的高级语言验证单元具有存 储模块,其用于存储各种信息;测试约束定义模块,其预先定义上述高级语 言的等效功能模型的测试约束,并存储在上述存储模块中;测试向量生成模 块,其根据测试约束定义模块所定义的测试约束,自动随机生成测试向量并 分别调入到来自上述转换器的高级语言的等效功能模型和预先准备的参考模 型中,然后将所生成的测试向量存储在上述存储模块中,其中,上述该参考 模型是用于通过其输出来判断高级语言的等效功能模型的输出的正确性的模 型;比较判断控制模块,其对于高级语言的等效功能模型和参考模型的执行 结果进行比较,并判断两者是否相同,如果两者相同,则判断为高级语言的 等效功能模型这次测试合格,并将上述执行结果存储在存储模块中,然后给 测试向量生成模块下达指令,以使其继续生成另一组随机的测试向量,重复 执行上述过程,直到判断为随机生成且测试合格的测试向量的数目达到测试约束的覆盖率要求为止,若判断为己达到覆盖率要求,则下达输出指令;输 出模块,其若从比较判断控制模块接收到输出指令,则从存储单元中读取所 存储的各种测试相关信息并输出给用户。本发明提供还提供一种DSP汇编语言程序验证方法,其特征在于,包括: 转换步骤,用于将DSP汇编语言程序转换成高级语言的等效功能模型;验证 步骤,用于验证上述高级语言的等效功能模型。而且,上述DSP汇编语言程序验证方法中的上述转换步骤包括文本识 别步骤,对DSP汇编语言程序中的各源代码分别进行文本识别处理;基本要 素提取步骤,从识别处理后的各源代码中分别提取这些源代码的各个基本要 素;中间代码生成步骤,根据上述基本要素提取步骤所提取的各源代码的基 本要素,分别生成与各源代码对应的各个中间代码;链接步骤,将上述各个 中间代码链接到一起,形成一个统一的最终中间代码;高级语言代码生成步 骤,将链接单元链接生成的最终中间代码映射到高级语言上,从而生成以高 级语言表示且能够实现原DSP汇编语言程序的功能的高级语言的等效功能模 型。还有,上述DSP汇编语言程序验证方法在文本识别步骤之后且在基本要 素提取步骤之前,还包括语法分析步骤,该语法分析步骤基于该DSP汇编语 言的语法,对文本识别单元识别处理后的各源代码进行语法分析,判断各源 代码的合法性,若判断结果为合法,则进入基本要素提取步骤。另外,上述DSP汇编语言程序验证方法中的上述验证步骤包括测试约 束定义步骤,预先定义并存储上述高级语言的等效功能模型的测试约束;测 试向量生成步骤,根据测试约束定义步骤所定义的测试约束,自动随机生成 测试向量,并进行存储;测试向量调入步骤,将测试向量生成步骤所生成的 测试向量分别调入到在上述的转换步骤所生成的高级语言的等效功能模型和 预先准备的参考模型中,然后对所生成的测试向量进行存储,其中,上述该 参考模型是用于通过其输出来判断高级语言的等效功能模型的输出的正确性 的模型;比较判断控制步骤,对于高级语言的等效功能模型和参考模型的执 行结果进行比较,并判断两者是否相同,如果两者相同,则判断为高级语言 的等效功能模型这次测试合格,并对上述执行结果进行存储,然后给测试向 量生成模块下达指令,以使其继续生成另一组随机的测试向量,重复执行上述过程,直到判断为随机生成且测试合格的测试向量的数目达到测试约束的 覆盖率要求为止;输出步骤,若判断为已达到覆盖率要求,则读取所存储的 各种测试相关信息并输出给用户。 上述高级语言可以采用e语言。如上所述,本发明在执行验证处理过程中,测试向量的生成、比较判断、 存储等都是由装置本身自动进行的,所以测试的执行效率明显高于手工操作 的现有技术,实现了验证DSP汇编语言程序的自动化、随机化,因此适于进 行大量复杂的测试,从而实现了对DSP汇编语言程序能够进行详尽的自动化 随机测试的功能强大且高效率及高覆盖率的DSP汇编语言程序验证方法及其 装置。若采用本发明的DSP汇编语言程序验证方法及其装置,则能够减少在随 后的集成测试中的潜在问题。


图1是本发明的DSP汇编语言程序验证装置的结构示意图。 图2是本发明的DSP汇编语言程序验证装置中的转换器的结构框图。 图3是本发明的DSP汇编语言程序验证装置中的高级语言验证单元的结 构框图。图4是本发明的DSP汇编语言程序验证方法中的转换步骤的流程图。 图5是本发明的DSP汇编语言程序验证方法中的验证步骤的流程图。 图6是传统的DSP汇编语言程序验证方法的流程图。
具体实施方式
(1) DSP汇编语言程序验证装置如图1所示,本发明的DSP汇编语言程序验证装置100通过转换器1, 将DSP汇编语言程序S0转换成高级语言的等效功能模型Sm,同时保持两者 功能上的等效性,然后利用高级语言验证程序的强大功能,通过高级语言验 证单元2对DSP汇编语言程序SO进行详尽的自动化随机测试,以大幅度提高 验证DSP汇编语言程序的效率以及覆盖率。下面,将本发明的DSP汇编语言程序验证装置100分为转换器1和高级语言验证单元2进行详细说明。这里,以在ASIC (Application Specific Integrated Circuits:专用集成电路) 领域的一种验证语言e语言为例来说明本发明的实施例,但本发明的应用并 不仅限于e语言。(1-1)转换器图2是将DSP汇编语言程序转换成e语言的本发明的DSP汇编语言程序 验证装置100中的转换器1的结构框图。这里,假设待验证的DSP汇编语言 程序由源代码l、源代码2、…、源代码N的N个源代码组成。如图2所示,转换器1具有文本识别单元11、语法分析单元12、基本要 素提取单元13、中间代码生成单元14、链接单元15以及e代码生成单元16。文本识别单元11用于对待验证的DSP汇编语言程序中的源代码1、源代 码2、…、源代码N分别进行文本识别。即,文本识别单元ll识别出各源代 码中的各种关键字、操作符以及操作数等,并将不需要的字、词等过滤除去, 并将识别处理后的各源代码输出给语法分析单元12。语法分析单元12从文本识别单元11识别处理后的各源代码中读出各种 关键字、操作符以及操作数等,并按照该DSP汇编语言的语法规则进行分析, 判断这些源代码的合法性。若上述合法性判断结果为不合格,则向用户输出 出错报告,并结束处理。基本要素提取单元13从上述合法性判断结果为合格的各源代码中分别提 取这些源代码的各个基本要素,比如操作符、操作数等。中间代码生成单元14根据语法分析单元12所提取的各源代码的基本要 素,分别生成与具体语言无关的对应于源代码l、源代码2、…、源代码N的 中间代码l、中间代码2、…、中间代码N。链接单元15将中间代码1、中间代码2、…、中间代码N根据各自的关 系链接到一起,形成一个统一的最终中间代码。e代码生成单元16将由链接单元15链接生成的最终中间代码映射到e语 言上,从而生成以e语言表示且能够实现原DSP汇编语言程序的功能的高级 语言的等效功能模型Sm。然后,将所生成的高级语言的等效功能模型Sm输 出给后述高级语言验证单元2。在本实施方式中,在待验证的DSP汇编语言程序中不存在语法错误或者 无需判断其语法合法性的情况下,可以省略语法分析单元12。(1-2)高级语言验证单元图3是本发明的DSP汇编语言程序验证装置100中的高级语言验证单元 2的结构框图。如图3所示,高级语言验证单元2具有测试约束定义模块21、测试向量 生成模块22、比较判断控制模块23、输出模块24以及存储模块25。测试约束定义模块21预先定义作为待验证程序的高级语言的等效功能模 型Sm的测试约束,例如测试向量生成的范围、覆盖率要求等。然后,在将所 定义的测试约束存储在存储模块25中的同时,发送给测试向量生成模块22。测试向量生成模块22根据从测试约束定义模块21接收到的测试约束, 自动随机生成符合测试约束的测试向量,并将所生成的测试向量存储在存储 模块25中。然后,将所生成的测试向量分别调入到来自上述转换器2的高级 语言的等效功能模型Sm和预先准备的参考模型Sr中。该参考模型Sr是用于 通过其输出来判断高级语言的等效功能模型Sm的输出的正确性的模型。比较判断控制模块23对于高级语言的等效功能模型Sm和参考模型Sr 的执行结果进行比较,并判断两考是否相同。如果两者相同,则比较判断控 制模块23判断为高级语言的等效功能模型Sm这次测试合格,并将高级语言 的等效功能模型Sm和参考模型Sr的执行结果存储在存储模块25中,然后给 测试向量生成模块22下达指令,以使其继续生成另一组随机的测试向量。比 较判断控制模块23重复执行上述过程,直到判断为随机生成且测试合格的测 试向量的数目达到测试约束的覆盖率要求为止。比较判断控制模块23判断为 已达到了覆盖率要求,则向输出模块24下达输出指令。输出模块24接到来自比较判断控制模块23的输出指令,则从存储单元 25中读取在上述过程中所存储的各种测试相关信息并输出给用户。在本实施方式中,DSP汇编语言程序验证装置100在执行上述验证处理 过程中,测试向量的生成、比较判断、存储等都是由装置本身自动进行的, 所以测试的执行效率明显高于手工操作,实现了验证DSP汇编语言程序的自 动化、随机化,因此适于进行大量复杂的测试,从而实现了对DSP汇编语言程序能够进行详尽的自动化随机测试的功能强大且高效率及高覆盖率的DSP 汇编语言程序验证装置。若采用本发明的DSP汇编语言程序验证装置,则能够减少在随后的集成 测试中的潜在问题。(2) DSP汇编语言程序验证方法的步骤本发明的DSP汇编语言程序验证方法包括转换步骤,将DSP汇编语言 程序转换成高级语言的等效功能模型;验证步骤,在高级语言验证环境下, 对上述高级语言的等效功能模型进行验证。下面,具体说明一下本发明的DSP 汇编语言程序验证方法的转换步骤和验证步骤。(2-1)转换步骤图4是本发明的DSP汇编语言程序验证方法中的转换步骤的流程图。 假设待验证的DSP汇编语言程序由源代码1、源代码2、…、源代码N的N个源代码组成,图4示出了将DSP汇编语言程序转换成e语言的一种方式。如图4所示,首先,文本识别单元ll对DSP汇编源程序中的源代码l、 源代码2、…、源代码N分别进行文本识别,即识别出各源代码中的各种关 键字、操作符以及操作数等,并将不需要的字、词等过滤除去,并将识别处 理后的各源代码输出给语法分析单元12 (步骤S201)。然后,语法分析单元12从文本识别单元11识别处理后的各源代码中读 出各种关键字、操作符以及操作数等,并按照该汇编语言的语法规则进行分 析,判断这些源代码是否合法(步骤S202)。如果合法(在步骤S202中为"是"),则从识别处理后的各源代码中分 别提取这些源代码的各个基本要素,比如操作符、操作数等(步骤S203)。接下来,中间代码生成单元14根据语法分析单元12所提取的各源代码 的基本要素,对应各源代码分别生成与具体语言无关的中间代码l、中间代码 2、…、中间代码N (步骤S204)。接下来,链接单元15根据各自的关系,将中间代码l、中间代码2、…、 中间代码N链接到一起,形成一个统一的最终中间代码(步骤S205)。最后,e代码生成单元16将由链接单元15链接生成的最终中间代码映射 到e语言上,从而生成以e语言表示且能够实现原DSP汇编语言程序的功能 的高级语言的等效功能模型Sm (步骤S206)。所生成的高级语言的等效功能模型Sm被调入到后述的验证步骤中,并对 其进行验证。还有,如果在上述步骤S202中判断为不合法(在步骤S202中为"否"), 则向用户输出待验证的DSP汇编语言程序的出错报告(步骤S207),并结束处理。在本实施方式中,在待验证的DSP汇编语言程序中不会存在语法错误或 者无需判断其语法合法性的情况下,可以省略步骤S202以及步骤S208。(2-2)验证步骤图5是本发明的DSP汇编语言程序验证方法中的验证步骤的流程图。如图5所示,首先,测试约束定义模块21预先定义作为待验证程序的高 级语言的等效功能模型Sm的测试约束,例如测试向量生成的范围、覆盖率要 求等。然后,在将所定义的测试约束存储在存储模块25中的同时,发送给测 试向量生成模块22 (步骤S301)。接下来,测试向量生成模块22根据从测试约束定义模块21接收到的测 试约束,自动随机生成符合测试约束的测试向量,并将所生成的测试向量存 储在存储模块25中(步骤S302)。然后,将在步骤S302中所生成的测试向量分别调入到在上述的转换步骤 所生成的高级语言的等效功能模型Sm和预先准备的参考模型Sr中(步骤 S303)。上述该参考模型Sr是用于通过其输出来判断高级语言的等效功能模 型Sm的输出的正确性的模型。接下来,比较判断控制模块23对于高级语言的等效功能模型Sm和参考 模型Sr的执行结果进行比较,并判断两者是否相同(步骤S304)。如果判断为两者相同(在步骤S304中的"是"),则比较判断控制模块 23判断为高级语言的等效功能模型Sm这次测试合格,并将高级语言的等效 功能模型Sm和参考模型Sr的执行结果存储在存储模块25中(步骤S305)。然后,比较判断控制模块23判断随机生成且测试合格的测试向量的数目是否达到了测试约束的覆盖率要求(步骤S306)。如果还未达到覆盖率的要求(在步骤S306中的"否"),则转入到步骤 S302,由此比较判断控制模块23重复执行上述过程,直到随机生成且测试合 格的测试向量的数目达到测试约束的覆盖率要求为止。如果已达到覆盖率的要求(在步骤S306中的"是"),则比较判断控制 模块23向输出模块24下达输出指令,以使输出模块24从存储单元25中读 取在上述过程中所存储的各种测试相关信息并输出给用户(步骤S307),并 结束处理。如果判断为高级语言的等效功能模型Sm和参考模型Sr的执行结果相不 同(在步骤S304中的"否"),则比较判断控制模块23判断为高级语言的 等效功能模型Sm未通过测试,并存储高级语言的等效功能模型Sm和参考模 型Sr的执行结果(步骤S308),然后转入到步骤S307。在执行本实施方式的DSP汇编语言程序验证方法的过程中,测试向量的 生成、比较判断、存储等都是由装置本身自动进行的,所以测试的执行效率 明显高于手工操作,实现了验证DSP汇编语言程序的自动化、随机化,因此 适于进行大量复杂的测试,从而实现了对DSP汇编语言程序能够进行详尽的 自动化随机测试的功能强大且高效率及高覆盖率的DSP汇编语言程序验证方 法。若采用本发明的DSP汇编语言程序验证方法,则能够减少在随后的集成 测试中的潜在问题。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本 发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种DSP汇编语言程序验证装置,其特征在于,具有转换器,其用于将DSP汇编语言程序转换成高级语言的等效功能模型;高级语言验证单元,其用于验证上述高级语言的等效功能模型。
2. 如权利要求1所述的DSP汇编语言程序验证装置,其特征在于,上 述转换器具有文本识别单元,其用于对DSP汇编语言程序中的各源代码分别进行文本 识别处理;基本要素提取单元,其从文本识别处理后的各源代码中提取各个基本要素;中间代码生成单元,其根据上述基本要素提取单元所提取的各源代码的 基本要素,分别生成与各源代码对应的各个中间代码;链接单元,其将上述各个中间代码链接到一起,形成一个统一的最终中 间代码;高级语言代码生成单元,其将链接单元链接生成的最终中间代码映射到 高级语言上,从而生成以高级语言表示且能够实现原DSP汇编语言程序的功 能的高级语言的等效功能模型。
3. 如权利要求2所述的DSP汇编语言程序验证装置,其特征在于, 还具有语法分析单元,该语法分析单元基于该DSP汇编语言的语法,对文本识别单元识别处理后的各源代码进行语法分析,判断各源代码的合法性, 并将判断结果为合法的各源代码输出给上述基本要素提取单元。
4. 如权利要求1至3中任一项所述的DSP汇编语言程序验证装置,其 特征在于,上述高级语言是e语言。
5. 如权利要求1至3中任一项所述的DSP汇编语言程序验证装置,其 特征在于,上述高级语言验证单元具有存储模块,其用于存储各种信息;测试约束定义模块,其预先定义上述高级语言的等效功能模型的测试约 束,并存储在上述存储模块中;测试向量生成模块,其根据测试约束定义模块所定义的测试约束,自动 随机生成测试向量并分别调入到来自上述转换器的高级语言的等效功能模型和预先准备的参考模型中,然后将所生成的测试向量存储在上述存储模块中, 其中,上述该参考模型是用于通过其输出来判断高级语言的等效功能模型的 输出的正确性的模型;比较判断控制模块,其对于高级语言的等效功能模型和参考模型的执行 结果进行比较,并判断两者是否相同,如果两者相同,则判断为高级语言的 等效功能模型这次测试合格,并将上述执行结果存储在存储模块中,然后给 测试向量生成模块下达指令,以使其继续生成另一组随机的测试向量,重复 执行上述过程,直到判断为随机生成且测试合格的测试向量的数目达到测试 约束的覆盖率要求为止,若判断为已达到覆盖率要求,则下达输出指令;输出模块,其若从比较判断控制模块接收到输出指令,则从存储单元中 读取所存储的各种测试相关信息并输出给用户。
6. —种DSP汇编语言程序验证方法,其特征在于,包括 转换步骤,用于将DSP汇编语言程序转换成高级语言的等效功能模型; 验证步骤,用于验证上述高级语言的等效功能模型。
7. 如权利要求6所述的DSP汇编语言程序验证方法,其特征在于,上 述转换步骤包括文本识别步骤,对DSP汇编语言程序中的各源代码分别进行文本识别处理;基本要素提取步骤,从识别处理后的各源代码中分别提取这些源代码的各个基本要素;中间代码生成步骤,根据上述基本要素提取步骤所提取的各源代码的基本要素,分别生成与各源代码对应的各个中间代码;链接步骤,将上述各个中间代码链接到一起,形成一个统一的最终中间 代码;高级语言代码生成步骤,将链接单元链接生成的最终中间代码映射到高 级语言上,从而生成以高级语言表示且能够实现原DSP汇编语言程序的功能 的高级语言的等效功能模型。
8. 如权利要求7所述的DSP汇编语言程序验证方法,其特征在于, 在文本识别步骤之后且在基本要素提取步骤之前,还包括语法分析步骤,该语法分析步骤基于该DSP汇编语言的语法,对文本识别单元识别处理后的各源代码进行语法分析,判断各源代码的合法性,若判断结果为合法,则进 入基本要素提取步骤。
9. 如权利要求6至8中任一项所述的DSP汇编语言程序验证方法,其 特征在于,上述高级语言是e语言。
10. 如权利要求6至8中任一项所述的DSP汇编语言程序验证方法,其 特征在于,上述验证步骤包括测试约束定义步骤,预先定义并存储上述高级语言的等效功能模型的测 试约束;测试向量生成步骤,根据测试约束定义步骤所定义的测试约束,自动随 机生成测试向量,并进行存储;测试向量调入步骤,将测试向量生成步骤所生成的测试向量分别调入到 在上述的转换步骤所生成的高级语言的等效功能模型和预先准备的参考模型 中,然后对所生成的测试向量进行存储,其中,上述该参考模型是用于通过 其输出来判断高级语言的等效功能模型的输出的正确性的模型;比较判断控制步骤,对于高级语言的等效功能模型和参考模型的执行结 果进行比较,并判断两者是否相同,如果两者相同,则判断为高级语言的等 效功能模型这次测试合格,并对上述执行结果进行存储,然后给测试向量生 成模块下达指令,以使其继续生成另一组随机的测试向量,重复执行上述过 程,直到判断为随机生成且测试合格的测试向量的数目达到测试约束的覆盖 率要求为止;输出步骤,若判断为己达到覆盖率要求,则读取所存储的各种测试相关 信息并输出给用户。
全文摘要
本发明提供一种DSP汇编语言程序验证方法及其装置。该DSP汇编语言程序验证装置(100)具有转换器(2),其用于将DSP汇编语言程序(S0)转换成高级语言的等效功能模型(Sm);高级语言验证单元(2),其用于验证上述高级语言的等效功能模型(Sm)。该DSP汇编语言程序验证方法包括转换步骤,用于将DSP汇编语言程序转换成高级语言的等效功能模型(Sm);验证步骤,用于验证上述高级语言的等效功能模型(Sm)。
文档编号G06F9/45GK101251823SQ200810086180
公开日2008年8月27日 申请日期2008年3月17日 优先权日2008年3月17日
发明者昕 刘 申请人:北京天碁科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1