CN104615837A - 一种fpga的物理实现方法及装置 - Google Patents
一种fpga的物理实现方法及装置 Download PDFInfo
- Publication number
- CN104615837A CN104615837A CN201510078555.2A CN201510078555A CN104615837A CN 104615837 A CN104615837 A CN 104615837A CN 201510078555 A CN201510078555 A CN 201510078555A CN 104615837 A CN104615837 A CN 104615837A
- Authority
- CN
- China
- Prior art keywords
- module
- physics realization
- script
- order
- fpga
- 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.)
- Pending
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种FPGA的物理实现方法及装置,该方法包括:设置待实现的工程的配置文件和约束文件,设置物理实现脚本;执行所述物理实现脚本;按照所述物理实现脚本的命令获取所述配置文件和约束文件;按照所述物理实现脚本的命令根据配置文件对所述工程的顶层进行综合,生成顶层网表;按照所述物理实现脚本的命令根据配置文件对工程中的每个模块进行综合,生成每个模块的模块网表;根据约束文件对模块进行约束;按照物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;按照物理实现脚本的命令根据顶层网表对模块之间进行物理布局布线。通过本发明提供的一种FPGA的物理实现方法及装置,能够降低FPGA的物理实现的复杂度。
Description
技术领域
本发明涉及电子技术领域,特别涉及一种FPGA的物理实现方法及装置。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)是一种通用型用户可编程器件。FPGA既具有门阵列器件的高集成度和通用性,又有可编程逻辑器件用户可编程的灵活性。FPGA采用了LCA(Logic Cell Array,逻辑单元阵列),内部包括CLB(Configurable Logic Block,可配置逻辑模块)、IOB(Input Output Block,输出输入模块)和内部连线三个部分。FPGA的基本特点主要有:采用FPGA设计ASIC(Application Specific IntegratedCircuit,特定用途集成电路)电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。FPGA内部有丰富的触发器和I/O引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
为了使FPGA在较高的速度稳定运行,可以对FPGA进行自顶向下层次化实现。这样完成的设计,可以使各模块的可复用性,模块性能以及整体性能都得到大幅提升。
现有技术中,FPGA的自顶向下层次化物理实现过程中的每一步都需要通过人工操作来完成。当FPGA物理实现完成后,如果要进行修改,又需要从头开始操作,工作量大,总之,现有技术中的FPGA的物理实现方法操作复杂。
发明内容
有鉴于此,本发明提供了一种FPGA的物理实现方法及装置,能够降低FPGA的物理实现的复杂度。
一方面,本发明提供了一种FPGA的物理实现方法,包括:设置待实现的工程的配置文件和约束文件,设置物理实现脚本,还包括:执行所述物理实现脚本;
按照所述物理实现脚本的命令获取所述配置文件和约束文件;
按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
根据所述约束文件对模块进行约束;
按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
进一步地,所述根据所述约束文件对模块进行约束,包括:
根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
进一步地,在所述按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线之后,还包括:对每个模块的物理布局布线进行固化。
进一步地,在所述按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线之后,还包括:按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
进一步地,所述物理实现脚本为工具命令语言TCL脚本。
另一方面,本发明提供了一种FPGA的物理实现装置,其特征在于,包括:
第一设置单元,用于设置待实现的工程的配置文件和约束文件;
第二设置单元,用于设置物理实现脚本;
执行单元,用于执行所述物理实现脚本;
获取单元,用于按照所述物理实现脚本的命令获取所述配置文件和约束文件;
顶层综合单元,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
模块综合单元,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
约束单元,用于根据所述约束文件对模块进行约束;
模块布局单元,用于按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
顶层布局单元,用于按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
进一步地,所述约束单元,用于根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
进一步地,还包括:固化单元,用于对每个模块的物理布局布线进行固化。
进一步地,还包括:报告生成单元,用于按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
进一步地,所述物理实现脚本为工具命令语言TCL脚本。
本发明提供的一种FPGA的物理实现方法及装置,预先设置物理实现脚本,按照物理实现脚本的命令进行自动操作,节省了大量人工操作,降低了FPGA的物理实现的复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种FPGA的物理实现方法流程图;
图2是本发明一实施例提供的另一种FPGA的物理实现方法流程图;
图3是本发明一实施例提供的一种FPGA的物理实现装置示意图;
图4是本发明一实施例提供的另一种FPGA的物理实现装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种FPGA的物理实现方法,该方法可以包括以下步骤:
步骤101:设置待实现的工程的配置文件和约束文件;
步骤102:设置物理实现脚本;
步骤103:执行所述物理实现脚本;
步骤104:按照所述物理实现脚本的命令获取所述配置文件和约束文件;
步骤105:按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
步骤106:按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
步骤107:根据所述约束文件对模块进行约束;
步骤108:按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
步骤109:按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
通过本发明实施例提供的一种FPGA的物理实现方法,预先设置物理实现脚本,按照物理实现脚本的命令进行自动操作,节省了大量人工操作,降低了FPGA的物理实现的复杂度。
在对工程进行物理布局布线之前,需要确定每个模块的放置位置和管脚位置。步骤107,包括:
根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
另外,可以需要对任一模块的工作频率、工作时序进行约束,可以在物理约束文件中添加该约束,并在步骤107中实现。
在一种可能的实现方式中,在步骤108之后,还包括:对每个模块的物理布局布线进行固化。
为了能够让用户获知FPGA的资源占用信息,能够根据FPGA的资源占用信息对工程的物理实现进行及时调整,所述步骤109之后,还包括:按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
在一种可能的实现方式中,步骤102,包括:按照命令行模式执行所述物理实现脚本。
在一种可能的实现方式中,所述物理实现脚本为TCL脚本。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种FPGA的物理实现方法,该方法可以包括以下步骤:
步骤201:设置待实现的工程的配置文件和约束文件。
在配置文件中,包括工程中的各个模块、各个模块之间连接关系、各个模块内部的连接关系等。在约束文件中,包括对模块的放置位置的约束、对模块大小的约束、对模块的管脚位置的约束、对模块的工作频率及工作时序的约束等。
步骤202:设置物理实现脚本。
通过该脚本可以自动实现FPGA的物理实现,无需复杂的人工操作。该脚本可以在FPGA的物理实现软件中执行,通过调用该软件的功能来实现FPGA的物理实现。
步骤203:执行所述物理实现脚本。
步骤204:按照所述物理实现脚本的命令获取所述配置文件和约束文件。
步骤205:按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表。
通过该步骤能够从配置文件中提取出物理实现所需要的各个模块之间的逻辑关系,以及每个模块所对应的逻辑单元,并生成顶层网表,以供后续物理实现使用。
步骤206:按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表。
通过该步骤能够从配置文件中提取出物理实现所需要的各个模块内的逻辑电路、各个模块的大小、形状,各个模块对应的逻辑单元之间的连接,并生成模块网表,以供后续物理实现使用。
步骤207:根据所述约束文件对模块进行约束。
通过该步骤可以根据工程的设计要求,对各个模块的放置位置、管脚位置、各个模块的工作频率、工作时序进行约束。
步骤208:按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线。
步骤209:按照所述物理实现脚本的命令对每个模块的物理布局布线进行固化。
步骤210:按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
步骤211:按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
通过本发明实施例提供的一种FPGA的物理实现方法,当对已经物理实现的工程进行修改时,无需通过人工操作重新进行整体布局,只需对配置文件、约束文件修改即可,然后,通过执行物理实现脚本即可物理实现。
如图3、图4所示,本发明实施例提供了一种……。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例……所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种FPGA的物理实现装置,包括:
第一设置单元401,用于设置待实现的工程的配置文件和约束文件;
第二设置单元402,用于设置物理实现脚本;
执行单元403,用于执行所述物理实现脚本;
获取单元404,用于按照所述物理实现脚本的命令获取所述配置文件和约束文件;
顶层综合单元405,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
模块综合单元406,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
约束单元407,用于根据所述约束文件对模块进行约束;
模块布局单元408,用于按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
顶层布局单元409,用于按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
在一种可能的实现方式中,所述约束单元407,用于根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
在一种可能的实现方式中,该装置,还包括:固化单元,用于对每个模块的物理布局布线进行固化。
在一种可能的实现方式中,该装置,还包括:报告生成单元,用于按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
在一种可能的实现方式中,所述物理实现脚本为工具命令语言TCL脚本。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供的一种FPGA的物理实现方法及装置,具有如下有益效果:
通过本发明实施例提供的一种FPGA的物理实现方法及装置,预先设置物理实现脚本,按照物理实现脚本的命令进行自动操作,节省了大量人工操作,降低了FPGA的物理实现的复杂度。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种现场可编程门阵列FPGA的物理实现方法,其特征在于,设置待实现的工程的配置文件和约束文件,设置物理实现脚本,还包括:
执行所述物理实现脚本;
按照所述物理实现脚本的命令获取所述配置文件和约束文件;
按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
根据所述约束文件对模块进行约束;
按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
2.根据权利要求1所述的方法,其特征在于,所述根据所述约束文件对模块进行约束,包括:
根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
3.根据权利要求1所述的方法,其特征在于,在所述按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线之后,还包括:对每个模块的物理布局布线进行固化。
4.根据权利要求1所述的方法,其特征在于,在所述按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线之后,还包括:按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
5.根据权利要求1-4任一所述的方法,其特征在于,所述物理实现脚本为工具命令语言TCL脚本。
6.一种现场可编程门阵列FPGA的物理实现装置,其特征在于,包括:
第一设置单元,用于设置待实现的工程的配置文件和约束文件;
第二设置单元,用于设置物理实现脚本;
执行单元,用于执行所述物理实现脚本;
获取单元,用于按照所述物理实现脚本的命令获取所述配置文件和约束文件;
顶层综合单元,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程的顶层进行综合,生成顶层网表;
模块综合单元,用于按照所述物理实现脚本的命令根据所述配置文件对所述工程中的每个模块进行综合,生成每个模块的模块网表;
约束单元,用于根据所述约束文件对模块进行约束;
模块布局单元,用于按照所述物理实现脚本的命令根据每个模块的模块网表对每个模块进行物理布局布线;
顶层布局单元,用于按照所述物理实现脚本的命令根据所述顶层网表对模块之间进行物理布局布线。
7.根据权利要求6所述的装置,其特征在于,所述约束单元,用于根据所述物理约束文件对每个模块的放置位置以及每个模块的管脚位置进行布局。
8.根据权利要求6所述的装置,其特征在于,还包括:固化单元,用于对每个模块的物理布局布线进行固化。
9.根据权利要求6所述的装置,其特征在于,还包括:报告生成单元,用于按照所述物理实现脚本的命令生成携带FPGA的资源占用信息的报告文件。
10.根据权利要求6-9任一所述的装置,其特征在于,所述物理实现脚本为工具命令语言TCL脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510078555.2A CN104615837A (zh) | 2015-02-13 | 2015-02-13 | 一种fpga的物理实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510078555.2A CN104615837A (zh) | 2015-02-13 | 2015-02-13 | 一种fpga的物理实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104615837A true CN104615837A (zh) | 2015-05-13 |
Family
ID=53150278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510078555.2A Pending CN104615837A (zh) | 2015-02-13 | 2015-02-13 | 一种fpga的物理实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615837A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718644A (zh) * | 2016-01-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种现场可编程门阵列网表生成方法及装置 |
CN112763890A (zh) * | 2020-12-15 | 2021-05-07 | 海光信息技术股份有限公司 | 用于芯片的自适应电压与频率调节的测试电路的实现方法 |
CN114239459A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | Fpga原型设计文件的处理方法、装置、设备及介质 |
CN117852485A (zh) * | 2024-03-01 | 2024-04-09 | 芯能量集成电路(上海)有限公司 | 一种fpga布局布线方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366046A (zh) * | 2013-06-21 | 2013-10-23 | 北京昆腾微电子有限公司 | 在集成电路中实现定制走线的方法 |
CN103678745A (zh) * | 2012-09-18 | 2014-03-26 | 中国科学院微电子研究所 | 一种用于fpga的跨平台多层次集成设计系统 |
-
2015
- 2015-02-13 CN CN201510078555.2A patent/CN104615837A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678745A (zh) * | 2012-09-18 | 2014-03-26 | 中国科学院微电子研究所 | 一种用于fpga的跨平台多层次集成设计系统 |
CN103366046A (zh) * | 2013-06-21 | 2013-10-23 | 北京昆腾微电子有限公司 | 在集成电路中实现定制走线的方法 |
Non-Patent Citations (2)
Title |
---|
张峰等: "用于FPGA的多层次集成设计系统的设计与实现", 《深圳大学学报理工版》 * |
曹华: "基于Tcl脚本语言的ASIC后端设计", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718644A (zh) * | 2016-01-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种现场可编程门阵列网表生成方法及装置 |
CN112763890A (zh) * | 2020-12-15 | 2021-05-07 | 海光信息技术股份有限公司 | 用于芯片的自适应电压与频率调节的测试电路的实现方法 |
CN112763890B (zh) * | 2020-12-15 | 2022-09-16 | 成都海光微电子技术有限公司 | 用于芯片的自适应电压与频率调节的测试电路的实现方法 |
CN114239459A (zh) * | 2022-02-23 | 2022-03-25 | 苏州浪潮智能科技有限公司 | Fpga原型设计文件的处理方法、装置、设备及介质 |
CN114239459B (zh) * | 2022-02-23 | 2022-04-29 | 苏州浪潮智能科技有限公司 | Fpga原型设计文件的处理方法、装置、设备及介质 |
CN117852485A (zh) * | 2024-03-01 | 2024-04-09 | 芯能量集成电路(上海)有限公司 | 一种fpga布局布线方法及系统 |
CN117852485B (zh) * | 2024-03-01 | 2024-06-07 | 芯能量集成电路(上海)有限公司 | 一种fpga布局布线方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678745B (zh) | 一种用于fpga的跨平台多层次集成设计系统 | |
Lavin et al. | Rapid prototyping tools for FPGA designs: RapidSmith | |
Park et al. | Plant model generation for PLC simulation | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN104615837A (zh) | 一种fpga的物理实现方法及装置 | |
CN105718644A (zh) | 一种现场可编程门阵列网表生成方法及装置 | |
CN105303000A (zh) | 一种电路设计方法及系统 | |
CN103150440A (zh) | 一种模块级电路网表仿真方法 | |
CN106326604B (zh) | 一种基于云制造平台的有限元分析服务方法 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
CN104182556A (zh) | 芯片的布局方法 | |
US8769448B1 (en) | Circuit design simulation | |
CN103870617B (zh) | 低频芯片自动布局布线方法 | |
CN103247612A (zh) | 一种增强型flash芯片和一种芯片封装方法 | |
US8893068B1 (en) | Techniques to generate a more accurate simulation model | |
CN105718679A (zh) | 一种fpga的资源布局方法及装置 | |
CN107944183A (zh) | Fpga顶层网表的创建方法、装置、计算机设备及介质 | |
WO2018010520A1 (zh) | 一种芯片架构重构方法、装置和计算机可读存储介质 | |
CN111159967A (zh) | 一种基于网页排名算法的fpga电路布局与资源分配方法 | |
CN105740520A (zh) | Fpga建模方法及装置 | |
CN109885850B (zh) | 一种局部寄存器的生成方法及生成系统 | |
US20150204944A1 (en) | Programmable logic device and verification method therefor | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
CN103309781A (zh) | 基于dsp与fpga的单倍率同步动态内存的检测方法 | |
CN111274750A (zh) | 一种基于可视化建模的fpga仿真验证系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150513 |
|
WD01 | Invention patent application deemed withdrawn after publication |