CN109167595B - 使用部分重构在可编程电路上实施外围器件的方法和装置 - Google Patents

使用部分重构在可编程电路上实施外围器件的方法和装置 Download PDF

Info

Publication number
CN109167595B
CN109167595B CN201810890929.4A CN201810890929A CN109167595B CN 109167595 B CN109167595 B CN 109167595B CN 201810890929 A CN201810890929 A CN 201810890929A CN 109167595 B CN109167595 B CN 109167595B
Authority
CN
China
Prior art keywords
module
instance
component
target device
unit
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.)
Active
Application number
CN201810890929.4A
Other languages
English (en)
Other versions
CN109167595A (zh
Inventor
K·B·布伦哈姆
G·R·丘
J·D·芬德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of CN109167595A publication Critical patent/CN109167595A/zh
Application granted granted Critical
Publication of CN109167595B publication Critical patent/CN109167595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明的各实施方式总体上涉及使用部分重构在可编程电路上实施外围器件的方法和装置。具体地,涉及一种可编程电路,该电路包括在可编程电路的输入输出(IO)外围的物理接口。可编程电路还包括在可编程电路的IO外围的部分可重构(PR)模块以实施可操作用于在PR模块的第一实例期间配置物理接口的定序器单元以及可操作用于在PR模块的第二实例期间将命令转译到物理接口的控制器单元。

Description

使用部分重构在可编程电路上实施外围器件的方法和装置
本申请是申请号为201310065419.0,申请日为“2013年02月07日”,发明名称为“使用部分重构在可编程电路上实施外围器件的方法和装置”的发明专利申请的分案申请。
技术领域
本发明的各实施例涉及目标器件上的外围器件和用于设计目标器件上的外围器件的工具。更具体地,本发明的各实施例涉及一种用于使用部分重构(PR)在可编程电路上实施外围器件的方法和装置。
背景技术
目标器件(比如,现场可编程门阵列(FPGA)、结构化专用集成电路(ASIC)、ASIC和其它可编程电路)用来实施可以包括数以百万计的门和兆位嵌入式存储器的大型系统。大型系统的复杂性经常需要使用电子设计自动化(EDA)工具以向物理目标器件上创建和优化用于系统的设计。在计算机辅助设计(CAD)编译流程中,由EDA工具所执行的过程包括用于系统的硬件描述语言(HDL)的创建以及系统在目标器件上的综合、布局和布线。
设计器经常希望在目标器件上实施多个外围器件。外围器件在输入输出外围驻留于目标器件的边缘附近,并且利用输入输出元件以发送和接收来自目标器件外部的部件的信号。在目标器件的输入输出外围的示例性外围器件可以包括存储器控制器、直接存储器存取(DMA)控制器、通用异步接收器/发送器(UART)、总线控制器和其它器件。
许多外围器件利用需要大量空间的部件。这在必须在目标器件的外围用有限的空间量工作时对系统设计器和EDA工具提出了挑战。
发明内容
根据本发明的一个实施例,标识并且使用部分重构(PR)来时间复用外围器件中在不同时间操作的部件以实现目标器件上的面积节省。PR涉及在编译期间为目标器件上的PR模块设计多个实例。PR模块的每个实例代表可以被实施用于PR模块的不同电路描述。可以将所选PR模块从第一实例重构成第二实例,而目标器件上的其它PR模块和静态模块保持于有效操作中。
公开了一种可编程电路。该可编程电路包括在可编程电路的输入输出(IO)外围的物理接口。可编程电路还包括在可编程电路的IO外围的PR模块。PR模块实施可操作用于在PR模块的第一实例期间配置物理接口的定序器单元,以及可操作用于在PR模块的第二实例期间将命令转译到物理接口的控制器单元。
附图说明
通过例子举例说明本发明的各实施例的特征和优点而未旨在使本发明的各实施例的范围限于所示具体实施例。
图1是图示了根据本发明的一个实施例的示例性部分重构(PR)设计的示图。
图2是图示了根据本发明的一个示例性实施例的用于在目标器件上采用PR模块设计系统的方法的流程图。
图3图示了根据本发明的一个实施例的目标器件上的系统的示例性平面图。
图4是图示了根据本发明的第一实施例的使用部分重构在可编程电路上所实施的外围器件的框图。
图5是图示了根据本发明的第二实施例的使用部分重构在可编程电路上所实施的外围器件的框图。
图6图示了根据本发明的一个实施例的实施系统设计器的计算机系统的框图。
图7图示了根据本发明的一个实施例的系统设计器的框图。
图8图示了根据本发明的一个实施例的示例性目标器件。
具体实施方式
在以下描述中,出于说明的目的,阐述具体术语以提供对本发明实施例的透彻理解。本领域技术人员将清楚可以无需描述中的具体细节以实现本发明的实施例。在其它实例中,以框图形式示出了公知电路、器件和程序以免不必要地模糊本发明的实施例。
图1是图示了根据本发明的一个实施例的用于系统的示例性设计100的示图,该设计使用部分重构(PR)。设计100包括实例化五个较低级模块A-E的顶级模块110。每个模块包括在寄存器传送级所描述的多个部件。模块A、模块C和模块E以及顶级模块110是静态逻辑模块。根据本发明的一个实施例,静态逻辑模块在被编程于目标器件上之后不发生变化。模块B和模块D是PR模块。PR模块B具有标注为B1-B4的四个可能实例。PR模块D具有标注为D1-D3的三个可能实例。根据本发明的一个实施例,PR模块包括多个可能实例,其中PR模块的第一实例可以在PR模块被编程于目标器件上之后变成PR模块的第二实例。PR模块的每个实例代表可以被实施用于PR模块的不同的寄存器传送级(RTL)。
根据本发明的一个实施例,PR模块的每个实例包括一个或者多个输入端口和一个或者多个输出端口。每个输入端口和输出端口与目标器件上的相同静态逻辑对接,从而PR模块的边界在逻辑上是一致的。PR模块的每个实例的输入端口可以由可配置随机存取存储器(CRAM)位编程以从在其边界的静态逻辑接收数据。类似地,PR模块的每个实例的输出端口可以由CRAM位编程以向在其边界的静态逻辑发送数据。注意到可以用寄存器、查找表(LUT)、接线或者其它部件实施在PR模块的边界的静态逻辑。
图2是图示了根据本发明的一个示例性实施例的用于在目标器件上采用PR模块设计系统的方法的流程图。目标器件可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、结构化ASIC或者其它可编程电路或器件。根据一个实施例,图2中所示过程可以由计算机系统上所实施的计算机辅助设计(CAD)/电子设计自动化(EDA)工具执行。在201,标识系统的外围器件中在不同时间操作的部件。由于部件在不同时间操作,所以可以使用部分重构在目标器件上时间复用一些部件以实现面积节省。根据本发明的一个实施例,当外围器件是外部存储器接口时,控制器单元和定序器单元可以是外围器件中使用部分重构在目标器件上被时间复用的部件。应当注意到可以分析并且标识其它类型的外围器件上的其它部件以被时间复用。
在202,生成硬件描述语言(HDL)设计定义以描述系统。响应于由设计器所提供的系统的规范来生成HDL。可以通过设计录入工具由设计器提供规范。规范可以描述系统中的部件和互连。根据本发明的一个实施例,在HDL中描述规范的将被实施为静态逻辑模块的标识部分和规范的在PR模块中被时间复用的标识部分。
在203,系统被综合。综合包括生成系统的将由目标器件实施的逻辑设计。根据本发明的一个实施例,综合根据HDL设计定义来生成系统的包括静态逻辑模块和PR模块的优化逻辑表示。综合还包括映射优化逻辑设计。映射包括确定如何用目标器件上的具体资源实施优化逻辑表示中的逻辑门和逻辑元件。根据本发明的一个实施例,根据映射生成网表。该网表可以是根据HDL生成的优化技术映射网表。
在204,为系统的设计生成平面图。根据本发明的一个实施例,平面图向在202所生成的综合逻辑指定目标器件上的物理位置(“平面图区域”)。根据本发明的一个实施例,可以向根据综合生成的静态模块和PR模块中的每个模块指派目标器件上的平面图区域,例如,参见下文所描述的图3的示例平面图300。
在205,对系统布局。根据本发明的一个实施例,布局涉及到在向模块指派的平面图区域将映射的逻辑系统设计布局于目标器件上。布局对技术映射网表工作以产生用于每个功能块的布局。根据本发明的一个实施例,布局包括通过确定逻辑设计上的哪些资源将用于具体逻辑元件以及如在综合期间所确定的那样被确定用于实施系统的其它功能块来使系统相配于目标器件上。布局可以包括聚类,聚类涉及到将逻辑元件分组在一起以形成目标器件上存在的逻辑簇。根据本发明的一个实施例,在布局的早期阶段执行聚类并且聚类在布局预备阶段期间出现在综合之后。
在206,对已布局的设计布线。根据本发明的一个实施例,分配布线资源以提供在静态逻辑模块和PR模块中的逻辑门、逻辑元件和其它部件之间的互连。还可以对已布局的逻辑设计执行可布线性优化。根据本发明的一个实施例,可布线性优化的目标是减少用来连接已布局的逻辑设计中的部件的布线数量。可布线性优化可以包括执行扇出分割、逻辑复制、逻辑重布或者其它过程。注意到可以对已布局的逻辑设计执行一个或者多个过程。
在207,执行组装过程。组装过程涉及到创建多个数据文件,这些数据文件包括由所述编译过程所确定的信息。数据文件可以是可以用来对整个目标器件编程的位流或者可以用来仅对目标器件的具体部分编程的位流。根据本发明的一个实施例,图2中所示的过程可以由在第一计算机系统上执行的EDA工具来执行。可以向第二计算机系统发送所生成的数据文件以允许进一步处理系统的设计。备选地,可以向可以用来根据系统设计对目标器件编程的第二计算机系统发送数据文件。注意到还可以用其它形式(比如在显示设备或者其它介质上)输出系统的设计。可以用数据文件对目标器件编程,该数据文件包括用于对整个芯片编程或者初始化的信息,并且可以使用其它数据文件对部分芯片重新编程,该其它数据文件包含用于仅对那些部分编程的信息。通过用数据文件对目标器件编程,在物理上变换目标器件上的部件以实施系统。
图2是图示了本发明的一个实施例的流程图。可以依次地、并行地或者按照除了所描述的顺序和可以对所述过程进行重复的顺序之外的顺序来执行所示的一些技术。注意到,并非要求执行所述所有技术,可以添加附加技术,并且一些所示技术可以用其它技术来替换。
图3图示了用于图1中所示设计100的示例性平面图300。分别向静态模块A、静态模块C、静态模块E和顶级模块指派平面图区域310、平面图区域312、平面图区域314和平面图区域315。向PR模块B指派平面图区域311并且因此向实例B1-B4隐式地指派平面图区域311。向PR模块D指派平面图区域313并且因此向实例D1-D3隐式地指派平面图区域313。根据本发明的一个实施例,平面图区域可以具有任何尺度或者形状并且无需邻接。注意到平面图可以响应于由设计器所提供的有关向模块指派的平面图区域的尺寸、形状和/或位置的输入由CAD/EDA工具生成。备选地,平面图可以通过独自分析综合输出网表并且独立于由设计器所提供的任何输入由CAD/EDA工具生成。
图4是图示了根据本发明的第一实施例的使用部分重构在可编程电路上所实施的外围器件400的框图。外围器件400驻留于目标器件的输入输出(IO)外围。在该实施例中,外围器件400是外部存储器接口。外部存储器接口400在两个状态中操作。在第一状态中,设置并且校准外部存储器接口400用于使用。在第二状态中,外部存储器接口400运行并且工作以服务于与外部存储器接口400分离的用户电路410的操作。尽管需要一些部件以支持两个状态,但是存在仅在第一状态或者第二状态中使用的其它部件。通过将仅在两个状态之一中使用的部件划分进将由部分重构模块实施的部分重构区域中,可以通过实施外部存储器接口400的具体状态所需要的部件来实现逻辑和面积节省。
外部存储器接口400包括用于部分重构模块的部分重构区域420。部分重构模块包括控制器单元421。控制器单元421可操作用于将通过本地接口402从用户电路410所接收的存储器读取和写入请求转译成用于与一个或者多个存储器设备通信的命令、时序和信令电平。
部分重构模块还包括定序器单元422。定序器单元422可操作用于通过内部总线401发送和接收到一个或者多个存储器设备的测试图案并且经由物理接口(PI)控制404修改物理接口450中的延迟元件以对到一个或者多个存储器设备的命令关于存储器时钟正确地定时。根据本发明的一个实施例,物理接口450包括外围的硬化逻辑。外围中的硬化逻辑的例子包括输入输出元件(IOE)、缓冲器、外部寄存器、延迟链、延迟锁相环和其它电路。定序器单元422可以使用物理接口控制404以控制物理接口450中的延迟,比如个别数据延迟和数据选通延迟以及由物理接口450所使用的用于调平和到芯的初始捕获的FIFO中的内部先入先出(FIFO)控制。
根据本发明的一个实施例,部分重构模块可以实施控制器单元421或者定序器单元422,因为这些部件的使用是互斥的。部分重构模块上的端口包括用来与物理接口450通信的内部总线401、到用户电路410的本地接口402、到重构控制逻辑单元440的重构控制逻辑(RCL)接口403以及到物理接口450的物理接口控制404。控制器单元421和定序器单元422在有效时均使用内部总线401。仅在控制器单元421有效时使用本地接口402,并且仅在定序器单元422有效时使用物理接口控制404。
外部存储器接口400包括选择器430。根据本发明的一个实施例,必须从内部总线401、本地接口402和物理接口控制404接收有效数据。外部存储器接口400在重构期间使用选择器430以控制物理接口450接收什么。选择器430被实施于部分重构区域420以外并且包括两个输入。选择器430的第一输入被耦合到内部总线401。选择器430的第二输入被耦合到恒定值的源。对于恒定值的选择可以依赖于对于内部总线401在重构期间所希望的状态。在重构期间,提示选择器430输出恒定值而不是从内部总线401到物理接口450的输出。应当注意到,可以实施选择器430为芯逻辑或者硬化电路。在外围器件400的备选实施例中,部分重构区域可以在重构期间驱动恒量,这将消除对选择器430的使用。
外部存储器接口400包括重构控制逻辑单元440。在将部分重构模块从其中实施定序器单元422的第一实例重构成其中实施控制器单元421的第二实例期间,重构控制逻辑440经由选择信号提示选择器430输出恒定值。在完成重构之后,重构控制逻辑440提示选择器430在内部总线401上输出值。根据本发明的一个实施例,定序器单元422经由RCL接口403就重构何时启动和何时完成重构来通知重构控制逻辑单元440。由于与重构关联的时间延迟,定序器单元422可以在向重构控制逻辑单元440发信号通知校准完成之前将外部存储器置于自刷新模式中,并且控制单元421可以在已经完成校准之后使外部存储器脱离自刷新模式。
根据本发明的一个实施例,仅在校准期间使用定序器单元422。在校准之后,将来自定序器单元422的物理接口控制404设置成无效。重构控制逻辑单元440在重构期间并且在控制器单元421有效时通过解断言(deasserting)物理接口(PI)控制使能信号405来禁用物理接口控制404。通过禁用物理接口控制404,杂散或者随机信号不会出现在物理接口450上。
仅在校准之后和在重构之后使用控制器单元421。在校准和重构之前,本地接口402不必从用户电路410向控制器单元421发送数据。根据本发明的一个实施例,从发信号通知校准和重构完成的重构控制逻辑单元440发送的就绪信号与来自控制器单元421的waitrequest/readdatavalid信号进行逻辑“与”运算以向用户电路410指示来自本地接口402的数据是有效的。应当注意到,可以使用这一机制的其它配置。例如,可以向用户电路410直接发送来自重构控制逻辑单元440的就绪信号。
已经描述了重构控制逻辑单元440结合并且响应于所描述的定序器单元422来操作。应当注意到,重构控制逻辑单元440也可以响应于用户来操作。这允许用户发起重新校准和设置。
图5是图示了根据本发明的第二实施例使用部分重构在可编程电路上所实施的外围器件500的框图。在这一实施例中,外围器件500也是外部存储器接口。外部存储器接口500在三个状态中操作。在第一状态中,设置并且校准外部存储器接口500用于使用。在第二状态中,外部存储器接口500运行并且工作以服务于与外部存储器接口500分离的用户电路410的操作。在第三状态中,无需与外部存储器的接口,并且交换出外部存储器接口500中的部件。尽管需要外部存储器接口500中的一些部件以支持所有三个状态,但是存在仅在第一、第二或者第三状态中使用的其它部件。通过将仅在三个状态之一中使用的部件划分进将由部分重构模块实施的部分重构区域中,可以通过实施外部存储器接口500的具体状态所需要的部件来实现逻辑节省。
外部存储器接口500包括与参照图4中所示外部存储器接口400所描述的部件相似的部件。外部存储器接口500也包括可操作用于向外部存储器发送命令以在PR模块的第三实例期间将外部存储器保持在有效状态中的接口维持单元(IMU)523。接口维持单元523也可以包括其它部件或者执行除了接口外部存储器之外可能对系统有用的其它功能。在重构部分重构模块以实施第三状态之前,控制器单元421或者定序器单元422可以通过发出适当命令来将外部存储器置于自刷新模式中。可以将存储器信号驱动成恒定值从而让控制器单元421和定序器单元422所需要的所有面积可用于重构。当外部存储器处于自刷新模式中时,可以保存外部存储器的原始内容,从而当对需要访问外部存储器的配置编程时,所有先前的数据仍然是可用的。
图4和图5描述了本发明的其中外围器件400和外围器件500是外部存储器接口的实施例。然而,应当注意到,外围器件400和外围器件500的一些方面也可以用来实施其它类型的器件和接口。例如,外围器件400和外围器件500可以用来实施总线控制器、DMA控制器、UART和其它外围器件,上述外围器件利用可以通过使用部分重构被时间复用的部件以实现可编程电路上的面积节省。在这些其它实施例中,控制器单元421、定序器单元422和重构控制逻辑单元440可以执行用于支持这些实施例的其它或者附加功能。
图6是其中驻留本发明的一个示例实施例的示例性的计算机系统600的框图。计算机系统600包括处理数据信号的处理器610。处理器601耦合到在处理器601与计算机系统600中的其它部件之间传输数据信号的CPU总线610或者其它交换结构。
计算机系统600包括存储器613。存储器613可以存储由数据信号所代表的可以由处理器601执行的指令和代码。桥接存储器控制器611耦合到CPU总线610和存储器613。桥接存储器控制器611在处理器601、存储器613和计算机系统600中的其它部件之间指引数据信号并且在CPU总线610、存储器613和第一IO总线620之间桥接数据信号。根据本发明的一个实施例,处理器601可以直接耦合到存储器613并且与存储器613通信而无桥接存储器控制器611。
第一IO总线620可以是单个总线或者多个总线的组合。第一IO总线620提供在计算机系统600中的部件之间的通信链路。网络控制器621耦合到第一IO总线620。网络控制器621可以将计算机系统600链接到计算机网络(未示出)并且支持在机器之间的通信。显示设备控制器622耦合到第一IO总线620。显示设备控制器622允许显示设备(未示出)耦合到计算机系统600并且充当显示设备与计算机系统600之间的接口。
第二IO总线630可以是单个总线或者多个总线的组合。第二IO总线630提供在计算机系统600中的部件之间的通信链路。数据存储设备631耦合到第二IO总线630。输入接口632耦合到第二IO总线630。输入接口632允许输入设备耦合到计算机系统600并且向计算机系统600发送来自输入设备的数据信号。总线桥接器623将第一IO总线620耦合到第二IO总线630。总线桥接器623操作以缓冲并且桥接在第一IO总线620与第二IO总线630之间的数据信号。应当注意到,具有不同架构的计算机系统也可以用来实施计算机系统600。
系统设计器640可以驻留在存储器613中并且由处理器601来执行。系统设计器640可以操作以标识用于时间复用的外围器件的部件、生成HDL、综合系统、生成平面图、将系统布局于目标器件上、将系统布线于目标器件上、组装系统和/或执行诸如图2中所描述的其它过程。
图7图示了根据本发明的一个实施例的系统设计器700。系统设计器700可以是用于在目标器件(比如FPGA、结构化专用集成电路(ASIC)、ASIC或者其它可编程电路)上设计系统的EDA工具。图7图示了实施系统设计器700的一个实施例的模块。根据一个实施例,模块代表软件模块并且可以通过诸如图6中所示的计算机系统执行由图7中所示模块所代表的指令序列来执行系统设计。对指令序列的执行如下文将描述的那样使计算机系统支持系统设计。在备选实施例中,可以使用硬接线电路取代或结合软件指令来实施本发明的实施例。因此,本发明的实施例不限于硬件电路与软件的任何具体组合。系统设计器700包括设计器管理器710。设计器管理器710连接到系统设计器700的部件并且在这些部件之间传输数据。
系统设计器700包括部件分析器单元720。部件分析器单元720标识系统的外围器件中在不同时间操作的部件。由于部件在不同时间操作,所以可以使用部分重构在目标器件上时间复用一些部件以实现面积节省。根据本发明的一个实施例,当外围器件是外部存储器接口时,控制器单元和定序器单元可以是外围器件中使用部分重构在目标器件上被时间复用的部件。
系统设计器700包括HDL生成单元730。HDL生成单元响应于由设计器所提供的系统的规范来生成描述系统的HDL。规范可以通过设计输入工具由设计器提供。规范可以描述系统中的部件和互连。根据本发明的一个实施例,在HDL中描述对规范的将被实施为静态逻辑模块的部分和规范的可以在PR模块中被时间复用的部分的标识。
系统设计器700包括执行综合的综合单元740。综合单元740生成将在目标器件上实施的系统的逻辑设计。根据系统设计器700的一个实施例,综合单元740采取概念性HDL设计定义并且由HDL设计定义来生成包括静态逻辑模块和PR模块的系统的优化逻辑表示。由综合单元740所生成的系统的优化逻辑表示可以包括如下表示,该表示具有系统所需要的最小化数目的功能块和寄存器(比如逻辑门和逻辑元件)。备选地,由综合单元740所生成的系统的优化逻辑表示可以包括具有减少的逻辑深度并且生成较低的信号传播延迟的表示。
综合单元740也执行技术映射。技术映射涉及到确定如何利用目标器件上的具体资源(比如单元)来实施优化逻辑表示中的功能块和寄存器从而创建优化的“技术映射”网表。技术映射网表说明了目标器件上的资源(单元)如何被用来实施系统。在其中目标器件是FPGA的一个实施例中,技术映射网表可以包括诸如逻辑阵列块(LAB)、寄存器、存储器块、数字信号处理(DSP)块、输入输出(IO)元件或者其它部件等单元。
系统设计器700包括平面规划单元750。平面规划单元750为系统的设计生成平面图。根据本发明的一个实施例,平面图向由综合单元740所生成的综合逻辑指定目标器件上的物理位置(“平面图区域”)。根据本发明的一个实施例,可以向由综合所生成的静态模块和PR模块中的每个模块指派目标器件上的平面图区域。
系统设计器700包括处理优化技术映射网表以产生用于每个功能块的布局的布局单元760。布局标识目标器件上的哪些部件或者区域将用于具体的功能块和寄存器。
系统设计器700包括执行布线的布线单元770。布线单元770确定目标器件上将用来在实施逻辑设计的功能块和寄存器的部件之间提供互连的布线资源。
系统设计器700包括执行组装过程的组装单元780,该组装过程创建数据文件,该数据文件包括由系统设计器700所生成的系统的设计。数据文件可以是可以用来对目标器件编程的位流。组装单元780可以输出数据文件从而可以存储数据文件或者备选地向用来对目标器件编程的单独的机器发送数据文件。应当注意到,组装单元780也可以用其它形式(比如在显示设备或者其它介质上)输出系统的设计。
应当注意到,本发明的实施例可以作为计算机程序产品或者软件而被提出,其可以包括具有指令的计算机可读或者机器可读介质。在计算机可读或者机器可读介质上的指令可以用来对计算机系统或者其它电子设备编程。机器可读介质可以包括但不限于软盘、光盘、CD-ROM和磁光盘或者适合于存储电子指令的其它类型的介质/机器可读介质。这里描述的技术不限于任何特定的软件配置。它们可以在任何计算或者处理环境中发现适用性。这里所用术语“计算机可读介质”或者“机器可读介质”应当包括任何如下介质,该介质能够存储或者编码用于由计算机执行的指令序列并且使计算机执行这里描述的方法中的任何一种。另外,在本领域中将以一种形式或者另外一种形式(例如程序、过程、流程、应用、模块、单元、逻辑等)存在的软件称为采取动作或者引起结果是常见的。这样的表达仅为陈述由处理系统对软件的执行使处理器执行动作以产生结果的一种简写方式。
图8图示了可以用来实施根据本发明的一个实施例的目标器件的器件800。器件800是包括多个逻辑阵列块(LAB)的现场可编程门阵列(FPGA)。每个LAB可以由多个逻辑块、进位链、LAB控制信号、查找表(LUT)链和寄存器链连接线形成。逻辑块是提供用户逻辑功能的高效实施的小逻辑单元。逻辑块包括一个或者多个组合单元和寄存器,其中每个组合单元具有单个输出。根据本发明的一个实施例,逻辑块可以与比如在由
Figure BDA0001756937280000131
Corporation制造的Stratix或者Cyclone器件中发现的逻辑元件(LE)或者比如在由Xilinx Inc.制造的Virtex器件中发现的组合逻辑块(CLB)相似地操作。在这一实施例中,逻辑块可以包括具有可配置寄存器的四输入LUT。根据本发明的一个备选实施例,逻辑块可以与比如在由AlteraCorporation制造的Stratix器件中发现的自适应逻辑模块(ALM)相似地操作。贯穿器件800将LAB分组成行和列。多列LAB如811-816所示。应当注意到,逻辑块可以包括附加的或者备选的部件。
器件800包括存储器块。存储器块可以例如是提供上至各种频率、上至各种位宽的专用真实双端口、简单双端口或者单端口存储器的双端口随机存取存储器(RAM)块。存储器块可以在所选LAB之间贯穿器件被分组成列或者被单独地或成对地定位于器件800中。多列存储器块如821-824所示。
器件800包括数字信号处理(DSP)块。DSP块可以用来实施具有加法或者减法特征的各种配置的乘法器。DSP块包括移位寄存器、乘法器、加法器和累加器。DSP块可以贯穿器件800被分组成列并且如831所示。
器件800包括多个输入/输出元件(IOE)840。IOE 840驻留在器件800的外围。每个IOE馈给器件800上的IO管脚(未示出)。IOE 840位于绕器件800的外围的LAB行和列的末端。每个IOE可以包括双向IO缓冲器和用于寄存输入、输出和输出使能信号的多个寄存器。
器件800可以包括诸如LAB本地互连线、行互连线(“H型接线”)和列互连线(“V型接线”)(未示出)之类的布线资源以对目标器件上的部件之间的信号进行布线。
在前述说明书中,已经参照本发明的具体示例性实施例描述了其实施例。然而,明显的是,可以对之进行各种修改和改变而未脱离本发明的实施例的更广泛的精神和范围。因而,将在说明性的而非限制性的意义上看待说明书和附图。

Claims (20)

1.一种用于在目标器件上设计系统的方法,所述方法包括:
标识在不同时间操作的、所述系统中的第一部件和所述系统中的第二部件;
划分所述第一部件和所述第二部件,使得所述第一部件由所述目标器件上的部分可重构(PR)模块的第一实例实施并且所述第二部件由所述PR模块的第二实例实施,其中所述PR模块的所述第一实例和所述第二实例中的每个实例包括所述PR模块的不同的电路描述;以及
生成用于所述系统的重构控制逻辑单元,所述重构控制逻辑单元响应于用户输入来发起所述PR模块的所述第一实例和所述第二实例。
2.根据权利要求1所述的方法,其中所述不同的电路描述中的每个电路描述与相同的静态逻辑对接。
3.根据权利要求1所述的方法,还包括:
综合所述系统;
生成用于所述系统的平面图;
根据所述平面图将所述系统布局在所述目标器件上;以及
将所述系统布线在所述目标器件上。
4.根据权利要求1所述的方法,其中所述第一部件包括定序器单元,所述定序器单元在所述PR模块的第一实例期间配置物理接口;并且所述第二部件包括控制器单元,所述控制器单元在所述PR模块的第二实例期间将命令转译到所述物理接口。
5.根据权利要求4所述的方法,其中所述PR模块利用所述目标器件上的一个或多个资源,以在所述第一实例中实施所述定序器单元以及在所述第二实例中实施所述控制器单元。
6.根据权利要求1所述的方法,其中所述第二部件在所述PR模块的所述第二实例中占用所述目标器件上的一个位置,所述位置是先前被所述第一部件在所述PR模块的所述第一实例期间所占用的。
7.一种非暂态计算机可读介质,其包括存储在其上的一系列指令,所述指令使得计算机执行一种方法,所述方法包括:
标识在不同时间操作的、系统上的第一部件和第二部件;
划分所述第一部件和所述第二部件,使得所述第一部件由部分可重构(PR)模块的第一实例实施并且所述第二部件由所述PR模块的第二实例实施,其中所述PR模块的所述第一实例和所述第二实例中的每个实例包括所述PR模块的不同的电路描述;以及
生成用于所述系统的重构控制逻辑单元,所述重构控制逻辑单元响应于用户输入来发起所述PR模块的所述第一实例和所述第二实例。
8.根据权利要求7所述的非暂态计算机可读介质,其中所述不同的电路描述中的每个电路描述与相同的静态逻辑对接。
9.根据权利要求8所述的非暂态计算机可读介质,其中所述方法还包括:
综合所述系统;
生成用于所述系统的平面图;
根据所述平面图将所述系统布局在目标器件上;以及
将所述系统布线在所述目标器件上。
10.根据权利要求7所述的非暂态计算机可读介质,其中所述第一部件包括定序器单元,所述定序器单元在所述PR模块的第一实例期间配置物理接口;并且所述第二部件包括控制器单元,所述控制器单元在所述PR模块的第二实例期间将命令转译到所述物理接口。
11.根据权利要求10所述的非暂态计算机可读介质,其中所述PR模块利用目标器件上的一个或多个资源,以在所述第一实例中实施所述定序器单元以及在所述第二实例中实施所述控制器单元。
12.根据权利要求7所述的非暂态计算机可读介质,其中所述第二部件在所述PR模块的所述第二实例中占用目标器件上的一个位置,所述位置是先前被所述第一部件在所述PR模块的所述第一实例期间所占用的。
13.一种系统设计器,包括:
部件分析器单元,所述部件分析器单元标识在不同时间操作的第一部件和第二部件,所述部件分析器单元划分所述第一部件和所述第二部件,使得所述第一部件由部分可重构(PR)模块的第一实例实施并且所述第二部件由所述PR模块的第二实例实施,其中所述PR模块的所述第一实例和所述第二实例中的每个实例包括所述PR模块的不同的电路描述;并且所述部件分析器单元生成重构控制逻辑单元,所述重构控制逻辑单元响应于用户输入来发起所述PR模块的所述第一实例和所述第二实例。
14.根据权利要求13所述的系统设计器,还包括:
综合单元,其将所述PR模块与静态模块进行综合;
平面规划单元,其生成用于所述系统的目标器件上的平面图;
布局单元,其根据所述平面图将所述系统布局在所述目标器件上;以及
布线单元,其将所述系统布线在所述目标器件上。
15.根据权利要求13所述的系统设计器,其中所述不同的电路描述中的每个电路描述与相同的静态逻辑对接。
16.一种可编程电路,包括:
物理接口;
部分可重构(PR)模块,其在所述PR模块的第一实例期间实施第一部件,并且在所述PR模块的第二实例期间实施第二部件,其中所述PR模块的所述第一实例和所述第二实例中的每个实例包括所述PR模块的不同的电路描述;以及
重构控制逻辑单元,其响应于用户输入来发起所述PR模块的所述第一实例和所述第二实例。
17.根据权利要求16所述的可编程电路,其中所述PR模块利用所述可编程电路上的一个或多个资源,以在所述第一实例中实施所述第一部件以及在所述第二实例中实施所述第二部件。
18.根据权利要求16所述的可编程电路,其中所述第二部件在所述PR模块的所述第二实例中占用所述可编程电路上的一个位置,所述位置是先前被所述第一部件在所述PR模块的所述第一实例期间所占用的。
19.根据权利要求16所述的可编程电路,还包括选择器,其将所述PR模块耦合到所述物理接口,其中所述选择器在所述PR模块的重构期间向所述物理接口发送有效数据。
20.根据权利要求16所述的可编程电路,其中所述第一部件是定序器单元,并且所述第二部件是控制器单元。
CN201810890929.4A 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置 Active CN109167595B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/368,437 2012-02-08
US13/368,437 US8476926B1 (en) 2012-02-08 2012-02-08 Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
CN201310065419.0A CN103258074B (zh) 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201310065419.0A Division CN103258074B (zh) 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置

Publications (2)

Publication Number Publication Date
CN109167595A CN109167595A (zh) 2019-01-08
CN109167595B true CN109167595B (zh) 2022-07-05

Family

ID=47747360

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810890929.4A Active CN109167595B (zh) 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置
CN201310065419.0A Active CN103258074B (zh) 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201310065419.0A Active CN103258074B (zh) 2012-02-08 2013-02-07 使用部分重构在可编程电路上实施外围器件的方法和装置

Country Status (3)

Country Link
US (3) US8476926B1 (zh)
EP (1) EP2627005B1 (zh)
CN (2) CN109167595B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8476926B1 (en) * 2012-02-08 2013-07-02 Altera Corporation Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
US9530483B2 (en) 2014-05-27 2016-12-27 Src Labs, Llc System and method for retaining dram data when reprogramming reconfigurable devices with DRAM memory controllers incorporating a data maintenance block colocated with a memory module or subsystem
US9984194B2 (en) * 2015-09-15 2018-05-29 Arm Limited Integrated circuit design
CN105807263B (zh) * 2016-03-28 2018-03-16 北京航空航天大学 一种fpga部分重构在雷达信号处理中的装置及其实现方法
CN107608255A (zh) * 2016-07-12 2018-01-19 深圳市中兴微电子技术有限公司 一种芯片架构重构方法和装置
WO2018228693A1 (en) 2017-06-15 2018-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Hardware platform based on fpga partial reconfiguration for wireless communication device
US10608641B2 (en) * 2018-07-20 2020-03-31 Xilinx, Inc. Hierarchical partial reconfiguration for programmable integrated circuits
US10541686B1 (en) * 2018-11-15 2020-01-21 Xilinx, Inc. Circuit and method for ensuring a stable IO interface during partial reconfiguration of a reprogrammable integrated circuit device
CN112380807B (zh) * 2020-11-06 2022-08-09 成都海光集成电路设计有限公司 重布线层过孔阵列的放置方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7235999B2 (en) * 2004-04-30 2007-06-26 Xilinx, Inc. System monitor in a programmable logic device
CN101169866A (zh) * 2006-10-26 2008-04-30 朱明程 自重构片上多媒体处理系统及其自重构实现方法
US7576557B1 (en) * 2008-03-26 2009-08-18 Xilinx, Inc. Method and apparatus for mitigating one or more event upsets
CN101630306A (zh) * 2009-08-14 2010-01-20 西北工业大学 动态可重构装置以及用该装置进行动态可重构的方法
CN101911298A (zh) * 2008-01-16 2010-12-08 美光科技公司 用于交叉点可变电阻材料存储器的三维和三维肖特基二极管、其形成工艺及其使用方法
US7890916B1 (en) * 2008-03-25 2011-02-15 Xilinx, Inc. Debugging using a virtual file system interface
CN102016612A (zh) * 2008-02-21 2011-04-13 惠瑞捷(新加坡)私人有限公司 利用有源器件的并行测试电路

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6725441B1 (en) * 2000-03-22 2004-04-20 Xilinx, Inc. Method and apparatus for defining and modifying connections between logic cores implemented on programmable logic devices
US6326806B1 (en) * 2000-03-29 2001-12-04 Xilinx, Inc. FPGA-based communications access point and system for reconfiguration
US7308608B1 (en) * 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7394284B2 (en) * 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7233532B2 (en) * 2004-04-30 2007-06-19 Xilinx, Inc. Reconfiguration port for dynamic reconfiguration-system monitor interface
US7490311B1 (en) * 2004-11-12 2009-02-10 Xilinx, Inc. Reset manager
EP1713007B1 (en) * 2005-04-11 2008-09-17 STMicroelectronics S.r.l. A dynamically reconfigurable System-on-Chip comprising a plurality of reconfigurable gate array devices
US7793248B1 (en) * 2005-11-23 2010-09-07 Altera Corporation Method and apparatus for parameterizing hardware description language code in a system level design environment
US8224638B1 (en) * 2006-01-31 2012-07-17 Xilinx, Inc. Managing programmable device configuration
US7565280B2 (en) * 2006-02-17 2009-07-21 National Instruments Corporation Solver for simulating a system in real time on a programmable hardware element
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
US7535254B1 (en) * 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
WO2009039566A1 (en) * 2007-09-25 2009-04-02 Michael Reznik Reconfigurable numeric accelerator
US8069329B1 (en) * 2008-01-28 2011-11-29 Lattice Semiconductor Corporation Internally triggered reconfiguration of programmable logic devices
US7765512B1 (en) * 2008-03-25 2010-07-27 Xilinx, Inc. Relocatable circuit implemented in a programmable logic device
US20100058274A1 (en) * 2008-09-04 2010-03-04 Alcatel Lucent Flexible hardware upgrade mechanism for data communications equipment
CN101436225B (zh) * 2008-12-11 2010-09-15 国网电力科学研究院 一种动态局部可重构嵌入式数据控制器芯片的实现方法
US7932743B1 (en) * 2010-02-03 2011-04-26 Xilinx, Inc. Sequentially configurable programmable integrated circuit
US8671377B2 (en) * 2011-03-03 2014-03-11 Altera Corporation Method and apparatus for placement and routing of partial reconfiguration modules
US8686753B1 (en) * 2011-04-08 2014-04-01 Altera Corporation Partial reconfiguration and in-system debugging
US8751998B2 (en) * 2011-07-01 2014-06-10 Altera Corporation Method and system for partial reconfiguration simulation
US8476926B1 (en) * 2012-02-08 2013-07-02 Altera Corporation Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
US8786310B1 (en) * 2012-08-17 2014-07-22 Xilinx, Inc. Partially programming an integrated circuit using control memory cells
US8910109B1 (en) * 2013-08-12 2014-12-09 Altera Corporation System level tools to support FPGA partial reconfiguration

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7235999B2 (en) * 2004-04-30 2007-06-26 Xilinx, Inc. System monitor in a programmable logic device
CN101169866A (zh) * 2006-10-26 2008-04-30 朱明程 自重构片上多媒体处理系统及其自重构实现方法
CN101911298A (zh) * 2008-01-16 2010-12-08 美光科技公司 用于交叉点可变电阻材料存储器的三维和三维肖特基二极管、其形成工艺及其使用方法
CN102016612A (zh) * 2008-02-21 2011-04-13 惠瑞捷(新加坡)私人有限公司 利用有源器件的并行测试电路
US7890916B1 (en) * 2008-03-25 2011-02-15 Xilinx, Inc. Debugging using a virtual file system interface
US7576557B1 (en) * 2008-03-26 2009-08-18 Xilinx, Inc. Method and apparatus for mitigating one or more event upsets
CN101630306A (zh) * 2009-08-14 2010-01-20 西北工业大学 动态可重构装置以及用该装置进行动态可重构的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Configuration Reusing in On-Line Task Scheduling for Reconfigurable Computing Systems;Maisam Mansub Bassiri等;《Journal of Computer Science & Technology》;20110515(第03期);144-147 *
多功能复杂信号侦察可配置计算模型;吴巨红等;《国防科技大学学报》;20101215(第06期);315-318 *

Also Published As

Publication number Publication date
EP2627005A2 (en) 2013-08-14
US9384312B2 (en) 2016-07-05
US8476926B1 (en) 2013-07-02
US20160283636A1 (en) 2016-09-29
US9852255B2 (en) 2017-12-26
US20130263070A1 (en) 2013-10-03
EP2627005B1 (en) 2018-05-30
CN103258074B (zh) 2018-08-24
CN109167595A (zh) 2019-01-08
CN103258074A (zh) 2013-08-21
EP2627005A3 (en) 2017-05-17

Similar Documents

Publication Publication Date Title
CN109167595B (zh) 使用部分重构在可编程电路上实施外围器件的方法和装置
US10797702B2 (en) Apparatus for flexible electronic interfaces and associated methods
US10242146B2 (en) Method and apparatus for placing and routing partial reconfiguration modules
US9026967B1 (en) Method and apparatus for designing a system on multiple field programmable gate array device types
US10678979B2 (en) Method and apparatus for implementing a system-level design tool for design planning and architecture exploration
US8793629B1 (en) Method and apparatus for implementing carry chains on FPGA devices
US8578306B2 (en) Method and apparatus for performing asynchronous and synchronous reset removal during synthesis
US8141018B1 (en) Method and apparatus for using slack potential data to design a system on a field programmable gate array
US20200050729A1 (en) Method and apparatus for relocating design modules while preserving timing closure
US7730438B2 (en) Methods and apparatuses for designing multiplexers
Gupta et al. Design and implementation of 32-bit controller for interactive interfacing with reconfigurable computing systems
US9355198B1 (en) Method and apparatus for performing late binding of control status registers in a design compilation flow
US8281271B1 (en) Method and apparatus for performing lutmask based delay modeling

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