基于FPGA的一体化I2C接口验证控制器设计方法与流程

文档序号:18831904发布日期:2019-10-09 03:43阅读:221来源:国知局
基于FPGA的一体化I2C接口验证控制器设计方法与流程

本发明涉及一种现场可编程门阵列即fpga的软件验证技术,尤其涉及一种基于fpga的一体化i2c接口验证控制器设计方法。



背景技术:

i2c总线(intericbus)是philips公司开发的用于芯片之间连接的总线,由于其结构简单,仅通过两根信号线(时钟线scl和数据线sda)就可以实现多机通信,高效的传输性能和协议的可靠性使i2c总线在单片机、串行e2prom、lcd等器件中有广泛的应用。

fpga是一种内部含有可编程逻辑单元的半导体芯片,开发者使用硬件描述语言(vhdl或verilog)对设计逻辑行为进行描述,经过综合、布局布线等操作后即可实现对芯片功能或结构的修改和重定义。fpga为软件开发人员提供了一条快速开发硬件的新途径,大大降低了硬件开发人员的门槛。由于fpga在数字系统设计方面表现出的巨大的方便性和灵活性,它成为复杂系统设计最有效的一种手段。随着fpga设计规模和复杂度的增加,对fpga验证的充分性和效率提出了更高的要求。在实际系统中,fpga可能同多类型i2c接口器件进行通信,在对i2c接口进行验证时,需根据被验证fpga特点快速设计i2c接口验证控制器,建立与待验证i2c接口间通信。由于i2c接口具有主从机工作模式不固定、时序要求严格、传输方式多样、传输数据量大以及通信过程中需要双方协作的特点,给接口功能、时序验证的充分性和效率带来了更大的挑战。

现有针对fpga的i2c接口验证控制器缺少独立化、结构化、一体化的设计思想,主要根据待验证fpga设计的具体特点进行针对性设计,这种情况下验证控制器设计往往会受限于待验证fpga设计的工作模式、结构特点,主从机需要单独分离设计,导致验证控制器外部接口信号多样化、复杂化;未对i2c主从机通信过程进行分层抽象,导致内部层次结构较为混乱,难以进行逻辑结构复用;主从机工作模式、数据传输模式以及数据传输长度固定导致验证控制器可复用性差、验证灵活性低,造成人力、时间资源的巨大浪费,i2c接口验证的充分性和效率难以得到保证。



技术实现要素:

本发明的目的就在于为了解决上述问题而提供一种基于fpga的一体化i2c接口验证控制器设计方法。

本发明通过以下技术方案来实现上述目的:

一种基于fpga的一体化i2c接口验证控制器设计方法,所述验证控制器基于fpga开发,采用主从机一体化设计架构;所述主从机一体化设计架构通过对i2c通信过程进行分层抽象,将i2c通信主、从机集成于一体,实现所述验证控制器外部接口的统一封装和内部结构层次设计;所述外部接口包括地址总线接口、数据总线接口、控制请求信号接口、数据请求信号接口和完成信号接口,所述内部层次结构包括前者包含后者的主控制单元、字节控制单元和比特控制单元。

具体地,所述地址总线包含控制地址和数据地址,当地址为控制地址时,数据总线上数据为总线控制命令,当地址为数据地址时,总线上数据为待传输数据。

作为优选,所述验证控制器与上位机之间通过总线控制方式实现外部控制;所述验证控制器的内部通过层次传输反馈机制实现内部通信。

作为进一步优选,所述总线控制方式包括以下步骤:

步骤1、上电复位后,所述验证控制器向所述上位机发送控制请求信号;

步骤2、所述上位机检测到控制请求信号有效后,向所述验证控制器发送控制地址和总线控制命令;

步骤3、所述验证控制器解析总线控制命令,完成主从机模式配置、数据传输模式配置、数据传输长度配置。

作为优选,所述总线控制命令包含数据传输长度控制位、重复开始控制位、响应控制位、读写控制位、主从机控制位,所述数据传输长度控制位用于控制验证控制器发送、接收数据长度,所述重复开始控制位用于控制单次传输完成后是否需要重新开始的复合模式,所述读写控制位用于验证控制器发送、接收模式控制,所述主从机控制位用于控制验证控制器工作在主机或从机模式。

具体地,所述验证控制器支持i2c总线通信中的主机发送-从机接收、主机接收-从机发送、复合模式这3种数据传输模式,一次最大传输4096字节数据。

