可编程逻辑门阵列的I<sup>2</sup>C接口配置电路及可编程逻辑门阵列的制作方法

文档序号:6452254阅读:123来源:国知局
专利名称:可编程逻辑门阵列的I<sup>2</sup>C接口配置电路及可编程逻辑门阵列的制作方法
技术领域
本实用新型涉及可编程逻辑门阵列(Field Programmable Gate Array, FPGA),更具体地说,涉及一种可编程逻辑门阵列的I2C接口配置电路及可编程逻辑门阵列。
背景技术
目前现场可编程门阵列(FPGA)领域的FPGA器件的配置模式主要有5种模式,即串行接口模式、并行接口模式、边界扫描接口模式、SPI接口模式、BPI接口模式等。在消费类电子、电讯和工业电子中,大多数的设计里面经常有很多相似的地方,例如几乎每个系统都包括;一些智能控制器,通常是一个单片的微控制器;通用电路,例如LCD驱动器、远程I/
0口、RAM、EEPROM或数据转换器等等;面向应用的电路,例如收音机和视频系统的数字调谐 和信号处理电路,或者是音频拨号电话的DTMF发生器等。而这些器件通常都有I2C通讯接口。同时,一般还有FPGA等可编程器件参与实现电子系统中的部分功能。当电子系统中其它核心部件对FPGA器件进行配置或系统特殊控制操作时,核心部件就必须根据FPGA的专用配置接口(一般非标准接口)时序进行定制接口电路模块,以便实现核心部件与FPGA在配置数据通讯方面的操作。这种接口不匹配所引起的需要增加专用的配置接口的问题,增加了器件的成本,给电子系统的器件集成带来较大困难,同时也可能会消耗电子系统板面积。

实用新型内容本实用新型要解决的技术问题在于,针对上述的FPGA器件与其他电子系统或器件配合使用时出现的由于配置接口匹配而导致的成本增加、集成较难的问题,提出一种不需要增加专用的配置接口、成本低、较易集成,因而消除了配置接口匹配问题的可编程逻辑门阵列的配置电路及可编程逻辑门阵列。本实用新型解决其技术问题所采用的技术方案是构造一种可编程逻辑门阵列的I2C接口配置电路,包括用于配置所述可编程逻辑门阵列的FPGA配置接口电路,还包括从机单元、I2C配置单元和I2C回读单元;所述配置接口电路包括I2C总线并将I2C总线输入到从机单元的串行信号转换为并行信号输入到可编程逻辑门阵列;所述从机单元用于将所述可编程逻辑门阵列内部输出的并行信号转换为I2C总线串行信号输出到所述I2C总线;所述I2C配置单元用于将所述从机单元送来的并行信号转换为数据流并传送到所述FPGA配置接口电路;所述I2C回读单元用于将所述FPGA配置接口电路输出的数据流转换为并行数据并输出到所述从机单元;所述I2C配置单元和所述I2C回读单元分别连接在所述从机单元与所述FPGA配置接口电路之间。在本实用新型所述的一种可编程逻辑门阵列的I2C接口配置电路中,所述并行信号为8位并行信号。在本实用新型所述的一种可编程逻辑门阵列的I2C接口配置电路中,所述从机单元包括8位移位寄存器、数据接收电路、第一握手发生器、8位字计数器、状态机控制电路、数据发送电路、第二握手发生器以及时钟产生器;所述I2C总线的数据线输入的串行数据依次通过所述8位移位寄存器、所述数据接收电路和所述第一握手发生器输出;所述8位字计数器与所述8位移位寄存器连接,所述状态机控制电路分别与所述第一握手发生器、所述8位移位寄存器和所述时钟产生器连接;所述I2C回读单元输出的数据流依次通过所述第二握手发生器、所述数据发送电路及所述8位移位寄存器与所述I2C总线的数据线连接;所述时钟产生器还与所述I2C总线的时钟线连接。在本实用新型所述的一种可编程逻辑门阵列的I2C接口配置电路中,所述I2C配置单元包括第一 32位移位寄存器、多路选择器、帧计数器、同步字检测器、I2C数据流输出电路以及握手电路;其中,所述第一握手发生器输出的并行信号依次通过所述第一 32位移位寄存器、所述多路选择器以及所述I2C数据流输出电路输出到FPGA的所述配置接口电路;所 述I2C数据流输出电路的输出还反馈到所述多路选择器的一个输入端;所述第一 32位移位 寄存器还输出并行数据到所述同步字检测器,所述同步字检测器输出通过所述帧计数器输出到所述多路选择器的控制端;所述握手电路分别输出控制信号到所述同步字检测器和所述I2C数据流输出电路。在本实用新型所述的一种可编程逻辑门阵列的I2C接口配置电路中,所述I2C回读单元包括32位抓取寄存器、第二 32位移位寄存器、计数器和同步器;FPGA的所述配置接口电路输出的数据流依次通过所述32位抓取寄存器和所述第二 32位移位寄存器输出到所述第二握手发生器电路,所述计数器输出控制信号到所述第二 32位移位寄存器;所述同步器用于产生使所述FPGA配置接口电路输出数据流的回读使能信号。本实用新型还涉及一种可编程逻辑门阵列,包括配置模式选择电路和接口配置电路,所述配置模式选择电路包括用于选择利用I2C总线配置所述可编程逻辑门阵列的选择端;所述接口配置电路为上述任意一项所述的I2C接口配置电路。实施本实用新型的可编程逻辑门阵列的I2C接口配置电路及可编程逻辑门阵列,具有以下有益效果由于FPGA的接口配置电路中增加了对FPGA进行配置、回读的从机单元、I2C配置单元和I2C回读单元,使得FPGA可以使用I2C总线进行数据配置及数据回读;而I2C总线在众多微处理器器件(CPU)和片上系统器件(SoC)均有存在,因此,在FPGA与其他电子系统或器件配合使用时就不再存在配置接口匹配的问题,其不需要专用的配置接口、成本低、较易集成。

