CN107122565A - 基于非易失性存储器的fpga bram架构与设计方法 - Google Patents
基于非易失性存储器的fpga bram架构与设计方法 Download PDFInfo
- Publication number
- CN107122565A CN107122565A CN201710335123.4A CN201710335123A CN107122565A CN 107122565 A CN107122565 A CN 107122565A CN 201710335123 A CN201710335123 A CN 201710335123A CN 107122565 A CN107122565 A CN 107122565A
- Authority
- CN
- China
- Prior art keywords
- bram
- cost
- add
- fpga
- relay
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提出了基于非易失性存储器的FPGA BRAM架构与设计方法,输入benchmark基准电路和架构细节描述;将benchmark基准电路编译成RTL级电路,对RTL级电路进行逻辑综合生成门级电路,对门级电路优化的过程中,对去掉RTL级电路中的冗余连线的映射;打包,将优化后的门级电路打包成逻辑块;基于工具VTR7.0利用SA算法对生成的逻辑块进行最优位置的布置;布线,基于工具VTR7.0对生成的逻辑块进行连线,在对逻辑块布线之后,得到benchmark基准电路的关键路径延迟和总线长度;对关键路径延迟和总线长度进行性能评估,输出最小关键路径延迟和最短总线长度。
Description
技术领域
本发明涉及一种基于非易失性存储器的FPGA BRAM架构与设计方法。
背景技术
在异构计算时代,从嵌入式设备到高性能计算平台,FPGA成为了开发者青睐的选择,为了解决读应用程序指数增长的复杂度多造成的大量的并行计算功耗,过去几十年FPGA架构也遵循摩尔定律提供了更多的片上资源,然而呈指数增长的计算能耗(包括视频处理和机器学习算法等)也给FPGA实现内存密集型函数带来了更多的内存墙问题。
图1展示了在FPGA的传统架构,架构中分布着逻辑配置模块CLB(configurablelogic blocks),连接盒CB(connecting boxes),开关盒SB(switch boxes)和BRAM(blockRAMs),其中BRAM是一个可配置内存模块,可以进行快速的数据存储。在过去几代高档Xilinx FPGA中,片上BRAM的总量剧烈增长,但是当前的CMOS技术在片上基于SRAM的BRAM设计中面临着巨大的挑战,主要是在面积和静态能耗等问题上。
新兴的非易失性存储(non-volatile memory,NVM)技术,包括STT-MRAM(spin-torque transfer magnetic RAM),ReRAM(resistive RAM)和PCM(phase change memory),被认为是下一代存储层最具吸引力的替代者。和传统的内存设备相比,NVM提供了更高的密度,超低的能耗,和非易失性。包括STT-MRAM在内的几种NVM拥有在SLC(single-levelcell,单层单元)状态和MLC(multi-level cell,多层单元)状态之间灵活转换的固有特性。MLC技术允许2个或更多的比特存储到单个内存单元中,因此提供了更高的存储密度,但是带来了更高的访问延迟。NVM潜在的反馈包括高写入延迟,高静态功耗,有限的耐久等等,需要考虑多种设计标准。
另一方面需要明确的是,在系统层面设计时自动化设计流程中需要明确NVM的特性和潜在平衡性,在各种各样的NVM设备中,STT-MRAM被认为替代SRAM的最理想候选者。如图二所示,对于只有一个磁隧道结(Magnetic Tunnel Junction,MTJ)的SLC结构中,两个磁化层中的磁化方向分别指明了MTJ在低电阻状态(逻辑1)还是高电阻状态(逻辑0)。2bits的MLC相比于SLC拥有更高的密度。串行MLC技术中拥有一个额外符合隧道磁电阻(TMR)的MTJ,但是单元大小不同,存储在小的MTJ和大的MTJ中的数据分别被称为soft-bit和hard-bit。另一方面,并行MLC技术采用了一个单MTJ技术,单MTJ具有两个分开自由层(被称为软或硬领域/bit),以此用一个MTJ来表示2bits。虽然MLC技术很大程度上提高了存储密度,但是由于在MLC STT-MRAM中读写数据需要两步,从MLC读数据或者设计hard-bit的延迟和功耗明显要比soft-bit高。
许多其他研究表明,细粒度的管理和片上BRAM的最优化对一个FPGA系统的性能和高效节能有着显著的影响。同时,在FPGA上运行的应用的性能由它的关键路径决定,关键路径由综合阶段决定。并且,线长度和关键路径上路由开关的数量对关键路径延迟有着明显的影响。
发明内容
为了解决上述问题,我们提出了基于非易失性存储器的FPGA BRAM架构与设计方法,基于非易失性存储器STT-MRAM的BRAM架构,利用其特性设计了可以自动进行状态最优选择的设计流程的方法,基于MLC的BRAM支持在SLC模式和MLC模式中转换,并且探索了EDA流程中在密度和性能两者之间的权衡,最终生成了一个最优设计。
基于非易失性存储器的FPGA BRAM架构设计方法,包括如下步骤:
步骤(1):输入benchmark基准电路和架构细节描述,架构细节描述指的是k6_frac_N10_mem32K_40nm.xml对Altera Stratix IV GX设备FPGA底层硬件的描述;
步骤(2):逻辑综合和优化:将benchmark基准电路编译成RTL级电路,对RTL级电路进行逻辑综合生成门级电路,对门级电路优化的过程中,对去掉RTL级电路中的冗余连线的映射;
步骤(3):打包,将步骤(2)优化后的门级电路打包成逻辑块;
步骤(4):布局,基于工具VTR7.0利用SA算法对步骤(3)生成的逻辑块进行最优位置的布置;
步骤(5):布线,基于工具VTR7.0对步骤(3)生成的逻辑块进行连线,在对逻辑块布线之后,得到benchmark基准电路的关键路径延迟和总线长度;
步骤(6):性能评估;对步骤(5)的关键路径延迟和总线长度进行性能评估,输出最小关键路径延迟和最短总线长度。
所述步骤(6)的性能评估包括,关键件路径延迟,总线长度,能耗。
所述架构细节描述包括:
选择线ADD10连接第一三极管和第二三极管;选择线ADD0-9连接第一S和第二S;
Din[1:0]通过第一继电器连接第一S,Din[1:0]通过第二继电器连接第二S,Din[1:0]通过第三继电器连接第一H,Din[1:0]通过第四继电器连接第二H;
Wen连接到第一H和第二H;
第一S连接第一三极管,第一H连接第一三极管;第二S连接第二三极管,第二H连接第二三极管;第一三极管和第二三极管均与Dout[1:0]连接;
所述步骤(1)的工作步骤为:
步骤1.1)在ADD10输入为高电平时,选通第一继电器和第三继电器激活soft-bit,且使能有效Wen,ADD0-9根据需要选择第一存储单元或第二存储单元,Din[1:0]往存储单元里面写数据,如果Add10等于1,Add10选择往存储单元的S写数据;如果Add10等于0,Add10选择往存储单元的H写数据;
步骤1.2)在ADD10输入为低电平时选通第二继电器和第四继电器激活hard-bit,且使能有效Wen,ADD0-9选择第一H和第二H,Din[1:0]往第一H和第二H里面写数据,第一H和第二H里面的数据根据需要进行输出。
所述步骤(3)的逻辑块包括:CLB、乘法器,I/O和当前状态的BRAM按需要连接。
所述步骤(3)包括:
步骤3.1):随机产生SLC状态或MLC状态的BRAM存储器;
步骤3.2):将查找表LUT打包成逻辑簇CLB,依据逻辑簇与逻辑簇之间的连接关系,逻辑簇与BRAM存储器的连接关系,逻辑簇和I/O的连接关系生成逻辑簇的网表文件.net。
步骤(4)最优位置布局的依据是依据是模拟退火算法SA,根据两个逻辑块之间最短的time-cost和BB-cost最小进行布置,最优位置缩短了全局总线长度。
所述步骤(5)包括:
步骤5.1):对关键路径延迟和总线长度进行代价评估,得到cost;
步骤5.2):按照SA算法,给出代价初始解cost',然后进行迭代;
步骤5.3):对代价cost和cost'进行做差,如果差值小于零或者e(-Δcost/T)>rand(0,1),则T是SA的退火表的值,然后进入步骤5.4);如果差值大于零,就跳到步骤5.5);
Δcos t=cos t-cos t';
步骤5.4):记录当前打包布局布线状态,将cost'赋值给cost,执行步骤5.5);
步骤5.5):依据SA退火表,更新温度T;
步骤5.6):当cost变化量Δcost在设定范围内时退出迭代,输出根据当前记录的打包布局布线状态得到关键路径延迟和总线长度;进入步骤(6);当cost变化量Δcost在设定范围之外,产生一个基于SLC或MLC状态的BRAM临近解,然后返回步骤(3.2)。
基于非易失性存储器的FPGA BRAM架构,包括:
选择线ADD10连接第一三极管和第二三极管;选择线ADD0-9连接第一S和第二S;
Din[1:0]通过第一继电器连接第一S,Din[1:0]通过第二继电器连接第二S,Din[1:0]通过第三继电器连接第一H,Din[1:0]通过第四继电器连接第二H;
Wen连接到第一H和第二H;
第一S连接第一三极管,第一H连接第一三极管;第二S连接第二三极管,第二H连接第二三极管;第一三极管和第二三极管均与Dout[1:0]连接。
所述FPGA底层硬件包含,查找表,32kb的RAM和乘法器。
S:soft-bit,中文名软比特;
Din[1:0](data input):输入引脚pin0,pin1;
H:hard-bit:硬比特;
Wen(write enable):写使能端,
Dout[1:0](data output):输出引脚pout1,pout2;
Dout[1:0]是STT-MRAM的输出端;
BLOCK RAM的MLC状态有soft-bit和hard-bit,对数据操作可以在这两者之间选择。
VTR7.0的英文全称是Verilog-To-Routing7.0。
两个逻辑块之间比如:CLB与BRAM,I/O与CLB之间等等。
BB的英文全称是Box bound。
在这个算法中我们设置了迭代机制来选择最优解。利用了STT-MRAM能够在SLC状态和MLC状态之间动态的配置,和SLC状态能够快速的访问数据,MLC能够提供双倍的存储空间等特性,通过FPGA的设计流程和退火算法合理的将片上BRAM的状态进行调整,在一定的迭代次数中,使整个电路具有最小的的关键路径延迟和最短的全局总线,最终使BRAM得出一个最好的选择状态。虽然MLC状态的BRAM产生了糟糕的访问延迟,但是通过较高密度的BRAM减少了逻辑单元和相关数据存储之间的物理距离,因此我们可以有更短的关键路径和更好的总体性能,证明了NVM密度和FPGA性能的反直觉关联性。
利用了MLC STT-MRAM能够在SLC状态和MLC状态之间动态的配置,和SLC状态能够快速的访问数据,MLC能够提供双倍的存储空间等特性,通过合理的将片上BRAM的状态进行调整,使整个框架具有更短的关键路径延迟、最短的全局总线和最优的总体特性。
附图说明
图1为传统的FPGA架构;
图2(a)-图2(c)为SLC和MLC架构;
图3(a)为BRAM在SLC状态由VTR7.0CAD流程所产生的物理布局;
图3(b)为BRAM在混合SLC-MLC架构下由VTR7.0CAD流程产生的物理布局;
图4(a)为传统基于SRAM的BRAM;
图4(b)为SLC-MLC架构下的可配置BRAM架构;
图5为算法流程以及与FPGA设计流程的集成。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图3(a)-图3(b)所示,把提出的SLC-MLC可配置BRAM架构和MLC BRAM的设计流程集成到了开源VTR的架构文件和EDA流程中:
1)选择VTR中的FPGA架构文件k6_frac_N10_mem32K_40nm.xml并将其修改来支持提出的BRAM架构,这个架构文件基于Altera Stratix IV GX设备。
2)使用了VTR7.0设计工具,在FPGA的设计流程中每个BRAM的状态需要由软件自动选择,并且对于应用开发人员是透明的。另外每一个逻辑BRAM的状态在数据写入之前需要提前决定。
对于在每个模式下使用的BRAM数量我们有公式1:
<C1;C2;...;CN>;
其中Ci是在模式i所用到的BRAM数量。因此我们定义BRAM状态选择问题的设计空间为公式2:
<(S1,M1);(S2,M2);...;(SN,MN)>,s.t.Si+Mi=Ci;
Si和Mi是在模式i下SLC和MLC状态BRAM所需要BRAM的上限。
对于状态选择问题的设计空间主要由CN限制,N是应用使用的模式数,C是在每个模式下所使用的BRAM块数。
因此我们可以利用上述方法对BRAM数量进行提前决定。
3为了更快的进行设计空间探索提出了一个退火算法(SA)。
提出了一个模拟的退火算法来进行快速的设计空间探索,并将其集成到了开源的VTR7.0CAD的设计流程中。
架构文件k6_frac_N10_mem32K_40nm.xml的修改:
文件的修改是要实现我们提出的架构,为我们的方法提供硬件基础。
如图4(a)所示是源文件中描述的基于SRAM的BRAM架构,拥有2048个内存单元,11条地址线,4条数据线,假设BRAM配置成1K×2的模式,内存单元分为两个slices,每一个拥有1K地址线和1位数据输入输出线。
如图4(b)所示,假设同样有2048个STT-MRAM单元,采用了2-bit MLC技术,所以最大的BRAM容量为4Kbit。假设EDA工具根据应用的数据模式决定要使用2bit数据带宽,我们有2个slices,每一个slice包含1024个STT-MRAM和2-bit数据线(一条软比特使用,一条硬比特使用)。
如何配置状态:
1)通过设置地址线Add10为1来使用SLC状态相应的1K×2模式,所以在两个slices中读写操作都是软比特。
2)我们可以把BRAM中的每一个单元配置成软硬比特都可以使用,对应2K×2模式,最主要的地址线Add10用来配置数据从软比特(Add10为1)还是硬比特(Add10为0)来进行读写。对于同步的读写操作中的访问延迟都作为硬比特延迟。地址线addr11用来选择所有可能的数据带宽模式(4K×1模式)。
修改的具体细节描述如下:
一底层架构
1)增加了一条地址线用来进行所有的模式选择;
2)如表一所示,根据SRAM和STT-MRAM的两种不同RAM的面积比例,我们修改了BRAM的面积数值;
3)原架构中每一个模式都相应的增加了一个MLC状态用来选择;
3.1)MLC状态中的延迟等参数根据表一按照相应的比例设置;
3.2)增加的MLC状态采用的1对多(一个CLB对应多个BRAM)的直连方式;工具设计流程的实施方式:
如图5所示,使用VTR7.0进行FPGA设计的流程为:
步骤(1):输入电路和架构细节描述,benchmark要求使用Verilog 1995版,架构细节描述指的是k6_frac_N10_mem32K_40nm.xml对底层硬件的描述;
步骤(2):进行逻辑综合和优化;
对输入的RTL级电路进行逻辑综合生成门级电路(生成.blif文件),在优化过程中,去掉电路中一些没有用的冗余连线的映射。
步骤(3):打包,将门级电路打包成逻辑块,生成网表文件.net;
步骤(4):进行布局,布局是指工具自动对各个逻辑块最优位置的布置;
步骤(5):进行布线,布线是指工具自动在各个逻辑块之间进行连线,在这之后关键路径延迟和全局总线长度都可以进行测量;
步骤(6):性能评估,评估全局总线是不是最短,关键路径延迟是不是最优。
二退火算法
下面介绍退火算法(SA)在FPGA流程中如何进行快速的设计空间探索,如算法一所示:
步骤(1):在打包之前,首先产生一个随机的状态选择状态(随机解),然后走一遍设计流程;
步骤(2):根据产生的随机解或者上一个被接受的解产生一个临近解;
2.1随机选择一个数据带宽模式i∈[1,N];
2.2Si随机加或减1,根据公式2相应的改变Mi;
步骤(3):然后进行打包、布局和布线;
步骤(3):计算关键路径延迟;
步骤(4):判断是不是优于上次的结果,或者判断是否满足模拟退火算法的最小接受概率,如果满足条件,则更新解和结果继续迭代,刷新温度,如果达到迭代次数或者达到最小温度,则接受这个结果,包括本次迭代过程中最优的SLC-MLC状态、电路和关键路径延迟、总线长度等,否则刷新温度继续迭代。
在系统层面设计时自动化设计流程中需要明确的捕捉到NVM的特性和潜在的平衡性,我们目标集中在基于NVM的FPGA BRAM架构和设计流程中,并且探索了EDA流程中在密度和性能两者之间的权衡,最终生成了一个最优设计。
本发明的架构和设计方法并不受限于一个特定的MLC结构。我们的工作依赖于MLCSTT-MRAM的固有特性,包括soft-bit和hard-bit读写延迟的不对称性;由于hard-bit可以关闭,因此可以减少一半容量为代价,用快速soft-bit提供类似SLC的性能。
下面举一个例子:
“mkPktMerge”是VTR benchmark套件中的一个应用,如图4(a)所示,由VTR(Verilog-ToRouting)7.0CAD流程产生“mkPktMerge”的物理布局布线。对于给定的FPGA架构,这个应用用了15个CLBs和15个BRAMs。图中虚折线是由CAD工具产生的关键路径。
如图4(b)所示,把其中一些BRAM转换到MLC状态(框中部分,通过修改VTR源码对BRAM块进行修改)。相同的应用中,由于MLC BRAM相比于SLC有着双倍的存储容量,所以只用了12个BRAM。预期的CLBs和BRAMs之间的物理距离和关键路径也明显缩短。CLBs和BRAM之间的距离缩短,关键路径也明显的缩短,正如表1所示,当一个MLCBRAM在SLC状态,读写延迟(6.73和25.31个周期)相比于完全MLC状态中由hard-bit决定的延迟大幅度的减小(9.80和56.50个周期)。
相比于纯SLC状态的BRAM架构,混合SLC-MLC BRAM架构的关键路径的长度减少了18.80%。而且更少的BRAM也使总线长度缩减了21.68%。
表1 不同BRAM架构的读写延迟、功耗以及面积
对于BRAM中的模式选择我们以Xilinx UltraScale架构为例。
大量36Kbit BRAMs分布在FPGA上。其中每个BRAM有两个读写端口,能够用作简单双端口(SDP)寄存器(拥有拓展的数据带宽)或者真双口(TDP)寄存器(拥有两个完整的独立访问端口)。36Kbits TDP BRAM的每个端口有15条地址线和36条可输入输出的数据线。一个TDP BRAM可以通过配置在不同的模式下运行,例如32K×1,16K×2,8K×4,4K×9,2K×18或者1K×36。例如,在32K×1模式下,在BRAM中的内存单元被分成有32K条地址线的单个slice和1比特数据输入输出线。而在1K×32K模式,我们有32个slice,每个slice有1K的地址线和1比特的数据输入输出线,所以BRAM的数据带宽是32位,另外还有4位奇偶校验位。每个BRAM端口配置和模式选择是在FPGA设计流程的打包阶段根据目标应用的特点自动选择。
对于BRAM的状态选择,图4(a)显示了FPGA的设计流程。在“打包”阶段,将片上数据打包进逻辑BRAM。逻辑CLBs和BRAM在打包阶段映射FPGA设备上的物理CLBs和BRAM,其中相关联的CLB和BRAM之间的距离最小。
虽然这个FPGA架构提供了灵活的模式选择(例如,最近的Virtex UltraScaleFPGA有10个不同的模式),FPGA应用可能只用了少部分。另外,UltraScale FPGA器件具有数千个片上BRAM块,并且典型的FPGA应用可以使用几十到几千个这些BRAM。因此,在综合阶段仍然有很大的设计空间。在布线后状态的决定对全局性能的影响是显而易见的,尤其是关键路径延迟和其他度量(例如,全局总线长度)。为了快速设计空间探索,我们提出了一个模拟退火算法(SA)。图5展示了这个算法的流程图和FPGA设计流程的集成。详细的算法在如算法1里所示。
通过以上方法,我们提出的混合BRAM架构的高密度特性减少了电路的总线长度,这也减少了导线段,接线盒,开关盒的使用。为了支持SLC-MLC可配置BRAM架构,需要额外的线加到BRAM架构中。因此,SLC状态的总线长度比原始SRAM设置稍微长一点。另一方面,由于更高的密度,提出的架构分别和SRAM与SLC状态相比分别平均减少了总线长度的8.11%和13.84%。甚至相比于高存储密度的MLC状态配置也实现了更短的总线长度(2.65%)。这是因为通道在存储密度很高时运行在一个高应力状态,因此可能需要一个更长的布线通道。和传统基于SRAM的BRAM相比,基于MLC的BRAM架构的优点在于芯片面积和漏泄功率。混合架构的片上BRAM面积与SRAM和SLC状态的配置相比平均减少了88.25%和24.39%。和MLC状态相比,因为有些BRAM需要在SLC状态,所以混合架构增加了84.20%的BRAM面积,因为有些BRAM要运行在SLC状态。最后,由于使用较少的BRAM块和MLC-STTM技术拥有超低的漏写功耗,混合BRAM架构相比于传统的SRAMBRAM漏写功耗减少了98.16%。
1)输入benchmark基准电路和架构细节描述,架构细节描述指的是k6_frac_N10_mem32K_40nm.xml对FPGA底层硬件的描述,FPGA底层硬件包含,输入的查找表,32kb的RAM和乘法器。
1.1)架构描述文件中我们设计的部分包括如图4(b)所示,基本的连线状况为1’(ADD10)作为选择线连接三极管7”9”(高电平有效);三极管8”10”(低电平有效)连接选择器15’,16’;1’(ADD0-9)连接到1”4”;2’(Din[1:0])连接到2”11”5”6”;3’(Wen)连接到3”12”;4’连8’;5’连9’;6’连10’;7’连11’;12’,16’连13’。
1.2)在1’(ADD10)输入为高电平时选通7”9”激活soft-bit,且使能有效3’(Wen),1’(ADD0-9)选择S,2’(Din[1:0])往S里面写数据,且15’16’选择器有效,S里的数据可以进行输出。1.3)在1’(ADD10)输入为低电平时选通8”10”激活hard-bit,且使能有效3’(Wen),
1’(ADD0-9)选择H,2’(Din[1:0])往H里面写数据,且15’16’选择器有效,H里面的数据进行输出。
如图4(a)所示为SRAM BRAM基本架构,1.4)
1(ADD0-9)连接4,7,2;
2(Din[1:0])连接到5,8;
3连接到6和9,
11和10连接到12.
1.5)当3(Wen)有效的时候,1(ADD0-9)访问A、B,可以2(Din[1:0])可以通过5,8进行写,可以通过10、11进行读。
2)逻辑综合和优化。将benchmark基准电路编译成RTL级电路,对输入的RTL级电路进行逻辑综合生成门级电路,对门级电路优化的过程中,对去掉RTL级电路中的冗余连线的映射。
3)打包,将步骤2优化后的门级电路打包成逻辑块,
3.1)随机产生SLC状态或MLC状态的BRAM存储器
3.2)将LUT(查找表)打包成CLB(逻辑簇),依据逻辑簇与逻辑簇之间的连接关系,逻辑簇与BRAM的连接关系,逻辑簇和I/O的连接关系生成逻辑簇的网表文件.net。
4)布局,是指工具VTR7.0利用SA算法对步骤3生成的逻辑块进行最优位置的布置。
5)布线,是指利用工具VTR7.0对步骤3生成的逻辑块进行连线,在对逻辑块(含当前状态BRAM)布线之后,得到该benchmark基准电路的关键路径延迟和总线长度。逻辑块包含,CLB、乘法器,I/O和当前状态的BRAM等。
5.1)对步骤5的关键路径延迟和总线长度进行代价评估,得到cost。
5.2)按照SA算法,给出代价初始解cost’,然后进行迭代。
5.3)对代价cost和cost’进行做差,如果小于零或者e(-Δcost/T)>rand(0,1),T是SA的退火表的值,如果大于零就跳到5.5。
5.4)如果5.3成立,记录当前打包布局布线状态,将cost’赋值给cost,执行5.5;如果5.3不成立执行5.5。
5.5)依据SA退火表,更新温度T。
5.6)当cost变化量在设定范围内时退出迭代,输出根据当前记录的打包布局布线状态得到关键路径延迟和总线长度;进入步骤6;如果在范围之外,产生一个基于SLC或MLC状态的BRAM临近解则返回步骤3.2。
6)性能评估,对步骤5的关键路径延迟和总线长度进行性能评估,输出最小关键路径延迟和最短总线长度。性能评估包括,关键件路径延迟,总线长度,能耗等等。
基于非易失存储器的FPGA片上BRAM架构,旨在减少片上BRAM面积和漏泄功率。我们提出了一个基于非易失存储器的BRAM架构;在VTR7.0工具的FPGA设计流程中我们集成了一个退火算法,利用非易失存储器的特点和退火算法合理的迭代机制快速的进行设计空间探索;利用这个退火算法,我们可以在一定的时间内给片上BRAM找到最好的状态选择,得到最优的解决方案。
本发明的架构采用的是STT-MRAM单元,支持BRAM在SLC状态和MLC状态之间灵活的转换。通过合理的配置BRAM的SLC-MLC状态来使整个架构相比于传统的SRAM架构获得了更短的关键路径延迟和总线长度
我们提出的SLC-MLC混合架构所有BRAM都是MLC架构如图2(a)-图2(c)所示,但我们选择SLC状态时是通过关闭hard-bit只使用soft-bit,soft-bit拥有SLC-like的性能,但是同时也减少了BRAM的容量。
BRAM架构是SLC-MLC可配置的,我们在VTR的底层文件中每个模式下都添加了MLC状态,根据表1设置了MLC状态参数,设置MLC状态为一个CLB可以连接多个BRAM的直连方式。
在模式不同的情况下,数据带宽不同,我们在硬件中增加了一条地址线用来支持全部的模式选择。
我们需要在进行状态转换时涉及到hard-bit的开关,我们在VTR源码中进行了相应的设置。
为了更快的进行快速的设计空间探索提出了一个退火算法,退火算法中设置了相应的迭代机制。开始需要获得一个随机解,随机解需要在设计流程中计算出相应的代价(cost,关键路径延迟)还有温度,作为下一个最优解的选择参考,之后的迭代中要根据前面满足条件的最优解获得临近解,对每一个解的代价都要进行计算,通过跟新最优解和它的代价来选择最优的方案。
临近解的获得基于上一个被接受的最优解,首先需要随机的选择一个数据带宽模式,然后Si增加或者减少1,然后根据公式二Mi相应改变1,得到最新解之后运行到FPGA设计流程中计算代价,不论这个解会不会被接受温度T都要刷新。
最优解的更新需要满足退火算法里面的条件,Δcost<0或者exp(-Δcost/T)>rand(0,1),最后如果迭代次数结束或者温度最小整个过程结束。
Claims (9)
1.基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,包括如下步骤:
步骤(1):输入benchmark基准电路和架构细节描述,架构细节描述指的是k6_frac_N10_mem32K_40nm.xml对Altera Stratix IV GX设备FPGA底层硬件的描述;
步骤(2):逻辑综合和优化:将benchmark基准电路编译成RTL级电路,对RTL级电路进行逻辑综合生成门级电路,对门级电路优化的过程中,对去掉RTL级电路中的冗余连线的映射;
步骤(3):打包,将步骤(2)优化后的门级电路打包成逻辑块;
步骤(4):布局,基于工具VTR7.0利用SA算法对步骤(3)生成的逻辑块进行最优位置的布置;
步骤(5):布线,基于工具VTR7.0对步骤(3)生成的逻辑块进行连线,在对逻辑块布线之后,得到benchmark基准电路的关键路径延迟和总线长度;
步骤(6):性能评估;对步骤(5)的关键路径延迟和总线长度进行性能评估,输出最小关键路径延迟和最短总线长度。
2.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述步骤(6)的性能评估包括,关键件路径延迟,总线长度,能耗。
3.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述架构细节描述包括:
选择线ADD10连接第一三极管和第二三极管;选择线ADD0-9连接第一S和第二S;
Din[1:0]通过第一继电器连接第一S,Din[1:0]通过第二继电器连接第二S,Din[1:0]通过第三继电器连接第一H,Din[1:0]通过第四继电器连接第二H;
Wen连接到第一H和第二H;
第一S连接第一三极管,第一H连接第一三极管;第二S连接第二三极管,第二H连接第二三极管;第一三极管和第二三极管均与Dout[1:0]连接。
4.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述步骤(1)的工作步骤为:
步骤1.1)在ADD10输入为高电平时,选通第一继电器和第三继电器激活soft-bit,且使能有效Wen,ADD0-9根据需要选择第一存储单元或第二存储单元,Din[1:0]往存储单元里面写数据,如果Add10等于1,Add10选择往存储单元的S写数据;如果Add10等于0,Add10选择往存储单元的H写数据;
步骤1.2)在ADD10输入为低电平时选通第二继电器和第四继电器激活hard-bit,且使能有效Wen,ADD0-9选择第一H和第二H,Din[1:0]往第一H和第二H里面写数据,第一H和第二H里面的数据根据需要进行输出。
5.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述步骤(3)的逻辑块包括:CLB、乘法器,I/O和当前状态的BRAM按需要连接。
6.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述步骤(3)包括:
步骤3.1):随机产生SLC状态或MLC状态的BRAM存储器;
步骤3.2):将查找表LUT打包成逻辑簇CLB,依据逻辑簇与逻辑簇之间的连接关系,逻辑簇与BRAM存储器的连接关系,逻辑簇和I/O的连接关系生成逻辑簇的网表文件.net。
7.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
步骤(4)最优位置布局的依据是模拟退火算法SA,根据两个逻辑块之间最短的time-cost和BB-cost最小进行布置,最优位置缩短了全局总线长度。
8.如权利要求1所述的基于非易失性存储器的FPGA BRAM架构设计方法,其特征是,
所述步骤(5)包括:
步骤5.1):对关键路径延迟和总线长度进行代价评估,得到cost;
步骤5.2):按照SA算法,给出代价初始解cost',然后进行迭代;
步骤5.3):对代价cost和cost'进行做差,如果差值小于零或者e(-Δcost/T)>rand(0,1),则T是SA的退火表的值,然后进入步骤5.4);如果差值大于零,就跳到步骤5.5);
Δcos t=cos t-cos t';
步骤5.4):记录当前打包布局布线状态,将cost'赋值给cost,执行步骤5.5);
步骤5.5):依据SA退火表,更新温度T;
步骤5.6):当cost变化量Δcost在设定范围内时退出迭代,输出根据当前记录的打包布局布线状态得到关键路径延迟和总线长度;进入步骤(6);当cost变化量Δcost在设定范围之外,产生一个基于SLC或MLC状态的BRAM临近解,然后返回步骤(3.2)。
9.基于非易失性存储器的FPGA BRAM架构,其特征是,包括:
选择线ADD10连接第一三极管和第二三极管;选择线ADD0-9连接第一S和第二S;
Din[1:0]通过第一继电器连接第一S,Din[1:0]通过第二继电器连接第二S,Din[1:0]通过第三继电器连接第一H,Din[1:0]通过第四继电器连接第二H;
Wen连接到第一H和第二H;
第一S连接第一三极管,第一H连接第一三极管;第二S连接第二三极管,第二H连接第二三极管;第一三极管和第二三极管均与Dout[1:0]连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710335123.4A CN107122565B (zh) | 2017-05-12 | 2017-05-12 | 基于非易失性存储器的fpga bram架构与设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710335123.4A CN107122565B (zh) | 2017-05-12 | 2017-05-12 | 基于非易失性存储器的fpga bram架构与设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122565A true CN107122565A (zh) | 2017-09-01 |
CN107122565B CN107122565B (zh) | 2019-08-30 |
Family
ID=59727542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710335123.4A Active CN107122565B (zh) | 2017-05-12 | 2017-05-12 | 基于非易失性存储器的fpga bram架构与设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122565B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446127A (zh) * | 2018-02-27 | 2019-03-08 | 上海安路信息科技有限公司 | 一种物理bram匹配方法 |
CN110489355A (zh) * | 2019-08-19 | 2019-11-22 | 上海安路信息科技有限公司 | 逻辑bram的映射方法及其系统 |
CN110765710A (zh) * | 2019-10-22 | 2020-02-07 | 清华大学 | 基于非易失器件的通用逻辑综合方法及装置 |
CN111241778A (zh) * | 2020-01-06 | 2020-06-05 | 武汉理工大学 | 一种基于机器学习的fpga自动调参优化方法及系统 |
CN113407258A (zh) * | 2021-07-05 | 2021-09-17 | 武汉理工大学 | 一种存算一体架构的自适应资源配置布局布线方法及系统 |
CN115204103A (zh) * | 2022-09-19 | 2022-10-18 | 中科亿海微电子科技(苏州)有限公司 | 基于cb分类的快速布线方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1875474A (zh) * | 2003-10-31 | 2006-12-06 | 株式会社半导体能源研究所 | 半导体集成电路及其设计方法 |
CN102831273A (zh) * | 2012-08-30 | 2012-12-19 | 锐迪科科技有限公司 | 包含双边沿触发器的数字集成电路设计方法 |
CN103198854A (zh) * | 2013-04-03 | 2013-07-10 | 复旦大学 | FPGA中具有多种写入模式的Block RAM |
CN103914587A (zh) * | 2014-03-03 | 2014-07-09 | 西安电子科技大学 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
CN104239595A (zh) * | 2013-06-24 | 2014-12-24 | 阿尔特拉公司 | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 |
CN104679931A (zh) * | 2013-12-03 | 2015-06-03 | 中国科学院电子学研究所 | 一种用于集成电路布局的加速型模拟退火方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
-
2017
- 2017-05-12 CN CN201710335123.4A patent/CN107122565B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1875474A (zh) * | 2003-10-31 | 2006-12-06 | 株式会社半导体能源研究所 | 半导体集成电路及其设计方法 |
CN102831273A (zh) * | 2012-08-30 | 2012-12-19 | 锐迪科科技有限公司 | 包含双边沿触发器的数字集成电路设计方法 |
CN103198854A (zh) * | 2013-04-03 | 2013-07-10 | 复旦大学 | FPGA中具有多种写入模式的Block RAM |
CN104239595A (zh) * | 2013-06-24 | 2014-12-24 | 阿尔特拉公司 | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 |
CN104679931A (zh) * | 2013-12-03 | 2015-06-03 | 中国科学院电子学研究所 | 一种用于集成电路布局的加速型模拟退火方法 |
CN103914587A (zh) * | 2014-03-03 | 2014-07-09 | 西安电子科技大学 | 一种基于模拟退火/回火现场可编程门阵列布局的方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
Non-Patent Citations (4)
Title |
---|
DARYANAVARD H, ESHGHI M, JAHANIAN A.: "A fast placement algorithm for embedded just-in-time reconfigurable extensible processing platform", 《THE JOURNAL OF SUPERCOMPUTING》 * |
XUE Y, CRONIN P, YANG C, ET AL.: "Routing path reuse maximization for efficient NV-FPGA reconfiguration", 《2016 21ST ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE (ASP-DAC)》 * |
李新,贾智平,鞠雷,赵衍恒,宗子良: "一种面向同构集群系统的并行任务节能调度优化方法", 《计算机学报》 * |
赵军,贾智平: "蚁群与粒子群混合的FPGA布局算法", 《计算机工程与应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446127A (zh) * | 2018-02-27 | 2019-03-08 | 上海安路信息科技有限公司 | 一种物理bram匹配方法 |
CN109446127B (zh) * | 2018-02-27 | 2020-03-24 | 上海安路信息科技有限公司 | 一种物理bram匹配方法 |
CN110489355A (zh) * | 2019-08-19 | 2019-11-22 | 上海安路信息科技有限公司 | 逻辑bram的映射方法及其系统 |
CN110489355B (zh) * | 2019-08-19 | 2020-12-08 | 上海安路信息科技有限公司 | 逻辑bram的映射方法及其系统 |
CN110765710A (zh) * | 2019-10-22 | 2020-02-07 | 清华大学 | 基于非易失器件的通用逻辑综合方法及装置 |
CN110765710B (zh) * | 2019-10-22 | 2021-11-30 | 清华大学 | 基于非易失器件的通用逻辑综合方法及装置 |
CN111241778A (zh) * | 2020-01-06 | 2020-06-05 | 武汉理工大学 | 一种基于机器学习的fpga自动调参优化方法及系统 |
CN111241778B (zh) * | 2020-01-06 | 2022-04-19 | 武汉理工大学 | 一种基于机器学习的fpga自动调参优化方法及系统 |
CN113407258A (zh) * | 2021-07-05 | 2021-09-17 | 武汉理工大学 | 一种存算一体架构的自适应资源配置布局布线方法及系统 |
CN115204103A (zh) * | 2022-09-19 | 2022-10-18 | 中科亿海微电子科技(苏州)有限公司 | 基于cb分类的快速布线方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107122565B (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122565B (zh) | 基于非易失性存储器的fpga bram架构与设计方法 | |
Cong et al. | FPGA-RPI: A novel FPGA architecture with RRAM-based programmable interconnects | |
US9824756B2 (en) | Mapping a lookup table to prefabricated TCAMS | |
CN105814560B (zh) | 用于实现高吞吐量键-值存储的存储器设置 | |
US8438320B2 (en) | Various methods and apparatus for address tiling and channel interleaving throughout the integrated system | |
CN106297861B (zh) | 可扩展的多端口存储器的数据处理方法及数据处理系统 | |
US10678979B2 (en) | Method and apparatus for implementing a system-level design tool for design planning and architecture exploration | |
US9269440B2 (en) | High density search engine | |
US8769450B1 (en) | Synthesis flow for formal verification | |
Paul et al. | MAHA: An energy-efficient malleable hardware accelerator for data-intensive applications | |
CN103019947B (zh) | 一种fpga芯片配置信息模型的层次化构建方法 | |
CN108446412B (zh) | 存储器编译方法、装置及生成的存储器 | |
Xue et al. | Fine-tuning CLB placement to speed up reconfigurations in NVM-based FPGAs | |
CN105426314A (zh) | 一种fpga存储器的工艺映射方法 | |
Paul et al. | Energy-efficient hardware acceleration through computing in the memory | |
Huai et al. | Performance-aware wear leveling for block RAM in nonvolatile FPGAs | |
Dorostkar et al. | Low‐power heterogeneous uncore architecture for future 3D chip‐multiprocessors | |
US7509602B2 (en) | Compact processor element for a scalable digital logic verification and emulation system | |
Srinivasa et al. | Improving FPGA design with monolithic 3D integration using high dense inter-stack via | |
Zhang et al. | Pearl: Performance-aware wear leveling for nonvolatile FPGAs | |
Ottavi et al. | Novel memory designs for QCA implementation | |
Liu et al. | Applying multiple level cell to non-volatile FPGAs | |
US10924117B2 (en) | Method for designing an FPGA | |
JP2022054412A (ja) | マイクロセクタインフラストラクチャに基づくロジックファブリック | |
US20210157607A1 (en) | Dynamic re-evaluation of parameters for non-volatile memory using microcontroller |
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 |