作为优选,所述层次传输反馈机制为:所述验证控制器在数据传输时按照主控制单元、字节控制单元、比特控制单元的层次结构将数据转换成字节、比特的形式并生成相应的字节、比特控制命令自上而下进行传输,同时自下而上进行反馈完成信号;所述主控制单元用于与上位机的数据交互,产生顶层控制逻辑和字节控制命令,接收字节控制单元反馈的字节完成信号,以字节数据的形式与字节控制单元通信;所述字节控制单元用于产生比特控制命令,接收比特控制单元反馈的比特完成信号,以比特数据的形式与比特控制单元通信;所述比特控制单元用于按照i2c总线通信协议要求产生scl或sda信号,进行比特发送或接收,并向字节控制单元反馈比特完成信号。

具体地,所述验证控制器采用所述层次传输反馈机制进行i2c通信数据发送时,包括以下步骤:

步骤1、所述验证控制器向所述上位机发送数据请求信号,所述上位机检测到数据请求信号有效时,向所述验证控制器发送数据地址和待发送数据;

步骤2、所述验证控制器的所述主控制单元接收到数据后,将数据拆分成字节大小,产生字节写控制命令,将字节数据和控制命令送到所述字节控制单元,数据发送完成后,再次向所述上位机发送数据请求信号;

步骤3、所述字节控制单元接收字节数据和控制命令后,将字节数据拆分成比特大小,并产生比特写控制命令,将比特数据和控制命令送到所述比特控制单元,字节发送完成后,向所述主控制单元反馈字节完成信号;

步骤4、所述比特控制单元接收到比特数据和控制命令后,按照i2c协议要求生成相应的scl和sda信号,比特发送完成后,向所述字节控制单元反馈比特完成信号。

具体地,所述验证控制器采用所述层次传输反馈机制进行i2c通信数据接收时,包括以下步骤:

步骤1、所述验证控制器的所述主控制单元产生字节读控制命令并送到所述字节控制单元,接收到所述字节控制单元送来的字节完成信号后,产生done信号通知所述上位机读接收数据;

步骤2、所述字节控制单元根据接收到的字节读控制命令产生比特读控制命令,将其送到所述比特控制单元,字节数据接收完成后,向所述主控制单元反馈字节完成信号;

步骤3、所述比特控制单元按照比特读控制命令检测开始位、停止位,逐位接收比特数据,比特接收完成后所述向字节控制单元反馈比特完成信号。

本发明的有益效果在于:

本发明通过采用包括主从机一体化构架、总线控制方式、层次传输反馈机制的i2c接口验证控制器设计方法,能够提高i2c接口验证控制器的可配置性、可复用性、操作简便性,i2c接口验证环境搭建周期明显缩短,i2c接口验证充分性和效率都得到极大提高,项目实践表明,验证效率至少提高40%以上;本发明除了能对fpga中i2c接口进行功能、时序验证外,硬件实现后还能挂载到系统总线上对嵌入式设备中的i2c接口进行验证。

附图说明

图1是本发明所述基于fpga的一体化i2c接口验证控制器设计方法的整体架构图;

图2是本发明所述层次传输反馈机制的示意图;

图3是本发明所述主控制单元的状态转移图;

图4是本发明所述层次传输反馈机制的数据发送流程图;

图5是本发明所述层次传输反馈机制的数据接收流程图。

具体实施方式

下面结合附图对本发明作进一步说明:

如图1所示,本发明所述基于fpga的一体化i2c接口验证控制器设计方法,所述验证控制器基于fpga开发,采用主从机一体化设计架构;所述主从机一体化设计架构通过对i2c通信过程进行分层抽象,将i2c通信主、从机集成于一体,实现所述验证控制器外部接口的统一封装和内部结构层次设计,最大程度屏蔽主、从机工作模式差异,避免将与i2c通信过程强相关的信号暴露在所述验证控制器外部,以最小化为原则,将最上层弱相关信号作为所述验证控制器外部接口进行统一封装,为降低设计复杂度和提高复用性,内部结构进行了层次设计,实现了i2c通信主、从机一体化设计;所述外部接口包括地址总线接口即addr接口、数据总线接口即data接口、控制请求信号接口即reqctr接口、数据请求信号接口即reqdata接口、完成信号接口即done接口,地址总线和数据总线用于完成总线控制命令和数据的交互,控制请求信号、数据请求信号和完成信号用于必要的通信控制;所述内部层次结构包括前者包含后者的主控制单元、字节控制单元和比特控制单元。

所述地址总线包含控制地址和数据地址,当地址为控制地址时,数据总线上数据为总线控制命令,当地址为数据地址时,总线上数据为待传输数据。

本发明所述基于fpga的一体化i2c接口验证控制器设计方法,所述验证控制器与上位机之间通过总线控制方式实现外部控制;所述验证控制器的内部通过层次传输反馈机制实现内部通信。