图I是本实用新型可编程逻辑门阵列的I2C接口配置电路及可编程逻辑门阵列实施例中I2C接口配置电路的结构示意图;图2是所述实施例中从机单元结构示意图;图3是所述实施例中I2C配置单元的结构示意图;图4是所述实施例中I2C回读单元的结构示意图;图5是所述实施例中配置方法的流程图;图6是所述实施例中回读方法的流程图;图7是图2中状态机控制电路的状态图。
具体实施方式
下面将结合附图对本实用新型实施例作进一步说明。图I是本实施例中可编程逻辑门阵列的I2C接口配置电路结构示意图,在图I中,I2C接口配置电路包括FPGA配置接口电路4、从机单元1、I2C配置单元2以及I2C回读单元3 ;其中,FPGA配置接口电路4用于配置该可编程逻辑门阵列,该FPGA配置接口电路4与一般的、现有的FPGA配置接口电路是相同的;从机单元I用于将由可编程逻辑门阵列与外部连接的I2C总线上输入的串行信号转换为并行信号输出或将可编程逻辑门阵列内部输出的并行信号转换为I2C总线串行信号输出到所述I2C总线上;I2C配置单元2用于将从机单元
I送来的并行信号转换为数据流并传送到FPGA配置接口电路4 ;I2C回读单元3将FPGA配置接口电路4输出的数据流转换为并行数据并输出到从机单元I ;在本实施例中,上述I2C配置单元2和I2C回读单元3分别连接在从机单元I与FPGA配置接口电路4之间;同时,在本实施例中,上述并行信号均为8位字宽的并行信号。图2是本实施例中可编程逻辑门阵列的I2C接口配置电路中从机单元I的结构示意图。在图2中,从机单元I包括8位移位寄存器、数据接收电路、第一握手发生器、8位字计数器、状态机控制电路、数据发送电路、第二握手发生器以及时钟产生器;在本实施例中,由上述I2C总线的数据线输入的串行数据依次通过上述8位移位寄存器、数据接收电路和第一握手发生器输出,8位字计数器与8位移位寄存器连接,状态机控制电路分别与第一握手发生器、8位移位寄存器和时钟产生器连接;I2C回读单元3输出的数据流依次通过第二握手发生器、数据发送电路及8位移位寄存器与所述I2C总线的数据线连接;时钟产生器还与所述I2C总线的时钟线连接。在本实施例中,当上述从机单元I处理FPGA外部数据时(通常是在对FPGA进行配置时),其信号流程为外部电路发送串行数据sda_i (见图2)到从机;从机接收数据保存到8位移位寄存器(shift_reg) ;8位字计数器对上述寄存器中的数据进行计数,每计八个数以后将8位移位寄存器的数据发送到数据接收电路(rxr);数据接收电路(rxr)检测数据的第一个字节的高七位是不是本地地址(检测主机的发送地址与本机的地址是否一致),如是则产生响应位给主机(外部电路),继续发送数据,否则不产生响应位;地址匹配后,主机继续发送数据;同时,通过第一握手发生器经RAM_DI端口输出八位并行数据;状态机控制电路(FSM controller)控制第一接收握手发生器(Hand_Shacker_Generator)、8位移位寄存器(Shift_reg)根据I2C通信协议,控制各部分按协议协调工作。当上述从机单元I处理FPGA内部输出数据时(通常是在对FPGA进行数据回读时),其信号流程为接收数据回读电路3 (I2C_RB)发送的八位并行数据DATA_I,由RAM_D0端口输入到第二握手发生器;数据发送电路(txr)接收RAM_D0的第一个字节后,检测RAM_D0的高七位数据RAM_D0[7:1]是否与本机地址匹配,如匹配则继续接收RAM_D0发送的数据;当数据发送电路检测的从机地址位有效后,第二握手发生器开始发送RAM_D0的数据到8位移位寄存器(shift_reg)中,8位计数器开始计数;计数器每计一个数,端口 sda_o (参见图2)则输出一个串行的一位数据,当8位计数器计到八个数后再发下一个RAM_D0数据;状态机控制电路(FSM controller)控制第二握手电路(Hand_Shacker_Generator)、8位移位寄存器电路(shift_reg)协调工作并使时钟产生器产生从机时钟信号输出到scl_o端口。图3是本实施例中I2C配置单元2的结构示意图。所述I2C配置单元包括包括第一 32位移位寄存器、多路选择器、帧计数器、同步字检测器、I2C数据流输出电路以及握手电路;其中,第一握手发生器输出的并行信号依次通过第一 32位移位寄存器、多路选择器以及I2C数据流输出电路输出到FPGA配置接口电路4 ; I2C数据流输出电路的输出还反馈到多路选择器的一个输入端;第一 32位移位寄存器还输出并行数据到同步字检测器,同步字检测器输出通过帧计数器输出控制信号到多路选择器的控制端;握手电路分别输出控制信号到同步字检测器和I2C数据流输出电路。在本实施例中,上述I2C配置单元2中的信号流程如下接收八位并行数据到DATA_0端口(参见图3);将八位并行数据移入到第一 32位移位寄存器中(shift_reg[31:0]);同步字检测电路(synchronize words detect)检测第一 32位移位寄存器写满后(发送四次八位的并行数据为写满标识)启动帧计数器(frame_COunter ),该帧计数器用于计数发了多少帧数据;帧计数器计数后,将数据为32位的帧数据流发送到I2C帧数据流输出电路(I2C_bitstream out) ;I2C巾贞数据流输出电路接收握手电路(HandShake)使能信号load_i2cbit后将32位帧数据流发送到FPGA配置接口电路4 (CCS)中。图4是本实施例中I2C回读单元3的结构示意图。I2C回读单元3包括32位抓取寄存器、第二 32位移位寄存器、计数器和同步器;FPGA配置接口电路4输出的数据流依次通过32位抓取寄存器和第二 32位移位寄存器输出到第二握手发生器,计数器输出控制信号到第二 32位移位寄存器;同步器用于产生使FPGA配置接口电路4输出的数据流的回读使能信号。在本实施例中,上述I2C回读单元3中的信号流程如下I2C回读电路发送回读信号(rb_idt由主机发送)给FPGA配置接口电路4(CCS ,如图4示);同步器(synchronizer)接收回读信号后发送I2C回读使能信号(I2C_fb);FPGA配置接口电路4接收I2C回读使能信号后经数据总线(DATABUS FPGA内部配置电路的数据线)发送配置数据流;32位抓取寄存器(captUre_reg)在总线上抓取32位配置数据流后发送给第二 32位移位寄存器(shift_reg[31:0]);计数器(counter)每计八个数后发送数据更新信号(update)给第二32位移位寄存器3shift_reg[31:0]);第二 32位移位寄存器接收数据(由计数器电路产生)更新信号后将32位配置数据流数据按八位为一个字节由其DATA_I端口输出。在本实施例中,从机单元主要执行FPGA与外部进行数据传递。其内部状态机如图7示,接收复位信号rst将从机置于空状态slaVe_idle,接收主机发送的开始信号start_s启动从机开始状态slaVe_Start进行判断若与主机的寻址地址不匹配则不进入下一个状态,若与主机的寻址地址匹配则进入从机响应状态slave_ack,此时如果接收的写使能w_r为高,则从机向外部发送数据接收到外部响应位时继续发送数据,否则跳到状态空及开始状态。若接收的写使能w_r为低,则从机接收外部数据并当接收到外部响应位时继续接收数据,否则跳到状态空及开始状态。本实施例还涉及一种可编程逻辑门阵列的配置方法。在本实施例中,该配置方法包括配置方法和回读方法。其流程如图5所示,包括如下步骤步骤Sll选择使用I2C总线配置模式在本实施例中,由于FPGA还保留了现有的数据配置方式,也就是说,该FPGA与现有的FPGA比较而言,多了一种配置方式。所以,在本步骤中,需要对配置方式进行选择,使得该FPGA采用I2C总线配置模式。由于现有FPGA主要的五种配置模式由三个配置端口 M2,M1,MO进行配置。因此,在本实施例中,新增一个配置端口 M3来选择I2C总线配置模式,可设定M3M2M1M0=1000为FPGA配置I2C的配置模式。步骤S12当I2C总线配置模式被选择后,从机单元就要被使能,从机处于Idle状态准备接收地址。 步骤S13接收串行数据并存储在8位移位寄存器中在本步骤中,外部电路(主机)通过I2C总线发送配置数据,从机将上述串行的数据依次存储在8位移位寄存器中。步骤S14从机地址匹配,在本步骤中,检测外部电路发送的地址是否与本从机地址匹配,如匹配则产生响应位给主机,主机继续发送串行数据,而可编程逻辑门阵列配置(回读)电路则继续执行下一步骤;否则,跳转到步骤S12。步骤S15接收8位并行信号并存储在32位移位寄存器中S14中地址匹配后主机会继续发送数据给从机,从机接收串行数据,并转换为8位并行数据,把并行数据发送给I2C配置单元,I2C配置单元将接收到的8位并行信号依次写入到32位移位寄存器中。 步骤S16 32位移位寄存器是否满,判断上述32位移位寄存器是否写满?如是,执行下一步骤,否则,返回S15继续接受8位并行数据,等待该32位移位寄存器写满。步骤S17输出帧到可编程逻辑门阵列配置接口电路在本步骤中,将写满的32位移位寄存器中的数据作为一个帧,输出到可编程逻辑门阵列配置接口电路。帧是FPGA数据流的最小单位,一般包含若干个字(word),其长度取决于配置帧长度寄存器数据的大小。上述帧传输到可编程逻辑门阵列配置接口电路后的处理方式,就与现有的FPGA配置相似或相同了。步骤S18退出在本实施例中,上述步骤S12-S14完成了将串行数据转换为8位并行数据的过程,而步骤S15-S17则完成了将上述8位并行数据转换为FPGA配置常用的数据流的过程,使得配置得以在现有的基础上进行。在本实施例中,由可编程逻辑门阵列回读数据的方法流程如图6所示,包括如下步骤步骤S21收到回读信号后产生并发送I2C回读使能信号在本步骤中,外部电路(主机)发送回读信号(rb_idt)给可编程逻辑门阵列配置(回读)电路,可编程逻辑门阵列配置(回读)电路通过一个同步器(synchronizer)接收回读信号后产生并发送I2C回读使能信号。步骤S22发送回读数据,并存储于32位移位寄存器FPGA配置接口电路接收上述I2C回读使能信号后经数据总线(DATABUS FPGA内部配置电路的数据线)发送回读数据流;本步骤就是在上述总线上抓取32位配置数据流后将其发送给32位移位寄存器存储。步骤S23 32位移位寄存器的数据每8位发送给I2C从机单元在本步骤中,计数器(counter)对上述输入到32位移位寄存器中的数据计数,每计八个数后发送数据更新信号(update)给上述32位移位寄存器电路;上述32位移位寄存器接收数据更新信号(由计数器电路产生)后将32位回读数据流数据按8位为一个字节输出给I2C从机单元。步骤S24从机单元接收8位并行信号并存储在8位移位寄存器中在本步骤中,开始将S23中的8位数据发送到8位字宽的移位寄存器(shift_reg)中,同时计数器开始计数。步骤S25随计数器计数逐位输出为串行数据在本步骤中,计数器每计一个数,则输出一个串行的一位数据。当计数器计到八个数后再发下一个8位并行数据。步骤S26退出在本实施例中,上述步骤S21-S23完成了将回读数据流转换为8位并行数据的过程,而步骤S24-S26则完成了将上述8位并行数据转换为串行的I2C总线数据的过程,使得回读数据得以在I2C总线上输出。本实施例还涉及一种可编程逻辑门阵列,包括配置模式选择电路和配置电路,其配置模式选择电路包括用于选择利用I2C总线配置所述可编程逻辑门阵列的选择端;在现有的配置模式选择电路的基础上新增一个配置端口 M3来选择I2C总线配置模式,可设定{M3,M2,M1,M0} = {1,0,0,0}为FPGA配置I2C的配置模式;其配置电路为上面所描述的可编 程逻辑门阵列的I2C接口配置电路。总之,在一般的电子系统(没有PC机的冲,微处理器等核心器件无需根据FPGA专用配置接口的操作时序定制配置通讯接口,就可以很方便地与FPGA进行配置和回读通讯,尤其是通过I2C接口下载专用配置流、借助FPGA配置系统对FPGA全芯片的全局控制作用,从而对FPGA器件实施全局的专用控制等操作,比如控制FPGA器件所有输入输出端IO处于高阻态、将FPGA器件中的触发器置位复位等,这使得采用这种结构FPGA不需要专用的配置接口、成本低、较易集成。以上所述实施例仅表达了本实用新型的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本实用新型专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干变形和改进,这些都属于本实用新型的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。
权利要求1.一种可编程逻辑门阵列的I2C接口配置电路,包括用于配置所述可编程逻辑门阵列的FPGA配置接口电路,其特征在于,还包括从机单元、I2C配置单元和I2C回读单元;所述配置接口电路包括I2C总线并将I2C总线输入到从机单元的串行信号转换为并行信号输入到可编程逻辑门阵列;所述从机单元用于将所述可编程逻辑门阵列内部输出的并行信号转换为I2C总线串行信号输出到所述I2C总线;所述I2C配置单元用于将所述从机单元送来的并行信号转换为数据流并传送到所述FPGA配置接口电路;所述I2C回读单元用于将所述FPGA配置接口电路输出的数据流转换为并行数据并输出到所述从机单元;所述I2C配置单元和所述I2C回读单元分别连接在所述从机单元与所述FPGA配置接口电路之间。
2.据权利要求I所述的可编程逻辑门阵列的I2C接口配置电路,其特征在于,所述并行信号为8位并行信号。
3.根据权利要求2所述的可编程逻辑门阵列的I2C接口配置电路,其特征在于,所述从机单元包括8位移位寄存器、数据接收电路、第一握手发生器、8位字计数器、状态机控制电路、数据发送电路、第二握手发生器以及时钟产生器;所述I2C总线的数据线输入的串行数据依次通过所述8位移位寄存器、所述数据接收电路和所述第一握手发生器输出;所述8位字计数器与所述8位移位寄存器连接,所述状态机控制电路分别与所述第一握手发生器、所述8位移位寄存器和所述时钟产生器连接;所述I2C回读单元输出的数据流依次通过所述第二握手发生器、所述数据发送电路及所述8位移位寄存器与所述I2C总线的数据线连接;所述时钟产生器还与所述I2C总线的时钟线连接。
4.根据权利要求3所述的可编程逻辑门阵列的I2C接口配置电路,其特征在于,所述I2C配置单元包括第一 32位移位寄存器、多路选择器、帧计数器、同步字检测器、I2C数据流输出电路以及握手电路;其中,所述第一握手发生器输出的并行信号依次通过所述第一 32位移位寄存器、所述多路选择器以及所述I2C数据流输出电路输出到FPGA的所述配置接口电路;所述I2C数据流输出电路的输出还反馈到所述多路选择器的一个输入端;所述第一32位移位寄存器还输出并行数据到所述同步字检测器,所述同步字检测器输出通过所述帧计数器输出到所述多路选择器的控制端;所述握手电路分别输出控制信号到所述同步字检测器和所述I2C数据流输出电路。
5.根据权利要求4所述的可编程逻辑门阵列的I2C接口配置电路,其特征在于,所述I2C回读单元包括32位抓取寄存器、第二 32位移位寄存器、计数器和同步器;FPGA的所述配置接口电路输出的数据流依次通过所述32位抓取寄存器和所述第二 32位移位寄存器输出到所述第二握手发生器电路,所述计数器输出控制信号到所述第二 32位移位寄存器;所述同步器用于产生使所述FPGA配置接口电路输出数据流的回读使能信号。
6.一种可编程逻辑门阵列,包括配置模式选择电路和接口配置电路,其特征在于,所述配置模式选择电路包括用于选择利用I2C总线配置所述可编程逻辑门阵列的选择端;所述接口配置电路为如权利要求1-4任意一项所述的I2C接口配置电路。
专利摘要本实用新型涉及一种可编程逻辑门阵列的I2C接口配置电路,包括用于将I2C主机发送的串行信号转换为并行信号和将并行信号转换为I2C总线串行信号传输给I2C主机的从机单元、用于将I2C从机单元转化的并行信号转换为配置数据流的I2C配置单元和将回读数据流转换为并行数据并输出到所述从机单元的I2C回读单元;所述I2C配置单元和所述I2C回读单元分别连接在所述从机单元与所述FPGA配置接口电路之间;所述并行信号为8位并行信号。本实用新型还涉及一种可编程逻辑门阵列。实施本实用新型的可编程逻辑门阵列的I2C配置电路及其可编程逻辑门阵列,具有以下有益效果不需要专用的配置接口、成本低、较易集成。
文档编号G06F13/40GK202533933SQ20112045557
公开日2012年11月14日 申请日期2011年11月16日 优先权日2011年11月16日
发明者包朝伟, 赵多华 申请人:深圳市国微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1