CN106775455A - 具有可调整内存边界的嵌入式存储器块 - Google Patents
具有可调整内存边界的嵌入式存储器块 Download PDFInfo
- Publication number
- CN106775455A CN106775455A CN201611048413.2A CN201611048413A CN106775455A CN 106775455 A CN106775455 A CN 106775455A CN 201611048413 A CN201611048413 A CN 201611048413A CN 106775455 A CN106775455 A CN 106775455A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- subregion
- integrated circuit
- portion point
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了具有可调整内存边界的嵌入式存储器块。提供了一种用于配置存储器块部分的集成电路。所述集成电路可以包括被分区成第一和第二存储器块部分的存储器块。所述第一存储器块部分具有第一存储器类型,并且所述第二存储器块部分具有不同于所述第一存储器类型的第二存储器类型。所述集成电路进一步包括被配置成用于接收配置数据的控制电路。所述配置数据可以包括存储器分区信息,所述存储器分区信息用于当未使用所述第一存储器块部分的一部分时,将所述第一和第二存储器块部分重新分区成第一和第二重新分区的存储器块部分。所述存储器分区信息还可以包括存储器分区约束,所述存储器分区约束包括所述第二重新分区的存储器块部分的起始点地址和要在所述第二重新分区的存储器块部分中分区的若干至少一个内存段。
Description
本申请要求于2015年11月24日提交的美国专利申请号14/951,352的优先权,该申请特此通过引用以其全部内容结合在此。
背景技术
如FPGA等可编程设备通常包括数以千计的可编程逻辑单元,可编程逻辑单元使用逻辑门和/或查找表的组合来执行逻辑操作。可编程设备还包括具有被适配于特定逻辑操作的专用逻辑设备(比如,加法器、乘法和累加电路、锁相环和嵌入式存储器块)的许多功能块。
嵌入式存储器块可以是可编程设备中的重要部件。嵌入式存储器块可以允许在设备内进行批量数据存储,而无需进行耗时的设备外存储器访问。在一些可编程设备中,嵌入式存储器块可以被组织成两种不同的存储器类型,比如,配置闪存(CFM)和用户闪存(UFM)。在这些设备中,CFM用于存储用来配置IC设备的配置位流(也被称为配置位或配置数据)。UFM用于存储用户数据和其他信息。在存储器容量是固定的常规嵌入式存储器方案中,可以将存储器的预设量分配给CFM和UFM。
然而,在一些情况下,可以压缩配置数据来减少存储器存储要求和配置时间。可以使用压缩比来确定将配置位存储在CFM中所需的存储器的量。因为不同的电路设计将具有不同的配置位,所以针对配置位的压缩比可能变化。然而,这种可变性可能导致预设大小的CFM内未充分利用的存储器,这浪费了可以用作附加UFM存储设备的存储器资源空间。
发明内容
根据本发明,提供了用于配置具有可调整内存边界的嵌入式存储器块的装置和方法。
应当认识到,可以采用多种方式(比如,过程、器件、系统或装置)来实施本发明。以下描述了本发明的几个发明性实施例。
提供了一种集成电路。该集成电路包括被分区成第一和第二存储器块部分的存储器块。第一存储器块部分包括第一存储器类型的存储器元件。第二存储器块部分包括第二存储器类型的存储器元件。例如,第一存储器类型是配置闪存,并且第二存储器类型是用户闪存。控制电路被配置用于接收配置数据,该配置数据包括用于将存储器块重新分区成第一和第二重新分区的存储器块部分的存储器分区信息。存储器分区信息可以包括关于未使用的存储器的在对集成电路的设计编译操作期间从第一存储器块部分中导出的信息。未使用的存储器可以从第一存储器块部分中移除并且分配给第二存储器块部分。这种配置形成了第一和第二重新分区的存储器块部分,由此,第一重新分区的存储器块部分包括第一存储器块部分减去未使用的存储器,并且第二重新分区的存储器块部分包括第二存储器块部分和未使用的存储器。
提供了一种用于使用在计算设备上实施的计算机辅助设计工具来配置集成电路设备的方法,该集成电路设备具有被划分成第一存储器块部分和第二存储器块部分的存储器块。该方法包括生成集成电路设备的配置数据并压缩该配置数据。然后,通过分析压缩的配置数据来确定第一存储器块中是否存在未使用的存储器。响应于该确定而调整第一存储器块部分和第二存储器块部分中的每一个存储器块部分的存储器容量。然后,基于指定了针对第二存储器块部分的存储器分区约束的用户输入来对第二存储器块部分进行分区。
提供了另一种用于配置集成电路的方法。该方法包括接收集成电路的自定义逻辑设计数据,该集成电路具有被分区成第一存储器类型的第一部分和不同于第一存储器类型的第二存储器类型的第二部分的存储器块。通过分析自定义逻辑设计来确定存储器块的第一部分中的未使用的存储器的量。响应于确定未使用的存储器的量超过预定阈值而将存储器块重新分区成第一存储器类型的第一重新分区的部分和第二存储器类型的第二重新分区的部分。
从附图以及以下对优选实施例的详细描述,本发明的进一步的特征、其性质以及各种优点将更加明显。
附图说明
图1是根据本发明的实施例的说明性集成电路的图示。
图2是根据本发明的实施例的说明性系统环境的图示,在该系统环境中,可以使用逻辑设计系统来配置集成电路。
图3是根据本发明的实施例的用于生成配置数据的逻辑设计系统的图示,该配置数据用于在可编程集成电路中实施自定义电路设计。
图4是根据本发明的实施例的具有控制器和核心逻辑电路的说明性集成电路的图示。
图5是根据本发明的实施例的用于设计自定义逻辑电路和执行时序分析的说明性步骤的流程图。
图6A是根据本发明的实施例的具有存储器块的说明性集成电路的图示,该存储器块具有两个存储器块部分。
图6B是根据本发明的实施例的图6A中所示出的集成电路的存储器块的详图。
图7是根据本发明的实施例的用于修改存储器块中的存储器块部分的说明性存储器分析器工具的图示。
图8是根据本发明的实施例的用于对集成电路中的存储器块执行存储器大小调整操作的说明性步骤的流程图。
图9示出了根据本发明的实施例的用于基于第一存储器块部分中的未使用的存储器的量来将存储器块重新分区成第一重新分区的存储器块部分和第二重新分区的存储器块部分的说明性步骤。
具体实施方式
本文提供的实施例包括用于配置具有可调整内存边界的嵌入式存储器块的装置和方法。
然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一些或全部具体细节的情况下实践本示例性实施例。在其他实例中,没有详细地描述公知的操作,以免不必要地模糊本实施例。
图1是根据本发明的实施例的说明性集成电路10的图示。集成电路10具有用于将信号驱动远离集成电路10并且用于经由输入-输出(IO)引脚14从其他电路或设备中接收信号的IO电路12。如全局和局部垂直和水平导线和总线等互连资源16可以用于在集成电路10上路由信号。互连资源16包括固定互连(导线)和可编程互连(例如,对应固定互连之间的可编程连接)。与互连资源16相关联的可编程互连可以被认为是可编程逻辑区域18的一部分。
可以使用互补金属氧化物半导体(CMOS)集成电路技术(作为示例)来形成存储器元件20。在可编程集成电路设备的上下文中,存储器元件20可以存储配置数据,并且因此有时被称为配置随机存取存储器(CRAM)单元。一般而言,可以采用阵列模式来安排配置随机存取存储器元件20。用户(例如,逻辑设计者)可以在编程操作期间为存储器元件阵列提供配置数据。一旦加载有配置数据,存储器元件20就可以选择性地控制(例如,打开和关闭)可编程逻辑区域18中的电路的部分,并且从而如所期望的自定义其功能。
可以使用任何合适的架构来组织集成电路10的电路。例如,可编程逻辑区域18可以被组织成更大的可编程逻辑区域的一系列行和列,更大的可编程逻辑区域中的每一个可编程逻辑区域包含多个更小的区域。更大的区域有时被称为逻辑阵列块。更小的逻辑区域有时被称为逻辑元件。典型的逻辑元件可以包含查找表、寄存器、和可编程多路复用器。如果期望的话,可编程逻辑区域18可以安排在更多级或层中,其中多个大区域互连以形成逻辑的仍然更大的部分。
当存储器元件20以阵列安排时,水平和垂直导体及相关联的控制电路可用于访问存储器元件20。控制电路例如可以用于清除所有或一些存储器元件。控制电路还可以将数据写入存储器元件20,并且可以从存储器元件20中读取数据。存储器元件20可以例如在CRAM阵列中加载有配置数据。然后,在系统中正常操作期间使用集成电路10之前,可以从存储器阵列中读取所加载的配置数据以确认适当的数据捕获。
在图2中示出了用于设计和配置集成电路10的说明性系统环境。集成电路10可以安装在系统238中的电路板236上。集成电路10可以从编程设备或者从任何其他合适的设备或装置中接收配置数据。
在图2的示例中,集成电路10是一类从相关联的集成电路(比如,配置设备240)中接收配置数据的可编程集成电路。利用这种类型的布置,如果期望的话,配置设备240可以安装在与集成电路10相同的电路板236上。配置设备240可以是将配置数据从外部电可擦除可编程只读存储器(EEPROM)芯片加载到可编程逻辑设备存储器中的可编程逻辑设备配置数据加载芯片,该可编程逻辑设备配置数据加载芯片具有内置存储器(有时被称为配置设备),或者任何其它合适的设备。当系统238启动(或者在另一个合适的时间)时,配置数据可以从配置设备240提供给集成电路10,如路径242示意性所示。提供给集成电路10的配置数据可以存储在其可编程存储器元件20(例如,配置随机存取存储器元件)中。
系统238可以包括处理电路系统244、存储设备246和与集成电路10通信的其他系统部件248。系统238的部件可以安装在电路板236或其他合适的安装结构或壳体上,并且可以通过总线和其他电气路径250互连。
可以通过如路径252等路径来向配置设备240提供用于集成电路10的配置数据。配置设备240可以例如从配置数据加载设备254或其他合适的设备接收配置数据。配置设备240可以在安装在电路板236上之前或之后加载数据。
在可编程逻辑设备中设计和实施所需要的逻辑电路可能是重要的任务。因此,逻辑设计者一般使用基于计算机辅助设计(CAD)工具的逻辑设计系统来辅助其设计电路。逻辑设计系统(有时被称为电路设计系统)可以帮助逻辑设计者设计和测试系统的复杂电路。当设计完成时,逻辑设计系统可以用于生成用于电编程适当的可编程逻辑设备的配置数据。逻辑设计系统可以在计算设备上实施。
如图2所示,逻辑设计系统256产生的配置数据可以通过如路径258等路径来提供给设备254。设备254向设备40提供配置数据,使得设备240可以稍后通过路径242将该配置数据提供给设备10。系统256可以基于一个或更多个计算机和一个或更多个软件程序。
在典型情况下,逻辑设计系统256由逻辑设计者使用来创建自定义电路设计。系统256产生提供给配置设备240的相应配置数据。在上电时,配置设备240和集成电路10上的数据加载电路用于将配置数据加载到集成电路10的可编程存储器元件20中。然后,可以在系统238的正常操作中使用集成电路10。
在图3中示出了根据本发明的说明性逻辑设计系统256。系统256可以基于一个或更多个处理器,比如,个人计算机、工作站等。一个或多个处理器可以使用网络(例如,局域网或广域网)链接。这些计算机中的存储器或外部存储器和存储设备(比如,内部和/或外部硬盘)可以用于存储指令和数据。
基于软件的部件(比如,计算机辅助设计工具320和数据库330)驻留在系统256上。在操作期间,可执行软件(比如,计算机辅助设计工具330的软件)在系统300的一个或多个处理器上运行。数据库330用于针对系统256的操作存储数据。一般而言,软件和数据可以存储在系统256中的任何计算机可读介质(存储设备)上。被示意性地示为图2的存储设备260的这种存储设备可以包括计算机存储器芯片、可移除介质和固定介质,比如,硬盘驱动器、闪存、光盘(CD)、DVD、其它光学介质和软盘、磁带或任何其它合适的存储器或一个或多个存储设备。当安装系统256的软件时,系统256的存储设备260具有使系统256中的计算设备执行各种方法(过程)的指令和数据。当执行这些过程时,计算设备被配置成用于实施逻辑设计系统的功能。
计算机辅助设计(CAD)工具320(其中一些或全部有时被统称为CAD工具)可以由单个供应商或多个供应商提供。工具320可以被提供作为一个或更多个工具套件(例如,用于执行与在可编程逻辑设备中实施电路设计相关联的任务的编译器套件)和/或作为一个或更多个单独的软件部件(工具)。一个或多个数据库330可以包括仅由一个或多个特定工具访问的一个或更多个数据库,并且可以包括一个或更多个共享的数据库。共享的数据库可以由多个工具访问。例如,第一工具可以将用于第二工具的数据存储在共享的数据库中。第二工具可以访问共享的数据库以检索由第一工具存储的数据。这允许一个工具将信息传递给另一个工具。如果期望的话,工具也可以在彼此之间传递信息,而无需将信息存储在共享的数据库中。
在图4中示出了可以在如图2和图3的系统256等逻辑设计系统中使用的说明性计算机辅助设计工具320。
设计过程通常从对逻辑电路功能描述(例如,对逻辑电路的功能描述)的制定开始。逻辑设计者可以使用设计和约束输入工具464来指定所期望的电路应该如何工作。设计和约束输入工具464可以包括如设计和约束输入辅助466和设计编辑器468等工具。如辅助466等设计和约束输入辅助可以用于帮助逻辑设计者从现有逻辑设计库中定位所期望的设计,并且可以向逻辑设计者提供用于输入(指定)所期望的设计的计算机辅助协助。
作为示例,设计和约束输入辅助466可以用于向用户呈现选项屏幕。用户可以点击屏幕上的选项来选择正在设计的电路是否应该具有某些特征。设计编辑器468可以用于输入设计(例如,通过输入硬件描述语言代码行),可以用于编辑从库中获得的设计(例如,使用设计和约束输入辅助),或者可以辅助用户选择和编辑适当的预封装代码/设计。
设计和约束输入工具464可以用于允许逻辑设计者使用任何合适的格式来提供所期望的逻辑设计。例如,设计和约束输入工具464可以包括允许逻辑设计者使用真值表来输入逻辑设计的工具。真值表可以使用文本文件或时序图来指定,并且可以从库中导入。真值表逻辑设计和约束输入可以用于大电路的一部分或者用于整个电路。
作为另一示例,设计和约束输入工具464可以包括示意性捕获工具。示意性捕获工具可允许逻辑设计者使用构成部件(比如,逻辑门和逻辑门组)来可视地构建逻辑电路。预先存在的逻辑电路的库可以用于允许使用原理图捕获工具来导入设计的所期望的部分。
如果期望的话,设计和约束输入工具464可以允许逻辑设计者使用硬件描述语言(比如,Verilog硬件描述语言(HDL)或者超高速集成电路硬件描述语言(VHDL))来向逻辑设计系统256提供逻辑设计。逻辑电路的设计者可以通过使用编辑器468来写入硬件描述语言代码从而输入逻辑设计。如果期望的话,可以从用户维护的库或商业库中导入代码块。
在使用设计和约束输入工具464来输入设计之后,行为模拟工具472可以用于模拟设计的功能性能。如果设计的功能性能不完整或不正确,那么逻辑设计者可以使用设计和约束输入工具464来更改设计。在使用逻辑综合和优化工具474来执行综合操作之前,可以使用行为模拟工具472来验证新设计的功能操作。如果期望的话(例如,在逻辑综合之后),如工具472等模拟工具也可以在设计流程中的其他阶段使用。可以采用任何合适的格式(例如,真值表、时序图等)来将行为模拟工具472的输出提供给逻辑设计者。
一旦确定逻辑设计的功能操作是令人满意的,就可以使用工具474来在特定可编程逻辑设备中(即,在特定可编程逻辑设备产品或产品系列的逻辑和互连资源中)实施逻辑设计。
工具474试图通过对硬件进行适当选择来优化设计,以便基于由逻辑设计者使用工具464输入的逻辑设计数据和约束数据在逻辑设计中实施不同的逻辑功能。
在使用工具474进行逻辑综合和优化之后,逻辑设计系统可以使用如布局和布线工具476等工具来执行物理设计步骤(布局综合操作)。布局和布线工具476用于确定如何将用于每个逻辑功能的电路放置在可编程逻辑设备内。例如,如果两个计数器彼此交互,那么布局和布线工具476可以将这些计数器定位在可编程逻辑设备上的相邻逻辑区域中,以减少互连延迟或者满足指定了最大允许互连延迟的时序要求。布局和布线工具476针对给定可编程逻辑设备而创建有序且有效的实施方式。
如工具474和476等工具可以是编译器套件的一部分(例如,由可编程逻辑设备供应商提供的编译器工具套件的部分)。根据本发明,如工具474、476和478等工具可以在实施所期望的电路设计的同时自动将互连之间的串扰影响考虑在内。工具474、476和478还可以包括时序分析工具。这允许工具474和476在生成用于编程集成电路(比如,图1的集成电路10)的配置数据时满足性能要求(例如,时序要求)。
在已经使用布局和布线工具476来生成所期望的逻辑设计在可编程逻辑设备中的实施方式之后,可以使用分析工具478来分析和测试设计的实施方式。在已经使用工具320来完成令人满意的优化操作之后,工具320可以产生可编程逻辑设备的配置数据。
在图5中示出了在使用图4的工具320来生成配置数据文件时所涉及的说明性操作。如图5中所示出的,在步骤582处综合初始网表580以产生后综合网表84。在步骤586处,在布局和布线以及优化操作期间,处理用户输入588和后综合网表584。在步骤586的操作期间,工具320将使用不同的正电源电压和/或体偏置电压以及电路资源分配(通过适当选择电源和体偏置电平)和布置决定的影响考虑在内,工具320在满足设计约束的同时降低了功耗。
可以进一步通过使用逻辑设计系统256来执行时序分析从而处理所得到的网表590(步骤591)。时序分析可以用于帮助确保在配置图1的集成电路10之前,最终网表590满足时序约束。如果期望的话,可以可选地将处理经由路径593循环回到步骤586,以便使用最终网表来执行附加优化。例如,逻辑设计系统256可以通过经由可选路径593返回到步骤586,从而识别最终网表中使时序约束失效的路由路径,并且确定替换路由路径。
在步骤592处,可以在组装过程期间进一步处理最终网表,以便产生配置数据文件输出(例如,.pof或.sof文件)。然后,可以将配置数据文件输出加载到集成电路10上。
图6A示出了根据本发明的实施例的具有存储器块602的说明性集成电路600的图示,该存储器块具有两个存储器块部分603和604。集成电路600可以是可编程逻辑设备(PLD),比如,现场可编程门阵列(FPGA)设备。可替代地,集成电路600可以是多芯片模块设备。如图6A中所示出的,集成电路600可以包括存储器块602、控制电路620和存储电路630。在一个实施例中,存储器块602是置于集成电路600内的嵌入式非易失性存储器块。存储器块602可以具有固定大小。例如,存储器块602可以具有4K(即,4096个)字块的固定存储器容量。应当注意的是,当存储器具有4k字大小时,必须在至少12位上进行寻址。
如图6A中所示出的,存储器块602被分区成两个存储器块部分(例如,存储器块部分603和604)。每个存储器块部分可以被称为虚拟内存,并且可以被对齐或映射到虚拟内存边界。例如,存储器块部分603和604中的每一个存储器块部分的虚拟内存边界大小均为2K字,并且具有不同的存储器类型。如本文所使用的,术语“存储器类型”是指用于不同目的和/或不同种类数据的存储器类型。例如,存储器块部分603可以被实施为充当用于存储配置位的配置闪存(CFM),而存储器块部分604可以被实施为充当用于存储用户数据的用户闪存(UFM)。应注意的是,存储器块部分603和CFM 603在说明书中可互换使用,并且具有相同的含义。类似地,存储器块部分604和UFM 604在说明书中可互换使用。
控制电路620可以接收配置数据文件输出(或配置数据)以配置集成电路600。配置数据输出可以在配置集成电路600期间存储在CFM 603中。在一些场景下,可以压缩配置数据文件输出,以节省配置存储器空间并且还降低集成电路中的存储要求。然而,根据用于压缩配置位的压缩比,压缩的配置位可能仅需要存储器块部分603的一部分(例如,存储器部分613A)用于存储。在典型的系统中,剩余的存储器部分613B可能未被使用。如本领域技术人员所知,未使用的存储器通常被视为浪费的存储器。
因此,可以使用灵活的存储器分析机构来确保完全利用存储器块中的所有存储器(包括未使用的存储器)以防止浪费有价值的存储器资源。存储器分析机构(下面将详细描述)针对存储器块部分603中的未使用的存储器而对压缩的配置数据文件输出进行分析,并且动态调整存储器块部分603与604之间的内存边界。例如,如果存储器块部分603中存在一定量的未使用的存储器(例如,存储器部分613B),那么可以将未使用的存储器从存储器块部分603动态地分配到存储器块部分604,以确保将存储器部分613B用作UFM的部分。为此,可以通过根据存储器块602中的未使用的存储器的分配来改变存储器块602中的每个存储器块部分的起始地址和结束地址,从而调整存储器块部分603和604中的每一个存储器块部分的存储器大小/存储器容量。这种配置可以导致存储器块602被重新分区成存储器块部分605和606。例如,存储器块部分605可以包括存储器部分613A(其存储压缩的配置位),并且存储器块部分606可以包括存储器块部分604和存储器块部分603的未使用的存储器部分613B。随后,按顺序将存储器块部分605和606的地址存储在存储电路630中。例如,存储电路630可以是集成电路600中的寄存器或高速缓存存储器。
灵活的存储器分析机构还可以基于用户要求来促进对UFM 606的分区。图6B示出了根据本发明的实施例的图6A的集成电路600的存储器块602的详图。如上所述,当存储器块602中存在未使用的存储器(例如,存储器部分613B)时,存储器块602可以被重新分区成存储器块部分605和606。在一个实施例中,可以基于由用户提供的存储器分区约束来将UFM606配置成分区的内存段。例如,存储器分区约束可以包括UFM 606的起始地址(或入口点地址)和要在UFM 606中分区的若干内存段。例如,UFM块部分606可以被分区成四个内存段(例如,UFM段654A、654B、654C和654D),用户定义的大小应用于内存段中的每一个或所有内存段。
可替代地,如果用户未指定,那么每个内存段可以利用系统默认大小。通过由UFM606的起始存储器地址按顺序定义的内存段地址范围(即,起始地址和结束地址),可以对每个内存段的大小进行寻址。然后,可以将每个分区的内存段的内存段地址范围存储在图6A的存储电路630中。一旦配置了集成电路设备,将激活以下将详细描述的存储器配置机构,以确保充分利用存储器块602来防止存储器资源浪费。
为了实现在集成电路中进行存储器大小配置,可以针对压缩的自定义逻辑设计的存储器要求对其进行分析。图7是可用于此目的的说明性存储器分析器工具700。存储器分析器工具700可以实施为图4的设计和约束输入工具464的部分,或者可以单独实施。应当认识到,图6A和图6B的实施例可以用作示例来解释存储器分析器工具700的功能。
如图7中所示出的,存储器分析器工具700可以包括CFM编译器工具702、UFM规范工具703和显示器704。如本文所使用的,术语“CFM”是指配置闪存(例如,存储器块部分603和605)。术语“UFM”是指用户闪存(例如,存储器块部分604和606)。在一个实施例中,CFM编译器工具702可以用于基于自定义逻辑设计来确定CFM的大小X和CFM的地址Y。例如,CFM编译器工具700可以对配置数据执行编译(例如,使用COMPILE功能720)来编译自定义逻辑设计,以便生成压缩的完整配置数据。完整配置数据的压缩版本可以确定用于存储自定义逻辑设计的配置数据和CFM地址所需的CFM大小。如图7中所示出的,显示编译的结果以指示最终CFM大小和地址。
例如,在图6A的实施例中,存储器块602中的存储器块部分603和604中的每一个存储器块部分可以具有2K字的固定大小。当使用工具702来编译用户设计时,生成压缩的配置数据文件输出。假设压缩的配置数据仅需要存储器块部分603中1K字的空间(由存储器部分613A表示),则存储器块部分603将具有1K字大小(由存储器部分613B表示)的未使用的存储器。
基于此信息,可以通过将存储器块部分603中的未使用的存储器(例如,图6A的存储器部分613B)分配到存储器块部分604来调整存储器块部分603和604的存储器大小(或地址边界)。例如,可以根据对未使用的存储器部分613B的分配来改变每个存储器块部分603和604的起始地址和结束地址。如此,存储器块602被重新分区成两个存储器块部分(例如,存储器块部分605和606)。
存储器块部分605(或CFM 605)可以表示存储压缩的配置数据文件输出所需的最终CFM大小,并且存储器块部分606(或UFM 606)可以表示可用于存储用户信息的最终UFM大小。例如,分别地,存储器块部分605具有1K字的大小(即,存储器部分613A的总大小),并且存储器块部分606具有3K字的大小(即,未使用的存储器部分613B和存储器块部分604的组合的总大小)。
新形成的存储器块部分606可以被进一步配置成分区的内存段(或UFM段)。在一个实施例中,存储器分析器工具700可以经由UFM规范工具703来接收用户输入,该UFM规范工具703可以基于存储器块部分605上显示的存储器信息来指定针对存储器块部分606的存储器分区约束。例如,存储器分区约束可以包括针对UFM大小(L)、UFM起始地址(M)和要在存储器块部分606中分区的内存段的数目(N)的输入。然后,评估(例如,使用CALCULATE功能722)所提供的输入信息,以判定所提供的信息是否满足存储器块602的可用存储器要求。
在评估之后,评估测试的结果将以“合格”或“不合格”状态显示在显示器704上。如果显示“合格”,则表示所提供的输入符合可用的内存要求。如果显示“不合格”,则可以向用户提供针对存储器块部分604输入另一个存储器分区约束的机会,以便再次进行评估。如图7中所示出的,评估的结果可以包括UFM内存段的数目、每个UFM段的大小、每个UFM段的内存段地址范围(即,起始地址和结束地址)、以及UFM中可用的未使用的存储器大小的量。在已经使用存储器分析器工具700完成令人满意的存储器配置操作之后,工具700可以产生集成电路600的配置数据(包括存储器分区信息数据)。
图8是根据本发明的实施例的用于对集成电路中的存储器块执行存储器大小调整操作的说明性步骤的流程图。应当认识到,图6A、图6B和图7的实施例可以用作示例来解释以下步骤。如以上在图6A中所描述的,集成电路600的存储器块602可以被分区成两个存储器块部分603和604,每个存储器块部分具有彼此不同的存储器类型。例如,存储器块部分603可以是配置闪存(CFM),并且存储器块部分604可以是用户闪存(UFM)。可以使用逻辑设计数据来配置集成电路600,该集成电路可以由用户(例如,逻辑设计者)自定义以执行各种任务和功能中的任何任务和功能。
在步骤801处,使用存储器分析器工具(例如,图7的存储器分析器工具700)来接收集成电路600的自定义逻辑设计数据。在一个实施例中,存储器分析器工具可以是图3的计算机辅助设计(CAD)工具320的部分。
在步骤802处,基于自定义逻辑设计数据的压缩版本来确定第一存储器块部分中未使用的存储器的量。为此,编译(例如,使用图7的CFM编译器工具702)所接收的自定义逻辑设计数据,从而使得生成压缩的配置数据文件输出。压缩的配置数据文件输出可以确定所需的CFM大小和地址。
在步骤803处,当第一存储器块部分中的未使用的存储器超出预定阈值时,对第一和第二存储器块部分执行存储器大小调整。例如,预定阈值可以是存储器块部分603的存储器大小/存储器容量(即,1K字)的一半。在一个实施例中,存储器大小调整涉及将存储器块602重新分区成第一重新分区的存储器块部分和第二重新分区的存储器块部分(例如,图6A的存储器块部分605和606)。下面结合图9对步骤803的详细描述进行解释。
图9示出了根据本发明的实施例的用于基于第一存储器块部分中的未使用存储器的量来将存储器块重新分区成第一重新分区的存储器块部分和第二重新分区的存储器块部分的说明性步骤。应当认识到,图6A、图6B和图7的实施例可以用作示例来解释以下步骤。
在步骤921处,将存储器块中的第一存储器块部分中未使用的存储器的量分配给第二存储器块部分,以形成第一和第二重新分区的存储器块部分。如图6A中所示出的,当所确定的存储器块部分603中的未使用的存储器(例如,存储器部分613B)的量超过预定阈值(例如,存储器块部分603的存储器大小的一半)时,将集成电路600的存储器块602重新分区成存储器块部分605和606。对存储器块部分605和606的重新分区涉及动态地调整存储器块部分603与604之间的内存边界,以将存储器块部分603(例如,CFM)的未使用的存储器部分613B分配给存储器块部分604(例如,UFM)。这允许将未使用的存储器部分用作UFM的部分。
在步骤922处,接收针对第二重新分区的存储器块部分的存储器分区约束。例如,如图7中所示出的,存储器分区约束可以包括要在第二重新分区的存储器块部分中分区的若干内存段、分区的内存段中的每一个(或所有)内存段的存储器大小、以及第二重新分区的存储器块部分的起始地址。用户可以使用存储器分析器工具700的UFM规范工具703来提供存储器分区约束。然后,评估存储器分区约束以判定所提供的信息是否满足存储器块的预定存储器大小要求。例如,预定存储器大小要求可以是存储器块602中的存储器块部分606的可用存储器大小的总量。
当存储器分区约束满足存储器块的总存储器大小时,在步骤923处,可以基于存储器分区约束来相应地对第二存储器类型的第二重新分区的部分进行分区。否则,重复步骤922,直到满足存储器块的预定存储器大小要求为止。随后,在步骤924处,将第一和第二重新分区的存储器块部分的第一部分(包括分区的内存段)的起始地址和结束地址存储在集成电路的存储电路(例如,图6A的存储电路630)中。
例如,如图7中所示出的,分别基于第一存储器类型的第一重新分区的部分的编译的CFM大小(例如,图7的CFM大小X)和用户定义的CFM起始地址(例如,图7的CFM地址Y)来获得第一重新分区的存储器块部分(例如,图6B的CFM 605)的起始地址和结束地址。类似地,基于每个UFM段的大小(例如,UFM大小L)和用户定义的UFM起始地址(例如,UFM起始地址M)来顺序地获得若干分区UFM段的每个(例如,图6B的UFM段654A、654B、654C和654D)的起始地址和结束地址。在一个实施例中,CFM和UFM的起始地址和结束地址可以作为集成电路的硬件设备设置的部分而被编程到CFM中。
本文所描述的方法和装置可以并入任何合适的电路中。例如,这些方法和装置可以并入到各种类型的设备中,比如,微处理器或其他集成电路。仅列举一些,示例性集成电路包括多芯片模块、可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑设备(EPLD)、电可擦除可编程逻辑设备(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、应用专用标准产品(ASSP)、应用专用集成电路(ASIC)。
本文所描述的集成电路可以是包括以下部件中的一个或更多个部件的数据处理系统的部分:处理器、存储器、IO电路、和外围设备。数据处理系统可以在各种各样的应用中使用,比如,计算机联网、数据联网、仪器仪表、视频处理、数字信号处理、或其中使用可编程或可重新编程逻辑的优点是所期望的任何合适的其它应用。集成电路设备可以用于执行各种不同的逻辑功能。例如,集成电路设备可以被配置成与系统处理器协作工作的处理器或控制器。集成电路设备还可以用作用于仲裁对数据处理系统中的共享资源的访问的仲裁器。在又一示例中,集成电路设备可以被配置成处理器与系统中其它部件之一之间的接口。在一个实施例中,集成电路设备可以是由受让人拥有的设备系列中的一个设备。
虽然按照特定的顺序对方法操作进行了描述,但是应当理解的是,只要采用所期望的方式执行覆盖操作的处理,则可以在所描述的操作之间执行其他操作、可以调整所描述的操作从而使得其发生在稍微不同的时间、或者可以将所描述的操作分布在允许以与处理相关联的各种间隔进行处理操作的系统中。
附加实施例:
附加实施例1.一种集成电路,包括:存储器块,该存储器块被分区成第一和第二存储器块部分,其中,第一存储器块部分包括第一存储器类型的存储器元件,并且其中,第二存储器块部分包括第二存储器类型的存储器元件;以及控制电路,该控制电路接收配置数据,其中,配置数据包括用于将存储器块重新分区成第一和第二重新分区的存储器块部分的存储器分区信息。
附加实施例2.如附加实施例1所述的集成电路,其中,存储器分区信息包括关于第一存储器块部分中的未使用的存储器的量的信息,该信息在集成电路的设计编译操作期间从第一存储器块部分中导出。
附加实施例3.如附加实施例2所述的集成电路,其中,第一存储器块部分的未使用的存储器被分配给第二存储器块部分。
附加实施例4.如附加实施例3所述的集成电路,其中,第一重新分区的存储器包括第一存储器块部分减去未使用的存储器,并且其中,第二重新分区的存储器块部分包括第二存储器块部分和未使用的存储器。
附加实施例5.如附加实施例4所述的集成电路,其中,存储器分区信息进一步包括针对第二重新分区的存储器块部分的存储器分区约束,并且其中,存储器分区约束为第二重新分区的存储器块部分指定起始地址。
附加实施例6.如附加实施例5所述的集成电路,其中,存储器分区约束进一步包括要在第二重新分区的存储器块部分中分区的至少一个内存段。
附加实施例7.如附加实施例6所述的集成电路,其中,基于第二重新分区的存储器块部分的起始地址向至少一个内存段分配内存段地址范围。
附加实施例8.如附加实施例6所述的存储电路,进一步包括:存储电路,该存储电路存储与第一重新分区的存储器块部分和第二重新分区的存储器块部分相关联的存储器地址数据,包括要在第二重新分区的存储器块部分中分区的至少一个内存段。
附加实施例9.如附加实施例1所述的集成电路,其中,第一类型的存储器元件包括存储配置位的配置闪存,并且其中,第二类型的存储器元件包括用于存储用户数据的用户闪存。
附加实施例10.一种用于使用在计算设备上实施的计算机辅助设计工具来配置集成电路设备的方法,该集成电路设备具有被划分成第一存储器块部分和第二存储器块部分的存储器块,该方法包括:使用计算机辅助设计工具生成集成电路设备的配置数据并压缩该配置数据;使用计算机辅助设计工具通过分析压缩的配置数据来判定第一存储器块部分中是否存在未使用的存储器;以及响应于确定第一存储器块部分中存在未使用的存储器而调整第一存储器块部分的大小和第二存储器块部分的大小。
附加实施例11.如附加实施例10所述的方法,其中,调整第一和第二存储器块部分中的每一个存储器块部分的大小包括:将第一存储器块部分的未使用的存储器分配给第二存储器块部分。
附加实施例12.如附加实施例11所述的方法,进一步包括:使用计算机辅助设计工具来接收指定了针对第二存储器块部分的存储器分区约束的用户输入,其中,存储器分区约束包括第二存储器块部分的起始地址和第二存储器块部分的至少一个内存段。
附加实施例13.如附加实施例12所述的方法,进一步包括:使用计算机辅助设计工具来判定针对第二存储器块部分的存储器分区约束是否满足第一和第二存储器块部分的预定存储器大小要求。
附加实施例14.一种用于配置集成电路的方法,该方法包括:接收集成电路的自定义逻辑设计数据,该集成电路具有被分区成第一存储器类型的第一部分和不同于第一存储器类型的第二存储器类型的第二部分的存储器块;通过分析自定义逻辑设计数据来确定第一存储器类型的第一部分中的未使用的存储器的量;以及响应于确定未使用的存储器的量超过预定阈值而将存储器块重新分区成第一存储器类型的第一重新分区的部分和第二存储器类型的第二重新分区的部分。
附加实施例15.如附加实施例14所述的方法,其中,重新分区包括:将不具有未使用的存储器的第一存储器类型的第一部分分配到第一存储器类型的第一重新分区的部分中。
附加实施例16.如附加实施例15所述的方法,其中,重新分区进一步包括:将第二存储器类型的第二部分和第一存储器类型的第一部分的未使用的存储器分配到第二存储器类型的第二重新分区的部分中。
附加实施例17.如附加实施例16所述的方法,进一步包括:从用户接口中接收用户输入,其中,该用户输入包括针对第二存储器类型的第二重新分区的部分的存储器分区约束。
附加实施例18.如附加实施例17所述的方法,其中,存储器分区约束包括具有大小的若干存储器分区,该方法进一步包括:判定若干存储器分区的大小是否满足存储器块的预定存储器大小要求。
附加实施例19.如附加实施例18所述的方法,进一步包括:响应于确定若干存储器分区的大小满足存储器块的预定存储器大小要求而基于存储器分区约束来将第二存储器类型的第二重新分区的部分分区成至少一个分区的段。
附加实施例20.如附加实施例19所述的方法,其中,存储器分区约束进一步包括第二存储器类型的第二重新分区的部分的入口点地址,并且其中,该方法包括:基于第二存储器类型的第二重新分区的部分的入口点地址来为至少一个分区的段分配段地址范围。
前述内容仅仅说明了本发明的原理,而且在不脱离本发明的范围和精神的情况下,本领域技术人员可以做出各种修改。
Claims (20)
1.一种集成电路,包括:
存储器块,所述存储器块被分区成第一和第二存储器块部分,其中,所述第一存储器块部分包括第一存储器类型的存储器元件,并且其中,所述第二存储器块部分包括第二存储器类型的存储器元件;以及
控制电路,所述控制电路接收配置数据,其中,所述配置数据包括用于将所述存储器块重新分区成第一和第二重新分区的存储器块部分的存储器分区信息。
2.如权利要求1所述的集成电路,其中,所述存储器分区信息包括关于所述第一存储器块部分中的未使用的存储器的量的信息,所述信息在对所述集成电路的设计编译操作期间从所述第一存储器块部分中导出。
3.如权利要求2所述的集成电路,其中,所述第一存储器块部分的所述未使用的存储器被分配给所述第二存储器块部分。
4.如权利要求3所述的集成电路,其中,所述第一重新分区的存储器包括所述第一存储器块部分减去所述未使用的存储器,并且其中,所述第二重新分区的存储器块部分包括所述第二存储器块部分和所述未使用的存储器。
5.如权利要求4所述的集成电路,其中,所述存储器分区信息进一步包括针对所述第二重新分区的存储器块部分的存储器分区约束,并且其中,所述存储器分区约束为所述第二重新分区的存储器块部分指定起始地址。
6.如权利要求5所述的集成电路,其中,所述存储器分区约束进一步包括要在所述第二重新分区的存储器块部分中分区的至少一个内存段。
7.如权利要求6所述的集成电路,其中,基于所述第二重新分区的存储器块部分的所述起始地址来向所述至少一个内存段分配内存段地址范围。
8.如权利要求6所述的集成电路,进一步包括:
存储电路,所述存储电路存储与所述第一重新分区的存储器块部分和所述第二重新分区的存储器块部分相关联的存储器地址数据,包括要在所述第二重新分区的存储器块部分中分区的所述至少一个内存段。
9.如权利要求1所述的集成电路,其中,所述第一类型的所述存储器元件包括存储配置位的配置闪存,并且其中,第二类型的所述存储器元件包括用于存储用户数据的用户闪存。
10.一种用于使用在计算设备上实施的计算机辅助设计工具来配置集成电路设备的方法,所述集成电路设备具有被划分成第一存储器块部分和第二存储器块部分的存储器块,所述方法包括:
使用所述计算机辅助设计工具来生成所述集成电路设备的配置数据并压缩所述配置数据;
使用所述计算机辅助设计工具来通过分析所压缩的配置数据来判定所述第一存储器块部分中是否存在未使用的存储器;以及
响应于确定所述第一存储器块部分中存在所述未使用的存储器而调整所述第一存储器块部分的大小和所述第二存储器块部分的大小。
11.如权利要求10所述的方法,其中,调整所述第一和第二存储器块部分中的每一个存储器块部分的大小包括:将所述第一存储器块部分的所述未使用的存储器分配给所述第二存储器块部分。
12.如权利要求11所述的方法,进一步包括:
使用所述计算机辅助设计工具来接收指定了针对所述第二存储器块部分的存储器分区约束的用户输入,其中,所述存储器分区约束包括所述第二存储器块部分的起始地址和所述第二存储器块部分的至少一个内存段。
13.如权利要求12所述的方法,进一步包括:
使用所述计算机辅助设计工具来判定针对所述第二存储器块部分的所述存储器分区约束是否满足所述第一和第二存储器块部分的预定存储器大小要求。
14.一种用于配置集成电路的方法,所述方法包括:
接收所述集成电路的自定义逻辑设计数据,所述集成电路具有被分区成第一存储器类型的第一部分和不同于所述第一存储器类型的第二存储器类型的第二部分的存储器块;
通过分析所述自定义逻辑设计数据来确定所述第一存储器类型的所述第一部分中的未使用的存储器的量;以及
响应于确定所述未使用的存储器的量超过预定阈值而将所述存储器块重新分区成所述第一存储器类型的第一重新分区的部分和所述第二存储器类型的第二重新分区的部分。
15.如权利要求14所述的方法,其中,所述重新分区包括:将不具有所述未使用的存储器的所述第一存储器类型的所述第一部分分配到所述第一存储器类型的所述第一重新分区的部分中。
16.如权利要求15所述的方法,其中,所述重新分区进一步包括:将所述第二存储器类型的所述第二部分和所述第一存储器类型的所述第一部分的所述未使用的存储器分配到所述第二存储器类型的所述第二重新分区的部分中。
17.如权利要求16所述的方法,进一步包括:
从用户接口中接收用户输入,其中,所述用户输入包括针对所述第二存储器类型的所述第二重新分区的部分的存储器分区约束。
18.如权利要求17所述的方法,其中,所述存储器分区约束包括具有大小的若干存储器分区,所述方法进一步包括:
判定所述若干存储器分区的大小是否满足所述存储器块的预定存储器大小要求。
19.如权利要求18所述的方法,进一步包括:
响应于确定所述若干存储器分区的大小满足所述存储器块的所述预定存储器大小要求而基于所述存储器分区约束来将所述第二存储器类型的所述第二重新分区的部分分区成至少一个分区的段。
20.如权利要求19所述的方法,其中,所述存储器分区约束进一步包括所述第二存储器类型的所述第二重新分区的部分的入口点地址,并且其中,所述方法包括:基于所述第二存储器类型的所述第二重新分区的部分的所述入口点地址来为所述至少一个分区的段分配段地址范围。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/951,352 | 2015-11-24 | ||
US14/951,352 US10210298B2 (en) | 2015-11-24 | 2015-11-24 | Embedded memory blocks with adjustable memory boundaries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775455A true CN106775455A (zh) | 2017-05-31 |
CN106775455B CN106775455B (zh) | 2020-04-21 |
Family
ID=58721842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611048413.2A Active CN106775455B (zh) | 2015-11-24 | 2016-11-24 | 具有可调整内存边界的嵌入式存储器块 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10210298B2 (zh) |
CN (1) | CN106775455B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113160968A (zh) * | 2021-04-13 | 2021-07-23 | 阜外华中心血管病医院 | 基于移动互联网的个性化诊断系统与应用方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2592646B (en) * | 2020-03-05 | 2022-11-09 | Jaguar Land Rover Ltd | Software update process on a vehicle |
US11899949B2 (en) * | 2020-07-17 | 2024-02-13 | Dish Network Technologies India Private Limited | Methods and systems for dynamic configuration and effective usage for allocating memory in media presentations or like devices |
US20220318042A1 (en) * | 2021-04-01 | 2022-10-06 | RAMScaler, Inc. | Distributed memory block device storage |
US11977517B2 (en) | 2022-04-12 | 2024-05-07 | Dell Products L.P. | Warm start file compression using sequence alignment |
US20230325354A1 (en) * | 2022-04-12 | 2023-10-12 | Dell Products L.P. | Hyperparameter optimization in file compression using sequence alignment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101213510A (zh) * | 2005-06-29 | 2008-07-02 | 桑迪士克股份有限公司 | 用于管理存储装置中的分区的方法和系统 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
CN103123608A (zh) * | 2006-10-19 | 2013-05-29 | 三星电子株式会社 | 用于在存储器装置中重新分配可寻址空间的方法和设备 |
US8813018B1 (en) * | 2012-10-05 | 2014-08-19 | Altera Corporation | Method and apparatus for automatically configuring memory size |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995415A (en) | 1998-09-23 | 1999-11-30 | Advanced Micro Devices, Inc. | Simultaneous operation flash memory device with a flexible bank partition architecture |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
US6614685B2 (en) | 2001-08-09 | 2003-09-02 | Multi Level Memory Technology | Flash memory array partitioning architectures |
TWI265413B (en) | 2004-11-03 | 2006-11-01 | Benq Corp | Method and apparatus for partitioning a memory |
US7474559B1 (en) * | 2005-08-30 | 2009-01-06 | Xilinx, Inc. | Circuit and method for employing unused configuration memory cells as scratchpad memory |
US7355441B1 (en) * | 2006-02-22 | 2008-04-08 | Lattice Semiconductor Corporation | Programmable logic devices with distributed memory and non-volatile memory |
US7495970B1 (en) * | 2006-06-02 | 2009-02-24 | Lattice Semiconductor Corporation | Flexible memory architectures for programmable logic devices |
KR20090021508A (ko) | 2007-08-27 | 2009-03-04 | 삼성전자주식회사 | 멀티-비트 및 싱글-비트 방식으로 데이터를 저장하는플래시 메모리 장치 및 그것의 프로그램 방법 |
US8566507B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
US20120089765A1 (en) | 2010-10-07 | 2012-04-12 | Huang Shih-Chia | Method for performing automatic boundary alignment and related non-volatile memory device |
-
2015
- 2015-11-24 US US14/951,352 patent/US10210298B2/en active Active
-
2016
- 2016-11-24 CN CN201611048413.2A patent/CN106775455B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101213510A (zh) * | 2005-06-29 | 2008-07-02 | 桑迪士克股份有限公司 | 用于管理存储装置中的分区的方法和系统 |
CN103123608A (zh) * | 2006-10-19 | 2013-05-29 | 三星电子株式会社 | 用于在存储器装置中重新分配可寻址空间的方法和设备 |
CN102436385A (zh) * | 2011-11-15 | 2012-05-02 | 电子科技大学 | 一种可编程逻辑器件配置文件在线更新装置 |
US8813018B1 (en) * | 2012-10-05 | 2014-08-19 | Altera Corporation | Method and apparatus for automatically configuring memory size |
Non-Patent Citations (1)
Title |
---|
于鹏飞: "基于CPLD的PROFIBUS-DP从站设计", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113160968A (zh) * | 2021-04-13 | 2021-07-23 | 阜外华中心血管病医院 | 基于移动互联网的个性化诊断系统与应用方法 |
CN113160968B (zh) * | 2021-04-13 | 2022-10-28 | 阜外华中心血管病医院 | 基于移动互联网的个性化诊断系统与应用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106775455B (zh) | 2020-04-21 |
US10210298B2 (en) | 2019-02-19 |
US20170147226A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775455A (zh) | 具有可调整内存边界的嵌入式存储器块 | |
US7324363B2 (en) | SPICE optimized for arrays | |
Murray et al. | Titan: Enabling large and complex benchmarks in academic cad | |
US8307317B2 (en) | Statistical on-chip variation timing analysis | |
CN103812502B (zh) | 具有冗余电路的可编程集成电路 | |
US5036473A (en) | Method of using electronically reconfigurable logic circuits | |
US6002861A (en) | Method for performing simulation using a hardware emulation system | |
US8001510B1 (en) | Automated method of architecture mapping selection from constrained high level language description via element characterization | |
US8860458B2 (en) | Integrated circuits with logic regions having input and output bypass paths for accessing registers | |
CN102708221A (zh) | 用于对局部重配置模块进行布局和布线的方法和设备 | |
US8522185B1 (en) | Method for placement and routing of a circuit design | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
Pomante | System-level design space exploration for dedicated heterogeneous multi-processor systems | |
US7890900B2 (en) | Various methods and apparatuses for effective yield enhancement of good chip dies having memories per wafer | |
Pilato et al. | System-level memory optimization for high-level synthesis of component-based SoCs | |
US7318211B2 (en) | Method for physical placement of an integrated circuit based on timing constraints | |
US20080209038A1 (en) | Methods and systems for optimizing placement on a clock signal distribution network | |
WO2003034290A2 (en) | Clock skew verification methodology for grid-based design | |
US8813018B1 (en) | Method and apparatus for automatically configuring memory size | |
US10339241B1 (en) | Methods for incremental circuit design legalization during physical synthesis | |
Shin et al. | Fast exploration of parameterized bus architecture for communication-centric SoC design | |
US9626218B1 (en) | Repartitioning and reordering of multiple threads into subsets based on possible access conflict, for sequential access to groups of memory banks in a shared memory | |
US10936772B1 (en) | Methods for incremental circuit physical synthesis | |
US9529957B1 (en) | Multithreaded scheduling for placement of circuit designs using connectivity and utilization dependencies | |
US20030074643A1 (en) | Unified database system to store, combine, and manipulate clock related data for grid-based clock distribution design |
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 |