写串行化和资源复制相结合的多端口寄存器文件设计方法

文档序号:6403907阅读:305来源:国知局
专利名称:写串行化和资源复制相结合的多端口寄存器文件设计方法
技术领域
本发明涉及集成电路设计中寄存器文件设计方法,尤其是现场可编程门阵列FPGA和专用集成电路ASIC设计中多端口寄存器文件的设计及实现方法。
背景技术
微处理器是当前计算机和嵌入式系统的核心部件。随着集成电路工艺水平的提高和设计技术的发展,FPGA或ASIC的设计已经成为微处理器设计和验证的重要组成部分。寄存器文件是微处理器的一个重要部件,现代高性能微处理器的一个特点是寄存器文件的规模大、读写端口多。在FPGA中,虽然还存在单端口或者双端口的静态SRAM可以作为寄存器文件来使用,但是其端口数太少,不能直接作为多端口寄存器文件使用。目前在FPGA中实现多端口寄存器文件,一般采用一种如www.fpgacpu.org公布的称为“Double Ram”的方法,但该方法硬件开销大,当端口超过一定数目后硬件消耗难以忍受。在ASIC设计中,多端口寄存器文件一般采用全定制的设计方法,然而全定制设计的技术门槛高、设计周期长,为了使全定制模块融入到目前的ASIC设计流程中去还必须建立各种复杂的视图。因此,对FPGA和ASIC设计来说,寻找一种既适用于FPGA又适用于ASIC的多端口寄存器文件设计方法是亟待解决的关键问题。

发明内容
本发明要解决的技术问题是针对目前FPGA和ASIC设计中多端口寄存器文件设计存在的问题,提供一种通用性强、硬件开销小、性能高、设计周期短的多端口寄存器文件的设计方法。
本发明的技术方案是将寄存器文件设计成两部分,一部分是写串行部件,一部分是存储体与读端口部件。在写串行部件中采用写操作串行化的方法实现多个写端口;利用FPGA和ASIC设计中提供的静态RAM,在存储体与读端口部件中通过资源复制的方法实现多个读端口。一个有m个读端口和n个写端口的多端口寄存器文件的具体设计方法是1.确定单端口寄存器文件的实现方法,在FPGA中,单端口寄存器文件由分布式RAM实现;在ASIC设计中,单端口寄存器文件用存储体编译器(MemoryCompiler)编译生成。单端口寄存器文件是具有一个读端口和一个写端口的寄存器文件,读端口包括读地址和读使能信号输入端、读数据输出端;写端口包括写数据、写地址、写使能信号输入端。
2.在写串行部件中采用写串行化法实现寄存器文件的n个写端口,写串行部件由n个锁存器组、一个模k计数器和一个多路选择器组成1)设置n组由系统的主时钟clk控制的锁存器组,一个锁存器组由数据锁存器、地址锁存器和使能信号锁存器组成,在系统时钟clk的上升沿将n个写端口的数据、地址、写使能信号分别锁存,假定写端口的数据为a位,地址为b位,使能信号为1位,则一个锁存器组为(a+b+1)个锁存器。
2)设置一个由时钟clk_fast控制的模k计数器,k≥n,时钟clk_fast的频率为时钟clk的频率的k倍,在clk的上升沿之后,模k计数器的值为0,其后加1计数。
3)设置一个由模k计数器控制的多路选择器。多路选择器由3个n选1多路选择器组成,分别是写数据、写地址、写使能信号多路选择器。多路选择器的输入来自于n组锁存器,在模k计数器的控制下,在快速时钟clk_fast的每一拍,分别选择一个锁存器组,将其中的写数据、写地址及写使能信号送至存储体与读端口部件。令模k计数器的当前值为cur_count,当cur_count=i时,第i组锁存器的输出被选择;当cur_count=i+1时,第i+1组锁存器的输出被选择;依次类推,当cur_count=i+n-2时,第n-1组锁存器的输出被选择;当cur_count≥i+n-1时,第n组锁存器的输出被选择,其中i≥0且i≤k-n。
3.在存储体与读端口部件中采用资源复制法实现寄存器文件的m个读端口存储体与读端口部件由m个单端口寄存器文件组成。m个单端口寄存器文件的写数据、写地址与写使能信号输入端都分别与写数据、写地址、写使能多路选择器的输出相连。在快速时钟clk_fast的控制下,每一拍将一个写端口的数据同时写入m个单端口寄存器文件,这样,n个写端口的数据就依次串行地同时写入到m个单端口寄存器文件中,由于m个单端口寄存器文件的写数据、写地址与写使能信号输入端的连接的信号都是一样的,因此它们存储的数据是一样的,保证了m个读端口访问到的数据一致。本发明多端口寄存器文件的m个读端口与m个单端口寄存器文件一一对应,多端口寄存器文件的第i个读端口的地址和读使能信号分别连接到第i个单端口寄存器文件读地址和读使能输入端,第i个单端口寄存器文件读出的数据也就是第i个读端口读出的数据。
采用本发明能产生如下有益技术效果1.本发明既适用于FPGA的寄存器文件的设计,又适用于ASIC的寄存器文件的设计,通用性强。
2.充分利用了FPGA和ASIC设计中能够提供的资源,降低了设计的复杂度。
3.通过把写操作串行化,多个写端口分时共享单端口寄存器文件的一个写端口,避免了直接实现多个写端口带来的硬件开销,降低了设计实现需要的硬件。
4.通过资源复制,简化了读端口的设计实现,且能有效保证读端口访问到的数据保持一致,提高了性能。


