1.本技术涉及电路技术领域,尤其涉及一种读写数据电路。
背景技术:
2.随着计算机应用领域的不断扩大,处理的信息量越来越多,对存储器的工作速度和容量要求也越来越高。为了提高访存速度,设计了可以同时进行两个端口读写操作的双端口随机存取存储器(random access memory,ram)。但在实际开发过程中,发现存在某些工艺无法提供双端口ram的情况,而且双端口ram也只能同时进行两个端口的读写操作,无法同时进行更多端口的读写操作。如何使用单端口ram实现多端口ram功能,成为亟需解决的技术问题之一。
技术实现要素:
3.本技术实施例提供一种数据读写电路,基于该数据读写电路能够使用单端口ram实现多端口ram的功能,实现同时进行多个端口的读写操作。
4.为达到上述目的,本技术实施例采用如下技术方案:
5.本技术实施例的第一方面,提供一种数据读写电路,该数据读写电路包括:控制电路、端口选择电路和单端口ram;控制电路,用于对时钟源产生的第一时钟信号进行处理,输出端口选择信号;其中,端口选择信号的时钟周期为第一时钟信号的时钟周期的n倍,n为大于或等于2的整数;端口选择电路,包括第一选择端、n个第一输入端组和第一输出端组,第一选择端与控制电路的输出端耦接;各第一输入端组用于接收输入信号组;端口选择电路用于接收端口选择信号,并在第一时钟信号的第i个时钟周期,基于端口选择信号选择并输出第i个第一输入端组接收的输入信号组,i为大于或等于1且小于或等于n的整数;单端口ram,包括第二输入端组,第二输入端组与第一输出端组耦接;单端口ram用于在第一时钟信号的第i个时钟周期,接收第一输出端组输出的第i个输出信号组,并对第i个输出信号组进行处理。
6.结合第一方面,在一种可能的实现方式中,上述数据读写电路还包括:数据输出电路,包括第二选择端、第三输入端和n个第三输出端;第二选择端与控制电路的输出端耦接,第三输入端与单端口ram的第二输出端耦接;第三输入端用于接收单端口ram的第二输出端输出的n个数据输入信号;数据输出电路用于对接收到的n个数据输入信号进行处理,产生n个数据输出信号,并在第一时钟信号的第(n 2)个时钟周期,输出n个数据输出信号。
7.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,该控制电路包括:
8.第一逻辑子电路,包括n个第四输入端和第四输出端;各第四输入端用于接收使能输入信号;第一逻辑子电路用于根据接收到的n个使能输入信号产生并输出使能输出信号;
9.门控时钟子电路,包括第五输入端、第一时钟端和第二时钟端;第五输入端与第四输出端耦接;第五输入端用于接收使能输出信号;第一时钟端用于接收时钟源产生的第一
时钟信号,第二时钟端用于接收第二时钟信号,第二时钟信号的时钟周期为第一时钟信号的时钟周期的n倍;门控时钟子电路用于基于使能输出信号和第二时钟信号,对第一时钟信号进行处理,产生并输出门控时钟信号,门控时钟信号的时钟周期与第一时钟信号的时钟周期一致;
10.端口转换子电路,包括第三时钟端和第五输出端,第三时钟端与门控时钟子电路的时钟输出端耦接,第五输出端为控制电路的输出端;端口转换子电路用于对时钟输出端输出的门控时钟信号进行处理,产生并输出端口选择信号。
11.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,门控时钟子电路包括;
12.第一延迟单元,包括第六输入端、第四时钟端和(n-1)个第六输出端;第六输入端为门控时钟子电路的第五输入端,第四时钟端为门控时钟子电路的第二时钟端;第一延迟单元用于基于第二时钟信号对使能输出信号进行(n-1)次延迟处理,产生并输出(n-1)个延迟信号;其中,第j个延迟信号比使能输出信号慢j个使能输出信号的时钟周期,j为大于或等于1且小于或等于(n-1)的整数;
13.第一逻辑单元,包括n个第七输入端,一个第七输入端与第四输出端耦接,其余(n-1)个第七输入端分别与第一延迟单元的(n-1)个第六输出端耦接;第一逻辑单元用于基于使能输出信号和(n-1)个延迟信号,产生并输出门控使能信号;
14.门控单元,包括第八输入端和第五时钟端,第八输入端与第一逻辑单元的输出端耦接,第五时钟端为门控时钟子电路的第一时钟端;门控单元用于基于第一时钟信号和门控使能信号,产生并输出门控时钟信号。
15.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第一逻辑子电路的第四输出端与单端口ram的使能端耦接,单端口ram的使能端用于接收使能输出信号;
16.门控时钟子电路的时钟输出端与单端口ram的时钟端耦接。
17.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,端口选择电路包括:第一选择子电路和n个输入子电路;
18.第一选择子电路,包括第一选择输入端,第一选择输入端为端口选择电路的第一选择端;第一选择输入端用于接收端口选择信号;第一选择子电路用于基于端口选择信号,在第一时钟信号的第i个时钟周期,产生并输出用于使能第i个输入子电路的第一选择信号;
19.各输入子电路包括第一输入使能端、第九输入端组和第七输出端组;n个第一输入使能端均与第一选择子电路的输出端耦接,n个第九输入端组分别与n个第一输入端组耦接,n个第七输出端组均与第一输出端组耦接;第一输入使能端用于接收第一选择信号;第i个输入子电路用于接收第i个输入信号组,并在接收到第i个第一选择信号时,产生并输出第i个输出信号组。
20.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第九输入端组包括写使能输入端、地址输入端和写数据输入端,输入信号组包括写使能输入信号、地址输入信号和写数据输入信号;
21.第七输出端组包括写使能输出端、地址输出端和写数据输出端,输出信号组包括
写使能输出信号、地址输出信号和写数据输出信号。
22.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,数据输出电路包括:第二选择子电路和n个数据输出子电路;
23.第二选择子电路,包括第二选择输入端,第二选择输入端为数据输出电路的第二选择端;第二选择输入端用于接收端口选择信号;第二选择子电路用于基于端口选择信号,在第一时钟信号的第(i 1)个时钟周期,产生并输出用于使能第i个数据输出子电路的第二选择信号;
24.各数据输出子电路包括第二输入使能端、第十输入端和第八输出端;n个第二输入使能端均与第二选择子电路的输出端耦接,n个第十输入端均与第三输入端耦接;n个第八输出端分别与n个第三输出端耦接;第二输入使能端用于接收第二选择信号;第i个数据输出子电路用于接收第十输入端输入的数据输入信号,并在接收到第i个第二选择信号时,对接收到的第i个数据输入信号进行处理,产生第i个数据输出信号,在第一时钟信号的第(n 2)个时钟周期,输出第i个数据输出信号。
25.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,门控时钟子电路的时钟输出端与各数据输出子电路的时钟端耦接。
26.结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第i个数据输出子电路,包括第二延迟单元;
27.第二延时单元,包括使能端、数据输入端和时钟端;使能端为第二输入使能端,数据输入端为第十输入端,时钟端与门控时钟子电路的时钟输出端耦接;使能端用于接收第二选择信号,数据输入端用于接收第i个数据输入信号,时钟端用于接收门控时钟信号;第二延时单元用于基于门控时钟信号对第i个数据输入信号进行(n-i 1)次延迟处理,产生并输出第i个数据输出信号。
28.本技术实施例的第二方面,提供一种存储设备,该存储设备包括控制器以及如上述第一方面的数据读写电路。
29.本技术实施例的第三方面,提供一种终端设备,该终端设备包括处理器和存储器,存储器包括如上述第一方面的数据读写电路。
30.本技术实施例提供的数据读写电路,端口选择信号的一个时钟周期对应第一时钟信号的多个时钟周期,在第一时钟信号的每一时钟周期,从多个端口中选择一个端口,并进行该端口的数据处理,使得在端口选择信号的一个时钟周期,实现同时进行多个端口的数据处理,从而使用单端口ram实现多端口ram功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
附图说明
31.图1为本技术实施例提供的一种数据读写电路的结构示意图。
32.图2为本技术实施例提供的一种数据写电路的信号时序图。
33.图3为本技术实施例提供的另一种数据读写电路的结构示意图。
34.图4为本技术实施例提供的另一种数据读电路的信号时序图。
35.图5为本技术实施例提供的再一种数据读写电路的信号时序图。
36.图6为本技术实施例提供的再一种数据读写电路的结构示意图。
37.图7为本技术实施例提供的又一种数据读电路的信号时序图。
38.图8为本技术实施例提供的又一种数据读写电路的结构示意图。
39.图9为本技术实施例提供的再一种数据读写电路的结构示意图。
40.图10为本技术实施例提供的又一种数据读写电路的结构示意图。
41.图11为本技术实施例提供的一种ram控制逻辑转换电路的结构示意图。
42.图12为本技术实施例提供的ram控制逻辑转换电路在进行写操作时的信号时序图。
43.图13为本技术实施例提供的ram控制逻辑转换电路在进行读操作时的信号时序图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。在本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本技术实施例中的第一开关中的“第一”和第二开关中的“第二”仅用于区分不同的开关。本技术实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本技术实施例中对设备个数的特别限定,不能构成对本技术实施例的任何限制。
45.需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
46.为了解决现有存储器只能实现同时进行固定数量个端口的读写操作、适用场景受限的问题,本技术实施例提供一种数据读写电路,该数据读写电路使用单端口ram实现多端口ram功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
47.图1为本技术实施例提供的一种数据读写电路的结构示意图,如图1所示,该数据读写电路包括控制电路、端口选择电路和单端口ram。
48.控制电路用于对时钟源产生的第一时钟信号进行处理,输出端口选择信号,该端口选择信号的时钟周期为第一时钟信号的时钟周期的n倍,n为大于或等于2的整数。
49.示例性的,本技术实施例中的n为大于或等于2的整数,对n的具体取值并不进行限定。实际应用中,可以结合同时进行数据处理的端口个数,确定n的取值,例如,需要同时进行2个端口的读写操作时,n取值为2;需要同时进行4个端口的读写操作时,n取值为4。
50.在一些示例中,n与使用单端口ram实现多端口ram的端口数量有关。例如,n为2时,
使用单端口ram实现双端口ram的功能。再例如,n为4时,使用单端口ram实现4端口ram的功能。本公开实施例对于n的取值不作限定,下述实施例以n为2为例进行示例性说明。
51.端口选择电路包括第一选择端a、n个第一输入端组b1至bn,以及第一输出端组c。第一选择端a与控制电路的输出端q耦接。各第一输入端组b1至bn,用于接收输入信号组。端口选择电路用于接收输出端q输出的端口选择信号,并在第一时钟信号的第i个时钟周期,基于端口选择信号选择并输出第i个第一输入端组bi接收的输入信号组,i为大于或等于1且小于或等于n的整数,即i=1,2,
…
,n。
52.单端口ram包括第二输入端组d,该第二输入端组d与第一输出端组c耦接。单端口ram用于在第一时钟信号的第i个时钟周期,接收第一输出端组c输出的第i个输出信号组,并对第i个输出信号组进行处理。
53.示例性的,图2为本技术实施例提供的一种数据写电路的信号时序图,如图2所示,图中以n取值为2进行示意,第一时钟信号为时钟源产生的时钟信号,端口选择信号为控制电路的输出端q输出的时钟信号,端口选择信号的时钟周期为第一时钟信号的时钟周期的2倍。
54.在第一时钟信号的第1个时钟周期,端口选择电路在第一输入端组b1至第一输入端组b2中,选择从第一输入端组b1接收输入信号组,并由第一输出端组c输出该输入信号组,由单端口ram的第二输入端组d接收该输入信号组,并由单端口ram基于该输入信号组进行一次写处理。
55.在第一时钟信号的第2个时钟周期,端口选择电路在第一输入端组b1至第一输入端组b2中,选择从第一输入端组b2接收输入信号组,并由第一输出端组c输出该输入信号组,由单端口ram的第二输入端组d接收该输入信号组,并由单端口ram基于该输入信号组进行再次写处理。
56.这样在第一时钟信号的2个时钟周期,也就是端口选择信号的一个时钟周期,实现对2个第一输入端组接收的输入信号组进行写处理。
57.本技术实施例提供的数据读写电路,端口选择信号的一个时钟周期对应第一时钟信号的多个时钟周期,在第一时钟信号的每一时钟周期,从多个端口中选择一个端口,并进行该端口的数据处理,使得在端口选择信号的一个时钟周期,实现同时进行多个端口的数据处理,从而使用单端口ram实现多端口ram功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
58.示例性的,如图3所示,在图1所示实施例的基础上,上述数据读写电路还可以包括:数据输出电路。其中数据输出电路包括第二选择端e、第三输入端f和n个第三输出端g1至gn。该第二选择端e与控制电路的输出端q耦接,该第三输入端f与单端口ram的第二输出端p耦接。第三输入端f用于接收单端口ram的第二输出端p输出的n个数据输入信号。数据输出电路用于对接收到的n个数据输入信号进行处理,产生n个数据输出信号,并在第一时钟信号的第(n 2)个时钟周期,输出n个数据输出信号。
59.示例性的,图4为本技术实施例提供的另一种数据读电路的信号时序图,如图4所示,图中以n取值为2进行示意,第一时钟信号为时钟源产生的时钟信号,端口选择信号为控制电路的输出端q输出的时钟信号,端口选择信号的时钟周期为第一时钟信号的时钟周期的2倍。
60.在第一时钟信号的第2个时钟周期(读数据是在单端口ram写入数据后的下一个时钟周期,因此数据输出电路从第2个时钟周期开始才能接收到第二输出端p输出的第1个数据输入信号),数据输出电路的第三输入端f接收第二输出端p输出的第1个数据输入信号,端口选择电路在第三输出端g1至第三输出端g2中,选择第三输出端g1对接收到的第1个数据输入信号进行读处理,产生第1个数据输出信号。在第一时钟信号的第2个时钟周期完成第一个端口的读操作。
61.在第一时钟信号的第3个时钟周期,数据输出电路的第三输入端f接收第二输出端p输出的第2个数据输入信号,端口选择电路在第三输出端g1至第三输出端g2中,选择第三输出端g2对接收到的第2个数据输入信号进行读处理,产生第2个数据输出信号。在第一时钟信号的第3个时钟周期完成第二个端口的读操作。
62.这样在第一时钟信号的2个时钟周期,也就是端口选择信号的一个时钟周期,实现对单端口ram输出的2个数据输入信号进行读处理。
63.示例性的,图5为本技术实施例提供的再一种数据读写电路的信号时序图,如图5所示,图中以n取值为2进行示意,第一时钟信号为时钟源产生的时钟信号,端口选择信号为控制电路的输出端q输出的时钟信号,端口选择信号的时钟周期为第一时钟信号的时钟周期的2倍。
64.在第一时钟信号的第1个时钟周期,端口选择电路在第一输入端组b1至第一输入端组b2中,选择从第一输入端组b1接收输入信号组,并由第一输出端组c输出该输入信号组,由单端口ram的第二输入端组d接收该输入信号组,并由单端口ram基于该输入信号组进行一次写处理。
65.在第一时钟信号的第2个时钟周期,端口选择电路在第一输入端组b1至第一输入端组b2中,选择从第一输入端组b2接收输入信号组,并由第一输出端组c输出该输入信号组,由单端口ram的第二输入端组d接收该输入信号组,并由单端口ram基于该输入信号组进行再次写处理。同时,在该时钟周期,数据输出电路对第1个时钟周期写入的数据进行读处理:数据输出电路的第三输入端f接收第二输出端p输出的第1个数据输入信号,端口选择电路在第三输出端g1至第三输出端g2中,选择第三输出端g1对接收到的第1个数据输入信号进行读处理,产生第1个数据输出信号。
66.在第一时钟信号的第3个时钟周期,数据输出电路的第三输入端f接收第二输出端p输出的第2个数据输入信号,端口选择电路在第三输出端g1至第三输出端g2中,选择第三输出端g2对接收到的第2个数据输入信号进行读处理,产生第2个数据输出信号。
67.在第一时钟信号的第4个时钟周期,第三输出端g1输出第1个数据输出信号,第三输出端g2输出第2个数据输出信号。这样在第一时钟信号的4个时钟周期,也就是端口选择信号的两个时钟周期,实现对单端口ram输出的2个数据输入信号进行读写处理。
68.本技术实施例提供的数据读写电路,端口选择信号的一个时钟周期对应第一时钟信号的多个时钟周期,在第一时钟信号的每一时钟周期,从多个端口中选择一个端口,并进行该端口的数据处理,使得在端口选择信号的两个时钟周期,实现同时进行多个端口的数据读写处理,从而使用单端口ram实现多端口ram功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
69.图6为本技术实施例提供的再一种数据读写电路的结构示意图,如图6所示,上述
图1或图3所示实施例中的控制电路可以包括:第一逻辑子电路、门控时钟子电路和端口转换子电路。
70.其中,第一逻辑子电路包括n个第四输入端h1至hn和第四输出端k,各第四输入端h1至hn,用于接收使能输入信号。第一逻辑子电路用于根据接收到的n个使能输入信号产生并输出使能输出信号。
71.仍以n取值为2进行示例性说明。第一逻辑子电路包括两个第四输入端(第四输入端h1和第四输入端h2)和第四输出端k。第四输入端h1用于接收第一个端口的使能输入信号,第四输入端h2用于接收第二个端口的使能输入信号。第一逻辑子电路根据接收到的第一个端口的使能输入信号和第二个端口的使能输入信号,产生使能输出信号。第四输出端k输出该使能输出信号。
72.示例性的,第一逻辑子电路可以包括(n-1)个实现与逻辑功能的电子元件,或者也可以包括多个实现与(n-1)个与逻辑功能的电子元件相同功能的电子元件。第一逻辑子电路在n个端口的使能输入信号中存在一个有效的使能输入信号时,就输出有效的使能输出信号。例如设置使能输入信号由高电平转为低电平时有效,当所有端口的使能输入信号均为高电平时,第一逻辑子电路产生高电平的使能输出信号,门控时钟子电路不响应该使能输出信号。当存在一个端口需要读写数据时,该端口的使能输入信号由高电平切换为低电平,此时第一逻辑子电路产生低电平的使能输出信号,门控时钟子电路响应该使能输出信号。
73.另一示例性的,第一逻辑子电路可以包括(n-1)个实现或逻辑功能的电子元件,或者也可以包括多个实现与(n-1)个或逻辑功能的电子元件相同功能的电子元件。第一逻辑子电路在n个端口的使能输入信号中存在一个有效的使能输入信号时,就输出有效的使能输出信号。例如设置使能输入信号由低电平转为高电平时有效,当所有端口的使能输入信号均为低电平时,第一逻辑子电路产生低电平的使能输出信号,门控时钟子电路不响应该使能输出信号。当存在一个端口需要读写数据时,该端口的使能输入信号由低电平切换为高电平,此时第一逻辑子电路产生高电平的使能输出信号,门控时钟子电路响应该使能输出信号。
74.如图6所示,门控时钟子电路包括第五输入端l、第一时钟端clk1和第二时钟端clk2,第五输入端l与第四输出端k耦接。第五输入端l用于接收第四输出端k输出的使能输出信号。第一时钟端clk1为控制电路的时钟输入端,用于接收时钟源产生的第一时钟信号。第二时钟端clk2用于接收第二时钟信号,该第二时钟信号的时钟周期为第一时钟信号的时钟周期的n倍。门控时钟子电路用于基于使能输出信号和第二时钟信号,对第一时钟信号进行处理,产生并输出门控时钟信号,该门控时钟信号的时钟周期与第一时钟信号的时钟周期一致。
75.门控时钟子电路用于产生门控时钟信号,门控时钟信号又称时钟门控信号。利用该门控时钟子电路,能够将无执行任务的功能部件的时钟关闭,减少其随时钟翻转进行多余的内部寄存器翻转,从而降低功耗。以n取值为2为例,如图7所示,第一时钟信号和第二时钟信号均为连续时钟信号,经过门控时钟子电路处理得到的门控时钟信号为离散时钟信号,在门控时钟信号到来之前以及经过之后,由于无需进行读写处理,将无执行任务的功能部件的时钟设置为低电平,减少该些功能部件内部寄存器翻转。
76.如图6所示,端口转换子电路包括第三时钟端clk3和第五输出端q。第三时钟端clk3与门控时钟子电路的时钟输出端m耦接,该第五输出端q为控制电路的输出端q。端口转换子电路用于对时钟输出端m输出的门控时钟信号进行处理,产生并输出端口选择信号。以图7所示的门控时钟信号为例,端口转换子电路对其进行处理,产生的端口选择信号如图2、图3或图5所示。由图7和图2、图3或图5可见,端口选择信号的时钟周期为第一时钟信号的时钟周期的2倍。
77.本技术实施例提供的数据读写电路,通过控制电路包括的第一逻辑子电路、门控时钟子电路和端口转换子电路,实现对时钟源产生的第一时钟信号的时钟周期进行调整,使得端口选择信号的一个时钟周期对应第一时钟信号的多个时钟周期。通过在第一时钟信号的每一时钟周期,从多个端口中选择一个端口,并进行该端口的数据处理,实现在端口选择信号的一个时钟周期,同时进行多个端口的数据处理,从而使用单端口ram实现多端口ram功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
78.图8为本技术实施例提供的又一种数据读写电路的结构示意图,如图8所示,上述图6所示实施例中的门控时钟子电路可以包括:第一延迟单元、第一逻辑单元和门控单元。
79.其中,第一延迟单元包括第六输入端l、第四时钟端clk2和(n-1)个第六输出端m
11
至m
1(n-1)
。第六输入端l为门控时钟子电路的第五输入端l,第四时钟端clk2为门控时钟子电路的第二时钟端clk2。第一延迟单元用于基于第四时钟端clk2接收的第二时钟信号对使能输出信号进行(n-1)次延迟处理,产生并输出(n-1)个延迟信号,第j个延迟信号别由第j个第六输出端m
1j
输出。其中,第j个延迟信号比使能输出信号慢j个使能输出信号的时钟周期,j为大于或等于1且小于或等于(n-1)的整数,即j=1,2,
…
,n-1。
80.在一些示例中,第一延迟单元可以包括(n-1)个寄存器,输入第一延迟单元的使能输出信号,经过j个寄存器进行了j次延迟处理,输出第j个延迟信号。
81.如图8所示,第一逻辑单元包括n个第七输入端r1至rn,其中一个第七输入端(如图8所示的rn)与第四输出端k耦接,其余(n-1)个第七输入端(如图8所示的r1至r
n-1
)分别与第一延迟单元的(n-1)个第六输出端m
11
至m
1(n-1)
耦接。第一逻辑单元用于基于使能输出信号和(n-1)个延迟信号,产生并输出门控使能信号。
82.在一些示例中,第一逻辑单元可以包括(n-1)个实现与逻辑功能的电子元件,或者也可以包括(n-1)个实现或逻辑功能的电子元件,本技术实施例对第一逻辑单元包括的电子元件不做限定。
83.如图8所示,门控单元包括第八输入端t、第五时钟端clk1和门控输出端m。该第八输入端t与第一逻辑单元的输出端s耦接,第五时钟端clk1为门控时钟子电路的第一时钟端clk1,门控输出端m为门控时钟子电路的时钟输出端m。门控单元用于基于第一时钟端clk1输入的第一时钟信号和第八输入端t输入的门控使能信号,产生并输出门控时钟信号。
84.利用该门控单元产生的门控时钟信号,能够将无执行任务的功能部件的时钟关闭,减少其随时钟翻转进行多余的内部寄存器翻转,从而降低功耗。
85.如图8所示,在一些示例中,第一逻辑子电路的第四输出端k与单端口ram的使能端en耦接。单端口ram的使能端en用于接收使能输出信号。门控时钟子电路的时钟输出端m与单端口ram的时钟端clk耦接。
86.通过将单端口ram的使能端en与第四输出端k耦接,并将ram的时钟端clk与门控时
钟子电路的时钟输出端m耦接,使得第一逻辑子电路在n个端口的使能输入信号中存在一个有效的使能输入信号时,第四输出端k输出有效的使能输出信号,单端口ram在该有效的使能输出信号的作用下开始进行数据处理。
87.图9为本技术实施例提供的再一种数据读写电路的结构示意图,如图9所示,上述图6所示实施例中的端口选择电路可以包括:第一选择子电路和n个输入子电路。
88.其中,第一选择子电路包括第一选择输入端a和输出端u,该第一选择输入端a为端口选择电路的第一选择端a,该第一选择输入端a与控制电路的输出端q耦接,用于接收端口选择信号。第一选择子电路用于基于端口选择信号,在第一时钟信号的第i个时钟周期,产生并输出用于使能第i个输入子电路的第一选择信号。
89.各输入子电路包括第一输入使能端enb、第九输入端组b和第七输出端组w。n个第一输入使能端enb1至enbn,均与第一选择子电路的输出端u耦接。n个第九输入端组b1至bn,分别为n个第一输入端组b1至bn。n个第七输出端组w1至wn,均与第一输出端组c耦接。第一输入使能端enb用于接收输出端u输出的第一选择信号。第i个输入子电路用于接收第i个输入信号组,并在接收到第i个第一选择信号时,产生并输出第i个输出信号组。
90.第i个第七输出端组w在第一时钟信号的第i个时钟周期,通过第一输出端组c输出该第i个输出信号组,使得在第一时钟信号的第i个时钟周期,单端口ram接收第一输出端组c输出的第i个输出信号组,从而在端口选择信号的一个时钟周期,将n个端口输入的数据输入至单端口ram进行数据处理,实现使用单端口ram实现多端口ram功能。
91.示例性的,第i个第九输入端组bi包括写使能输入端b
wi
、地址输入端b
ai
和写数据输入端b
di
。其中,写使能输入端b
wi
用于输入写使能输入信号,地址输入端b
ai
用于输入地址输入信号,写数据输入端b
di
用于输入写数据输入信号。因此,输入信号组包括写使能输入信号、地址输入信号和写数据输入信号。
92.示例性的,第i个第七输出端组wi包括写使能输出端w
wi
、地址输出端w
ai
和写数据输出端w
di
。其中,写使能输出端w
wi
用于输出写使能输出信号,地址输出端w
ai
用于输出地址输出信号,写数据输出端w
di
用于输出写数据输出信号。因此,输出信号组包括写使能输出信号、地址输出信号和写数据输出信号。
93.图10为本技术实施例提供的又一种数据读写电路的结构示意图,如图10所示,上述图9所示实施例中的数据输出电路可以包括:第二选择子电路和n个数据输出子电路。
94.其中,第二选择子电路包括第二选择输入端e和输出端v,该第二选择输入端e为数据输出电路的第二选择端e,该第二选择输入端e与控制电路的输出端q耦接,用于接收端口选择信号。第二选择子电路用于基于端口选择信号,在第一时钟信号的第(i 1)个时钟周期,产生并输出用于使能第i个数据输出子电路的第二选择信号。
95.各数据输出子电路包括第二输入使能端eb、第十输入端x和第八输出端g。n个第二输入使能端eb1至ebn,均与第二选择子电路的输出端v耦接。n个第十输入端x1至xn,均与第三输入端f耦接。n个第八输出端g1至gn,分别为n个第三输出端g1至gn。第二输入使能端eb用于接收第二选择信号。第i个数据输出子电路用于接收第十输入端xi输入的数据输入信号,并在接收到第i个第二选择信号时,对接收到的第i个数据输入信号进行处理,产生第i个数据输出信号,在第一时钟信号的第(n 2)个时钟周期,通过第八输出端gi输出该第i个数据输出信号。
96.第十输入端xi在第一时钟信号的第i个时钟周期,接收第二输出端p输出的第i个数据输入信号,当接收到第i个第二选择信号时,对接收到的第i个数据输入信号进行处理,产生第i个数据输出信号,使得在第一时钟信号的n个时钟周期,对单端口ram输出的n个数据输出信号进行处理,产生n个数据输出信号。从而在端口选择信号的一个时钟周期,产生多个数据输出信号,实现使用单端口ram实现多端口ram功能。
97.并且,在第一时钟信号的第(n 2)个时钟周期,通过第八输出端g1至gn,输出该n个数据输出信号,实现对单端口ram输出的n个数据输入信号进行一次读处理。
98.如图10所示,在一些示例中,各数据输出子电路还包括时钟端cki,门控时钟子电路的时钟输出端m与各数据输出子电路的时钟端cki耦接。
99.在一些示例中,第i个数据输出子电路包括第二延迟单元。其中第二延时单元包括使能端ebi、数据输入端xi和时钟端cki。使能端ebi为第二输入使能端ebi,数据输入端xi为第十输入端xi,时钟端cki为各数据输出子电路的时钟端cki。使能端ebi用于接收第二选择信号,数据输入端xi用于接收第i个数据输入信号,时钟端cki用于接收门控时钟信号。第二延时单元用于基于门控时钟信号对第i个数据输入信号进行(n-i 1)次延迟处理,产生并输出第i个数据输出信号。
100.由于读数据是在单端口ram写入数据后的下一个时钟周期,因此各数据输出子电路从第2个时钟周期开始才能接收到第二输出端p输出的第1个数据输入信号。在第一时钟信号的第i 1个时钟周期,第i个数据输出子电路包括的第二延迟单元的数据输入端xi,接收第二输出端p输出的第i个数据输入信号,第二选择信号在第i 1个时钟周期,选择第i个数据输出子电路(即第i个数据输出子电路接收到第i个第二选择信号)进行数据处理,产生第i个数据输出信号。
101.下面以使用单端口ram实现双端口ram功能为例进行示例说明。
102.图11为本技术实施例提供的一种ram控制逻辑转换电路的结构示意图,如图11所示,ram控制逻辑转换电路,设置在单端口ram与控制器之间。单端口ram和ram控制逻辑转换电路的工作频率是控制器的工作频率的两倍,即控制器的时钟,与单端口ram和ram控制逻辑转换电路的时钟为二分频关系。通过ram控制逻辑转换电路实现控制器对单端口ram的轮流操作,从而使用单端口ram实现双端口ram的读写功能。
103.在一些示例中,控制器用于对单端口ram进行逻辑控制,可以包括处理器、运算单元和协处理器等器件。
104.图12为本技术实施例提供的ram控制逻辑转换电路在进行写操作时的信号时序图,图13为本技术实施例提供的ram控制逻辑转换电路在进行读操作时的信号时序图,参见图11至图13,控制器的时钟clka,与单端口ram和ram控制逻辑转换电路的时钟为二分频关系clkb,例如clka为10mhz、clkb为20mhz。双端口ram的一个周期可以完成两个端口0和1的读写操作,具体包括端口0写、端口1写、端口0读、端口1读。通过寄存器2生成端口0和1的选择信号port_sel。选择信号port_sel用于指示当前时钟周期处理的端口为哪一端口。例如设置当port_sel为低电平时处理端口0的写操作,为高电平时处理端口1的写操作。由于写入完成后,才能进行读操作,因此读数据是在地址信号传送给单端口ram之后的下一周期,因此在port_sel为高电平时处理端口1的读操作,为低电平时处理端口0的读操作。
105.在实现时,为保证两个端口的读写操作都能完成,将ram0_ceb芯片使能信号和
ram1_ceb芯片使能信号进行与逻辑处理,即ram0_ceb&ram1_ceb,得到cenb信号,利用寄存器1,对该cenb信号延长一个慢时钟周期,产生快时钟域四个有限时钟,第一个有限时钟完成端口0的写操作,第二个有限时钟完成端口1的写操作与端口0的读操作,第三个有限时钟完成端口1的读操作,第四个有限时钟ram0_rdata、ram1_rdata保持,控制器读取结果。
106.本技术实施例中,通过ram控制逻辑转换电路实现控制器对单端口ram的轮流操作,从而使用单端口ram实现双端口ram的读写功能,实现方式简单,能够适用于不同应用场景,提高芯片使用灵活性。
107.在上述实施例的基础上,本技术实施例还提供一种存储设备,该存储设备包括控制器以及上述任一数据读写电路。在一些实施例中,该存储设备中可以包括多个数据读写电路,每个数据读写电路的电路结构可以为图1、图3、图6、图8至图11中任一所示的电路,不同数据读写电路中的电路结构可以相同,也可以不同。
108.本技术实施例还提供一种终端设备,该终端设备包括处理器和存储器,存储器包括上述任一数据读写电路。在一些实施例中,该存储器包括的数据读写电路可以为一个或多个,每个数据读写电路的电路结构可以为图1、图3、图6、图8至图11中任一所示的电路,不同数据读写电路中的电路结构可以相同,也可以不同。
109.结合本技术公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、可擦除可编程只读存储器(erasable programmable rom,eprom)、电可擦可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成芯片(application specific integrated circuit,asic)中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
110.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
111.以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。