CN109857485B - 一种可编程gpio装置及基于该装置的时序实现方法 - Google Patents

一种可编程gpio装置及基于该装置的时序实现方法 Download PDF

Info

Publication number
CN109857485B
CN109857485B CN201910077385.4A CN201910077385A CN109857485B CN 109857485 B CN109857485 B CN 109857485B CN 201910077385 A CN201910077385 A CN 201910077385A CN 109857485 B CN109857485 B CN 109857485B
Authority
CN
China
Prior art keywords
state
data
decoding
state machine
instruction
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
Application number
CN201910077385.4A
Other languages
English (en)
Other versions
CN109857485A (zh
Inventor
王运哲
刘大铕
刘奇浩
刘尚
朱苏雁
孙中琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN201910077385.4A priority Critical patent/CN109857485B/zh
Publication of CN109857485A publication Critical patent/CN109857485A/zh
Priority to PCT/CN2019/093652 priority patent/WO2020155545A1/zh
Application granted granted Critical
Publication of CN109857485B publication Critical patent/CN109857485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开一种可编程gpio装置及基于该装置的时序实现方法,所述可编程gpio装置包括用于存储来自软件配置的指令的CMD模块、用于存储DATA端口上从外设读取的数据或者写往外设的数据的读/写FIFO、流水线控制模块以及与外设的接口。本发明可由用户编程,通过CPU进行引脚配置,具有快速、灵活的特点,运行中不需要CPU的干预,仅通过一些CPU标志和终端与内核通讯。

Description

一种可编程gpio装置及基于该装置的时序实现方法
技术领域
本发明涉及一种可编程gpio装置及基于该装置的时序实现方法,属于存储器技术领域。
背景技术
每个GPIO端口可通过软件分别配置成输入或输出,即通过配置寄存器控制对应的引脚,实现与外设交互。因为CPU执行软件代码的开销和芯片内部包括系统总线传递数据的时延,软件无法精确控制GPIO管脚上电平的跳变时间和管脚之间的时序关系,因此GPIO不支持高速接口协议继而不能实现与复杂外设数据交互。
随着工艺提高,高速接口协议成为主流,本发明旨在提取各类接口协议时序的共同特征,使用硬件实现根据时序波形编程gpio,以支持各类不同的接口协议。本装置将接口信号分类为时钟,控制信号,数据信号;将时序状态分类为空闲,控制输出,控制输入,数据读入,数据写出,条件触发等待及控制与数据并发的状态等;并据此设计一个指令集合,使用三级流水线,保证接口时序的准确无误,通过软件编程由CPU配置寄存器以及内置的命令SRAM,数据FIFO实现不同的接口应用。
发明内容
本发明要解决的技术问题是提供一种可编程gpio装置和基于该装置的时序实现方法,可由用户编程,通过CPU进行引脚配置,具有快速、灵活的特点,运行中不需要CPU的干预,仅通过一些CPU标志和终端与内核通讯。
为了解决所述技术问题,本发明采用的技术方案是:一种可编程gpio装置,包括CMD模块,用于存储来自软件配置的指令;
模式寄存器和默认电平寄存器,模式寄存器决定CTL每个端口的输入输出设置,作为输入的CTL端口,其输入电平与默认电平寄存器中对应位的电平不一致时接口上所有信号维持不变直到两者一致时才能根据CMD SRAM中的命令条目继续后续的时序演进;
读/写FIFO,用于存储DATA端口上从外设读取的数据或者写往外设的数据;
流水线控制模块,流水线控制模块包括取指状态机、解码状态机、执行状态机,三个状态机分别负责从命令SRAM中提取指令、解析提取到的指令、执行解析的指令;
与外设的接口,包括PCLK、CTL、DATA三类,PCLK是由控制器输出给外设,CTL和DATA都是双向端口。
进一步的,CMD模块存储的每条命令条目长度为32位,其中bit[31:29]为数据控制符,bit31为data有效控制位,为1时表示当前拍DATA接口有效,为0时表示只有CTL接口有效;bit30为读写控制位,表示DATA接口的读写操作,为1时DATA接口为输出,0时DATA为输入,当bit31为1时该位才有效;bit29表示DATA cycle是否多拍,当bit31有效,并且bit29为0时,表示在当前命令只进行一拍数据的读写操作,当bit29为1时,表示进行多拍数据传输,且进行数据传输个数与实际命令的cycle数一致;bit[20:16]表示命令方向以及命令为输出时的pclk cycle个数,当为0时,表示配置为输入的CTL线上的值需要等待变为与默认电平寄存器中对应位的值一致之后再执行下一条命令,此时如果bit31有效,则bit29为0时只进行一拍数据的读写操作,为1时,进行多拍操作,即等待过程的每一个pclk cycle都进行读写操作直到输入变为默认值;
bit[12:0]表示CTL接口上的输出电平或者是否检测输入控制线的电平,与bit[20:16]搭配,当cmd_count=0时代表只看输入控制线,且只看该位上与默认电平不一致的控制线。
进一步的,在与外设的接口上,每个PCLK周期内CTL端口的电平信号由当前执行到的CMD SRAM条目及模式和电平寄存器共同决定,DATA端口的电平信号由当前执行到的CMDSRAM条目及模式和电平寄存器以及写FIFO上的数据或者所连接外设的电平共同决定,CTL每个端口的输入输出设置由模式寄存器决定,作为输出的CTL端口,其输出电平由CMD SRAM中对应命令条目的[12:0]中对应位决定;作为输入的CTL端口,其输入电平需要与默认电平寄存器中对应位的电平一致时才能表示该条命令完成,DATA端口是否有效及有效时的输入输出设置由CMD SRAM条目的[31:30]位决定,DATA端口作为输出时从WR FIFO弹出数据,作为输入时将数据压入RD FIFO中。
进一步的,取指状态机的状态包括空闲、第一次取指、第二次取指、正常取指、触发等待、执行反馈,解码和执行状态机的状态包括空闲、控制输出、控制输入、数据读入、数据写出、条件触发等待、控制输出并数据读写、控制输入并数据写出,三个状态机的状态彼此之间可以两两跳转。
解码状态机的下一个状态取决于对取指状态机当前状态输出的指令的解析,执行状态机的下一个状态取决于解码状态机的当前状态,取指状态机根据模式控制和默认电平寄存器信息以及指令的执行反馈情况决定是否进行状态跳转,使得执行阶段的接口时序与指令队列当中所描述的完全吻合。
进一步的,控制信号CTL的宽度为13bits,数据信号DATA宽度可配置,其宽度必须与内部FIFO的位宽保持一致。
本发明还公开了一种基于上述可编程gpio装置的时序实现方法,包括以下步骤:S01)、CPU配置模式寄存器和默认电平寄存,并编码CMD SRAM;
S02)、取指状态机从空闲状态跳转到取第一条指令的状态;
S03)、第一条指令取出后取指状态机跳转到取第二条指令的状态,与此同时,解码状态机根据解码信息跳转到解码时序状态;
S04)、第二条指令取出后取指状态机跳转到正常取指状态,与此同时,解码状态机根据所解码第二条指令的信息跳转到第二个解码时序状态,执行状态机从空闲状态跳转到上一个解码状态;
S05)、由解码状态所得的解码信息确定执行状态机在步骤S03跳转的上一个解码状态需要的PCLK周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第三条指令的信息跳转到第三个解码时序状态,执行状态机从步骤S03跳转的解码状态跳转到上一个解码状态;
S06)、由解码状态所得的解码信息确定执行状态机在步骤S04跳转的上一个解码状态需要的PCLK周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第四条指令的信息跳转到第四个解码时序状态,执行状态机从步骤S04跳转的解码状态跳转到上一个解码状态;
S07)、因为执行状态机在步骤S06跳转的上一个解码状态需要等待CTL接口上的某个输入信号与模式寄存器的对应位一致,具体等待时长取决于外设,两者一致之后,取指状态机进入空闲状态,解码状态机根据所解码的第五条指令的信息跳转到第五个解码时序状态,执行状态机从步骤S06跳转的解码状态跳转到上一个解码状态;
S08)、由解码状态所得的解码信息确定执行状态机在步骤S07跳转的上一个解码状态需要的PCLK周期,之后解码状态机进入空闲状态,执行状态机从步骤S07跳转的解码状态跳转到上一个解码状态;
S09)、由解码状态所得的解码信息确定执行状态机在步骤S08跳转的上一个解码状态需要的PCLK周期,之后执行状态机进入空闲状态。
进一步的,步骤S03中,解码状态机跳转到的解码时序状态为数据写出状态,步骤S04中,解码状态机跳转到的第二个解码时序状态为数据读入状态,执行状态机跳转到的上一个解码状态是数据写出状态,步骤S05中,解码状态机跳转的第三个解码时序状态是等待状态,执行状态机跳转的上一个解码状态是数据读入状态,步骤S06中,解码状态机跳转的第四个解码时序状态是控制输出状态,执行状态机跳转的上一个解码状态是等待状态,步骤S07中,解码状态机跳转的第五个解码时序状态是控制输入状态,执行状态机跳转的上一个解码状态是控制输出状态,步骤S08中,执行状态机跳转的上一个解码状态是控制输入状态。
本发明的有益效果:传统GPIO只能将引脚设置为输入或输出,设置引脚为固定电平值或者高阻态,不能实现引脚的复杂时序控制。本设计实际为一个多功能外设存储接口控制器,即可由用户编程的接口,通过CPU进行大篇幅的引脚配置,具有快速、灵活等特点。且运行中不需要CPU的干预,仅通过一些CPU标志和中断与内核通讯。其所启用的灵活接口可用作工业标准或专用接口中的主设备,并行和串行接口均可实现。
附图说明
图1为可编程gpio装置的原理框图;
图2为三个状态机运行时的流水线示意图;
图3为模式控制寄存器的示意图;
图4为默认电平寄存器的示意图;
图5为CPU对CMD_SRAM的配置设置的示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种可编程gpio装置,如图1所示,包括:
CMD模块,用于存储来自软件配置的指令;
模式寄存器(在图1中表示为Mode Register)和默认电平寄存器(在图1中表示为Level Register),位宽为13比特,如图3、4所示,模式寄存器决定CTL每个端口的输入输出设置,作为输入的CTL端口,其输入电平与默认电平寄存器中对应位的电平不一致时接口上所有信号维持不变直到两者一致时才能根据CMD SRAM中的命令条目继续后续的时序演进;
读/写FIFO,用于存储DATA端口上从外设读取的数据或者写往外设的数据;
流水线控制模块,如图2所示,流水线控制模块包括取指状态机(Fetch)、解码状态机(Decode)、执行状态机(Execute),三个状态机分别负责从命令SRAM中提取指令、解析提取到的指令、执行解析的指令;
与外设的接口,包括PCLK、CTL、DATA三类,PCLK是由控制器输出给外设,CTL和DATA都是双向端口。控制信号CTL的宽度为13bits,数据信号DATA宽度可配置,其宽度必须与内部FIFO的位宽保持一致。
如图5所示,CMD模块存储的每条命令条目长度为32位,其中bit[31:29]为数据控制符,bit31(DATA_VALID)为data有效控制位,为1时表示当前拍DATA接口有效,为0时表示只有CTL接口有效;bit30(RW)为读写控制位,表示DATA接口的读写操作,为1时DATA接口为输出,0时DATA为输入,当bit31为1时该位才有效;bit29(DATA_LENGTH)表示DATA cycle是否多拍,当DATA_VALID有效,并且bit29为0时,表示在当前命令只进行一拍数据的读写操作,当DATA_LENGTH为1时,表示进行多拍数据传输,且进行数据传输个数与实际命令的cycle数一致即[20:16]中的数值。
bit[20:16] (Command cycle counter)表示命令方向以及命令为输出时的pclkcycle个数,当为0时,表示配置为输入的CTL线上的值需要等待变为与默认电平寄存器中对应位的值一致之后再执行下一条命令,此时如果DATA_VALID有效,则DATA_LENGTH为0时只进行一拍数据的读写操作(该操作在控制线变为默认值的那一拍进行),为1时,进行多拍操作,即等待过程的每一个pclk cycle都进行读写操作直到输入变为默认值。
bit[12:0] (Command)表示CTL接口上的输出电平或者是否检测输入控制线的电平,与bit[20:16]搭配,当cmd_count=0时代表只看输入控制线,且只看该位上与默认电平不一致的控制线。
本实施例中,在与外设的接口上,每个PCLK周期内CTL端口的电平信号由当前执行到的CMD SRAM条目及模式和电平寄存器共同决定,DATA端口的电平信号由当前执行到的CMD SRAM条目及模式和电平寄存器以及写FIFO上的数据或者所连接外设的电平共同决定,CTL每个端口的输入输出设置由模式寄存器决定,作为输出的CTL端口,其输出电平由CMDSRAM中对应命令条目的[12:0]中对应位决定;作为输入的CTL端口,其输入电平需要与默认电平寄存器中对应位的电平一致时才能表示该条命令完成,DATA端口是否有效及有效时的输入输出设置由CMD SRAM条目的[31:30]位决定,DATA端口作为输出时从WR FIFO弹出数据,作为输入时将数据压入RD FIFO中。
本实施例中,取指状态机的状态包括空闲、第一次取指、第二次取指、正常取指、触发等待、执行反馈,解码状态机和执行状态机的状态包括空闲、控制输出、控制输入、数据读入、数据写出、条件触发等待、控制输出并数据读写、控制输入并数据写出,三个状态机的状态彼此之间可以两两跳转。解码状态机的下一个状态取决于对取指状态机当前状态输出的指令的解析,执行状态机的下一个状态取决于解码状态机的当前状态。取指状态机根据模式控制和默认电平寄存器信息以及指令的执行反馈情况决定是否进行状态跳转,使得执行阶段的接口时序与指令队列当中所描述的完全吻合。因取指和译码实质只需要一个时钟周期,所以流水线的前进速度取决于每条命令的执行时间。一条命令执行时间长短取决于该指令所指代的内容,例如写数据周期数或者等待输入信号变化的等待时长。
图5示例解析:模式控制寄存器表示第CTL[12]为输出模式,CTL[11]为输入模式,CTL[1]为输入模式,CTL[0]为输出模式。默认电平寄存器的表示作为输入的CTL[11]默认为高电平,CTL[1]为低电平。在输入模式下,每一个PCLK周期,判断CTL[11]是否为1并且同时CTL[1]是否为0,不一致则等待至输入改变为一致后再进行下一条命令的操作。
实施例2
本实施例公开一种基于权利要求1所述可编程gpio装置的数据读写方法,包括以下步骤:
S01)、CPU配置模式寄存器和默认电平寄存,并编码CMD SRAM(假设配置了5条指令);
S02)、取指状态机从空闲状态跳转到取第一条指令的状态;
S03)、第一条指令取出后取指状态机跳转到取第二条指令的状态,与此同时,解码状态机根据解码信息跳转到第一个解码时序状态,本实施例中,本状态为数据写出状态;
S04)、第二条指令取出后取指状态机跳转到正常取指状态,与此同时,解码状态机根据所解码第二条指令的信息跳转到第二个解码时序状态,本实施例中,第二个解码为数据读入状态,执行状态机从空闲状态跳转到上一个解码状态,本实施例中,本状态为数据写出状态;
S05)、由解码状态所得的解码信息确定执行状态机在步骤S03跳转的数据写出状态需要的PCLK周期,本实施例中,需要10个pclk周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第三条指令的信息跳转到第三个解码时序状态(等待状态),执行状态机从数据写出状态跳转到上一个解码状态(数据读入状态);
S06)、由解码状态所得的解码信息确定执行状态机的数据读入状态需要8个pclk周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第四条指令的信息跳转到第四个解码时序状态(控制输出状态),执行状态机从数据读入状态跳转到上一个解码状态(等待状态);
S07)、因为执行状态机等待状态需要等待CTL接口上的某个输入信号与模式寄存器的对应位一致,具体等待时长取决于外设,两者一致之后,取指状态机进入空闲状态,解码状态机根据所解码的第五条指令的信息跳转到第五个解码时序状态(控制输入状态),执行状态机从等待状态跳转到上一个解码状态控制输出状态;
S08)、由解码状态所得的解码信息确定执行状态机的控制输出状态需要16个pclk周期,之后解码状态机进入空闲状态,执行状态机从数据写出状态跳转到上一个解码状态控制输入状态;
S09)、由解码状态所得的解码信息确定执行状态机的控制输入状态需要4个pclk周期,之后执行状态机进入空闲状态。
以图5 CMD SRAM中的数据为例解析接口时序如下:
第一条指令,一个pclk时钟周期,CTL[12]输出为0,CTL[0]输出为1
第二条指令,三个pclk时钟周期,CTL[12]输出为1,CTL[0]输出为0
第三条指令,维持当前状态直至检测到输入CTL[11]=1与CTL[1]=0同时成立;在此pclk周期内DATA写出一组数据(来源于WR FIFO)。
第四条指令,十个pclk时钟周期,CTL[12]输出为1,CTL[0]输出为0,同时DATA接口上依次读入十组数据(依次压入RD FIFO)。
第五条指令,维持当前状态直至检测到输入CTL[11]变为1;在此pclk周期内DATA端口上读入一组数据(压入RD FIFO)。
传统GPIO只能将引脚设置为输入或输出,设置引脚为固定电平值或者高阻态,不能实现引脚的复杂时序控制。本装置实际为一个多功能外设存储接口控制器,即可由用户编程的接口,通过CPU进行大篇幅的引脚配置,具有快速、灵活等特点。且运行中不需要CPU的干预,仅通过一些CPU标志和中断与内核通讯。其所启用的灵活接口可用作工业标准或专用接口中的主设备,并行和串行接口均可实现。
注:在本文中端口,引脚,管脚指代相同的意义。命令和指令代指相同意义。以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

