CN100395762C - 可编程核版图自动生成方法 - Google Patents
可编程核版图自动生成方法 Download PDFInfo
- Publication number
- CN100395762C CN100395762C CNB2005101102624A CN200510110262A CN100395762C CN 100395762 C CN100395762 C CN 100395762C CN B2005101102624 A CNB2005101102624 A CN B2005101102624A CN 200510110262 A CN200510110262 A CN 200510110262A CN 100395762 C CN100395762 C CN 100395762C
- Authority
- CN
- China
- Prior art keywords
- mux
- programme
- nuclear
- repetitive
- select
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明属于版图自动生成技术领域,具体为一种可编程核版图自动生成方法。该方法包括:由可编程核的结构描述和基本单元库,生成四输入LUT、输入连接盒、输出连接盒以及开关盒,得到电路网表并以Verilog文件形式输出。然后按照从下往上、从左到右的顺序,基于重复单元采用O-Tree算法进行布图。再把编程点连接到最近的SRAM。结果以DEF文件形式输出,并将该文件导入到布线工具中进行布线,进而得到可编程核的版图。本发明方法可缩短系统开发时间,降低系统开发成本。
Description
技术领域
本发明属版图自动生成技术领域,具体涉及一种可缩短系统开发周期、降低系统开发成本的可编程核版图自动生成方法。
技术背景
面向特定应用领域的集成电路设计(ASIC),具有性能高、功耗低的优点,但所设计的电路不具有可重配置性。一旦用户要求发生变化,电路就要重新设计,因为用于生产集成电路的整套掩模板必须更换。因此,系统开发时间长,所投入的人力成本、系统测试成本高。
现场可编程门阵列(FPGA),与ASIC相比,性能低、功耗大,但电路具有可重配置性。当用户所要求的逻辑功能发生变化时,电路的硬件结构并不需要重新设计。用户只需要在FPGA的软件系统中重新设计电路,然后通过下载电缆把配置信息写入SRAM(StaticRamdon Access Memory),即可使电路具有不同的逻辑功能。生产FPGA电路所需要的整套掩模板并不会因为电路逻辑功能的变化而更换。因此使用FPGA开发系统能够缩短开发时间,降低系统测试成本。
把可重配置功能融入ASIC电路中,当要求电路功能发生变化,并且该变化在所设计的应用领域范围内时,可以通过对电路重新配置,从而使电路具有所要求的功能。可重配置ASIC电路的应用范围比ASIC电路广,性能和功耗均优于FPGA。由于是面向特定应用领域,可重配置ASIC电路中的可编程核必然有特定的要求。如果完全由人工生成可编程核版图,那么系统的开发周期必定很长。
发明内容
本发明的目的在于提出一种能够缩短系统开发周期、降低系统开发成本的可编辑核版图自动生成方法。
本发明提出的可编程核版图自动生成方法,是根据用户输入的可编程核结构描述、面积约束以及基本单元库,自动生成可编程核版图。(附图1)其基本步骤为:由可编程核的结构描述和基本单元库,生成四输入LUT、输入连接盒、输出连接盒以及开关盒,得到电路网表并以Verilog文件形式输出。然后按照从下往上、从左到右的顺序,基于重复单元采用O-Tree算法进行布图。在进行布图的时候,利用下载编程SRAM的等价性,不考虑SRAM与编程点之间的连接。在布图完成后,把编程点连接到最近的SRAM。布图结果以DEF文件形式输出,该文件可以导入到布线工具中进行布线,进而得到可编程核的版图。整个过程中,用户只需输入结构描述文件和面积约束文件,可编程核版图就可以通过计算机运行得到,因此可编程核的开发将比人工开发快得多。
附图说明
图1为本发明的流程框图。
图2为四输入LUT结构图。
图3为1选2多路选择器结构图。
图4为1选4多路选择器结构图。
图5为一个4×8的矩阵开关盒对应的两分图。
图6为4×8的矩阵开关盒图示。
图7为电路中各元件的连接关系图示。
图8为左下角重复单元布局图示。
图9为右下角重复单元布局图示。
图10为左上角重复单元布局图示。
图11为右上角重复单元布局图示。
图12为生成版图。
具体实施方式
本发明提出的可编程核版图自动生成方法,具体实施步骤如下:
步骤1:文件输入
a)可编程核结构描述:
1.重复单元阵列的行数和列数,
2.各行,各列的布线通道宽度,
3.用于编程下载的SRAM的地址线和数据线的宽度,
4.可编程核地址线和数据线输入端口的位置;,
b)基本单元库:
1.2选1多路选择器,
2.4选1多路选择器,
3.或非门,
4.非门,
5.三态门,
6.2×2的通用型开关盒,
7.4单元的SRAM存储器;
c)面积约束:
1.可编程核版图面积,
2.版图面积长宽比,
步骤2:单元内电路生成
a)四输入LUT
4个4选1多路选择器并排构成第一级,1个4选1多路选择器构成第二级,LUT的四个输入端平均分成两组,分别与第一级和第二级的选择控制端相连接;
(附图2)
b)输入连接盒
用2选1多路选择器和4选1多路选择器构成2L选1输入多路选择器(其中L是正整数),并把多路选择器的数据输入端连接到布线通道,选择控制端连接到下载编程的SRAM,输出端连接到LUT的输入端,从而实现布线通道到LUT输入的全连通;
其中,输入多路选择器构造可采用如下构造法则:
M4,4选1多路选择器,
M2,2选1多路选择器,
S,编程多路选择,来自SRAM,
S|i j,S中的第i个元素到第j个元素所构成的向量,
I,来自布线通道的输入,
I|i j,I中的第i个元素到第j个元素所构成的向量,
n,布线通道中的布线线段数,
c)输出连接盒
用1选2多路选择器(附图3)和1选4多路选择器(附图4)构成1选2L输出多路选择器(其中L是正整数),并把多路选择器的数据输入端连接到LUT输出端,选择控制端连接到下载编程的SRAM,输出端连接到布线通道,从而实现LUT输出到布线通道的全连通;
其中,输出多路选择器可采用如下构造法则:
D4,1选4多路选择器,
D2,1选2多路选择器,
S,编程多路选择,来自SRAM,
S|i j,S中的第i个元素到第j个元素所构成的向量,
O,到布线通道的输出,
O|i j,O中的第i个元素到第j个元素所构成的向量,
n,布线通道中的布线线段数;
d)开关盒
用2×2的通用型开关盒构造所需要的开关盒。假设水平布线通道的宽度是2m,垂直布线通道宽度为2n。则在其交叉点上需要一个2m×2n的开关盒。首先引入一个两分图(H,V,E),其中顶点集H和V中的每一个顶点分别代表水平及垂直布线通道中的一对布线线段,所以有|H|=m及|V|=n。E是边的集合,如果对于两个顶点h∈H,和v∈V,存在(h,v)∈E,则说明h和v所代表的布线线段对可以通过一个2×2的开关盒进行选通。生成开关盒结构的问题可以表述为:给定H和V,确定E,使得对于 都有d(v)>0,并且max(d(v)|v∈H∪V取值最小,其中d(v)为顶点v的度。采用如下的步骤确定两分图得到矩形SB的结构:
1.初始的两分图为(H,V,φ)
2.选择两个顶点h∈H及v∈V,满足
d(h)=min(d(h′))|h′∈H及d(v)=min(d(v′))|v.∈V
3.使E=E∪(h,v)
4.如果满足 d(v)>0则结束,否则重复步骤2
一个4×8的矩阵开关盒及其对应的两分图见附图5。在两分图中,上排的4个顶点及下排的2个顶点分别与垂直布线通道内的8根布线线段及水平布线通道内的4根布线线段对应。例如,顶点“v1&v2”代表垂直布线通道内编号为1及2的一对布线线段,而顶点“h1&h2”则代表水平布线通道内编号为1及2的一对布线线段。当这两个顶点之间有边连接的时候,则表示在两队布线线段的交叉点上有一个2×2开关盒进行选通(附图6)。
e)SRAM
调用库中的4单元SRAM存储器。
步骤3:生成网表
建立可编程核中各电路元件之间的连接关系,每一电路元件都来自于基本单元库。所述的电路连接包含两部分内容:
a)重复单元内的电路连接
每一重复单元都由基本单元库中的元件连接而成,描述重复单元内库元件之间的连接关系。
b)可编程核版图的电路连接
整个可编程核版图由基本单元库中的元件连接而成。以Verilog网表的形式描述整个可编程核版图的电路连接关系,并以文件形式输出。
步骤4:基于重复单元的布局
在可编程核中,重复单元内各元件连接关系紧密,而各重复单元之间的连接关系比较松散,因此基于重复单元的布局可以采用O-Tree算法[3]。规则如下:
a)根据面积约束,确定可编程核版图的高度和宽度
b)对可编程核版图面积进行水平划分
n,重复单元阵列的行数,
m,重复单元阵列的列数,
i=1,2,...n,
j=1,2,...m,
Aij,第i行,第j列重复单元中所有库元件版图面积之和,
Atotal,可编程核中所有库元件版图面积之和,
H,可编程核版图的高度,
Hi,所划分的第i行水平区域高度,
c)按照从下往上、从左到右的顺序,一个接一个地对各重复单元采用O-Tree算法进行布局。在对当前重复单元进行布局时,下边界是前一行重复单元布局结果的上边界,左边界是前一重复单元布局结果的右边界。采用费用函数:
Cij=max(hij,Hi)wij
Cij,第i行,第j列重复单元布图时的费用,
hij,第i行,第j列重复单元版图的高度,
wij,第i行,第j列重复单元版图的宽度,
Hi,第i行水平区域的高度,
d)分配编程点
在重复单元布局完成后,各编程点和用于下载编程的SRAM都有了具体的物理位置。分配编程点就是把编程点的引脚和SRAM连接起来,并要求连线尽可能短。具体步骤为:
1.任意找一编程点,
2.把该编程点与最近的SRAM连起来,
3.若还有编程点没有连接SRAM则回到1,否则结束;
步骤5:DEF文件输出
DEF文件是描述集成电路后端版图设计的文本文件。布局结果以DEF文件形式输出,就可以导入到布线工具中,进而得到可编程核的版图。
步骤6:把生成的Verilog网表和DEF文件导入商用EDA工具,生成可编程核版图并进行版图验证。
在晶体管数目相当的前提下,采用本方法自动生成所得到的版图面积约为人工设计版图面积的3倍,而完全采用EDA工具综合所得到的版图面积约为人工版图面积的7倍。
以规模为2×2的可编程核开发为例,来进一步说明本发明的整个过程。
1)在结构描述文件中定义可编程核的规模为2×2,左侧垂直布线通道宽度为8,右侧布线通道宽度为4,上侧布线通道宽度为8,下侧布线通道宽度为4。
2)生成四输入LUT、输入连接盒、输出连接盒以及开关盒,各重复单元的网表,可编程核的网表。其中可编程核的网表以Verilog文件形式输出。这样,就以网表的形式建立了电路中各元件的连接关系。(附图7)
3)从下往上、从左到右,对每一个重复单元采用O-Tree算法进行布局。可编程核的规模为2×2,因此共有4个重复单元,需要对这4个重复单元按顺序进行布局。
a)左下角重复单元布局。
从库中调用元件,由O-Tree算法确定各元件的位置,从而得到左下角重复单元布局。(附图8)
b)右下角重复单元布局。
根据已经布局的结果,确定当前布局的边界(图中的灰框表示左边界)。然后,从库中调用元件,由O-Tree算法确定各元件的位置。(附图9)
c)左上角重复单元布局。
根据已经布局的结果,确定当前布局的边界(图中的灰框表示下边界)。然后,从库中调用元件,由O-Tree算法确定各元件位置。(附图10)
d)右上角重复单元布局。
根据已经布局的结果,确定当前布局的边界(图中的灰框表示左边界和下边界)。然后,从库中调用元件,由O-Tree算法确定各元件位置。(附图11)经过4次O-Tree布局后,就得到了可编程核的布局。
4)布局结果以DEF文件形式输出,导入到布线工具中进行布线,生成版图。(附图12)
5)把可编程核的Verilog网表和版图导入版图验证工具中,进行版图验证。
参考文献:
1)Xilinx,Inc.Xilinx 4000series product specification.1999
2)Actel Inc.proASIC-plus Flash Family FPGAs Data Sheets,2002
3)Guo P N,Cheng C K,Yoshimura T.an o-tree representation of non-slicing floorplan andits applications.Proceedings of the 36th design automation conference 1999 268-273
Claims (5)
1.一种可编程核版图自动生成方法,其特征在于基本步骤如下:由可编程核的结构描述和基本单元库,生成四输入LUT、输入连接盒、输出连接盒以及开关盒,得到电路网表并以Verilog文件形式输出;然后按照从下往上、从左到右的顺序,基于重复单元采用O-Tree算法进行布图;再把编程点连接到最近的SRAM,布图结果以DEF文件形式输出,将该文件导入到布线工具中进行布线,进而得到可编程核的版图;这里,所述DEF文件是描述集成电路后端版图设计的文本文件。
2.根据权利要求1所述可编程核版图自动生成方法,其特征在于具体步骤如下:
步骤1:文件输入
a)可编程核结构描述:
1.重复单元阵列的行数和列数,
2.各行,各列的布线通道宽度,
3.用于编程下载的SRAM的地址线和数据线的宽度,
4.可编程核地址线和数据线输入端口的位置;
b)基本单元库:
1.2选1多路选择器,
2.4选1多路选择器,
3.或非门,
4.非门,
5.三态门,
6.2×2的通用型开关盒,
7.4单元的SRAM存储器;
c)面积约束:
1.可编程核版图面积,
2.版图面积长宽比,
步骤2:单元内电路生成
a)四输入LUT
4个4选1多路选择器并排构成第一级,1个4选1多路选择器构成第二级,LUT的四个输入端平均分成两组,分别与第一级和第二级的选择控制端相连接;
b)输入连接盒
用2选1多路选择器和4选1多路选择器构成2L选1输入多路选择器,L是正整数,并把多路选择器的数据输入端连接到布线通道,选择控制端连接到下载编程的SRAM,输出端连接到LUT的输入端,从而实现布线通道到LUT输入的全连通;
c)输出连接盒
用1选2多路选择器和1选4多路选择器构成1选2L输出多路选择器,L是正整数,并把多路选择器的数据输入端连接到LUT输出端,选择控制端连接到下载编程的SRAM,输出端连接到布线通道,从而实现LUT输出到布线通道的全连通;
d)开关盒
用2×2的通用型开关盒构造所需要的开关盒,首先引入一个两分图(H,V,E),其中顶点集H和V中的每一个顶点分别代表水平及垂直布线通道中的一对布线线段,所以有|H|=m及|V|=n,E是边的集合;生成开关盒结构的问题表述为:给定H和V,确定E,使得对于 ,都有d(v)>0,并且max(d(v))|v∈H∪V取值最小,其中d(v)为顶点v的度,采用如下的步骤确定两分图得到矩形SB的结构:
1.初始的两分图为(H,V,φ)
2.选择两个顶点h∈H及v∈V,满足
d(h)=min(d(h′))|h′∈H及d(v)=min(d(v′))|v′∈V
3.使E=E∪(h,v)
如果满足 则结束,否则重复步骤2;这里,“max”函数为求最大值函数,“min”函数为求最小值函数;
e)SRAM
调用库中的4单元SRAM存储器;
步骤3:生成网表
建立可编程核中各电路元件之间的连接关系,每一电路元件都来自于基本单元库;所述的电路连接包含两部分内容:
a)重复单元内的电路连接
每一重复单元都由基本单元库中的元件连接而成,描述重复单元内库元件之间的连接关系;
b)可编程核版图的电路连接
整个可编程核版图由基本单元库中的元件连接而成,以Verilog网表的形式描述整个可编程核版图的电路连接关系,并以文件形式输出;
步骤4:基于重复单元的布局
步骤5:DEF文件输出
布局结果以DEF文件形式输出,并导入到布线工具中,进而得到可编程核的版图;
步骤6:把生成的Verilog网表和DEF文件导入商用EDA工具,生成可编程核版图并进行版图验证。
5.根据权利要求2所述可编程核版图自动生成方法,其特征在于所述基于重复单元的布局的规则如下:
a)采用根据面积约束,确定可编程核版图的高度和宽度,
b)对可编程核版图面积进行水平划分,
n,重复单元阵列的行数,
m,重复单元阵列的列数,
i=1,2,...n,
j=1,2,...m,
Aij,第i行,第j列重复单元中所有库元件版图面积之和,
Atotal,可编程核中所有库元件版图面积之和,
H,可编程核版图的高度,
Hi,所划分的第i行水平区域高度,
c)按照从下往上、从左到右的顺序,一个接一个地对各重复单元采用O-Tree算法进行布局;在对当前重复单元进行布局时,下边界是前一行重复单元布局结果的上边界,左边界是前一重复单元布局结果的右边界;采用费用函数:
Cij=max(hij,Hi)wij
Cij,第i行,第j列重复单元布图时的费用,
hij,第i行,第j列重复单元版图的高度,
wij,第i行,第j列重复单元版图的宽度,
Hi,第i行水平区域的高度,
c)分配编程点
具体步骤为:
(1)任意找一编程点,
(2)把该编程点与最近的SRAM连起来,
(3)若还有编程点没有连接SRAM则回到1,否则结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101102624A CN100395762C (zh) | 2005-11-10 | 2005-11-10 | 可编程核版图自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101102624A CN100395762C (zh) | 2005-11-10 | 2005-11-10 | 可编程核版图自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1760879A CN1760879A (zh) | 2006-04-19 |
CN100395762C true CN100395762C (zh) | 2008-06-18 |
Family
ID=36706948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101102624A Expired - Fee Related CN100395762C (zh) | 2005-11-10 | 2005-11-10 | 可编程核版图自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100395762C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054081A (zh) | 2009-10-30 | 2011-05-11 | 新思科技有限公司 | 应用于集成电路的物理设计验证的方法及其装置 |
CN102542083B (zh) * | 2010-12-23 | 2015-12-02 | 深圳市同创国芯电子有限公司 | 基于连接关系树的层次化单元端口调整方法 |
CN103793565B (zh) * | 2014-01-26 | 2017-04-26 | 深圳市兴森快捷电路科技股份有限公司 | 一种快速生成网表的方法 |
CN105740492A (zh) * | 2014-12-12 | 2016-07-06 | 北京华大九天软件有限公司 | 一种用于Memory Compiler的netlist生成时进行连线的方法 |
CN106469227A (zh) * | 2015-08-14 | 2017-03-01 | 北京华大九天软件有限公司 | 一种自动搭建级联电路的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513118A (en) * | 1993-08-25 | 1996-04-30 | Nec Usa, Inc. | High level synthesis for partial scan testing |
CN1206159A (zh) * | 1997-07-23 | 1999-01-27 | 三洋电机株式会社 | 三维造型装置和方法 |
CN1208902A (zh) * | 1997-07-28 | 1999-02-24 | 夏普公司 | 图形准备设备 |
-
2005
- 2005-11-10 CN CNB2005101102624A patent/CN100395762C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513118A (en) * | 1993-08-25 | 1996-04-30 | Nec Usa, Inc. | High level synthesis for partial scan testing |
CN1206159A (zh) * | 1997-07-23 | 1999-01-27 | 三洋电机株式会社 | 三维造型装置和方法 |
CN1208902A (zh) * | 1997-07-28 | 1999-02-24 | 夏普公司 | 图形准备设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1760879A (zh) | 2006-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lemieux et al. | Design of interconnection networks for programmable logic | |
CN1713185B (zh) | 数据流图处理方法、可重构电路及处理装置 | |
EP0701713B1 (en) | Field programmable logic device with dynamic interconnections to a dynamic logic core | |
US6467074B1 (en) | Integrated circuit architecture with standard blocks | |
US5802349A (en) | Method for generating an optimized integrated circuit cell library | |
US8191035B1 (en) | Tool with graphical interconnect matrix | |
CN100395762C (zh) | 可编程核版图自动生成方法 | |
CN107924428A (zh) | 可编程逻辑ic的块存储器布局和体系架构及其操作方法 | |
CN104182556B (zh) | 芯片的布局方法 | |
WO2005062212A1 (en) | Template-based domain-specific reconfigurable logic | |
US20190131970A1 (en) | Embedded FPGA with Multiple Configurable Flexible Logic Blocks Instantiated and Interconnected by Abutment | |
Behrens et al. | Hierarchical partitioning | |
Mak et al. | Board-level multiterminal net routing for FPGA-based logic emulation | |
Brzozowski et al. | Universal Design Method of n-to-2n decoders | |
CN103828239A (zh) | 集成电路 | |
CN109902040A (zh) | 一种集成fpga和人工智能模块的系统芯片 | |
US7994818B2 (en) | Programmable interconnect network for logic array | |
Banerjee et al. | Fast FPGA placement using space-filling curve | |
TW202240455A (zh) | 多位元胞元 | |
Ramanidharan | Enabling CAD Support for the Field Programmable Transistor Array | |
Banerjee et al. | Faster placer for island-style FPGAs | |
US20230342418A1 (en) | Efficient Triangular Systolic Array-Based Matrix Inversion | |
Wu et al. | Silicon compilation from register-transfer schematics | |
US20230053664A1 (en) | Full Die and Partial Die Tape Outs from Common Design | |
Takeya et al. | A generator for high-density macrocells with hierarchical structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080618 Termination date: 20131110 |