所述总线控制方式包括以下步骤:

步骤1、上电复位后,所述验证控制器向所述上位机发送控制请求信号;

步骤2、所述上位机检测到控制请求信号有效后,向所述验证控制器发送控制地址和总线控制命令;

步骤3、所述验证控制器解析总线控制命令,完成主从机模式配置、数据传输模式配置、数据传输长度配置。

所述总线控制命令包含数据传输长度控制位、重复开始控制位、响应控制位、读写控制位、主从机控制位,所述数据传输长度控制位用于控制验证控制器发送、接收数据长度,所述重复开始控制位用于控制单次传输完成后是否需要重新开始的复合模式,所述读写控制位用于验证控制器发送、接收模式控制,所述主从机控制位用于控制验证控制器工作在主机或从机模式。

所述总线控制命令格式如下表1所示:

表1总线控制命令格式

所述验证控制器支持i2c总线通信中的主机发送-从机接收、主机接收-从机发送、复合模式这3种数据传输模式,一次最大传输4096字节数据。

如图2所示,所述层次传输反馈机制为:所述验证控制器在数据传输时按照主控制单元、字节控制单元、比特控制单元的层次结构将数据转换成字节、比特的形式并生成相应的字节、比特控制命令自上而下进行传输,同时自下而上进行反馈。

所述主控制单元用于与上位机的数据交互,产生顶层控制逻辑和字节控制命令,接收字节控制单元反馈的字节完成信号,以字节数据的形式与字节控制单元通信。

如图3所示,验证控制器配置完成后,主控制单元主要包括以下4种工作情形:

1)主机发送:主机发送起始位、从机地址,接收到从机响应后,开始进行数据发送,接收到从机响应后开始下一字节数据发送,全部数据发送完后,如果重复开始位有效则再次发送起始位,无效则发送停止位结束本次通信;

2)主机接收:主机发送起始位、从机地址,接收到从机响应后,开始进行数据接收,接收完1字节数据后向从机发送响应,数据全部接收完后,如果重复开始位有效则再次发送起始位,无效则发送停止位结束本次通信;

3)从机接收:从机检测到起始位和从机地址有效后,向主机发送响应,开始进行数据接收,接收完1字节数据后向主机发送响应,检测到停止位后结束数据接收;

4)从机发送:从机检测到起始位和从机地址有效后,向主机发送响应,开始进行数据发送,接收到主机响应后开始发送下一字节数据,检测到停止位后结束数据发送。

字节控制单元接收字节数据和字节读写控制命令,产生比特读写控制命令,接收比特控制单元反馈的比特完成信号,以比特数据的形式与比特控制单元通信。

比特控制单元接收比特数据和比特读写控制命令,按照i2c总线通信协议要求产生scl或sda信号,以比特的方式生成开始位和停止位、发送接收数据、响应,并向字节控制单元反馈比特完成信号。

如图4所示,所述验证控制器采用所述层次传输反馈机制进行i2c通信数据发送时,包括以下步骤:

步骤1、所述验证控制器向所述上位机发送数据请求信号,所述上位机检测到数据请求信号有效时,向所述验证控制器发送数据地址和待发送数据;

步骤2、所述验证控制器的所述主控制单元接收到数据后,将数据拆分成字节大小,产生字节写控制命令,将字节数据和控制命令送到所述字节控制单元,数据发送完成后,再次向所述上位机发送数据请求信号;

步骤3、所述字节控制单元接收字节数据和控制命令后,将字节数据拆分成比特大小,并产生比特写控制命令,将比特数据和控制命令送到所述比特控制单元,字节发送完成后,向所述主控制单元反馈字节完成信号;

步骤4、所述比特控制单元接收到比特数据和控制命令后,按照i2c协议要求生成相应的scl和sda信号,比特发送完成后,向所述字节控制单元反馈比特完成信号。

如图5所示,所述验证控制器采用所述层次传输反馈机制进行i2c通信数据接收时,包括以下步骤:

步骤1、所述验证控制器的所述主控制单元产生字节读控制命令并送到所述字节控制单元,接收到所述字节控制单元送来的字节完成信号后,产生done信号通知所述上位机读接收数据;

步骤2、所述字节控制单元根据接收到的字节读控制命令产生比特读控制命令,将其送到所述比特控制单元,字节数据接收完成后,向所述主控制单元反馈字节完成信号;

步骤3、所述比特控制单元按照比特读控制命令检测开始位、停止位,逐位接收比特数据,比特接收完成后所述向字节控制单元反馈比特完成信号。

上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1