Claims (8)

1.一种可编程gpio装置,其特征在于:包括
CMD模块,用于存储来自软件配置的指令,CMD模块存储的每条命令条目包括数据控制符、命令方向以及命令为输出时的pclk cycle个数的标志、CTL信号接口上的输出电平或者是否检测输入控制线的电平的标志,数据控制符包括data有效控制位、读写控制位、DATAcycle是否多拍的标志;
data有效控制位为1时,表示当前拍DATA信号接口有效,为0时表示只有CTL信号接口有效;
读写控制位表示DATA信号的读写操作,为1时DATA信号为输出,为0时DATA为输入,当data有效控制位为1时,该位才有效;
当data有效控制位有效并且DATA cycle是否多拍的标志为0时,表示在当前命令只进行一拍数据的读写操作,当DATA cycle是否多拍的标志为1时,表示进行多拍数据传输,且进行数据传输个数与实际命令的cycle数一致;
当命令方向以及命令为输出时的pclk cycle个数的标志为0时,表示配置为输入的CTL线上的值需要等待变为与默认电平寄存器中对应位的值一致之后再执行下一条命令,此时如果data有效控制位有效,则DATA cycle是否多拍的标志为0时只进行一拍数据的读写操作,DATA cycle是否多拍的标志为1时,进行多拍操作,即等待过程的每一个pclk cycle都进行读写操作直到输入变为默认值;
CTL信号接口上的输出电平或者是否检测输入控制线的电平的标志与命令方向以及命令为输出时的pclk cycle个数的标志搭配,当cmd_count=0时代表只看输入控制线,且只看该位上与默认电平不一致的控制线;
模式寄存器和默认电平寄存器,模式寄存器决定CTL每个端口的输入输出设置,作为输入的CTL信号端口,其输入电平与默认电平寄存器中对应位的电平不一致时接口上所有信号维持不变直到两者一致时才能根据CMD SRAM中的命令条目继续后续的时序演进;
读/写FIFO,用于存储DATA信号端口上从外设读取的数据或者写往外设的数据;
流水线控制模块,流水线控制模块包括取指状态机、解码状态机、执行状态机,三个状态机分别负责从命令SRAM中提取指令、解析提取到的指令、执行解析的指令;
与外设的接口,包括PCLK、CTL、DATA三类信号接口,PCLK信号接口是由控制器输出给外设的单向端口,CTL信号接口和DATA信号接口都是双向端口。
2.根据权利要求1所述的可编程gpio装置,其特征在于:CMD模块存储的每条命令条目长度为32位,其中bit[31:29]为数据控制符,bit31为data有效控制位,为1时表示当前拍DATA信号接口有效,为0时表示只有CTL信号接口有效;bit30为读写控制位,表示DATA信号接口的读写操作,为1时DATA信号接口为输出,为0时DATA为输入,当bit31为1时该位才有效;bit29表示DATA cycle是否多拍,当bit31有效,并且bit29为0时,表示在当前命令只进行一拍数据的读写操作,当bit29为1时,表示进行多拍数据传输,且进行数据传输个数与实际命令的cycle数一致;bit[20:16]表示命令方向以及命令为输出时的pclk cycle个数,当为0时,表示配置为输入的CTL线上的值需要等待变为与默认电平寄存器中对应位的值一致之后再执行下一条命令,此时如果bit31有效,则bit29为0时只进行一拍数据的读写操作,为1时,进行多拍操作,即等待过程的每一个pclk cycle都进行读写操作直到输入变为默认值;
bit[12:0]表示CTL信号接口上的输出电平或者是否检测输入控制线的电平,与bit[20:16]搭配,当cmd_count=0时代表只看输入控制线,且只看该位上与默认电平不一致的控制线。
3.根据权利要求2所述的可编程gpio装置,其特征在于:在与外设的接口上,每个PCLK周期内CTL信号端口的电平信号由当前执行到的CMD SRAM命令条目及模式和电平寄存器共同决定,DATA信号端口的电平信号由当前执行到的CMD SRAM命令条目及模式和电平寄存器以及写FIFO上的数据或者所连接外设的电平共同决定,CTL每个端口的输入输出设置由模式寄存器决定,作为输出的CTL信号端口,其输出电平由CMD SRAM中对应命令条目的[12:0]中对应位决定;作为输入的CTL信号端口,其输入电平需要与默认电平寄存器中对应位的电平一致时才能表示该条命令完成,DATA信号端口是否有效及有效时的输入输出设置由CMDSRAM命令条目的[31:30]位决定,DATA信号端口作为输出时从WR FIFO弹出数据,作为输入时将数据压入RD FIFO中。
4.根据权利要求1所述的可编程gpio装置,其特征在于:取指状态机的状态包括空闲、第一次取指、第二次取指、正常取指、触发等待、执行反馈,解码状态机和执行状态机的状态包括空闲、控制输出、控制输入、数据读入、数据写出、条件触发等待、控制输出并数据读写、控制输入并数据读写,三个状态机各自的内部状态之间可以两两跳转。
5.根据权利要求4所述的可 编程gpio装置,其特征在于:解码状态机的下一个状态取决于对取指状态机当前状态输出的指令的解析,执行状态机的下一个状态取决于解码状态机的当前状态,取指状态机根据模式控制和默认电平寄存器信息以及指令的执行反馈情况决定是否进行状态跳转,使得执行阶段的接口时序与指令队列当中所描述的完全吻合。
6.根据权利要求1所述的可编程gpio装置,其特征在于:控制信号CTL的宽度为13bits,数据信号DATA宽度可配置,其宽度必须与内部FIFO的位宽保持一致。
7.一种基于权利要求3所述可编程gpio装置的时序实现方法,其特征在于:包括以下步骤:S01)、CPU配置模式寄存器和默认电平寄存,并编码CMD SRAM;
S02)、取指状态机从空闲状态跳转到取第一条指令的状态;
S03)、第一条指令取出后取指状态机跳转到取第二条指令的状态,与此同时,解码状态机根据解码信息跳转到解码时序状态;
S04)、第二条指令取出后取指状态机跳转到正常取指状态,与此同时,解码状态机根据所解码第二条指令的信息跳转到第二个解码时序状态,执行状态机从空闲状态跳转到上一个解码状态;
S05)、由解码状态所得的解码信息确定执行状态机在步骤S03跳转的上一个解码状态需要的PCLK周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第三条指令的信息跳转到第三个解码时序状态,执行状态机从步骤S03跳转的解码状态跳转到上一个解码状态;
S06)、由解码状态所得的解码信息确定执行状态机在步骤S04跳转的上一个解码状态需要的PCLK周期,之后取指状态机从等待状态进入普通取指状态,解码状态机根据所解码的第四条指令的信息跳转到第四个解码时序状态,执行状态机从步骤S04跳转的解码状态跳转到上一个解码状态;
S07)、因为执行状态机在步骤S06跳转的上一个解码状态需要等待CTL信号接口上的某个输入信号与模式寄存器的对应位一致,具体等待时长取决于外设,两者一致之后,取指状态机进入空闲状态,解码状态机根据所解码的第五条指令的信息跳转到第五个解码时序状态,执行状态机从步骤S06跳转的解码状态跳转到上一个解码状态;
S08)、由解码状态所得的解码信息确定执行状态机在步骤S07跳转的上一个解码状态需要的PCLK周期,之后解码状态机进入空闲状态,执行状态机从步骤S07跳转的解码状态跳转到上一个解码状态;
S09)、由解码状态所得的解码信息确定执行状态机在步骤S08跳转的上一个解码状态需要的PCLK周期,之后执行状态机进入空闲状态。
8.根据权利要求7所述的可编程gpio装置的时序实现方法,其特征在于:步骤S03中,解码状态机跳转到的解码时序状态为数据写出状态,步骤S04中,解码状态机跳转到的第二个解码时序状态为数据读入状态,执行状态机跳转到的上一个解码状态是数据写出状态,步骤S05中,解码状态机跳转的第三个解码时序状态是等待状态,执行状态机跳转的上一个解码状态是数据读入状态,步骤S06中,解码状态机跳转的第四个解码时序状态是控制输出状态,执行状态机跳转的上一个解码状态是等待状态,步骤S07中,解码状态机跳转的第五个解码时序状态是控制输入状态,执行状态机跳转的上一个解码状态是控制输出状态,步骤S08中,执行状态机跳转的上一个解码状态是控制输入状态。
CN201910077385.4A 2019-01-28 2019-01-28 一种可编程gpio装置及基于该装置的时序实现方法 Active CN109857485B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910077385.4A CN109857485B (zh) 2019-01-28 2019-01-28 一种可编程gpio装置及基于该装置的时序实现方法
PCT/CN2019/093652 WO2020155545A1 (zh) 2019-01-28 2019-06-28 一种可编程gpio装置及基于该装置的时序实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910077385.4A CN109857485B (zh) 2019-01-28 2019-01-28 一种可编程gpio装置及基于该装置的时序实现方法

