CN106682268A - 可编程逻辑器件配置方法及设备 - Google Patents
可编程逻辑器件配置方法及设备 Download PDFInfo
- Publication number
- CN106682268A CN106682268A CN201611068221.8A CN201611068221A CN106682268A CN 106682268 A CN106682268 A CN 106682268A CN 201611068221 A CN201611068221 A CN 201611068221A CN 106682268 A CN106682268 A CN 106682268A
- Authority
- CN
- China
- Prior art keywords
- pld
- model
- module
- lattice point
- configuration
- 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/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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
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)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种可编程逻辑器件配置方法及设备,通过生成包含器件模型和算子模型的PLD模型文件以及PLD实现设计文件;将PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;遍历提取所述顶层上各格点元件的配置参数生成配置文件;并将所述配置文件写入所述待配置PLD。能够实现对PLD的精确配置过程,有利于设计人员对PLD的开发与测试。由于本发明可以对构成PLD的基本元件进行配置,因此可以实现PLD芯片的资源利用达到最大化,同时,能够灵活设置格点元件的内部结构以及各格点元件之间的连接关系,有效解决对关键路径的精确控制问题。
Description
技术领域
本发明涉及数字电子技术领域,尤其涉及一种可编程逻辑器件配置方法及设备。
背景技术
可编程逻辑器件(Programmable Logic Device,简称PLD)是一种可以根据实际需求随时改变其逻辑功能的电子器件。PLD一般分为可编程只读存储器(Programmable ReadOnly Memory,简称PROM)、可擦除可编程存储器(Erase Programmable Read Only Memory,简称EPROM)、可编程逻辑阵列(Programmable Logic Array,简称PLA)、可编程阵列逻辑(Programmable Array Logic,简称PAL)、通用阵列逻辑(Generic Array Logic,简称GAL)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、复杂可编程逻辑器件(Complex Programmable Logic Device,简称CPLD)等。
在数字电子技术领域中,固定逻辑器件的电路永久性的,一旦制造完成,就无法改变,只能完成相应的一种或一组逻辑功能。而PLD由于其具有灵活性高,在设计过程中可以根据实际需求通过编程的方法随时改变其逻辑功能,从而为用户和设计人员提供了更多的选择;同时,在设计过程中,设计人员只需要使用低廉的软件工具进行开发、仿真、调试其设计,不必对PLD本身物理结构进行改变即可实现不同的逻辑功能,极大减少设计人员以及制造厂商在设计开发过程中的成本投入,因此PLD得到了广泛的应用。
在现有技术中,PLD的配置调试过程多种多样,通常使用Verilog HDL(VerilogHardware Description Language)、VHDL(Very-High-Speed Integrated CircuitHardware Description Language,超高速集成电路硬件描述语言)等硬件描述语言描述设计逻辑,然后使用EDA(Electronics Design Automation,电子设计自动化)工具通过自动布局布线等步骤产生配置文件,再将配置文件下载到PLD中进行调试。然而,受到布局布线算法的限制,上述方法无法实现对PLD资源的最大利用,同时也无法实现对关键路径的精确控制,可能导致上述方法在某些特殊场合下不能适用的问题。
发明内容
本发明提供一种可编程逻辑器件配置方法及设备,以解决现有的PLD配置方法无法实现对关键路径的精确控制以及达到较大的PLD资源利用率的问题。
为此,本发明实施例提供一种可编程逻辑器件配置方法,包括:
生成可编程逻辑器件模型文件,所述可编程逻辑器件模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的可编程逻辑器件基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;
根据待配置可编程逻辑器件的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成可编程逻辑器件实现设计文件;
将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述可编程逻辑器件模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;
遍历提取所述顶层上各格点元件的配置参数生成配置文件;
将所述配置文件写入所述待配置可编程逻辑器件。
进一步地,所述器件模型包括用于唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息;
格点元件包括描述位置的配置描述信息、进行图形表征的图形描述信息以及用于描述内部结构的结构描述信息。
进一步地,所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。
进一步地,所述生成可编程逻辑器件实现设计文件包括:
根据所述连接关系确定并定义好各输入输出接口;
对于所述各目标功能模块,生成描述各目标功能模块的内部实现描述语句以得到目标功能模块实例;
根据所述连接关系生成各走线路径的描述语句,并对关键走线路径进行标识约束得到网线实例。
进一步地,将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述顶层上,并对所述顶层上对应的格点元件进行配置包括:
将所述器件模型从底层往顶层的顺序依次编译得到器件模型的顶层网格模型存放于模型编译库中,并将所述算子模型中的各功能模块进行编译存放于模型编译库中;
将所述可编程逻辑器件实现设计文件进行编译得到目标功能模块实例和网线实例;
根据所述目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块;
根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
本发明实施例还提供一种可编程逻辑器件配置设备,包括:
模型生成模块,用于生成可编程逻辑器件模型文件,所述可编程逻辑器件模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的可编程逻辑器件基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;
设计生成模块,用于根据待配置可编程逻辑器件的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的可编程逻辑器件实现设计文件;
处理模块,用于将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述可编程逻辑器件模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;还用于遍历提取所述顶层上各格点元件的配置参数生成配置文件,并将所述配置文件写入所述待配置可编程逻辑器件。
进一步地,所述器件模型包括用于唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息;
格点元件包括描述位置的配置描述信息、进行图形表征的图形描述信息以及用于描述内部结构的结构描述信息。
进一步地,所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。
进一步地,所述设计生成模块用于根据所述连接关系确定并定义好各输入输出接口,对于所述各目标功能模块,生成描述各目标功能模块的内部实现描述语句以得到目标功能模块实例,以及根据所述连接关系生成各走线路径的描述语句,并对关键走线路径进行标识约束得到网线实例。
进一步地,所述处理模块包括:
编译子模块,用于将所述器件模型从底层往顶层的顺序依次编译得到器件模型的顶层网格模型存放于模型编译库中,并将所述算子模型中的各功能模块进行编译存放于模型编译库中;还用于将所述可编程逻辑器件实现设计文件进行编译得到目标功能模块实例和网线实例;
映射子模块,用于根据所述目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块;根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
有益效果
根据本发明实施例提供的可编程逻辑器件配置方法及设备,通过生成包含器件模型和算子模型的可编程逻辑器件(PLD)模型文件;器件模型包括位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;根据待配置PLD所要实现的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的PLD实现设计文件;将所述PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;遍历提取所述顶层上各格点元件的配置参数生成配置文件;并将所述配置文件写入所述待配置PLD。有效解决无法实现对关键路径的精确控制以及无法达到较大的PLD资源利用率的问题,能够实现对PLD的精确配置,由于本发明可以对构成PLD的基本元件进行配置,因此可以实现PLD芯片的资源利用达到最大化,同时,能够灵活设置格点元件的内部结构以及各格点元件之间的连接关系,因此有利于设计人员对PLD的开发与测试,有利于推动PLD技术的发展。
附图说明
图1为本发明实施例一提供的PLD配置方法流程示意图;
图2为本发明实施例一提供的器件模型中格点***的结构示意图;
图3为本发明实施例一提供的PLD实现设计文件的组成示意图;
图4为本发明实施例一提供的PLD器件模型的映射配置方法流程示意图;
图5为本发明实施例二提供的可编程逻辑器件配置设备的结构示意图;
图6为本发明实施例二提供的另一种可编程逻辑器件配置设备的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一:
本发明实施例一提供一种基于Valence语言来实现可编程逻辑器件配置过程的方法,以达到对PLD进行配置调试的目的,而且配置过程高效便捷,有利于设计人员对PLD逻辑功能的开发与测试,有利于推动PLD技术的发展。
请参见图1,图1为本发明实施例一提供的PLD配置方法流程示意图,包括:
S11:生成PLD模型文件,所述PLD模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现。
通过生成PLD模型文件,也即对待配置PLD进行建模,建模生成的PLD模型文件中包括器件模型。其中,器件模型包含位于底层的PLD基本元件(可以称之为Prim Device)、中间层的格点元件(可以称之为Grid Device)以及顶层的格点***(可以称之为ArchitectureDevice)。底层的基本元件是抽象的最小工作单元,中间层的格点元件由1个或至少两个基本元件组成,当一个格点元件中存在至少两个基本元件时,各基本元件可能全部不同,可能部分不同,也可能全都相同。具体地可以根据待配置PLD的逻辑功能灵活设定格点元件中的基本元件的组成和/或数量。顶层的格点***由各格点元件按照一定的规律排布形成。所述格点***至少由一个格点元件组成,通常由多个格点元件组成,例如可以是数十个、数百个、甚至大规模的数千个格点元件组成。为了更好的理解本发明,请参见图2,图2为本发明实施例一提供的器件模型中格点***的结构示意图。包括顶层的格点***、中间层的格点元件以及底层的基本元件。格点***由多个规律排布的格点元件组成,每一个格点元件中由至少一个基本元件组成,各个格点元件内的基本元件可能相同,也可能不同。
生成的器件模型中还应当包括唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息。应当理解的是,所述唯一标识该器件模型的标识信息可以是该模型器件的名称;该功能参数配置信息可以根据待配置PLD所实现的逻辑功能具体设定。
在生成器件模型的过程中,应当对生成待配置PLD器件模型的各个组件的功能结构进行描述,从而形成完整的器件模型。每一个模型个体均可以称之为一个组件(Device),具体地可以是基本元件、格点元件以及格点***,均可以称为组件。所述组件应当包括相应组件的名称、接口信息以及配置参数,其中可以将该组件的名称作为该组件的唯一标识信息,接口主要用于进行信号连接,配置参数决定该组件实现的具体功能。
本实施例中,以上结构格式(例如PLD模型文件、PLD实现设计文件)的描述语言称之为Valence语言。
基于Valence语言对各个组件的描述可以从多个方面进行,包括结构描述(Structure View)、配置描述(Configuration View)以及图形描述(Schematic View)。结构描述用于定义组件的内部结构,例如格点元件由多个基本元件组合连接而成,结构描述中定义了每个基本元件的配置参数值及基本元件之间的连接关系。应当理解的是,由于基本元件是抽象的最小基本单位,所以基本元件不存在结构描述。配置描述用于定义组件的配置点(Config Bit,与PLD器件中的物理开关一一对应)及配置值(Config Value),由于格点元件在顶层格点***中的排布是有规律的,所以可以将所有的Config Bit全部规划在格点元件中,这样就可以方便的定位某一个Config Bit在整个PLD器件中的位置。图形描述用于定义组件的图形,主要用于绘图。
例如,对格点元件从以上三个方面进行描述,从而得到包括描述位置的配置描述信息、进行图形表征的图形描述信息以及用于描述内部结构的结构描述信息。配置描述信息中包括该格点元件的特定坐标值,例如可以表示为:(a,1,4),其中“a”表示该格点元件属于格点***a,“1,4”表示该格点元件在格点***a中的具***置在第1排第4列。图形描述信息中包括用于表征该格点元件的图形,所述图像可以基于该格点元件所要实现的逻辑功能具体设定。结构描述信息用于描述该格点元件的内部结构,具体可以是该格点元件由哪些基本元件组成以及各基本元件之间的连接关系。
通过Valence语言对待配置的PLD器件进行建模时,所述PLD模型文件中还包含算子模型,所述算子模型包含实现各功能的功能模块(也即算子),一个功能模块由格点元件内的基本元件之间连接组合实现,不同的基本元件通过不同的连接方式能够形成不同的功能模块,实现不同的逻辑功能。具体的,所述功能模块包括但不限于加法器、乘法器、比较器、触发器等,均可以称为一个功能模块。
所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。应当说明的是,一个功能模块的特定功能在实现方式上并不是唯一的,可能存在多种不同的实现方式,后续的配置过程可以基于实际使用情景合理选择其中的某种实现方式。
S12:根据待配置PLD的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的PLD实现设计文件。
具体的,可以根据各目标功能模块的连接关系确定各输入输出接口;对于各目标功能模块,生成描述各目标功能模块的内部实现描述语句;以及根据各目标功能模块的连接关系生成各走线路径的描述语句,并对关键走线路径进行标识约束。最终,生成Valence语言格式的PLD实现设计文件。
为了更好的理解本发明,请参见图3,图3为本发明实施例一提供的PLD实现设计文件的组成示意图。所述PLD实现设计文件主要包含三个语句块:接口定义语句块、内部实现语句块、走线路径定义语句块。
其中,接口定义语句块中包含用于定义设计名称、定义设计的相关参数的描述语句、以及输入输出接口语句;此处的输入输出端口可以简单理解为Verilog语言中module的输入及输出,其主要作用是PLD器件与外部信号的交互,例如输入PLD器件的时钟信号。内部实现语句块中包含设计的内部结构描述语句,具体而言,实例化并连接特定的功能模块以实现相应的功能。编写内部结构时,不仅可以使用现有的功能模块,还可以根据实际需求设计特殊的功能模块,甚至可以直接对格点元件或基本元件进行配置连接,例如可以直接指定功能模块和/或组件在整个待配置PLD中的位置,具体的可以通过格点***中的各格点坐标来对使用的功能模块和/或组件的位置进行约束。
走线路径定义语句块中包含各走线路径的描述语句,用于对该PLD的关键走线路径进行标识约束,实现对关键走线路径的精确控制。本实施例中的关键走线路径可以是任意一个网线(网线可以理解为Verilog语言中的wire,其作用是连接两个功能模块的端口,以实现数据传递),一个网线两端连接的功能模块端口都在内部结构描述语句中确定了,走线路径定义语句只对关键网线的路径进行约束,没有进行约束的网线在后续处理时可采用布线算法进行布线。例如,编写时首先使用布线约束关键字标识开始对一个网线进行约束,然后将该网线从起点至终点间的每一个节点按照前后顺序使用连接符号进行连接,最后以分号结束。
S13:将所述PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置。
当所述Valence语言格式的PLD模型文件和PLD实现设计文件编写生成后,可以通过读取其中的目标功能模块、相互之间的连接关系以及器件模型中的顶层模型,并将PLD实现设计文件中的目标功能模块以及连接关系映射到PLD模型文件中器件模型的顶层上,从而实现对PLD器件模型进行配置。
为了更好地理解本发明,下面对PLD器件模型映射、配置过程进行详细说明,请参见图4,图4为本发明实施例一提供的PLD器件模型的映射配置方法流程示意图,包括:
S131:将PLD模型文件进行编译,并将编译结果存放于模型编译库中。
因为PLD模型文件中包含器件模型和算子模型,对器件模型编译后可以得到器件模型的顶层网格模型,并可以将其存放于模型编译库中;对于算子模型,同样可以将其中的各功能模块进行编译并存放于模型编译库中。
S132:对PLD实现设计文件进行编译得到目标功能模块实例和网线实例。
对PLD实现设计文件进行编译时,基于其中的描述各目标功能模块的内部实现描述语句得到目标功能模块实例,根据各个功能模块间的连接关系生成网线实例,并根据走线路径描述语句对关键路径进行约束。对PLD实现设计文件编译后得到的目标功能模块实例和网线实例可以存放于工作库(Work Lib)中。网线实例中存在其连接的各个目标功能模块实例的唯一标识,使用走线路径定义语句块进行过约束的网线实例中还会存放其具体走线路径。
S133:根据目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块。
S134:根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
将工作库中的网线实例取出,将PLD器件的顶层网格模型从模型编译库中取出,将各参数配置功能模块映射到所述顶层网格模型对应的特定格点上,并按照当前各参数配置功能模块的配置参数对当前格点元件进行配置。根据取出的网线实例,利用布线算法为每一个网线分配一个合适的走线路径。对于已经定义的特定走线路径则根据所述走线路径进行布线。
各参数配置功能模块的具体实现方式可以手动写入PLD实现设计文件中,也可以通过编译软件自动选择。
S14:遍历提取所述顶层上各格点元件的配置参数生成配置文件。
最终通过遍历PLD顶层格点***中的每一个格点元件,读取其配置信息并写入文件,待所有格点元件配置完成之后,即可生成PLD的配置文件。
S15:将所述配置文件写入所述待配置PLD。
待PLD的配置文件生成后,即可通过写入软件将其写入所述待配置PLD中。写入后还可对其进行运行测试,验证是否达到所要实现的逻辑功能以及稳定性状况。如果没有达到预计效果,则可以通过修改相应的程序文件实现,方便快捷,无需投入较高的设计成本。
本发明实施例提供一种可编程逻辑器件配置方法,通过生成Valence语言格式的包含器件模型和算子模型的PLD模型文件;所述器件模型包括位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;以及根据待配置PLD所要实现的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的PLD实现设计文件;将所述PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;遍历提取所述顶层上各格点元件的配置参数生成配置文件;并将所述配置文件写入所述待配置PLD。能够实现对PLD的精确配置过程,有利于设计人员对PLD的开发与测试。由于本发明可以对构成PLD的基本元件进行配置,因此可以实现PLD芯片的资源利用达到最大化,同时,能够灵活设置格点元件的内部结构以及各格点元件之间的连接关系,有效解决对关键路径的精确控制问题。
实施例二:
本发明实施例提供一种可编程逻辑器件配置设备,用以实现实施例一所述的可编程逻辑器件配置方法。请参照图5,图5为本发明实施例二提供的可编程逻辑器件配置设备的结构示意图,所述可编程逻辑器件配置设备5包括:模型生成模块51、设计生成模块52、处理模块53,其中:
模型生成模块51,用于生成PLD模型文件,所述PLD模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现。
通过模型生成模块51生成的PLD模型文件,也即对待配置PLD进行建模,生成的PLD模型文件中包括器件模型。其中,器件模型包含位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***。底层的基本元件是抽象的最小工作单元,中间层的格点元件由一个或多个基本元件组合连接而成,顶层的格点***由各格点元件按照一定的规律排布形成。
模型生成模块51生成的器件模型中还应当包括唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息。应当理解的是,所述唯一标识该器件模型的标识信息可以是该模型器件的名称;该功能参数配置信息可以根据待配置PLD所实现的逻辑功能具体设定。
在模型生成模块51生成器件模型的过程中,还用于对生成待配置PLD器件模型的各个组件的功能结构进行描述,从而形成完整的器件模型。所述各个组件包括位于底层的PLD基本元件、中间层的格点元件以及顶层的格点***。
模型生成模块51对各个组件的描述可以从多个方面进行,包括结构描述、配置描述以及图形描述。结构描述用于定义组件的内部结构,例如格点元件由多个基本元件组合连接而成,结构描述中定义了每个基本元件的配置参数值及基本元件之间的连接关系。应当理解的是,由于基本元件是抽象的最小基本单位,所以基本元件不存在结构描述。配置描述用于定义组件的配置点及配置值,由于格点元件在顶层格点***中的排布是有规律的,所以可以将所有的Config Bit全部规划在格点元件中,这样就可以方便的定位某一个Config Bit在整个PLD器件中的位置。图形描述用于定义组件的图形,主要用于绘图。
通过模型生成模块51对待配置的PLD器件进行建模时,所述PLD模型文件中还包含算子模型,所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现,不同的基本元件通过不同的连接方式能够形成不同的功能模块,实现不同的逻辑功能。具体的,所述功能模块包括但不限于加法器、乘法器、比较器、触发器等,均可以称为一个功能模块。
所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。应当说明的是,一个功能模块的特定功能在实现方式上并不是唯一的,可能存在多种不同的实现方式,后续的配置过程可以基于实际使用情景合理选择其中的某种实现方式。
本实施例中,所述可编程逻辑器件配置设备5还包括设计生成模块52,用于根据待配置PLD的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的PLD实现设计文件。
具体的,设计生成模块52可以根据设计所需要实现的功能确定各输入输出接口;对于各目标功能模块,生成描述各目标功能模块的内部实现描述语句;以及根据各目标功能模块的连接关系生成走线路径的描述语句,对关键走线路径进行标识约束。最终生成Valence语言格式的PLD实现设计文件。
通过设计生成模块52生成的Valence语言格式的PLD实现设计文件主要包含三个语句块:接口定义语句块、内部实现语句块、走线路径定义语句块。
其中,接口定义语句块中包含用于定义设计名称、定义设计的相关参数的描述语句、以及输入输出接口语句;此处的输入输出端口可以简单理解为Verilog语言中module的输入及输出,其主要作用是PLD器件与外部信号的交互,例如输入PLD器件的时钟信号。内部实现语句块中包含设计的内部结构描述语句,具体而言,实例化并连接特定的功能模块以实现相应的功能。编写内部结构时,不仅可以使用现有的功能模块,还可以根据实际需求设计特殊的功能模块,甚至可以直接对格点元件或基本元件进行配置连接,例如可以直接指定功能模块和/或组件在整个待配置PLD中的位置,具体的可以通过格点***中的各格点坐标来对使用的功能模块和/或组件的位置进行约束。
走线路径定义语句块中包含各走线路径的描述语句,用于对该PLD的关键走线路径进行标识约束,实现对关键走线路径的精确控制。本实施例中的关键走线路径可以是任意一个网线(网线可以理解为Verilog语言中的wire,其作用是连接两个功能模块的端口,以实现数据传递),一个网线两端连接的功能模块端口都在内部结构描述语句中确定了,走线路径定义语句只对关键网线的路径进行约束,没有进行约束的网线在后续处理时可采用布线算法进行布线。
本实施例中,通过模型生成模块51生成的PLD模型文件,以及通过设计生成模块52生成的PLD实现设计文件,生成这种文件格式的描述语言可以称之为Valence语言。
处理模块53用于将所述PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;遍历提取所述顶层上各格点元件的配置参数生成配置文件,将所述配置文件写入所述待配置PLD。
当模型生成模块51生成所述Valence语言格式的PLD模型文件,且设计生成模块52生成所述PLD实现设计文件之后,处理模块53可以读取其中的目标功能模块、相互之间的连接关系以及器件模型中的顶层模型,并将PLD实现设计文件中的目标功能模块以及连接关系映射到PLD模型文件中器件模型的顶层上,从而实现对PLD器件模型进行配置。
其中,所述处理模块53还可以包括编译子模块531和映射子模块532。请参见图6,图6为本发明实施例二提供的另一种可编程逻辑器件配置设备的结构示意图。其中,编译子模块531用于将所述器件模型从底层往顶层的顺序依次编译得到器件模型的顶层网格模型存放于模型编译库中,并将所述算子模型中的各功能模块进行编译后存放于模型编译库中;还用于将所述PLD实现设计文件进行编译得到目标功能模块实例和网线实例。
编译子模块531在对PLD模型文件进行编译时,由于PLD模型文件中包含器件模型和算子模型,对器件模型编译后可以得到器件模型的顶层网格模型,并可以将其存放于模型编译库中;对于算子模型,编译子模块531同样可以将其中的各功能模块进行编译并存放于模型编译库中。
编译子模块531对PLD实现设计文件进行编译时,基于其中的描述各目标功能模块的内部实现描述语句得到目标功能模块实例,根据各个功能模块间的连接关系生成网线实例,并根据走线路径描述语句对关键路径进行约束。对PLD实现设计文件编译后得到的目标功能模块实例和网线实例可以存放于工作库中。网线实例中存在其连接的各个目标功能模块实例的唯一标识,使用走线路径定义语句块进行过约束的网线实例中还会存放其具体走线路径。
应当理解的是,编译子模块531对PLD模型文件和PLD实现设计文件的编译结果并不限于将其存放在模型编译库和工作库中,还可以存放于其他可以存放该编译结果的存储空间内。
映射子模块532用于根据所述目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块;根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
本发明实施例提供一种可编程逻辑器件配置设备5,通过模型生成模块51生成Valence语言格式的PLD模型文件,所述PLD模型文件包含器件模型和算子模型,所述器件模型包括位于底层的基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;设计生成模块52用于根据待配置PLD所要实现的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成Valence语言格式的PLD实现设计文件;处理模块53用于将所述PLD实现设计文件中的目标功能模块以及连接关系映射到所述PLD模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;遍历提取所述顶层上各格点元件的配置参数生成配置文件;并将所述配置文件写入所述待配置PLD。通过所述的可编程逻辑器件配置设备,能够实现对PLD的精确配置,有效解决无法对关键路径进行精确控制以及无法达到较大的PLD芯片资源利用率的问题。同时,能够灵活设置格点元件的内部结构以及各格点元件之间的连接关系,有利于设计人员对PLD逻辑功能的开发与测试。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种可编程逻辑器件配置方法,其特征在于,包括:
生成可编程逻辑器件模型文件,所述可编程逻辑器件模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的可编程逻辑器件基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型库包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;
根据待配置可编程逻辑器件的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成可编程逻辑器件实现设计文件;
将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述可编程逻辑器件模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;
遍历提取所述顶层上各格点元件的配置参数生成配置文件;
将所述配置文件写入所述待配置可编程逻辑器件。
2.如权利要求1所述的可编程逻辑器件配置方法,其特征在于,所述器件模型包括用于唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息;
所述格点元件包括描述位置的配置描述信息、进行图形表征的图形描述信息以及用于描述内部结构的结构描述信息。
3.如权利要求2所述的可编程逻辑器件配置方法,其特征在于,所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。
4.如权利要求3所述的可编程逻辑器件配置方法,其特征在于,所述生成可编程逻辑器件实现设计文件包括:
根据所述连接关系确定并定义好各输入输出接口;
对于所述各目标功能模块,生成描述各目标功能模块的内部实现描述语句以得到目标功能模块实例;
根据所述连接关系生成各走线路径的描述语句,并对关键走线路径进行标识约束得到网线实例。
5.如权利要求4所述的可编程逻辑器件配置方法,其特征在于,将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述顶层上,并对所述顶层上对应的格点元件进行配置包括:
将所述器件模型从底层往顶层的顺序依次编译得到器件模型的顶层网格模型存放于模型编译库中,并将所述算子模型中的各功能模块进行编译存放于模型编译库中;
将所述可编程逻辑器件实现设计文件进行编译得到目标功能模块实例和网线实例;
根据所述目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块;
根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
6.一种可编程逻辑器件配置设备,其特征在于,包括:
模型生成模块,用于生成可编程逻辑器件模型文件,所述可编程逻辑器件模型文件中包含器件模型和算子模型;所述器件模型包括位于底层的可编程逻辑器件基本元件、中间层的格点元件以及顶层的格点***,所述格点元件由至少一个基本元件组成,所述格点***由至少一个格点元件组成;所述算子模型库包含实现各功能的功能模块,一个功能模块由格点元件内的基本元件之间连接组合实现;
设计生成模块,用于根据待配置可编程逻辑器件的功能从所述算子模型中选择对应的目标功能模块,并确定所述各目标功能模块之间的连接关系以生成可编程逻辑器件实现设计文件;
处理模块,用于将所述可编程逻辑器件实现设计文件中的目标功能模块以及连接关系映射到所述可编程逻辑器件模型文件中器件模型的顶层上,并对所述顶层上对应的格点元件进行配置;还用于遍历提取所述顶层上各格点元件的配置参数生成配置文件,并将所述配置文件写入所述待配置可编程逻辑器件。
7.如权利要求6所述的可编程逻辑器件配置设备,其特征在于,所述器件模型包括用于唯一标识该器件模型的标识信息、所实现功能的功能参数配置信息以及对应的接口信息;
所述格点元件包括描述位置的配置描述信息、进行图形表征的图形描述信息以及用于描述内部结构的结构描述信息。
8.如权利要求7所述的可编程逻辑器件配置设备,其特征在于,所述功能模块包括用于唯一标识该功能模块的模块标识信息、所实现功能的参数配置信息、对应的接口信息以及实现该功能模块的所有实现方式描述信息。
9.如权利要求8所述的可编程逻辑器件配置设备,其特征在于,所述设计生成模块用于根据所述连接关系确定并定义好各输入输出接口,对于所述各目标功能模块,生成描述各目标功能模块的内部实现描述语句以得到目标功能模块实例,以及根据所述连接关系生成各走线路径的描述语句,并对关键走线路径进行标识约束得到网线实例。
10.如权利要求9所述的可编程逻辑器件配置设备,其特征在于,所述处理模块包括:
编译子模块,用于将所述器件模型从底层往顶层的顺序依次编译得到器件模型的顶层网格模型存放于模型编译库中,并将所述算子模型中的各功能模块进行编译存放于模型编译库中;还用于将所述可编程逻辑器件实现设计文件进行编译得到目标功能模块实例和网线实例;
映射子模块,用于根据所述目标功能模块实例从所述模型编译库中找到各自对应的功能模块,并根据各目标功能模块实例的参数对相应功能模块进行配置得到参数配置功能模块;还用于根据所述网线实例及各参数配置功能模块的实现方式,将所述各参数配置功能模块映射到所述顶层网格模型对应的网格上,并按照所述各参数配置功能模块的参数对相应网格上的网格元件进行配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611068221.8A CN106682268B (zh) | 2016-11-28 | 2016-11-28 | 可编程逻辑器件配置方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611068221.8A CN106682268B (zh) | 2016-11-28 | 2016-11-28 | 可编程逻辑器件配置方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106682268A true CN106682268A (zh) | 2017-05-17 |
CN106682268B CN106682268B (zh) | 2020-06-30 |
Family
ID=58866205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611068221.8A Active CN106682268B (zh) | 2016-11-28 | 2016-11-28 | 可编程逻辑器件配置方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106682268B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944183A (zh) * | 2017-12-11 | 2018-04-20 | 深圳市紫光同创电子有限公司 | Fpga顶层网表的创建方法、装置、计算机设备及介质 |
CN110489344A (zh) * | 2019-08-02 | 2019-11-22 | Oppo广东移动通信有限公司 | 引擎测试方法及相关产品 |
CN112039703A (zh) * | 2020-08-28 | 2020-12-04 | 迈普通信技术股份有限公司 | 路径确定方法、装置、设备及可读存储介质 |
CN112257357A (zh) * | 2020-09-14 | 2021-01-22 | 深圳市紫光同创电子有限公司 | Fpga芯片顶层电路的构建方法、装置及存储介质 |
CN113255325A (zh) * | 2021-05-10 | 2021-08-13 | 成都微视联软件技术有限公司 | 一种自动计算电子文档的内容的方法 |
CN113391798A (zh) * | 2020-03-11 | 2021-09-14 | 北京灵汐科技有限公司 | 一种自动优化配置生成方法和*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769107B1 (en) * | 2001-12-03 | 2004-07-27 | Lsi Logic Corporation | Method and system for implementing incremental change to circuit design |
CN101246510A (zh) * | 2008-02-28 | 2008-08-20 | 复旦大学 | 可编程逻辑器件硬件结构通用建模方法 |
CN103019947A (zh) * | 2012-11-28 | 2013-04-03 | 复旦大学 | 一种fpga芯片配置信息模型的层出化构建方法 |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
US8504973B1 (en) * | 2010-04-15 | 2013-08-06 | Altera Corporation | Systems and methods for generating a test environment and test system surrounding a design of an integrated circuit |
CN105740520A (zh) * | 2016-01-25 | 2016-07-06 | 深圳市同创国芯电子有限公司 | Fpga建模方法及装置 |
-
2016
- 2016-11-28 CN CN201611068221.8A patent/CN106682268B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769107B1 (en) * | 2001-12-03 | 2004-07-27 | Lsi Logic Corporation | Method and system for implementing incremental change to circuit design |
CN101246510A (zh) * | 2008-02-28 | 2008-08-20 | 复旦大学 | 可编程逻辑器件硬件结构通用建模方法 |
US8504973B1 (en) * | 2010-04-15 | 2013-08-06 | Altera Corporation | Systems and methods for generating a test environment and test system surrounding a design of an integrated circuit |
CN103019947A (zh) * | 2012-11-28 | 2013-04-03 | 复旦大学 | 一种fpga芯片配置信息模型的层出化构建方法 |
CN103164228A (zh) * | 2013-03-29 | 2013-06-19 | 北京经纬恒润科技有限公司 | 一种现场可编程门阵列程序的生成方法及装置 |
CN105740520A (zh) * | 2016-01-25 | 2016-07-06 | 深圳市同创国芯电子有限公司 | Fpga建模方法及装置 |
Non-Patent Citations (1)
Title |
---|
李可: "FPGA 布局算法的研究与实现", 《中国优秀硕士论文全文数据库信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944183A (zh) * | 2017-12-11 | 2018-04-20 | 深圳市紫光同创电子有限公司 | Fpga顶层网表的创建方法、装置、计算机设备及介质 |
CN107944183B (zh) * | 2017-12-11 | 2021-07-20 | 深圳市紫光同创电子有限公司 | Fpga顶层网表的创建方法、装置、计算机设备及介质 |
CN110489344A (zh) * | 2019-08-02 | 2019-11-22 | Oppo广东移动通信有限公司 | 引擎测试方法及相关产品 |
CN113391798A (zh) * | 2020-03-11 | 2021-09-14 | 北京灵汐科技有限公司 | 一种自动优化配置生成方法和*** |
CN112039703A (zh) * | 2020-08-28 | 2020-12-04 | 迈普通信技术股份有限公司 | 路径确定方法、装置、设备及可读存储介质 |
CN112257357A (zh) * | 2020-09-14 | 2021-01-22 | 深圳市紫光同创电子有限公司 | Fpga芯片顶层电路的构建方法、装置及存储介质 |
CN113255325A (zh) * | 2021-05-10 | 2021-08-13 | 成都微视联软件技术有限公司 | 一种自动计算电子文档的内容的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106682268B (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682268A (zh) | 可编程逻辑器件配置方法及设备 | |
CN102708221B (zh) | 用于对局部重配置模块进行布局和布线的方法和设备 | |
Lavin et al. | Rapid prototyping tools for FPGA designs: RapidSmith | |
Lengauer | Combinatorial algorithms for integrated circuit layout | |
CN104679488B (zh) | 一种流程定制开发平台及流程定制开发方法 | |
US8001510B1 (en) | Automated method of architecture mapping selection from constrained high level language description via element characterization | |
CN104573169B (zh) | 以自动流水线操作能力设计集成电路的方法和工具 | |
CN109284578A (zh) | 逻辑电路布局布线方法、图形化显示方法及其*** | |
US8639487B1 (en) | Method for multiple processor system-on-a-chip hardware and software cogeneration | |
Hutton et al. | Characterization and parameterized random generation of digital circuits | |
CN106155755A (zh) | 程序编译方法和程序编译器 | |
CN102768692B (zh) | 应用于fpga测试的导航布局布线方法 | |
US8296690B1 (en) | Method and arrangement providing for implementation granularity using implementation sets | |
Chen et al. | Routability-driven blockage-aware macro placement | |
US7584448B1 (en) | Constructing a model of a programmable logic device | |
JP4495865B2 (ja) | 業者間アプリケーションサービスプロバイダ | |
Kahng et al. | RTL-MP: toward practical, human-quality chip planning and macro placement | |
US7610573B1 (en) | Implementation of alternate solutions in technology mapping and placement | |
US10846449B1 (en) | Conversion of block model-based circuit designs into circuit implementations | |
CN106096159B (zh) | 一种云平台下的分布式***行为仿真分析***的实现方法 | |
US8868396B1 (en) | Verification and debugging using heterogeneous simulation models | |
CN107944183A (zh) | Fpga顶层网表的创建方法、装置、计算机设备及介质 | |
US7509246B1 (en) | System level simulation models for hardware modules | |
CN105740520A (zh) | Fpga建模方法及装置 | |
CN116090396A (zh) | 显示芯片设计的数据流的方法及相关设备 |
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 |