图1是采用本发明实现的一个具有m个读端口和n个写端口的寄存器文件的逻辑结构具体实施例方式图1是采用本发明实现的一个具有m个读端口和n个写端口的寄存器文件的逻辑结构图。本发明将寄存器文件设计成两部分,一部分是写串行部件,一部分是存储体与读端口部件。写串行部件由n个锁存器组、一个多路选择器和一个模k的计数器组成。锁存器组的个数与写端口数相等,每一个锁存器组由a个数据锁存器、b个地址锁存器和1个使能信号锁存器组成,系统时钟clk的上升或下降沿将写端口的数据、地址及写使能信号分别锁存。多路选择器在模k(k是一个不小于n的数)计数器的控制下,在快速时钟clk_fast的每一拍,分别选择一个锁存器组,将其中的数据、地址及使能信号送至存储体与读端口部件。存储体与读端口部件由m个单端口寄存器文件组成,单端口寄存器文件是具有一个读端口和一个写端口的寄存器文件,读端口包括读地址和读使能信号输入端、读数据输出端;写端口包括写数据、写地址、写使能信号输入端。m为读端口的个数。m个单端口寄存器文件的写数据、写地址与写使能信号输入端都分别与写数据、写地址、写使能多路选择器的输出相连。在快速时钟clk_fast的控制下,每一拍将一个写端口的数据写入m个单端口寄存器文件。由于m个单端口寄存器文件的写数据、写地址与写使能信号输入端连接的信号都是一样的,因此它们存储的数据也是一样的。本发明多端口寄存器文件的m个读端口与m个单端口寄存器文件一一对应,多端口寄存器文件的第i个读端口的地址和读使能信号分别连接到第i个单端口寄存器文件读地址和读使能输入端,第i个单端口寄存器文件读出的数据也就是第i个读端口读出的数据。
本发明已经在国防科大自行研制的DSP芯片FT-C62的功能验证中采用。在FT-C67 CPU内核的FPGA仿真验证中,采用本发明在一片FPGA中实现了包括两个10读6写的寄存器文件的CPU内核。在采用本发明之前,单是一个寄存器文件就占用了Xilinx公司400万门的FPGA VirtexII xcv4000的80%的资源;采用本发明,两个寄存器文件总共只占用了约40%的资源。
权利要求
1.一种写串行化和资源复制相结合的多端口寄存器文件设计方法,其特征在于将寄存器文件设计成两部分,一部分是写串行部件,一部分是存储体与读端口部件,在写串行部件中采用写操作串行化的方法实现多个写端口;利用FPGA和ASIC设计中提供的静态RAM,在存储体与读端口部件中通过资源复制的方法实现多个读端口,一个有m个读端口和n个写端口的多端口寄存器文件的具体设计方法是1.1确定单端口寄存器文件的实现方法,在FPGA中,单端口寄存器文件由分布式RAM实现;在ASIC设计中,单端口寄存器文件用存储体编译器(Memory Compiler)编译生成,单端口寄存器文件是具有一个读端口和一个写端口的寄存器文件,读端口包括读地址和读使能信号输入端、读数据输出端;写端口包括写数据、写地址、写使能信号输入端;1.2在写串行部件中采用写串行化法实现寄存器文件的n个写端口,写串行部件由n个锁存器组、一个模k计数器和一个多路选择器组成1.2.1设置n组由系统的主时钟clk控制的锁存器组,一个锁存器组由数据锁存器、地址锁存器和使能信号锁存器组成,在系统时钟clk的上升或下降沿将n个写端口的数据、地址、写使能信号分别锁存,假定写端口的数据为a位,地址为b位,使能信号为1位,则一个锁存器组为(a+b+1)个锁存器;1.2.2设置一个由时钟clk_fast控制的模k计数器,k≥n,时钟clk_fast的频率为时钟clk的频率的k倍,在clk的上升沿之后,模k计数器的值为0,其后加1计数;1.2.3设置一个由模k计数器控制的多路选择器,多路选择器由3个n选1多路选择器组成,分别是写数据、写地址、写使能信号多路选择器;多路选择器的输入来自于n组锁存器, 在模k计数器的控制下,在快速时钟clk_fast的每一拍,分别选择一个锁存器组,将其中的写数据、写地址及写使能信号送至存储体与读端口部件;令模k计数器的当前值为cur_count,当cur_count=i时,第i组锁存器的输出被选择;当cur_count=i+1时,第i+1组锁存器的输出被选择;依次类推,当cur_count=i+n-2时,第n-1组锁存器的输出被选择;当cur_count≥i+n-1时,第n组锁存器的输出被选择,其中i≥0且i≤k-n;1.3在存储体与读端口部件中采用资源复制法实现寄存器文件的m个读端口存储体与读端口部件由m个单端口寄存器文件组成,m个单端口寄存器文件的写数据、写地址与写使能信号输入端都分别与写数据、写地址、写使能多路选择器的输出相连;在快速时钟clk_fast的控制下,每一拍将一个写端口的数据同时写入m个单端口寄存器文件,这样,n个写端口的数据就依次串行地同时写入到m个单端口寄存器文件中,由于m个单端口寄存器文件的写数据、写地址与写使能信号输入端的连接的信号都是一样的,因此它们存储的数据是一样的,保证了m个读端口访问到的数据一致;多端口寄存器文件的m个读端口与m个单端口寄存器文件一一对应,多端口寄存器文件的第i个读端口的地址和读使能信号分别连接到第i个单端口寄存器文件读地址和读使能输入端,第i个单端口寄存器文件读出的数据也就是第i个读端口读出的数据。
全文摘要
本发明公开了一种写串行化和资源复制相结合的多端口寄存器文件设计方法,所要解决的技术问题是提供一种通用性强、硬件开销小、性能高、设计周期短的多端口寄存器文件的设计方法。技术方案是将寄存器文件设计成两部分,一部分是写串行部件,一部分是存储体与读端口部件。在写串行部件中采用写操作串行化的方法实现多个写端口;利用FPGA和ASIC设计中提供的静态RAM,在存储体与读端口部件中通过资源复制的方法实现多个读端口。本发明通用性强,降低了设计的复杂度,降低了设计实现需要的硬件,提高了性能。
文档编号G06F15/76GK1598806SQ20041004508
公开日2005年3月23日 申请日期2004年7月23日 优先权日2004年7月23日
发明者李振涛, 陈书明, 马鹏勇, 郭阳, 万江华, 胡春媚, 马剑武, 马驰远 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1