发明内容
本发明的技术解决问题是:克服现有技术的不足,提出了一种遥感相机磁性随机存储器的控制系统,该控制系统通过上位机发送配置指令,经过MRAM操作配置信息解析器、MRAM地址生成器、PROM数据读取模块、MRAM时序控制器,产生控制MRAM所需的控制信号,将PROM中的目的数据,准确地写入外部磁性随机存储器MRAM;并准确地读取MRAM内的数据;完成对MRAM内部全部存储空间的读写操作,遍历空间大小为8M×32bit,实现对MRAM全部存储空间是否存在坏区的检查以及完成对MRAM写入数据是否正确的检查,具有低功耗、高集成、容量大、抗辐照性能好、可靠性高的优点,最大程度上满足了遥感相机存储器控制的需求。
本发明的技术解决方案是:遥感相机磁性随机存储器的控制系统,包括:MRAM操作配置信息解析器、MRAM地址生成器、PROM数据读取模块、MRAM时序控制器、随机码生成器、测试校验器和报告输出控制模块;
所述MRAM操作配置信息解析器接收外部传来的配置指令,对配置指令译码后得到指令码;将指令码中的读控制信号、写控制信号、工作模式选择信号、数据对象选择信号、测试读取模式选择信号、地址有效使能、地址段初始地址和地址段终止地址发送到MRAM地址生成器;同时,将写控制信号、工作模式选择信号和数据对象选择信号发送给PROM数据读取模块,从FPGA的外部存储器PROM中读取数据,合成所需要的数据,写入到MRAM内部;将读控制信号、写控制信号、工作模式选择信号和数据对象选择信号发送给随机码生成器,将读控制信号和写控制信号发送给MRAM时序控制器;
所述PROM数据读取模块接收MRAM操作配置信息解析器输出的写控制信号,依据PROM的控制时序输出PROM的控制信号和PROM工作时钟,并接收从外部存储器PROM发送来的串行数据,将串行数据拼接为32bit数据输出;
所述MRAM地址生成器根据接收到的MRAM操作配置信息解析器发送来的信号,生成配置指令所对应的MRAM地址,并将MRAM地址和地址有效标识传送给MRAM时序发生器;当对MRAM进行写操作时,所述MRAM时序控制器接收MRAM操作配置信息解析器发送的写控制信号,以及MRAM地址生成器输出的MRAM地址和地址有效标识,生成MRAM写操作的时序控制信号,所述写操作的时序控制信号包括MRAM片选信号、MRAM写使能信号、MRAM存储地址以及需要写入MRAM的数据;当对MRAM进行读操作时,MRAM时序发生器接收MRAM操作配置信息解析器发送的读MRAM控制信号和MRAM地址生成器输出的MRAM地址和地址有效标识,生成MRAM读操作的时序控制信号,发送给外部磁性随机存储器MRAM,所述读操作的时序控制信号包括MRAM片选信号、MRAM读使能信号、MRAM访问地址;
所述随机码生成器接收MRAM操作配置信息解码器发送来的信号,选择编码形式,生成随机码和随机码有效标识输出给MRAM时序控制器,MRAM时序控制器将随机码按照MRAM的写入时序,写到指定的MRAM的存储空间内;
所述测试校验器完成正常工作模式下的校验、顺序序列码的校验或伪随机码的校验,将错误信息和错误信息标识发送给报告输出控制模块;
所述报告输出控制模块接收测试校验器发送的错误信息和错误信息标识,通过串口发送给上位机。
所述MRAM操作配置信息解析器包括串行通讯模块、指令校验模块和指令译码器;
所述串行通讯模块接收上位机传来的配置指令,得到指令码,指令校验模块接收串行通讯模块发送的指令码,经过和校验,将正确的指令码发送给指令译码器;指令译码器接收发送来的经过校验的指令码,从指令码中提取出该控制系统的控制信息作为下级模块的控制信号,所述控制信息包括控制系统的工作模式选择信号、读控制信号、写控制信号、测试读取模式选择信号、地址段初始地址和地址段终止地址;
所述工作模式包括正常工作模式和测试模式,其中正常工作模式是指从外界存储器PROM中读取数据,根据上位机发送的信息码,将数据写入到MRAM对应的地址空间中,或读取MRAM中的数据到FPGA中;测试模式是指根据上位机发送的指令,读取MRAM中相应地址的数据到FPGA中,与写入到MRAM中的源数据进行对比,并将对比结果通过串口显示在上位机中;
所述测试模式包括正常存储数据的正确性测试、顺序序列码存储的正确性测试和伪随机码存储的正确性测试;其中存储数据正确性的测试包括多帧测试与单帧测试;
所述上位机发送的指令码中包括9种MRAM地址码信息,根据MRAM地址码信息选择MRAM的地址范围,实现对MRAM的分段控制。
所述PROM数据读取模块包括PROM时序逻辑模块、PROM控制信号逻辑模块、PROM采集数据逻辑模块和数据拼接模块;
所述PROM时序逻辑块根据PROM工作时钟参数对外部时钟进行分频,得到时钟分频计数和PROM工作时钟个数计数,将时钟分频计数和PROM工作时钟个数计数发送给PROM控制信号逻辑模块和PROM采集数据逻辑模块,并接收MRAM操作配置信息解析器发送的MRAM写控制信号、工作模式选择信号和数据对象选择信号,选择对应的工作模式和数据对PROM进行读操作;
PROM控制信号逻辑模块根据访问PROM空间大小参数,确定访问PROM的时间,根据访问PROM的时间和PROM工作时钟个数计数产生PROM工作的片选使能信号和PROM输出有效信号,并根据接收到的时钟分频计数和PROM工作时钟个数计数确定PROM工作时钟信号;
PROM采集数据逻辑模块接收RPOM输出的内部存储数据,利用时钟分频计数和PROM工作时钟个数计数确定数据采集位置,并将采集到的数据通过移位寄存器放入到PROM采集数据逻辑模块内部的数据存储单元中,输出8bit中间数据给数据拼接模块;
所述数据拼接模块对接收到的8bit中间数据进行数据拼接,生成32bit数据输出。
所述MRAM地址生成器包括写地址产生器、读地址产生器、单帧读地址产生器和多帧读地址产生器;
MRAM地址生成器根据接收到的工作模式选择信号选择工作模式,在正常工作模式下进行读操作时,MRAM地址生成器中的读地址产生器依据读控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;在正常工作模式下进行写操作时,MRAM地址生成器中的写地址产生器依据写控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;
在测试校验模式下进行读操作时,MRAM地址生成器根据测试读取模式选择信号选择单帧读地址产生器或多帧读地址产生器,选择的单帧读地址产生器或多帧读地址产生器依据读控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;在测试校验模式下进行写操作时,MRAM地址生成器中的写地址产生器依据写控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出。
所述的MRAM时序控制器包括MRAM片选使能信号控制模块、MRAM读操作控制模块和MRAM写操作控制模块;
所述MRAM片选使能信号控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的读控制信号和写控制信号,产生MRAM片选信号输出,用于对MRAM中进行操作的存储基片进行选择,同时将MRAM片选信号发送给MRAM读操作控制模块和MRAM写操作控制模块;
在进行读操作时,MRAM读操作控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的读控制信号和MRAM片选使能信号控制模块发送的MRAM片选信号,产生MRAM读使能信号和MRAM访问地址,输出给MRAM,同时从MRAM中读取数据,并将读取的MRAM输出数据和MRAM访问地址发送给测试校验器;
在进行写操作时,MRAM写操作控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的写控制信号和MRAM片选使能信号控制模块发送的MRAM片选信号,产生MRAM写使能信号和MRAM存储地址,输出给MRAM,同时将数据写入MRAM中。
所述的测试校验器包括数据延迟模块和数据比较器,
所述数据延迟模块接收工作模式选择信号,在测试校验模式下开启测试检验功能,接收MRAM时序控制器发送的MRAM输出数据和MRAM访问地址,并将接收到的MRAM输出数据和MRAM访问地址延迟后发送给数据比较器;
数据比较器接收数据延迟模块发送的MRAM输出数据和MRAM访问地址,与对比源数据进行对比,并将错误信息和错误信息标识输出,所述错误信息为对比不一致数据对应的地址。
所述源数据为PROM数据读取模块的输出的32bit数据、随机码生成器输出的顺序码或伪随机码。
所述的随机码生成器包括编码判断模块、顺序码生成器和伪随机码生成器;
所述编码判断模块接收读控制信号、写控制信号、工作模式选择信号和数据对象选择信号进行编码判断,产生编码控制信号,选择编码类型;
顺序码生成器根据接收到的顺序码编码控制信号生成顺序码和顺序码有效标识并输出;伪随机码生成器根据接收到的伪随机码编码控制信号生成伪随机码和伪随机码有效标识并输出。
所述的报告输出控制模块包括错误信息缓存模块、波特时钟产生器、发送控制模块和数据发送模块;
所述错误信息缓存模块接收错误信息和错误信息标识,用于接收数据和发送数据的隔离,完成数据位宽转换,将32位数据转换为8位数据;并将8位的错误信息发送给数据发送模块;将8位错误信息标识发送给波特时钟产生器;
所述波特时钟产生器根据接收到的错误信息标识和主时钟,产生发送数据所需的波特时钟,输出给发送控制模块和数据发送模块;
所述发送控制模块利用接收到的波特时钟产生发送数据的个数和发送使能,输出给数据发送模块;所述数据发送模块包含移位寄存器,根据发送数据的个数和发送使能,将错误信息缓存模块输出的8位错误信息按照波特时钟的频率串行输出。
本发明与现有技术相比的有益效果是:
(1)本发明首次在国内遥感相机中使用磁性随机存储器作为存储设备,由于磁性随机存储器自身的特性,具有很强的抗辐射特性,能有效的预防在宇宙空间中出现的单粒子事件,保证了遥感相机在空间运行的可靠性和稳定性;
(2)本发明中所述的控制系统包含了正常存储数据和存储数据自检功能,通过对存储数据的自检功能,可以保证磁性随机存储器内部存储数据的正确性;
(3)本发明中所述的控制系统中,磁性随机存储器内存空间分为8段,可通过指令控制磁性随机存储器的MRAM地址,可以对内部的某一段进行操作,也可以对整个磁性随机存取器进行操作,保证该控制系统操作的灵活性;
(4)本发明中所述的控制系统,通过指令控制该系统的工作模式、读/写操作模式、数据对象、操作空间等,对于磁性随机存储器的操作可以灵活的选取,并根据设计者自身需求对磁性随机存储器进行操作,满足设计者不同方面的需求,包括对磁性随机存储器读/写的需求、操作空间的需求、操作数据对象的需求等等,该发明中所述的磁性随机存储器的控制系统具有一定的通用性;
(5)本发明中所述的控制系统通过32bits的指令控制磁性随机存储器的操作,产生与磁性随机存储器相关的控制信号,包括片选信号、地址信息、读/写控制信号等,方便于设计者使用,具有易用性。
具体实施方式
如图2所示,为本发明8M×32bit磁性随机存储器控制系统的存储器结构示意图。本发明主要阐述磁性随机存储器的控制系统,特别是应用于遥感相机中,容量为256Mbits的磁性随机存储器的控制系统,涉及到4片64Mbits磁性随机存储器级联应用。每一个64Mbits磁性随机存储器具有8位数据线,21位地址线,4位片选信号线,1位读使能控制信号线,1位写使能控制信号线。如图2所示,本发明采用位扩展的方法将4片64Mbits磁性随机存储器级联,数据位宽扩展为32bits;地址线21bits,对应的地址空间为2Mbits,即一个存储基片的存储空间;由于每一个64Mbits磁性随机存取器的基片空间大小为2M×8bit,所以4位片选信号作为地址扩展后每一个磁性随机存取器的访问地址空间可以达到8Mbits,即:图2中所示的存储器级联结构可以组成8M×32bit的存储器。
如图1所示,为本发明8M×32bit磁性随机存储器控制系统的组成框图,从图1可知,本发明中的控制系统包括MRAM操作配置信息解析器、MRAM地址生成器、PROM数据读取模块、MRAM时序控制器、随机码生成器、测试校验器和报告输出控制模块;
所述MRAM操作配置信息解析器接收外部传来的配置指令,对配置指令译码后得到指令码;将指令码中的读控制信号、写控制信号、工作模式选择信号、数据对象选择信号、测试读取模式选择信号、地址有效使能、地址段初始地址和地址段终止地址发送到MRAM地址生成器;同时,将写控制信号、工作模式选择信号和数据对象选择信号发送给PROM数据读取模块,从FPGA的外部存储器PROM中读取数据,合成所需要的数据,写入到MRAM内部;将读控制信号、写控制信号、工作模式选择信号和数据对象选择信号发送给随机码生成器,将读控制信号和写控制信号发送给MRAM时序控制器;
所述PROM数据读取模块接收MRAM操作配置信息解析器输出的写控制信号,依据PROM的控制时序输出PROM的控制信号和PROM工作时钟,并接收从外部存储器PROM发送来的串行数据,将串行数据拼接为32bit数据输出;
所述MRAM地址生成器根据接收到的MRAM操作配置信息解析器发送来的信号,生成配置指令所对应的MRAM地址,并将MRAM地址和地址有效标识传送给MRAM时序发生器;当对MRAM进行写操作时,所述MRAM时序控制器接收MRAM操作配置信息解析器发送的写控制信号,以及MRAM地址生成器输出的MRAM地址和地址有效标识,生成MRAM写操作的时序控制信号,所述写操作的时序控制信号包括MRAM片选信号、MRAM写使能信号、MRAM存储地址以及需要写入MRAM的数据;当对MRAM进行读操作时,MRAM时序发生器接收MRAM操作配置信息解析器发送的读MRAM控制信号和MRAM地址生成器输出的MRAM地址和地址有效标识,生成MRAM读操作的时序控制信号,发送给外部磁性随机存储器MRAM,所述读操作的时序控制信号包括MRAM片选信号、MRAM读使能信号、MRAM访问地址;
所述随机码生成器接收MRAM操作配置信息解码器发送来的信号,选择编码形式,生成随机码和随机码有效标识输出给MRAM时序控制器,MRAM时序控制器将随机码按照MRAM的写入时序,写到指定的MRAM的存储空间内;
所述测试校验器完成正常工作模式下的校验、顺序序列码的校验或伪随机码的校验,将错误信息和错误信息标识发送给报告输出控制模块;
所述报告输出控制模块接收测试校验器发送的错误信息和错误信息标识,通过串口发送给上位机。
如图3所示为本发明中MRAM操作配置信息解析器的系统框图,从图3可知,本发明中的MRAM操作配置信息解析器包括串行通讯模块、指令校验模块和指令译码器;
所述串行通讯模块接收上位机传来的配置指令,得到指令码,指令校验模块接收串行通讯模块发送的指令码,经过和校验,将正确的指令码发送给指令译码器;指令译码器接收发送来的经过校验的指令码,从指令码中提取出该控制系统的控制信息作为下级模块的控制信号,所述控制信息包括控制系统的工作模式选择信号、读控制信号、写控制信号、测试读取模式选择信号、地址段初始地址和地址段终止地址;
所述工作模式包括正常工作模式和测试模式,其中正常工作模式是指从外界存储器PROM中读取数据,根据上位机发送的信息码,将数据写入到MRAM对应的地址空间中,或读取MRAM中的数据到FPGA中;测试模式是指根据上位机发送的指令,读取MRAM中相应地址的数据到FPGA中,与写入到MRAM中的源数据进行对比,并将对比结果通过串口显示在上位机中;
所述测试模式包括正常存储数据的正确性测试、顺序序列码存储的正确性测试和伪随机码存储的正确性测试;其中存储数据正确性的测试包括多帧测试与单帧测试;
所述上位机发送的指令码中包括9种MRAM地址码信息,根据MRAM地址码信息选择MRAM的地址范围,实现对MRAM的分段控制。
本发明实施例中,配置指令是32bits,它所包含的内容有:操作类型标识、模式选择、数据对象选择、测试读取模式选择、MRAM地址标识、读/写标识,具体描述如表1所示:
表1
(1)配置指令中的D31~D24八位数据作为磁性随机存储器控制系统操作类型标识,该标识指示本条指令要对磁性随机存储器进行相关操作,用于与设计中其他指令类型区分;
(2)配置指令中的D23~D20四位数据作为磁性随机存储器控制系统工作模式的配置项,用于标识该工作系统工作在正常模式还是测试校验模式;
(3)配置指令中的D19~D16四位数据作为磁性随机存储器控制系统数据对象选择的配置项,本文所述的发明中设计到的数据对象有:一、从外部存储器中的数据;二、本控制系统自产生的顺序序列码;三、本控制系统自产生的伪随机码;
(4)配置指令中的D15~D12四位数据作为磁性随机存取器控制系统测试读取模式选择的配置项,本文所述的控制系统的测试读取模式有两种:一是单帧读取,即从MRAM中一次性读取所需的数据;二是多帧读取,即重复从MRAM中读取所需的数据;
(5)配置指令中的D11~D8四位数据作为磁性随机存储器控制系统MRAM地址标识,他们分别对应MRAM不同的地址段,对应关系如表2所示:
表2
标识位编码 |
MRAM片选信号 |
MRAM地址段对应地址 |
0000 |
00、01、10、11 |
0x00000H~0x1FFFFFH |
0001 |
00 |
0x00000H~0x0FFFFFH |
0010 |
00 |
0x100000H~0x1FFFFFH |
0011 |
01 |
0x00000H~0x1FFFFFH |
0100 |
01 |
0x100000H~0x1FFFFFH |
0101 |
10 |
0x00000H~0x1FFFFFH |
0110 |
10 |
0x100000H~0x1FFFFFH |
0111 |
11 |
0x00000H~0x1FFFFFH |
1000 |
11 |
0x100000H~0x1FFFFFH |
其他 |
00 |
0x00000H |
(6)配置指令中的D7~D0八位数据作为磁性随机存储器控制系统读/写控制标识,通过编码控制对MRAM的操作:“0x01H”代表向MRAM写数据;“0x02H”代表读MRAM中的数据。
如图4所示,为本发明8M×32bit磁性随机存储器控制系统的PROM数据读取模块的组成框图,从图4可知,本发明的PROM数据读取模块包括PROM时序逻辑模块、PROM控制信号逻辑模块、PROM采集数据逻辑模块和数据拼接模块;
所述PROM时序逻辑块根据PROM工作时钟参数对外部时钟进行分频,得到时钟分频计数和PROM工作时钟个数计数,将时钟分频计数和PROM工作时钟个数计数发送给PROM控制信号逻辑模块和PROM采集数据逻辑模块,并接收MRAM操作配置信息解析器发送的MRAM写控制信号、工作模式选择信号和数据对象选择信号,选择对应的工作模式和数据对PROM进行读操作;
PROM控制信号逻辑模块根据访问PROM空间大小参数,确定访问PROM的时间,根据访问PROM的时间和PROM工作时钟个数计数产生PROM工作的片选使能信号和PROM输出有效信号,并根据接收到的时钟分频计数和PROM工作时钟个数计数确定PROM工作时钟信号;
PROM采集数据逻辑模块接收RPOM输出的内部存储数据,利用时钟分频计数和PROM工作时钟个数计数确定数据采集位置,并将采集到的数据通过移位寄存器放入到PROM采集数据逻辑模块内部的数据存储单元中,输出8bit中间数据给数据拼接模块;
所述数据拼接模块对接收到的8bit中间数据进行数据拼接,生成32bit数据输出。
如图5所示,为本发明8M×32bit磁性随机存储器控制系统MRAM地址生成器的组成框图,从图5可知,本发明中的MRAM地址生成器包括写地址产生器、读地址产生器、单帧读地址产生器和多帧读地址产生器;
MRAM地址生成器根据接收到的工作模式选择信号选择工作模式,在正常工作模式下进行读操作时,MRAM地址生成器中的读地址产生器依据读控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;在正常工作模式下进行写操作时,MRAM地址生成器中的写地址产生器依据写控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;
在测试校验模式下进行读操作时,MRAM地址生成器根据测试读取模式选择信号选择单帧读地址产生器或多帧读地址产生器,选择的单帧读地址产生器或多帧读地址产生器依据读控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出;在测试校验模式下进行写操作时,MRAM地址生成器中的写地址产生器依据写控制信号、数据对象选择信号、地址使能信号、地址段初始地址和地址段终止地址产生MRAM地址和地址有效标识并输出。
MRAM地址生成器的主要功能是根据指令码中的地址信息生成相应的读取或者写入MRAM的地址。由于MRAM的总存储量是256Mbits,而数据来源PROM的存储量最大是32Mbits,MRAM的地址分为8段,每段的地址空间是1M(数据位宽是32bit),即0x000000~0x0FFFFF,对于访问MRAM操作,地址范围是0x000000~0x0FFFFF。MRAM地址生成器的读操作和写操作的地址时序是不同的,同时,正常工作模式与测试模式所对应的地址时序也是不同的。接收到上一级传递的写/读控制信号、工作模式选择信号、数据对象选择信号、测试读取模式选择信号和地址段落选择信号,产生MRAM所对应的MRAM地址和地址有效标识,并将这些信号传递到MRAM时序控制器。
如图6所示,为本发明8M×32bit磁性随机存储器控制系统MRAM时序控制器的组成框图,从图6可知,本发明中的MRAM时序控制器包括MRAM片选使能信号控制模块、MRAM读操作控制模块和MRAM写操作控制模块;
所述MRAM片选使能信号控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的读控制信号和写控制信号,产生MRAM片选信号输出,用于对MRAM中进行操作的存储基片进行选择,同时将MRAM片选信号发送给MRAM读操作控制模块和MRAM写操作控制模块;
在进行读操作时,MRAM读操作控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的读控制信号和MRAM片选使能信号控制模块发送的MRAM片选信号,产生MRAM读使能信号和MRAM访问地址,输出给MRAM,同时从MRAM中读取数据,并将读取的MRAM输出数据和MRAM访问地址发送给测试校验器;
在进行写操作时,MRAM写操作控制模块接收MRAM地址生成器发送的MRAM地址和地址有效标识,并接收MRAM操作配置信息解析器发送的写控制信号和MRAM片选使能信号控制模块发送的MRAM片选信号,产生MRAM写使能信号和MRAM存储地址,输出给MRAM,同时将数据写入MRAM中。
本发明实例中,磁性随机存储器的存储基片空间是2M×8bit,图2中显示了本发明中存储器的设计,数据线32位、地址线21位、片选信号4位、4条读使能控制信号、4条写使能控制信号,通过4位片选信号实现4个基片(每一个基片的空间是2M×8bit)的地址扩展,每一片MRAM的存储空间为8M×8bit,同时,4片MRAM级联实现位宽扩展,实现8M×32bit的存储器。图6所示的MRAM时序控制器直接输出控制8M×32bit存储器的控制信号,接收MRAM操作配置信息解析器输出的读/写控制信号,MRAM地址生成器输出的MRAM地址和地址有效标识共同作为MRAM片选使能信号控制逻辑的控制信号,产生磁性随机存储器的片选信号,有效位宽是4bit;读控制信号、MRAM地址和地址有效标识作为MRAM读操作控制逻辑的控制信号,产生磁性随机存储器的读使能控制信号,一共有四个信号组成,分别控制四片级联的MRAM,同时,输出访问外部存储器的地址(位宽是21bit),这些信号之间的时序关系如图7所示,在MRAM片选信号、读使能控制信号、MRAM地址的共同作用下,使FPGA访问外部存储器MRAM,正确地接收外部存储器输出的数据(位宽是32bit)进入到FPGA内部;写控制信号、MRAM地址、地址有效标识和写入数据(位宽是32bit)作为MRAM写操作控制逻辑的控制信号,产生磁性随机存取器的写使能控制信号,一共有四个信号组成,分别控制四片级联的MRAM的写使能信号,同时,输出需要写入数据对应的地址(位宽是21bit),将写入数据写入到MRAM相应的地址中。控制MRAM写操作的信号之间的时序关系如图8所示,图8中说明了MRAM片选信号、写使能控制信号、MRAM地址、写入数据之间的时序关系,写使能操作是低有效,在写使能的上升沿将数据写入MRAM,为保证写入MRAM内数据的正确性,在写入数据有效后的第三拍将写使能置高,并将数据继续保持三拍的时间,即写使能控制信号的上升沿对准写入数据的中间位置。
如图9所示,为本发明8M×32bit磁性随机存储器控制系统随机码生成器的组成框图,所述的随机码生成器包括编码判断模块、顺序码生成器和伪随机码生成器;
所述编码判断模块接收读控制信号、写控制信号、工作模式选择信号和数据对象选择信号进行编码判断,产生编码控制信号,选择编码类型;
顺序码生成器根据接收到的顺序码编码控制信号生成顺序码和顺序码有效标识并输出;伪随机码生成器根据接收到的伪随机码编码控制信号生成伪随机码和伪随机码有效标识并输出。
控制系统传送数据的位宽是32bit,但为了使32个数据位的翻转率更大,测试更充分,随机码生成器生成的随机码都是8bit,最后拼接为32位数据。顺序码生成器的位宽8位,范围0x00~0xFF;伪随机码生成器按照高两位异或传送低位的算法,生成8位的伪随机码。MRAM操作配置信息解析器输出的写/读控制信号、工作模式选择信号、数据对象选择信号作为随机码生成器的编码依据;编码判断逻辑依据这些信号,选择启动顺序码生成器,还是伪随机码生成器,最后将随机码输出。
如图10所示,本发明8M×32bit磁性随机存储器控制系统测试校验器的组成框图,测试校验器包括数据延迟模块、数据比较器,
所述数据延迟模块接收工作模式选择信号,在测试校验模式下开启测试检验功能,接收MRAM时序控制器发送的MRAM输出数据和MRAM访问地址,并将接收到的MRAM输出数据和MRAM访问地址延迟后发送给数据比较器;
数据比较器接收数据延迟模块发送的MRAM输出数据和MRAM访问地址,与对比源数据进行对比,并将错误信息和错误信息标识输出,所述错误信息为对比不一致数据对应的地址。
在本发明实例中,当接收到测试指令时,MRAM时序控制器输出MRAM读操作的控制信号,从MRAM中读取相应地址的数据作为对比数据之一,同时,从PROM数据读取模块输出的并行数据或者随机码生成器输出的随机数据作为源数据。由于从MRAM中读取的数据是在产生读操作控制信号之后直接输入到测试校验模块中,而从PROM中读取的源数据的准备时间比较长,所以从MRAM中读取的数据要进入数据延迟模块,与该数据对应的MRAM地址信息也要输入到数据延迟模块;当源数据准备好之后,将延迟后的数据与源数据对比,若两个数据一致,则错误信息标识为低;若两个数据不一致,则错误信息标识位高,同时将错误数据的地址作为错误消息输出到下一级。
测试模式分为三种:一种是将PROM中的数据写入到MRAM中,然后读出,对比从MRAM中读出的数据和写入数据;一种是FPGA自身产生顺序序列码,写入到MRAM中,随后读出,对比从MRAM中读出的数据和写入数据;一种是FPGA自身产生伪随机码,写入到MRAM中,随后读出,对比从MRAM中读出的数据和写入数据。
数据比对具体实现原理如下:
当测试校验器完成正常工作模式下的数据校验时,该校验器接收MRAM时序控制器输出的从MRAM中读取的数据、数据对应的地址和从外部存储器PROM中读取的原始数据,根据数据地址,对比外部存储器PROM中的原始数据和从MRAM中读取的数据,把不一致的数据对应的地址发送给报告输出控制模块;
当测试校验器完成顺序序列码的校验时,该校验器接收从随机码生成器输出的顺序序列码,从MRAM时序控制器输出的MRAM读取地址,以及从MRAM中读取的该地址对应的数据,对比同一地址的写数据和读数据,将不一样的数据对应的地址发送给报告输出控制模块;
当测试校验器完成伪随机码的校验时,该校验器接收从随机码生成器输出的伪随机码,从MRAM时序控制器输出的MRAM读取地址,以及从MRAM中读取的该地址对应的数据,对比同一地址的写数据和读数据,将不一样的数据对应的地址发送给报告输出控制模块。
如图11所示,为本发明8M×32bit磁性随机存储器控制系统报告输出控制模块的组成框图,该模块用于输出显示校验MRAM存储器存储数据是否正确,包括错误信息缓存模块、波特时钟产生器、发送控制模块和数据发送模块;
所述错误信息缓存模块接收错误信息和错误信息标识,用于接收数据和发送数据的隔离,完成数据位宽转换,将32位数据转换为8位数据;并将8位的错误信息发送给数据发送模块;将8位错误信息标识发送给波特时钟产生器;
所述波特时钟产生器根据接收到的错误信息标识和主时钟,产生发送数据所需的波特时钟,输出给发送控制模块和数据发送模块;
所述发送控制模块利用接收到的波特时钟产生发送数据的个数和发送使能,输出给数据发送模块;所述数据发送模块包含移位寄存器,根据发送数据的个数和发送使能,将错误信息缓存模块输出的8位错误信息按照波特时钟的频率输出。