Publications (2)

Publication Number Publication Date
CN109857485A CN109857485A (zh) 2019-06-07
CN109857485B true CN109857485B (zh) 2021-06-15

Family

ID=66896316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910077385.4A Active CN109857485B (zh) 2019-01-28 2019-01-28 一种可编程gpio装置及基于该装置的时序实现方法

Country Status (2)

Country Link
CN (1) CN109857485B (zh)
WO (1) WO2020155545A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857485B (zh) * 2019-01-28 2021-06-15 山东华芯半导体有限公司 一种可编程gpio装置及基于该装置的时序实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407768A (zh) * 2001-09-02 2003-04-02 深圳市中兴通讯股份有限公司上海第二研究所 一种多队列数据分组连续转发的装置和方法
CN101154207A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器配置接口操作方法
CN103729165A (zh) * 2014-01-16 2014-04-16 哈尔滨工业大学 应用于高速运动控制系统的pci从设备核心控制模块

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154183B (zh) * 2006-09-29 2011-12-28 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101377764B (zh) * 2008-09-12 2011-10-12 北京中星微电子有限公司 Gpio的配置系统及其数据通信方法
CN201590076U (zh) * 2010-02-10 2010-09-22 青岛海信移动通信技术股份有限公司 一种接口扩展电路及具有所述电路的移动终端
CN103297163B (zh) * 2012-02-22 2016-10-05 安凯(广州)微电子技术有限公司 一种通过gpio口模拟pcm通信的方法及装置
CN102929836B (zh) * 2012-08-17 2015-06-10 中国科学院空间科学与应用研究中心 一种航天专用asic芯片系统
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
CN105224345B (zh) * 2014-05-28 2019-02-15 株洲变流技术国家工程研究中心有限公司 一种可编程逻辑器件远程更新系统及其方法
US20170168966A1 (en) * 2015-12-10 2017-06-15 Qualcomm Incorporated Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
CN105808480A (zh) * 2016-03-01 2016-07-27 联发科技(新加坡)私人有限公司 Usb otg设备的角色切换方法、系统及usb otg设备
US20180329837A1 (en) * 2017-05-10 2018-11-15 Qualcomm Incorporated Input/output direction decoding in mixed vgpio state exchange
CN109857485B (zh) * 2019-01-28 2021-06-15 山东华芯半导体有限公司 一种可编程gpio装置及基于该装置的时序实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407768A (zh) * 2001-09-02 2003-04-02 深圳市中兴通讯股份有限公司上海第二研究所 一种多队列数据分组连续转发的装置和方法
CN101154207A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器配置接口操作方法
CN103729165A (zh) * 2014-01-16 2014-04-16 哈尔滨工业大学 应用于高速运动控制系统的pci从设备核心控制模块

Also Published As

Publication number Publication date
CN109857485A (zh) 2019-06-07
WO2020155545A1 (zh) 2020-08-06

Similar Documents

Publication Publication Date Title
US8266369B2 (en) Flash memory interface
EP0378427B1 (en) High speed data transfer on a computer system bus
KR101105489B1 (ko) Nand 플래시 메모리의 커맨드 기반 제어
US7930162B1 (en) Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor
JPH02227765A (ja) デジタル・コンピユータのデータ転送装置
US7640375B2 (en) DMA controller, method, information processing system, and program for transferring information blocks comprising data and descriptors
US7934025B2 (en) Content terminated DMA
US10990293B2 (en) Extensible storage system and method
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
CN101131575A (zh) 具有快速输入/输出功能的控制设备及其控制数据的控制方法
CN113849433A (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
CN109857485B (zh) 一种可编程gpio装置及基于该装置的时序实现方法
KR102235290B1 (ko) 캐스케이드 연결 구조의 호스트와 슬레이브 장치
KR20110010793A (ko) 메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트
KR101735590B1 (ko) 트랜잭션 추출 장치 및 방법
CN116955032A (zh) 一种带调试功能的芯片及芯片调试方法
US10962593B2 (en) System on chip and operating method thereof
US5155838A (en) Computer system with emulation mechanism
CN114721983B (zh) 一种ddr4加速读写装置
CN107608927B (zh) 一种支持全功能的lpc总线主机端口的设计方法
US4937783A (en) Peripheral controller for executing multiple event-count instructions and nonevent-count instructions in a prescribed parallel sequence
CN109086231B (zh) 输入输出设备的访问方法及装置
US7516290B2 (en) Memory controller
JP4608276B2 (ja) トレース制御回路、マイクロプロセッサ及びトレース制御方法
KR950001057B1 (ko) 마이크로 프로세서(micro processor)

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