SOC 芯片仿真系统及方法 【技术领域】
本发明涉及 SOC(System-on-a-Chip, 系统集成芯片 ) 仿真技术领域, 尤其涉及一 种基于可编程器件的 SOC 芯片仿真系统及方法。背景技术
SOC 芯片技术是指将各个可以集成在一起的模块集成到一个芯片上, 其优点在于 可以降低系统板上因信号在多个芯片之间进出带来的延迟而导致的性能局限, 在提高系统 的可靠性的同时, 由于芯片开发周期短, SOC 芯片技术可有效降低电子 / 信息系统产品的开 发成本, 提高产品的竞争力, 由此使得 SOC 芯片技术得到广泛应用。
但是, 随着 SOC 芯片技术的发展, SOC 芯片需要不断的更新换代, 为了降低系统成 本, SOC 芯片仿真技术应运而生。
目前, 常用的 SOC 芯片仿真技术有 : BONDOUT 专用仿真芯片技术、 HOOKS I/O 复用 仿真技术以及 ISD51 嵌入式仿真技术。其中, BONDOUT 和 HOOKS 仿真技术可以实现真实仿 真, 且不占用户资源, 但是, 对于不同型号的 SOC 芯片, 则可能需要不同的仿真芯片进行仿 真, 使得仿真成本高 ; 而 ISD51 嵌入式仿真技术则需要大幅度修改用户程序, 因而需要占用 大量资源, 而且运行速度慢。 发明内容
本发明的主要目的在于提供一种成本低、 灵活性强且仿真真实性好的 SOC 芯片仿 真系统及方法。
为了达到上述目的, 本发明提出一种 SOC 芯片仿真系统, 包括 : SOC 芯片以及与所 述 SOC 芯片连接的可编程器件, 其中 :
所述 SOC 芯片, 用于为所述可编程器件提供模拟电路仿真功能 ;
所述可编程器件, 用于接收外部 PC 机发送的操作指令 ; 利用所述 SOC 芯片提供的 模拟电路功能, 并仿真所述 SOC 芯片的数字电路功能执行所述操作指令。
优选地, 该系统还包括 : 通信单元, 连接所述外部 PC 机与可编程器件, 用于传输所 述可编程器件与所述外部 PC 机之间的数据。
优选地, 该系统还包括 : 存储单元, 与所述可编程器件连接, 用于存储所述 SOC 芯 片仿真系统的相关数据。
优选地, 所述可编程器件包括 :
数字电路单元, 用于仿真所述 SOC 芯片的数字电路功能 ;
控制单元, 用于对所述操作指令进行译码, 并根据所述操作指令控制所述 SOC 芯 片、 数字电路单元以及存储单元进行相应操作。
优选地, 所述操作指令至少包括程序运行、 停止、 单步运行、 断点控制、 芯片复位和 / 或将用户程序写入存储单元。
优选地, 所述存储单元至少包括 SRAM、 FLASH 或 E2PROM。优选地, 所述通信单元至少包括 USB 接口或 RS-232C 接口。
本发明还提出一种仿真 SOC 芯片的方法, 包括以下步骤 :
可编程器件接收外部 PC 机发送的操作指令 ;
对所述操作指令进行译码 ;
利用所述 SOC 芯片提供的模拟电路功能, 并仿真所述 SOC 芯片的数字电路功能执 行所述操作指令。
优选地, 该方法还包括 :
将所述操作指令的执行结果反馈至所述外部 PC 机。
优选地, 该方法还包括 :
对所述仿真 SOC 芯片的相关数据进行存储。
本发明提出的一种 SOC 芯片仿真系统及方法, 通过仿真 SOC 芯片的数字电路功能, 并利用 SOC 芯片的模拟电路功能实现对 SOC 芯片的真实性仿真, 本发明对 SOC 芯片的仿真 功能强大, 灵活性强, 仿真真实性好, 并且成本低。 附图说明
图 1 是本发明 SOC 芯片仿真系统一实施例的结构示意图 ; 图 2 是本发明仿真 SOC 芯片的方法一实施例的流程示意图。 为了使本发明的技术方案更加清楚、 明了, 下面将结合附图作进一步详述。具体实施方式
本发明实施例解决方案主要是 : 通过仿真 SOC 芯片的数字电路功能, 并利用 SOC 芯 片的模拟电路功能实现对 SOC 芯片的真实性仿真, 灵活性强, 仿真真实性好, 且成本低。
如图 1 所示, 本发明一实施例提出一种 SOC 芯片仿真系统, 包括 : SOC 芯片 11、 通信 单元 12、 存储单元 13 以及可编程器件 14, 其中 : SOC 芯片 11、 通信单元 12、 存储单元 13 均 与可编程器件 14 连接。
本实施例中通信单元 12 作为可编程器件 14 对外部的通信接口, 用来连接可编程 器件 14 与外部 PC(Personal Computer, 个人计算机 ) 机, 传输可编程器件 14 与外部 PC 机 之间的通信数据。
SOC 芯片 11 用于为可编程器件 14 提供模拟电路仿真功能 ; SOC 芯片 11 中包含了 微处理器 / 微控制器、 存储器以及其他专用功能逻辑, 其电路部分主要包括模拟电路以及 数字电路部分, 模拟电路部分主要体现 SOC 芯片的相关性能, 比如电压等, 数字电路部分主 要体现 SOC 芯片的相关功能, 比如定时器、 看门狗电路以及 PWM(Pulse Width Modulation, 脉宽调制 ) 等, 由于 SOC 芯片的模拟电路部分通常难以改变, 难于仿真, 而 SOC 芯片的数字 电路部分通过相关协议可以很好的实现仿真, 本实施例 SOC 芯片仿真系统保留了原有 SOC 芯 11 中的模拟电路功能部分, 对于 SOC 芯片 11 中的数字电路功能部分进行仿真, 减少用户 程序的修改以及改造 SOC 芯片 11 带来的资源浪费。
可编程器件 14 用于接收外部 PC 机发送的操作指令, 利用 SOC 芯 11 提供的模拟电 路功能, 并仿真 SOC 芯片 11 的数字电路功能执行上述操作指令。
存储单元 13 用于存储 SOC 芯片仿真系统的相关数据, 比如用户程序等。具体地, 本实施例 SOC 芯片仿真系统为了实现对 SOC 芯片 11 的真实仿真, 仅利用 了 SOC 芯片 11 中的模拟电路部分功能, 而将 SOC 芯片 11 中的数字电路功能分离出来, 通过 可编程器件 14 仿真 SOC 芯片 11 的数字电路功能, 在对外部 PC 机发来的操作指令进行相应 操作时, 可编程器件 14 与 SOC 芯片 11 进行数据通信, 利用 SOC 芯片 11 提供的模拟电路功 能, 并仿真 SOC 芯片 11 的数字电路功能执行上述操作指令。
本实施例可编程器件 14 包括 : 数字电路单元 141 以及控制单元 142, 其中 :
数字电路单元 141 与 SOC 芯片 11 的数字电路完全兼容, 时序也完全一样, 数字电 路单元 141 用来替代 SOC 芯片 11 中的数字电路, 以达到仿真 SOC 芯片 11 的数字电路功能 的目的 ;
控制单元 142 用于对外部 PC 机发来的操作指令进行译码, 并根据操作指令控制 SOC 芯片 11、 数字电路单元 141 以及存储单元 13 进行相应操作, 根据操作指令的不同, 控制 单元 142 还会将操作指令的执行结果反馈给外部 PC 机。
上述操作指令包括程序运行、 停止、 单步运行、 断点控制、 芯片复位以及将用户程 序写入存储单元等。
以单步运行操作指令为例, 当用户需要调试程序时, 通过外部 PC 机上的相关按钮 操作 PC 机, PC 机通过通信单元 12 向可编程器件 14 中的控制单元 142 发送单步运行的操作 指令, 控制单元 142 对接收的操作指令进行译码, 译码的过程即为对操作指令进行分析解 码的过程, 通过分析, 控制单元 142 确认操作指令为单步运行指令, 则对其他相关单元进行 控制, 具体控制过程为 : 控制单元 142 控制数字电路单元 141 执行一条命令后停止运行, 若 上述单步运行指令与 SOC 芯片 11 的模拟电路有关, 控制单元 142 则通过与 SOC 芯片 11 通 信, 改变 SOC 芯片 11 中模拟电路的有关状态和参数 ; 同理, 若上述单步运行指令与存储单元 13 有关, 控制单元 142 则控制存储单元 13 进行相应的数据存储与读取操作。
本 实 施 例 中 存 储 单 元 13 可 以 为 SRAM( 静 态 只 读 存 储 器 )、 FLASH( 闪 存 ) 或 E2PROM( 可擦出可编程存储器 ) 等。
通信单元 12 可以为 USB(Universal Serial BUS, 通用串行总线 ) 接口或 RS-232C 接口等。其中, RS-232C 为标准协议, 其全称是 EIA-RS-232C 标准, 其中 EIA(Electronic Industry Association) 代表美国电子工业协会, RS(ecommeded standard) 代表推荐标准, 232 是标识号, C 代表 RS232 的最新一次修改 (1969 年 ), 在这之前, 有 RS232B、 RS232A。目 前在 PC 机上的 COM1、 COM2 接口即为 RS-232C 接口。
本实施例通过仿真 SOC 芯片 11 的数字电路功能, 并利用 SOC 芯片 11 的模拟电路 功能实现对 SOC 芯片 11 的真实性仿真, 本发明对 SOC 芯片 11 的仿真功能强大, 灵活性强, 仿真真实性好, 并且成本低。
如图 2 所示, 本发明一实施例提出一种仿真 SOC 芯片的方法, 包括 :
步骤 S101, 可编程器件接收外部 PC 机发送的操作指令 ;
当用户需要 PC 机执行某种操作, 比如需要调试程序时, 通过 PC 机向可编程器件发 送相应的操作指令, 该操作指令可以是程序运行、 停止、 单步运行、 断点控制、 芯片复位以及 将用户程序写入存储单元等。
本实施例中, 可编程器件通过通信单元与外部 PC 机进行通信, 实现相关数据的传 输。其中通信单元可以为 USB 接口或 RS-232C 接口等。
步骤 S102, 对操作指令进行译码 ;
可编程器件收到外部 PC 机发来的相关操作指令后, 对操作指令进行译码, 译码的 过程即为对操作指令进行分析解码的过程, 通过分析, 可编程器件即可根据操作指令进行 相应操作, 实现对 SOC 芯片的仿真。
步骤 S103, 利用 SOC 芯片提供的模拟电路功能, 并仿真 SOC 芯片的数字电路功能执 行操作指令。
本实施例中 SOC 芯片用于为可编程器件提供模拟电路仿真功能 ; SOC 芯片中包含 了微处理器 / 微控制器、 存储器以及其他专用功能逻辑, 其电路部分主要包括模拟电路以 及数字电路部分, 模拟电路部分主要体现 SOC 芯片的相关性能, 比如电压等, 数字电路部分 主要体现 SOC 芯片的相关功能, 比如定时器、 看门狗电路以及 PWM 等, 由于 SOC 芯片的模拟 电路部分通常难以改变, 难于仿真, 而 SOC 芯片的数字电路部分通过相关协议可以很好的 实现仿真。本实施例 SOC 芯片仿真系统保留了原有 SOC 芯片中的模拟电路功能部分, 对于 SOC 芯片中的数字电路功能部分进行仿真, 减少用户程序的修改以及改造 SOC 芯片带来的 资源浪费。 可编程器件根据译码后的操作指令控制其中的数字电路功能部分执行相应的操 作, 若上述操作指令与 SOC 芯片的模拟电路有关, 则可编程器件通过与 SOC 芯片进行通信, 改变 SOC 芯片中模拟电路的有关状态和参数, 以达到真实仿真 SOC 芯片的目的。根据操作 指令的不同, 可编程器件还会将操作指令的执行结果反馈给外部 PC 机 ; 若涉及到相关数据 的读取与存储, 可编程器件还需要根据相应的操作指令控制外部存储单元对数据执行存储 或读取等操作。
本实施例中可编程器件具体可包括数字电路单元及控制单元, 数字电路单元与 SOC 芯片的数字电路完全兼容, 时序也完全一样, 数字电路单元用来替代 SOC 芯片中的数字 电路, 以达到仿真 SOC 芯片的数字电路功能的目的 ; 控制单元用来对外部 PC 机发来的操作 指令进行译码, 并根据操作指令控制 SOC 芯片、 数字电路单元以及外部的存储单元进行相 应操作, 根据操作指令的不同, 控制单元还会将操作指令的执行结果反馈给外部 PC 机。
以单步运行操作指令为例, 当用户需要调试程序时, 通过外部 PC 机上的相关按钮 操作 PC 机, PC 机通过通信单元向可编程器件中的控制单元发送单步运行的操作指令, 控制 单元对接收的操作指令进行译码, 译码的过程即为对操作指令进行分析解码的过程, 通过 分析, 控制单元确认操作指令为单步运行指令, 则对其他相关单元进行控制, 具体控制过程 为: 控制单元控制数字电路单元执行一条命令后停止运行, 若上述单步运行指令与 SOC 芯 片的模拟电路有关, 控制单元则通过与 SOC 芯片通信, 改变模拟电路的有关状态和参数 ; 同 理, 若上述单步运行指令与存储单元有关, 控制单元则控制存储单元进行相应的数据存储 与读取操作。
本实施例中存储单元可以为 SRAM、 FLASH 或 E2PROM 等。
本发明实施例 SOC 芯片仿真系统及方法, 通过仿真 SOC 芯片的数字电路功能, 并利 用 SOC 芯片的模拟电路功能实现对 SOC 芯片的真实性仿真, 对 SOC 芯片的仿真功能强大, 灵 活性强, 仿真真实性好, 并且成本低。
以上所述仅为本发明的优选实施例, 并非因此限制本发明的专利范围, 凡是利用
本发明说明书及附图内容所作的等效结构或流程变换, 或直接或间接运用在其它相关的技 术领域, 均同理包括在本发明的专利保护范围内。