发明内容
本发明实施例所要解决的技术问题在于,提供一种配置寄存器读写方法及装置,以解决现有技术中只能通过读取整个寄存器以修改寄存器位段,从而增加寄存器的读取操作以及容易出现对寄存器位段的修改出错的技术问题。
为解决上述技术问题,本发明提供一种配置寄存器读写方法,预先将寄存器的全部位段分配为多个功能位段和多个写使能位段,其中,每个功能位段用于存储一个寄存器内容,并与一个写使能位段对应设置,该方法包括:
接收片外发送的针对寄存器的操作信号,该操作信号包括寄存器地址和读写操作指令。
根据该读写操作指令设定相应的写使能位段的值。
按照该寄存器地址对该寄存器相应的功能位段以及对应的写使能位段的内容进行读取,判断该写使能位段的值是否为有效值。以及
根据该写使能位段的值对相应的功能位段的寄存器内容进行读写操作。
相应地,本发明还提供一种配置寄存器读写装置,通过地址总线与多个寄存器连接,该寄存器的全部位段被预先分配为多个功能位段和多个写使能位段,其中,每个功能位段用于存储一个寄存器内容,并与一个写使能位段对应设置,该装置包括:
接收单元,用于接收片外发送的针对寄存器的操作信号,该操作信号包括寄存器地址以及读写操作指令。
写使能位段控制单元,用于根据该读写操作指令设定相应的写使能位段的值。以及
读写控制单元,用于解析该操作指令以提取出其中的地址信息,根据该地址信息查找相应的寄存器,对该寄存器的功能位段以及写使能位段的内容进行读取,并根据读取的写使能位段的值确定是否修改对应功能位段的值,从而对该功能位段的寄存器内容进行读写操作。
本发明提供的一种配置寄存器读写方法及装置,预先将配置寄存器分配成多个功能位段和对应的写使能位段,通过对写使能位段值的判断对相应的功能位段的寄存器内容进行读写操作,从而有效地解决了增加寄存器读取操作以及容易出现的修改出错的技术问题,达到了在修改配置寄存器某一位段的寄存器内容时节省处理器的操作时间,以及避免了在不同线程对同一配置寄存器的不同位段的寄存器内容进行修改操作时容易相互影响的技术效果。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参考图1,为本发明实施例中的一种配置寄存器读写装置的功能模块示意图,该读写装置10通过地址总线分别与各个寄存器20连接。该读写装置10包括接收单元11和读写控制单元12, 其中,该接收单元11用于接收处理器(图未示)发送的针对寄存器20的操作信号,该操作信号包括寄存器地址以及读写操作指令。该读写控制单元12用于根据该读写指令对与该地址对应的寄存器进行相应地读写操作,得到读写操作结果。
在本实施方式中,在设计时,根据应用需要设计寄存器定义文件,该寄存器定义文件中包括预先设置的各个寄存器的地址、内容以及初始值。其中,各个寄存器的地址是彼此独立的,用于寻址时找到对应的寄存器;寄存器的内容为寄存器中每个位段在电路中所代表的控制功能或者参数意义,例如时钟、复位、流程等;寄存器的初始值为芯片上电复位以后,片外还未对寄存器进行任何读写操作时,寄存器的默认值。在实际应用中,将根据预先设计好的寄存器定义文件,实现对寄存器的读写操作。并且,每个寄存器的寄存器定义文件都具有独立的定义部分,一个寄存器的定义部分对应一个寄存器的地址、内容和初始值,各个寄存器的参数之间互不关联。
请同时参阅图2,为第一实施方式中的寄存器20的位分配示意图,每个寄存器20全部位段被预先分配为n个功能位段Fn和n个写使能位段En。其中,每个功能位段Fn对应一个寄存器内容,每个写使能位段En与一个功能位段Fn对应设置,用于对相应的写使能位段Fn的读写操作进行控制。例如,功能位段F1对应的寄存器内容为复位,对应的写使能位段E1控制功能位段F1的读写操作。每个功能位段Fn与每个写使能位段En可以被分配一个比特或多个比特。在本实施方式中,每个功能位段Fn被分配的比特长度与对应的写使能位段En被分配的比特长度相同。在第二实施方式中,每个写使能位段En被分配的比特长度均为1,每个功能位段Fn可以根据对应寄存器内容被分配相应的比特长度,如图3所示。
该读写装置10还包括写使能位段控制单元13,其中,该写使能位段控制单元13根据处理器发送的读写操作指令设定相应的写使能位段En的值,该读写控制单元12用于解析由处理器发送的操作指令以提取出其中的地址信息,根据该地址信息查找相应的寄存器20,对该寄存器20的功能位段Fn以及写使能位段En的内容进行读取,并根据读取的写使能位段En的值确定是否修改对应功能位段Fn的值,从而对该功能位段Fn进行读写操作。具体地,当处理器发送数据读取指令时,则将各写使能位段En的值设置为无效值,并和各功能位段Fn的值一并读出。当处理器发送数据写入指令时,该数据写入指令还包括待写入数据,其中,该待写入数据包括相应功能位段Fn的值和对应写使能位段En的值。该写使能位段控制单元13根据该待写入数据中的写使能位段En的值设置相应的写使能位段En的值。该读写控制单元12确定该写使能位段En的值为有效值,则将待写入数据写入该功能位段Fn的寄存器内容中;反之,则不对该功能位段Fn的寄存器内容做修改。
在第一实施方式中,该写使能位段En的无效值为全部比特位值均为0,有效值为全部比特位值均为1。在第二实施方式中,该写使能位段En的无效值为0,有效值为1。
请参阅图4,为本发明配置寄存器的读写方法的流程图,该方法包括:
步骤S40,预先将寄存器20的全部位段分配为n个功能位段Fn和n个写使能位段En。其中,每个功能位段Fn存储一个寄存器内容,每个写使能位段En与一个功能位段Fn对应设置。
每个功能位段Fn与每个写使能位段En可以被分配一个比特或多个比特。在第一实施方式中,每个功能位段Fn被分配的比特长度与对应的写使能位段En被分配的比特长度相同。在第二实施方式中,每个写使能位段En被分配的比特长度均为1,每个功能位段Fn可以根据对应寄存器内容被分配相应的比特长度。
在本实施方式中,在设计时,根据应用需要设计寄存器定义文件,该寄存器定义文件中包括预先设置的各个寄存器的地址、内容以及初始值。其中,各个寄存器的地址是彼此独立的,用于寻址时找到对应的寄存器;寄存器的内容为寄存器中每个位段在电路中所代表的控制功能或者参数意义,例如时钟、复位、流程等;寄存器的初始值为芯片上电复位以后,片外还未对寄存器进行任何读写操作时,寄存器的默认值。在实际应用中,将根据预先设计好的寄存器定义文件,实现对寄存器的读写操作。并且,每个寄存器的寄存器定义文件都具有独立的定义部分,一个寄存器的定义部分对应一个寄存器的地址、内容和初始值,各个寄存器的参数之间互不关联。
步骤S41,该接收单元11接收处理器发送的针对寄存器20的操作信号,其中,该操作信号包括寄存器地址以及读写操作指令。
步骤S42,该写使能位段控制单元13根据处理器发送的读写操作指令设定相应的写使能位段En的值。具体地,当该读写操作指令为数据读取指令时,则该写使能位段控制单元13将各写使能位段En的值设置为无效值,并和各功能位段Fn的值一并读出。当该读写操作指令为数据写入指令时,该数据写入指令还包括待写入数据,其中,该待写入数据包括相应功能位段Fn的值和对应写使能位段En的值。该写使能位段控制单元13根据该待写入数据中的写使能位段En的值设置相应的写使能位段En的值。步骤S43,该读写控制单元12按照处理器发送的寄存器地址对该寄存器20相应的功能位段Fn以及写使能位段En的内容进行读取,判断该写使能位段En的值是否为有效值。若是,则进入步骤S44,否则,进入步骤S45。
在第一实施方式中,该写使能位段En的无效值为全部比特位值均为0,有效值为全部比特位值均为1。在第二实施方式中,该写使能位段En的无效值为0,有效值为1。
步骤S44,该读写控制单元12将待写入数据写入该功能位段Fn的寄存器内容中,然后流程结束。
步骤S45,该读写控制单元12获取该功能位段Fn的寄存器内容,然后流程结束。
本发明提供的一种配置寄存器读写方法及装置,预先将配置寄存器分配成多个功能位段和对应的写使能位段,通过对写使能位段值的判断对相应的功能位段的寄存器内容进行读写操作,从而有效地解决了增加寄存器读取操作以及容易出现的修改出错的技术问题,达到了在修改配置寄存器某一位段的寄存器内容时节省处理器的操作时间,以及避免了在不同线程对同一配置寄存器的不同位段的寄存器内容进行修改操作时容易相互影响的技术效果。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。