CN110457744B - 一种sd/sdio设备仿真模型框架及其设计方法 - Google Patents
一种sd/sdio设备仿真模型框架及其设计方法 Download PDFInfo
- Publication number
- CN110457744B CN110457744B CN201910567370.6A CN201910567370A CN110457744B CN 110457744 B CN110457744 B CN 110457744B CN 201910567370 A CN201910567370 A CN 201910567370A CN 110457744 B CN110457744 B CN 110457744B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- command
- input
- cyclic redundancy
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种SD/SDIO设备仿真模型框架及其设计方法,SD/SDIO设备仿真模型框架包括信号转换模块、全局配置模块、命令产生模块、数据监测模块、后门命令解析模块以及存储模块;信号转换模块将SD/SDIO总线接口信号转换成并行的命令或数据;全局配置模块配置全局参数信息;命令产生模块配置预期的输入命令和响应信息,将输入命令与后续输入命令进行对比;检测到输入CMD命令后,返回响应信息;数据监测模块配置数据地址;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
Description
技术领域
本公开涉及仿真模型框架设计技术领域,具体涉及一种精简可编程的SD/SDIO设备仿真模型框架及其设计方法。
背景技术
SD、SDIO设备具有通用性强,容量大,安全性高,性能好等优点,已经发展成为广泛使用的存储协议和接口协议。
然而在进行SD、SDIO设备控制器IP模块的设计和验证时,对于仿真模型的设计和使用有一些普遍困扰。一,仿真模型设计难度大,维护困难,调试复杂。设备的仿真模型编码难度甚至会远远大于控制器IP本身的设计难度。这会大大增加控制器IP设计和验证的时间和工作量。二,对于设备的异常情况难以通过正常方式构造。如果不能方便灵活的构造异常错误情况,对于控制器IP的容错检错功能的验证就会不充分、不完整。这就会影响控制器IP验证质量。三,各个协议之间虽然有共同之处,但是一般仿真模型互相兼容也有一定困难。因此,合理简化SD、SDIO设备仿真模型的功能,减少仿真模型编码复杂度,增加灵活性和兼容性尤为重要。
发明人在研发过程中发现,现有的SD、SDIO设备的仿真模型一般是通过解析指令的方式实现设备功能,但是由于指令多,功能和状态复杂,所以就会出现编码和调试复杂,指令之间不兼容,难以灵活构造异常的情况;虽然现有的SD、SDIO设备的仿真模型能实现设备中的大部分功能,但是还是存在仿真模型代码量大,实现复杂,调试困难,不容易维护,协议间难以相互兼容等问题,尤其对于设备异常情况几乎都不能通过简单通用的方式构造实现。
发明内容
为了克服上述现有技术的不足,本公开提供了一种精简可编程的SD/SDIO设备仿真模型框架及其设计方法,加速设备控制器的验证过程,方便构造设备的异常情况。
本公开一方面提供的一种SD/SDIO设备仿真模型框架的技术方案是:
一种SD/SDIO设备仿真模型框架,其特征是,包括信号转换模块、全局配置模块、命令产生模块、数据监测模块以及存储模块;
所述信号转换模块,被配置为接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
所述全局配置模块,被配置为获取相应的变量赋值,采用变量赋值方式配置全局参数信息;
所述命令产生模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令和响应信息,将输入命令与后续控制器IP模块输入的命令进行对比;检测到控制器IP模块输入CMD命令后,返回响应信息;
所述存储模块,被配置为存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
所述数据监测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置、返回的循环冗余校验状态信息以及数据地址;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
进一步的,所述命令产生模块包括命令检测模块和产生命令返回模块;
所述命令检测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
所述产生命令返回模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息。
进一步的,所述数据监测模块包括数据输入监测模块和产生数据返回模块;
所述数据输入监测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器IP模块返回循环冗余校验状态信息;
所述产生数据返回模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
本公开一方面提供的一种SD/SDIO设备仿真模型框架的设计方法的技术方案是:
一种SD/SDIO设备仿真模型框架的设计方法,该方法包括以下步骤:
建立信号转换模块,接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
构造全局配置模块,获取相应的变量赋值,采用变量赋值方式配置全局参数信息;
构造命令检测模块,获取相应的变量赋值,采用变量直接赋值方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
构造产生命令返回模块,获取相应的变量赋值,采用变量直接赋值方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息;
构造存储模块,存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
构造数据输入监测模块,获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息;
构造产生数据返回模块,获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
进一步的,赋值不同的变量地址和变量名,设计多个SD/SDIO设备的仿真模型框架。
本公开一方面提供的一种SD/SDIO设备仿真模型框架的技术方案是:
一种SD/SDIO设备仿真模型框架,包括信号转换模块、全局配置模块、命令产生模块、数据监测模块、后门命令解析模块以及存储模块;
所述信号转换模块,被配置为接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
所述全局配置模块,被配置为接收后门指令,采用变量赋值方式配置全局参数信息;
所述命令产生模块,被配置为接收后门指令,采用变量直接赋值的方式配置预期的输入命令和响应信息,将输入命令与后续控制器IP模块输入的命令进行对比;检测到控制器IP模块输入CMD命令后,返回响应信息;
所述存储模块,被配置为存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
所述数据监测模块,被配置为接收后门指令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置、返回的循环冗余校验状态信息以及数据地址;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息,将配置地址的数据和循环冗余校验信息驱动到数据总线上;
所述后门命令解析模块,被配置为解析配置接口信号,产生后门指令,传送至信号转换模块、全局配置模块、命令产生模块和数据监测模块。
进一步的,所述命令产生模块包括命令检测模块和产生命令返回模块;
所述命令检测模块,被配置为接收后门指令,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
所述产生命令返回模块,被配置为接收后门指令,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息。
进一步的,所述数据监测模块包括数据输入监测模块和产生数据返回模块;
所述数据输入监测模块,被配置为接收后门指令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息;
所述产生数据返回模块,被配置为接收后门指令,采用变量直接赋值的方式配置数据地址,在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
本公开一方面提供的一种SD/SDIO设备仿真模型框架的设计方法的技术方案是:
一种SD/SDIO设备仿真模型框架的设计方法,该方法包括以下步骤:
建立信号转换模块,接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
构造全局配置模块,获取后门命令,采用变量赋值方式配置全局参数信息;
构造命令检测模块,获取后门命令,采用变量直接赋值方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
构造产生命令返回模块,获取后门命令,采用变量直接赋值方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息;
构造存储模块,存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
构造数据输入监测模块,获取后门命令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息;
构造产生数据返回模块,获取后门命令,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
进一步的,还包括:
构造后门命令解析模块,解析配置接口信号,产生后门指令。
通过上述技术方案,本公开的有益效果是:
(1)本公开能减少仿真模型的复杂度,降低编码难度,提高验证效率。
(2)本公开能够由固件灵活控制仿真模型的行为,包括正常行为和异常行为,把正常行为和异常行为统一到固件编程控制之上,从而明显提高仿真模型的灵活性,提高验证的完备性。
(3)本公开能够兼容SD/SDIO/MMC/eMMC等多种协议的设备。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本申请,并不构成对本公开的不当限定。
图1是实施例一SD/SDIO设备仿真模型框架的结构图;
图2是实施例三SD/SDIO设备仿真模型框架的结构图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
名词解释:
(1)SOC,System on a chip,片上系统;
(2)ASIC,Application Specific Integrated Circuit,专用集成电路;
(3)FPGA,Field Programmable Gata Array,现场可编程门阵列;
(4)IP,Intellectual Property,知识产权模块;
(5)SD卡,Secure Digital Memory Card,安全数字存储卡;
(6)SDIO,Secure Digital Input and Output Card,安全数据输入输出卡;
(7)busy信号,忙信号;
(8)resp信息,响应信息;
(9)crc信息,循环冗余校验信息。
实施例一
本实施例提供一种精简可编程的SD/SDIO设备仿真模型框架,通过固件指令编程控制、总线操作解析,后门指令通信的方式,由设备控制器的配置总线控制仿真模型的动作,能够减少仿真模型的编码和调试时间,提高构造设备异常情况灵活度,增加兼容性。
请参阅附图1,所述SD/SDIO设备仿真模型框架包括信号转换模块、全局配置模块、命令检测模块、产生命令返回模块、存储模块、数据输入监测模块和产生数据返回模块。
具体地,所述信号转换模块与SD/SDIO总线接口通信连接,被配置为接收SD/SDIO总线接口传输的信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合协议要求。
所述全局配置模块与后门配置接口通信连接,被配置为获取相应的变量赋值,采用变量赋值的方式配置全局参数信息。
所述命令检查模块与后门配置接口通信连接,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比。
所述产生命令返回模块与后门配置接口通信连接,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块CMD命令输入后,返回该响应信息。
所述存储模块,被配置为存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化。
所述数据输入监测模块与后门配置接口通信连接,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息。
所述产生数据返回模块与后门配置接口通信连接,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
本实施例使用的虚拟CPU,也就是用仿真代码模拟的CPU操作控制器IP模块,则直接利用对应仿真模型中的变量赋值控制仿真模型中的内部变量,如图1所示。这样的操作方式不需要占用总线时间,也不需要后门命令解析模块。
在本实施例中,所述信号转换模块具体被配置为:
接收SD/SDIO总线接口传输的信号,包括CMD信号和DATA信号等,将CMD信号转换成并行的CMD命令,并发送给SD/SDIO总线接口,同时检测CMD命令时序是否符合SD/SDIO设备要求,若符合时序要求则不报错,把检测到的信息传给后续通道;若不符合要求,则报错,提示控制器存在时序问题。
或者,接收SD/SDIO总线接口传输的信号,包括CMD信号和DATA信号等,将DATA信号转换成并行的DATA数据,并发送给SD/SDIO总线接口,同时检测DATA数据的时序是否符合SD/SDIO设备要求,若符合时序要求则不报错,把检测到的信息传给后续通道;若不符合要求,则报错,提示控制器存在时序问题。
在本实施中,所述全局配置模块具体被配置为:
通过后门配置接口与SD/SDIO控制器的IP模块后门通信,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量赋值的方式配置全局参数,该全局参数包括SD/SDIO设备时序要求、忙信号、时钟停止变量、数据传输位宽、数据块长度以及数据块数量等信息。
在本实施中,所述命令检查模块具体被配置为:
通过后门配置接口与SD/SDIO控制器的IP模块后门通信,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置预期的输入命令,包括CMD命令,并将配置的输入命令与控制器的IP模块输入的CMD命令进行对比,若相同则正常运行,若不相同则报错,提示输入的命令和预期效果不一样。
在本实施中,所述产生命令返回模块具体被配置为:
通过后门配置接口与SD/SDIO控制器的IP模块后门通信,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置期待的响应信息,包括R1,R2,R3等不同格式、不同长度的响应信息,检测到控制器IP输入的CMD命令后,向数据输入监测模块返回该响应信息。
仿真模型在检测到控制器IP通过总线输入的命令与后门配置的预取命令不一致的时候,在仿真log中打印。
在本实施例中,所述存储模块具体被配置为:
该存储空间存储随机数据和与数据对应的不同块长度、数据宽度的循环冗余校验信息;在仿真开始,初始化数据和数据对应的循环冗余校验信息,能减少计算循环冗余校验信息的代码量。同时,在SD/SDIO控制器IP模块上,初始化上同样的数据,方便进行数据对比。
在本实施例中,所述数据输入监测模块具体被配置为:
通过后门配置接口与SD/SDIO控制器的IP模块后门通信,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置需要对比的输入数据在存储模块的存储位置和返回的循环冗余校验状态信息,并从存储模块中获取待比较的输入数据和循环冗余校验信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器的IP模块返回循环冗余校验状态信息。
在本实施例中,所述产生数据返回模块具体被配置为:
通过后门配置接口与SD/SDIO控制器的IP模块后门通信,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置数据地址,并从存储模块中获取配置地址的数据和循环冗余校验信息;待命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
本实施例提出的SD/SDIO设备仿真模型框架,由虚拟CPU配置控制器IP的情况下,则可以直接由虚拟CPU通过仿真模型的例化路径改变其中的变量控制其行为。
本实施例提出的SD/SDIO设备仿真模型框架,能够减少仿真模型的复杂度,降低编码难度,提高验证效率;能够直接利用不同的变量赋值控制仿真模型的行为,包括正常行为和异常行为,把正常行为和异常行为统一到固件编程控制之上,从而明显提高仿真模型的灵活性,提高验证的完备性;能兼容SD/SDIO/MMC/eMMC等多种协议的设备。
实施例二
本实施例提供一种如实施例一所述的精简可编程的SD/SDIO设备仿真模型框架的设计方法,该方法包括以下步骤:
S11,建立信号转换模块,接收SD/SDIO总线接口信号,将其转换成并行的命令或者数据,把命令或数据按照总线时序发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求。
在本实施例中,所述SD/SDIO总线接口信号包括CMD信号和DATA信号等。
将CMD信号转换成并行的CMD命令,并发送给SD/SDIO总线接口,同时检测CMD命令的时序是否符合SD/SDIO设备要求。若符合时序要求则不报错,把检测到的信息传给后续通道。若不符合要求,则报错,提示控制器存在时序问题。
或者,接收SD/SDIO总线接口传输的信号,包括CMD信号和DATA信号等,将DATA信号转换成并行的DATA数据,并发送给SD/SDIO总线接口,同时检测DATA数据的时序是否符合SD/SDIO设备要求。若符合时序要求则不报错,把检测到的信息传给后续通道。若不符合要求,则报错,提示控制器存在时序问题。
S12,构造全局配置模块,获取相应的变量赋值,采用变量赋值的方式配置全局参数。
在本实施例中,所述全局参数包括SD/SDIO设备时序要求、忙信号、时钟停止变量、数据传输位宽、数据块长度以及数据块数量等信息。
S13,构造命令检查模块,获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令,并与后续SD/SDIO总线上输入的命令进行对比。
在本实施例中,配置预期的输入命令包括CMD命令,并将配置的输入命令与后续控制器的IP模块输入的CMD命令进行对比,若相同则正常运行,若不相同则报错,提示输入的命令和预期效果不一样。
S14,构造产生命令返回模块,也就是获取相应的变量赋值,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器的IP模块输入的输入CMD命令后,返回该响应信息。
在本实施例中,所述响应信息包括R1,R2,R3等不同格式、不同长度的响应信息。
S15,构造存储空间,存储随机数据和与数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;同时,在SD/SDIO控制器IP模块上初始化同样的数据。
在仿真开始,在该存储空间初始化上数据和循环冗余校验信息能减少计算循环冗余校验信息的代码量。同时,在SD/SDIO控制器IP模块的存储上,初始化上同样的数据,方便进行数据对比。
S16,构造数据输入监测模块,获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息。
具体地,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置需要对比的输入数据在存储模块的存储位置和返回的循环冗余校验状态信息,并从存储模块中获取待比较的输入数据和循环冗余校验信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器的IP模块返回循环冗余校验状态信息。
S17,构造产生数据返回模块,获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
具体地,获取SD/SDIO控制器的IP模块赋值相应的变量,采用变量直接赋值的方式配置数据地址,并从存储模块中获取配置地址的数据和循环冗余校验信息;待命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
S18,根据用例要求和场景需要,灵活控制仿真模型。
本实施例使用的是虚拟CPU,则能通过直接赋值,直接控制仿真模型的各个变量。
S19,通过不同的变量地址、变量名能区分多个的仿真模型。这样就可以模拟出控制器接多个设备的情况。
本实施例设计的SD/SDIO设备仿真模型框架,能够减少仿真模型的复杂度,降低编码难度,提高验证效率;能够直接利用不同的变量赋值控制仿真模型的行为,包括正常行为和异常行为,把正常行为和异常行为统一到固件编程控制之上,从而明显提高仿真模型的灵活性,提高验证的完备性;能兼容SD/SDIO/MMC/eMMC等多种协议的设备。
实施例三
本实施例提供一种精简可编程的SD/SDIO设备仿真模型框架,请参阅附图2,所述SD/SDIO设备仿真模型框架包括信号转换模块、全局配置模块、命令检测模块、产生命令返回模块、存储模块、数据输入监测模块、产生数据返回模块以及后门命令解析模块。
具体地,所述信号转换模块与SD/SDIO总线接口通信连接,被配置为接收SD/SDIO总线接口传输的信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合协议要求。
所述全局配置模块与后门配置接口通信连接,被配置为接收后门指令,采用变量赋值的方式配置全局参数信息。
所述命令检查模块与后门配置接口通信连接,被配置为接收后门指令,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比。
所述产生命令返回模块与后门配置接口通信连接,被配置为接收后门指令,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP输入的CMD命令输入后,返回该响应信息。
所述存储模块,被配置为初始化和存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化。
所述数据输入监测模块与后门配置接口通信连接,被配置为接收后门指令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息。
所述产生数据返回模块与后门配置接口通信连接,被配置为接收后门指令,采用变量直接赋值的方式配置数据地址,在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
所述后门命令解析模块通过后门配置接口与仿真模型通信连接,被配置为解析配置接口信号,产生后门指令,传送至仿真模型,直接操作仿真模型中的内部变量。
请参阅附图2,使用真实的cpu操作SD/SDIO控制器IP模块,所述后门命令解析模块解析控制器中没有使用的偏移地址,产生后门指令,直接操作仿真模型中的内部变量。这样的操作方式会占用配置总线时间。具体命令格式可以根据验证要求情况灵活控制,只要能灵活方便控制各个模块即可。
本实施例提出的SD/SDIO设备仿真模型框架,由真实CPU配置控制器IP的情况下,后门指令只能由后门命令解析模块通过解析总线操作,继而改变仿真模型中的变量来实现,其中的具体命令格式可以根据具体情况灵活设置。
本实施例提出的SD/SDIO设备仿真模型框架,能够减少仿真模型的复杂度,降低编码难度,提高验证效率;能够由固件灵活控制仿真模型的行为,包括正常行为和异常行为,把正常行为和异常行为统一到固件编程控制之上,从而明显提高仿真模型的灵活性,提高验证的完备性;能兼容SD/SDIO/MMC/eMMC等多种协议的设备。
实施例四
本实施例提供一种如实施例三所述的精简可编程的SD/SDIO设备仿真模型框架的设计方法,该方法包括以下步骤:
S21,建立信号转换模块,接收SD/SDIO总线接口信号,将其转换成并行的命令或者数据,把命令或数据按照总线时序发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求。
在本实施例中,所述SD/SDIO总线接口信号包括CLK时钟信号和DATA信号等。
将CMD信号转换成并行的CMD命令,并发送给SD/SDIO总线接口,同时检测CMD命令的时序是否符合SD/SDIO设备要求。若符合时序要求则不报错,把检测到的信息传给后续通道。若不符合要求,则报错,提示控制器存在时序问题。
或者,接收SD/SDIO总线接口传输的信号,包括CMD信号和DATA信号等,将DATA信号等SD/SDIO总线接口信号转换成并行的DATA数据,并发送给SD/SDIO总线接口,同时检测DATA数据的时序是否符合SD/SDIO设备要求。若符合时序要求则不报错,把检测到的信息传给后续通道。若不符合要求,则报错,提示控制器存在时序问题。
S22,构造全局配置模块,获取后门命令,采用变量赋值的方式配置全局参数。
在本实施例中,所述全局参数包括SD/SDIO设备时序要求、忙信号、时钟停止变量、数据传输位宽、数据块长度以及数据块数量等信息。
S23,构造命令检查模块,获取后门命令,采用变量直接赋值的方式配置预期的输入命令,并与后续总线上输入的命令进行对比。
在本实施例中,配置预期的输入命令包括CMD命令,并将配置的输入命令与后续控制器的IP模块输入的CMD命令进行对比,若相同则正常运行,不相同则报错,提示输入的命令和预期效果不一样。
S24,构造产生命令返回模块,也就是获取相应的变量赋值,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息。
在本实施例中,所述响应信息包括R1,R2,R3等不同格式、不同长度的响应信息。
S25,构造存储空间,存储随机数据和与数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;同时,在SD/SDIO控制器IP模块上初始化同样的数据。
在仿真开始,在该存储空间初始化上数据和循环冗余校验信息能减少计算循环冗余校验信息的代码量。同时,在SD/SDIO控制器IP模块的存储上,初始化上同样的数据,方便进行数据对比。
S26,构造数据输入监测模块,获取后门命令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息。
具体地,获取后门命令解析模块产生的后门命令,采用变量直接赋值的方式配置需要对比的输入数据在存储模块的存储位置和返回的循环冗余校验状态信息,并从存储模块中获取待比较的输入数据和循环冗余校验信息;在命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器IP模块返回循环冗余校验状态信息。
S27,构造产生数据返回模块,获取后门命令,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
具体地,获取后门命令解析模块产生的后门命令,采用变量直接赋值的方式配置数据地址,并从存储模块中获取配置地址的数据和循环冗余校验信息;待命令检查模块配置的命令输入,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
S28,构造后门命令解析模块,解析配置接口信号,产生后门指令。
本实施例使用真实的cpu操作控制器IP模块,该模块解析总线操作,产生后门指令,直接操作仿真模型中的内部变量,如图2所示。这样的操作方式会占用配置总线时间。具体命令格式可以根据验证要求情况灵活控制,只要能灵活方便控制各个通道即可。
S29,根据用例要求和场景需要,灵活控制仿真模型。
本实施例使用的是如果是真实CPU操作,则通过固件操作控制器中没有使用的偏移地址,由后门命令解析模块解析出后门指令,进而操作仿真模型中的各个变量。
S210,通过后门指令地址偏移能区分多个的仿真模型。这样就可以模拟出控制器接多个设备的情况。
本实施例设计的SD/SDIO设备仿真模型框架,能够减少仿真模型的复杂度,降低编码难度,提高验证效率;能够由固件灵活控制仿真模型的行为,包括正常行为和异常行为,把正常行为和异常行为统一到固件编程控制之上,从而明显提高仿真模型的灵活性,提高验证的完备性;能兼容SD/SDIO/MMC/eMMC等多种协议的设备。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (10)
1.一种SD/SDIO设备仿真模型框架,其特征是,包括信号转换模块、全局配置模块、命令产生模块、数据监测模块以及存储模块;
所述信号转换模块,被配置为接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
所述全局配置模块,被配置为获取相应的变量赋值,采用变量赋值方式配置全局参数信息;
所述命令产生模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令和响应信息,将输入命令与后续控制器IP模块输入的命令进行对比;检测到控制器IP模块输入CMD命令后,返回响应信息;所述命令产生模块包括命令检测模块和产生命令返回模块;
所述存储模块,被配置为存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
所述数据监测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置、返回的循环冗余校验状态信息以及数据地址;在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
2.根据权利要求1所述的SD/SDIO设备仿真模型框架,其特征是,所述命令检测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
所述产生命令返回模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息。
3.根据权利要求1所述的SD/SDIO设备仿真模型框架,其特征是,所述数据监测模块包括数据输入监测模块和产生数据返回模块;
所述数据输入监测模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器IP模块返回循环冗余校验状态信息;
所述产生数据返回模块,被配置为获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
4.如权利要求1至3中任一项所述的SD/SDIO设备仿真模型框架的设计方法,其特征是,该方法包括以下步骤:
建立信号转换模块,接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
构造全局配置模块,获取相应的变量赋值,采用变量赋值方式配置全局参数信息;
构造命令检测模块,获取相应的变量赋值,采用变量直接赋值方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
构造产生命令返回模块,获取相应的变量赋值,采用变量直接赋值方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息;
构造存储模块,存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
构造数据输入监测模块,获取相应的变量赋值,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息;
构造产生数据返回模块,获取相应的变量赋值,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
5.根据权利要求4所述的SD/SDIO设备仿真模型框架的设计方法,其特征是,赋值不同的变量地址和变量名,设计多个SD/SDIO设备的仿真模型框架。
6.一种SD/SDIO设备仿真模型框架,其特征是,包括信号转换模块、全局配置模块、命令产生模块、数据监测模块、后门命令解析模块以及存储模块;
所述信号转换模块,被配置为接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
所述全局配置模块,被配置为接收后门指令,采用变量赋值方式配置全局参数信息;
所述命令产生模块,被配置为接收后门指令,采用变量直接赋值的方式配置预期的输入命令和响应信息,将输入命令与后续控制器IP模块输入命令进行对比;检测到控制器IP模块输入CMD命令后,返回响应信息;所述命令产生模块包括命令检测模块和产生命令返回模块;
所述存储模块,被配置为存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
所述数据监测模块,被配置为接收后门指令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置、返回的循环冗余校验状态信息以及数据地址;在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息,将配置地址的数据和循环冗余校验信息驱动到数据总线上;
所述后门命令解析模块,被配置为解析配置接口信号,产生后门指令,传送至信号转换模块、全局配置模块、命令产生模块和数据监测模块。
7.根据权利要求6所述的SD/SDIO设备仿真模型框架,其特征是,所述命令检测模块,被配置为接收后门指令,采用变量直接赋值的方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
所述产生命令返回模块,被配置为接收后门指令,采用变量直接赋值的方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息。
8.根据权利要求6所述的SD/SDIO设备仿真模型框架,其特征是,所述数据监测模块包括数据输入监测模块和产生数据返回模块;
所述数据输入监测模块,被配置为接收后门指令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,对比输入的数据和循环冗余校验信息,并及时向控制器IP模块返回循环冗余校验状态信息;
所述产生数据返回模块,被配置为接收后门指令,采用变量直接赋值的方式配置数据地址,在命令检测模块配置的输入命令,产生命令返回模块返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
9.如权利要求6至8中任一项所述的SD/SDIO设备仿真模型框架的设计方法,其特征是,该方法包括以下步骤:
建立信号转换模块,接收SD/SDIO总线接口信号,并将其转换成并行的命令或数据,按照总线时序将命令或数据发送给SD/SDIO总线接口,同时检测命令或数据的时序是否符合SD/SDIO设备要求;
构造全局配置模块,获取后门命令,采用变量赋值方式配置全局参数信息;
构造命令检测模块,获取后门命令,采用变量直接赋值方式配置预期的输入命令,并与后续控制器IP模块输入的命令进行对比;
构造产生命令返回模块,获取后门命令,采用变量直接赋值方式配置期待的响应信息,在检测到控制器IP模块输入CMD命令后,返回该响应信息;
构造存储模块,存储随机数据以及数据对应的不同块长度、数据宽度的循环冗余校验信息,并对其进行初始化;
构造数据输入监测模块,获取后门命令,采用变量直接赋值的方式配置需要对比的数据在存储模块的存储位置和返回的循环冗余校验状态信息;在命令输入,返回响应信息后,对比输入的数据和循环冗余校验信息,并及时返回循环冗余校验状态信息;
构造产生数据返回模块,获取后门命令,采用变量直接赋值的方式配置数据地址,在命令输入,返回响应信息后,将配置地址的数据和循环冗余校验信息驱动到数据总线上。
10.根据权利要求9所述的SD/SDIO设备仿真模型框架的设计方法,其特征是,还包括:
构造后门命令解析模块,解析配置接口信号,产生后门指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910567370.6A CN110457744B (zh) | 2019-06-27 | 2019-06-27 | 一种sd/sdio设备仿真模型框架及其设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910567370.6A CN110457744B (zh) | 2019-06-27 | 2019-06-27 | 一种sd/sdio设备仿真模型框架及其设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457744A CN110457744A (zh) | 2019-11-15 |
CN110457744B true CN110457744B (zh) | 2023-01-20 |
Family
ID=68481162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910567370.6A Active CN110457744B (zh) | 2019-06-27 | 2019-06-27 | 一种sd/sdio设备仿真模型框架及其设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457744B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990310B (zh) * | 2019-12-19 | 2020-11-24 | 山东方寸微电子科技有限公司 | 一种设备端sd控制器、控制方法及电子设备 |
CN111198837B (zh) * | 2019-12-25 | 2022-07-26 | 深圳市紫光同创电子有限公司 | 基于fpga的sdio接口系统、控制器桥接方法 |
CN113496108B (zh) * | 2021-06-29 | 2024-03-15 | 山东华芯半导体有限公司 | 一种应用于仿真的cpu模型 |
CN113496107B (zh) * | 2021-06-29 | 2024-04-09 | 山东华芯半导体有限公司 | 一种可综合的cpu模型 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005128989A (ja) * | 2003-10-27 | 2005-05-19 | Hagiwara Sys-Com:Kk | 入出力制御装置、機能拡張デバイス |
CN102508804A (zh) * | 2011-10-20 | 2012-06-20 | 豪威科技(上海)有限公司 | Sd/sdio主控制器 |
CN103226461A (zh) * | 2013-03-26 | 2013-07-31 | 中山大学 | 一种蒙哥马利模乘方法及其电路 |
CN107451026A (zh) * | 2017-07-27 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于sv语言的串口通用验证平台及方法 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
CN109800194A (zh) * | 2019-01-24 | 2019-05-24 | 湖南国科微电子股份有限公司 | 基于Linux系统的SDIO接口数据传输方法及装置 |
CN109829230A (zh) * | 2019-01-29 | 2019-05-31 | 中科亿海微电子科技(苏州)有限公司 | Fpga ip核的设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197583B2 (en) * | 2003-01-21 | 2007-03-27 | Zentek Technology Japan, Inc. | SDIO controller |
TWI346289B (en) * | 2007-12-19 | 2011-08-01 | Ralink Technology Corp | Peripheral complying with sdio standard and method for managing sdio command |
US9015835B2 (en) * | 2013-06-23 | 2015-04-21 | Intel Corporation | Systems and methods for procedure return address verification |
US9811485B2 (en) * | 2015-06-22 | 2017-11-07 | Qualcomm Incorporated | Single relay SDIO interface with multiple SDIO units |
-
2019
- 2019-06-27 CN CN201910567370.6A patent/CN110457744B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005128989A (ja) * | 2003-10-27 | 2005-05-19 | Hagiwara Sys-Com:Kk | 入出力制御装置、機能拡張デバイス |
CN102508804A (zh) * | 2011-10-20 | 2012-06-20 | 豪威科技(上海)有限公司 | Sd/sdio主控制器 |
CN103226461A (zh) * | 2013-03-26 | 2013-07-31 | 中山大学 | 一种蒙哥马利模乘方法及其电路 |
CN107451026A (zh) * | 2017-07-27 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于sv语言的串口通用验证平台及方法 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
CN109800194A (zh) * | 2019-01-24 | 2019-05-24 | 湖南国科微电子股份有限公司 | 基于Linux系统的SDIO接口数据传输方法及装置 |
CN109829230A (zh) * | 2019-01-29 | 2019-05-31 | 中科亿海微电子科技(苏州)有限公司 | Fpga ip核的设计方法 |
Non-Patent Citations (1)
Title |
---|
《SDIO UVM验证IP技术的研究》;王笑天;《中国知网硕士电子期刊》;20180215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110457744A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457744B (zh) | 一种sd/sdio设备仿真模型框架及其设计方法 | |
US6373822B1 (en) | Data network protocol conformance test system | |
KR101855753B1 (ko) | 차량 진단 게이트웨이 장치 및 이를 포함하는 시스템 | |
CN107729233B (zh) | 一种控制器软件的仿真方法及装置 | |
CN112653600A (zh) | 基于usb网卡的网卡性能测试方法、装置及电子设备 | |
CN104657555A (zh) | 一种基于uvm验证方法学的toe的验证方法及平台 | |
CN101369868A (zh) | 传输系统 | |
US20240036111A1 (en) | Chip verification method and apparatus, electronic device, and storage medium | |
KR20200139059A (ko) | 제어기 진단 장치 및 그 방법 | |
CN101136756B (zh) | 网络远程控制主机上电自检的方法、系统和bmc芯片 | |
CN112202798A (zh) | 数据的协议转化方法、系统、电子设备及存储介质 | |
CN111866020A (zh) | 一种通讯卡以及一种通讯方法 | |
CN109906609A (zh) | 用于监测图像传感器的方法和设备 | |
CN104866640A (zh) | 一种全fifo电路设计方法及其通用验证平台 | |
US20220179807A1 (en) | Transmission of diagnostic and/or parameter data between a control module and an input/output module | |
KR100634229B1 (ko) | 캔 네트워크 관리 시스템 및 이의 테스트 및 디버깅 방법 | |
CN111770074B (zh) | 数据通路测试报文生成装置与方法 | |
CN209265218U (zh) | 车载hdlc记录装置 | |
CN106708759B (zh) | 控制数字输入输出接口的方法、处理器 | |
CN115687190B (zh) | 一种多路交互控制电路及方法 | |
CN112445659B (zh) | 一种多协议高速serdes测试实现方法及系统 | |
US20180052805A1 (en) | Microcontroller with a diagnosis module and method for accessing said module of said microcontroller | |
CN108446131B (zh) | 一种atm机固件升级方法、装置、设备及存储介质 | |
CN116257268A (zh) | 一种设备升级方法、装置、电子设备及存储介质 | |
CN109120422B (zh) | 可取得硬件信息的远程服务器系统及其管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |