CN112949233B - Fpga芯片的自动化开发方法及装置、电子设备 - Google Patents
Fpga芯片的自动化开发方法及装置、电子设备 Download PDFInfo
- Publication number
- CN112949233B CN112949233B CN202110252774.3A CN202110252774A CN112949233B CN 112949233 B CN112949233 B CN 112949233B CN 202110252774 A CN202110252774 A CN 202110252774A CN 112949233 B CN112949233 B CN 112949233B
- Authority
- CN
- China
- Prior art keywords
- file
- fpga
- engine
- chip
- simulation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000011161 development Methods 0.000 title claims abstract description 50
- 238000004088 simulation Methods 0.000 claims abstract description 65
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 238000012795 verification Methods 0.000 claims description 43
- 238000013461 design Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 21
- 230000010354 integration Effects 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 20
- 230000015572 biosynthetic process Effects 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 241000350139 Erythrophleum suaveolens Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
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]
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供一种FPGA芯片的自动化开发方法及装置、电子设备、存储介质,该方法包括:获取仿真文件列表和管脚分配定义文件;通过文件引擎对所述仿真文件列表进行格式转换;根据格式转换后的仿真文件列表生成FPGA文件列表;通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。从而可以有效的在FPGA环境验证电路和软件,无需专人管理,降低人力和时间成本。
Description
技术领域
本申请涉及芯片技术领域,特别涉及一种FPGA芯片的自动化开发方法及装置、电子设备、计算机可读存储介质。
背景技术
片上系统(System On Chip,SOC)是指在单芯片上集成微电子应用产品所需的全部功能系统,其是以超深亚微米(Very Deep Submicron,VDSM)工艺和知识产权(Intellectual Property,IP)核复用技术为支撑。SOC技术是当前大规模集成电路(VeryLarge Scale Integrate,VLSI)的发展趋势,也是解决电子产品开发中的及时上市(Timeto Market,TTM)的主要技术与方法。
随着深亚微米技术的高速发展,芯片的集成规模越来越大,芯片功能的验证变得越来越重要和复杂耗时,芯片的设计方法也随之发生了巨大的变化。目前,仿真验证工作约占整个片上系统芯片开发周期的50%~80%。然而传统的芯片仿真验证时间长、自动化程度低、耗时费力,这就导致整个芯片的开发周期变长。
传统的验证测试模式是开环,需专人管理控制输入测试向量和观察仿真波形,耗时耗力,同时也会影响芯片推出市场的时间。
发明内容
本申请实施例提供了FPGA芯片的自动化开发方法,用以缩短开发时间,降低人力成本。
本申请实施例提供了一种FPGA芯片的自动化开发方法,包括:
获取仿真文件列表和管脚分配定义文件;
通过文件引擎对所述仿真文件列表进行格式转换;
根据格式转换后的仿真文件列表生成FPGA文件列表;
通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;
调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。
在一实施例中,所述FPGA文件列表包括:电路模块文件、FPGA工艺库文件、FPGA综合选项、布局选项和布线选项。
在一实施例中,所述通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件,包括:
读入FPGA文件列表和管脚分配定义文件;
设置FPGA综合策略、FPGA映射策略、FPGA布局布线策略以及输出文件策略,得到所述自动化运行文件。
在一实施例中,所述FPGA综合策略,包括:
根据FPGA型号以及FPGA工具将RTL代码综合成门级网表。
在一实施例中,所述FPGA映射策略,包括:
将所述门级网表映射到FPGA型号的器件。
在一实施例中,所述FPGA映射策略,包括:
若电路占用资源未超出FPGA型号的器件所能提供的资源,生成所述FPGA型号的器件的布局和布线策略。
在一实施例中,本申请实施例提供的方法还包括:
获取电路设计文件;
根据所述电路设计文件,生成RTL代码;
对所述RTL代码进行模块级仿真和芯片级仿真。
本申请实施例提供了一种FPGA芯片的自动化开发装置,包括:
文件获取模块,用于获取仿真文件列表和管脚分配定义文件;
格式转换模块,用于通过文件引擎对所述仿真文件列表进行格式转换;
文件生成模块,用于根据格式转换后的仿真文件列表生成FPGA文件列表;
文件整合模块,用于通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;
脚本调用模块,用于调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。
本申请实施例提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述FPGA芯片的自动化开发方法。
本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述FPGA芯片的自动化开发方法。
本申请上述实施例提供的技术方案,可以获取仿真文件列表和管脚分配定义文件;通过文件引擎对仿真文件列表进行格式转换;根据格式转换后的仿真文件列表生成FPGA文件列表;通过设置引擎整合FPGA文件列表和管脚分配定义文件,生成自动化运行文件;调用自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件,从而可以有效的在FPGA环境验证电路和软件,无需专人管理,降低人力和时间成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的全芯片自动化开发系统的架构示意图;
图2为本申请实施例提供的电子设备的示意图;
图3是本申请一实施例示出的FPGA芯片的自动开发方法的流程示意图;
图4是本申请一实施例示出的仿真文件列表的示意图;
图5是本申请一实施例示出的管脚分配定义文件的示意图;
图6是本申请一实施例示出的进行格式转换的系统控制模块文件的示意图;
图7是本申请一实施例示出的设置引擎的执行过程示意图;
图8是本申请一实施例示出的空壳文件的形式的示意图;
图9是本申请一实施例示出的sdf文件格式的示意图;
图10是图1所示的efpga引擎的执行过程示意图;
图11是本申请一实施例示出的soc芯片的验证流程示意图;
图12为本申请一实施例示出的FPGA芯片的自动化开发装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例提供的全芯片自动化开发系统的架构示意图。SCD-Auto是一个提供跨操作系统(OS)、跨EDA厂家工具的一个芯片自动化开发系统。SCD-Auto是基于图1将各个阶段所需的环境以及EDA工具很好的结合在一起,此流程不限定EDA工具厂家而且此流程对于芯片设计工程师并不要求新的技能,可以更容易的推广此SoC芯片自动化开发流程。SCD-Auto基于选定的工艺库,提供从芯片架构的功能和管脚定义到芯片设计、验证、综合实现、DFT(可测试电路)实现以及形式验证所需的环境。如图1所示,该SCD-Auto系统包括gen_iomux引擎(智能管脚引擎)、vp引擎(智能虚拟连线引擎)、def引擎(智能验证引擎)、esyn引擎(智能综合引擎)、edft引擎(智能可测试引擎)、eformal引擎(智能形式验证引擎)、erun引擎(智能仿真引擎)以及efpga引擎。
SCD-Auto系统根据输入的CSV(芯片管脚定义文件)、vconn(模块连接定义文件)、def(模块寄存器定义文件),通过上述引擎,可以自动生成chip.v,iomux.v和iopad.v三个芯片顶层文件,模块之间连线的RTL代码(寄存器级),产生寄存器头文件,生成综合运行环境,生成DFT(可测试电路)运行环境,生成FV(形式验证)运行环境,生成仿真执行命令,最后输出VERILOG(硬件描述语言)网表和SDC(综合约束文件)。
SCD-Auto系统可以根据输入的vlist(仿真的文件列表)和xdc(FPGA管脚分配定义的文件),通过efpga引擎,生成fpga运行环境,最后输出bit文件(基于FPGA型号布局布线后的电路)、VERILOG网表和SDF文件(标准延迟文件)。
上述SCD-Auto系统可以部署在服务器中,由服务器执行自动开发过程。
图2是本申请实施例提供的电子设备的结构示意图。该电子设备100可以用于执行本申请实施例提供的FPGA芯片的自动开发方法。如图2所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的FPGA芯片的自动开发方法。
所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的FPGA芯片的自动开发方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图2所示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。
在一实施例中,用于实现本申请实施例的FPGA芯片的自动开发方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的FPGA芯片的自动开发方法的示例电子设备100可以被实现为诸如平板电脑、台式电脑、服务器等智能终端。
图3是本申请实施例提供的一种FPGA芯片的自动开发方法的流程示意图。如图3所示,该方法包括以下步骤S310-S350。
步骤S310:获取仿真文件列表和管脚分配定义文件。
其中,仿真文件列表(vlist)是仿真环境模块的输入文件。参考形式如下可以如图4所示。管脚分配定义文件(xdc)是芯片管脚在FPGA上的管脚分配定义以及时序约束,如时钟定义和不同时钟域的关系,参考形式如图5所示。此文件针对不同设计、不同型号的FPGA都需要调整。仿真文件列表和管脚分配定义文件可以由设计人员提供。
步骤S320:通过文件引擎对所述仿真文件列表进行格式转换。
文件引擎将vlist解析成FPGA工具能识别的格式,系统控制模块文件如图6所示。对比图4和图6,其中虚线框内是文件引擎做的格式转换,即转换成FPGA工具可以识别的格式。
步骤S330:根据格式转换后的仿真文件列表生成FPGA文件列表。
其中,FPGA文件列表包括需要验证的电路模块文件、FPGA工艺库文件、FPGA综合选项、布局选项和布线选项。RTL代码在下载到板子上这个过程之前,要做一个综合、布局、布线,按照FPGA的要求,综合成电路,然后将bit流文件下载到FPGA开发板上。综合是将电路的高级语言转化为低级的,可与FPGA的门阵列基本结构相映射的网表文件或程序。
步骤S340:通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件。
其中,自动化运行文件(tcl文件)是为了流程能自动化运行的一个脚本文件格式。设置引擎将需要验证的电路模块文件、FPGA工艺库文件、管脚分配定义文件(xdc)和FPGA工具所需的综合、布局、布线选项整合成一个tcl文件。
在一实施例中,如图7所示,上述步骤S340具体包括:读入FPGA文件列表和管脚分配定义文件;设置FPGA综合策略、FPGA映射策略、FPGA布局布线策略以及输出文件策略,得到所述自动化运行文件。
其中,读入FPGA文件列表是指读入FPGA模块所需文件列表,具体依据所需验证FPGA模块来读入真实电路文件或者模块顶层的空壳文件。模块选择由用户实际应用时决定。需要说明的是,因为芯片规模大到一个程度,没办法将所有电路都放到一颗FPGA来验证,需要将不需要关注的模块将所有输出都接成固定值。如下以i2c模块为例。空壳文件的形式如图8所示。
读入FPGA管脚分配文件是读入xdc文件。设置FPGA综合策略是针对FPGA型号以及FPGA工具将RTL代码综合成门级网表;设置FPGA映射策略是将刚刚经由综合策略产生的电路映射到FPGA型号的器件,如果映射后的电路占用FPGA资源超出FPGA器件所能提供的资源则中止后续的步骤,如果映射所需资源是FPPGA器件能提供的范围内则往下一步流程走;设置FPGA布局布线策略是将上一步映射好的电路做好布局和布线的工作;输出文件策略是输出bitfile、sdf、verilog、STA时序报告等文件。
bitfile文件是芯片电路烧录进FPGA器件后可以在FPGA板上验证芯片电路功能和软件;sdf和verilog网表是在EDA环境上验证带时序参数的网表是否达到预期功能;STA时序报告是芯片整体时序报告,在bitfile文件烧录FPGA和在EDA环境后仿前先检查时序是否达到预期结果,达到预期结果后才进行后仿以及板级的调试。
其中,综合和映射策略以Xilinx的流程为例,包括以下过程:
a、综合以及映射设计:synth_design–top顶层模块名称–part FPGA器件信号–flatten full(表示整个设计全部平铺)–resource_sharing on(使能)–include_dirs设计目录路径–bufg个数;
b、写出断点:write_checkpoint目录;
c、写出verilog网表:write_verilog目录路径/文件名;
d、写出综合时序报告:report_timing_summary–file目录/文件名;
e、FPGA资源利用率报告:report_utilization–file目录/文件名;
f、功耗分析报告:report_power–file目录/文件名;
其中,布局策略包括以下过程:
a、优化设计:opt_design;
b、布局place_design;
c、布局优化phys_opt_design;
d、写布局阶段断点报告write_checkpoint–force目录/文件名;
e、布局阶段时序报告rrite_timing_summary–file目录/文件名;
其中,布线策略包括以下以下过程:
a、绕线route_design;
b、写布线阶段断点write_checkpoint–file目录/文件名;
c、时序报告总结report_timing_summary–file目录/文件名;
d、详细时序报告report_timing–sort_by_group–max_paths个数–path_typesummary–file目录/文件名;
e、时钟利用率报告report_clock_utilization–file目录/文件名;
f、FPGA资源利用率报告report_utilization–file目录/文件名;
g、布线阶段功耗分析报告report_power–file目录/文件名;
h、DRC设计规则检查报告report_drc–file目录/文件名;
i、写出布线阶段网表write_verilog–force目录/文件名;
j、写出sdf标准延迟文件write_sdf–force目录/文件名;
k、写出布线完成阶段的xdc文件write_xdc–no_fixed_only–force目录/文件名;
l、写出bitstream文件,此文件可烧录到FPGA验证write_bitstream–force目录/文件名。
步骤S350:调用所述自动化运行文件,生成仿真电路文件(verilog仿真模型)、时序报告、标准延迟文件(sdf文件)以及配置比特流文件(bitfile文件)。
具体的,Verilog仿真模型内容就是芯片映射到FPGA上的电路。FPGA运行脚本调用设置引擎里指定的FPGA综合工具(即综合策略)、映射工具(映射策略)、布局布线工具(布局布线策略)以及时序检查工具,运行完这些工具后调用FPGA工具写出功能写出verilog网表(即verilog仿真模型)、sdf仿真时序文件、布线后的xdc、时序报告以及bitfile文件。时序检查工具是FPGA环境里自带的一个工具,用来检查FPGA工具布局布线后的电路是否满足设计预期的时间约束。
FPGA运行脚本包括如下内容:a)、会基于当前运行的时间创建一个运行目录b)、调用设置引擎c)、调用FPGA工具且运行设置引擎d)、运行结束时间记录在日志最后。
bitfile文件是基于FPGA型号布局布线后的电路,也就是说此电路就是想要的芯片功能;sdf仿真时序文件是布局布线后电路的线参数和器件参数造成的时序延迟信息;verilog仿真模型是在EDA环境确认FPGA工具生成出来的bitfile的电路功能是否符合预期。sdf格式如图9所示。此文件是表示实际电路的器件和线的寄生参数造成的时间延迟。此文件是为了搭配布线完成后的网表一起做后仿真使用。
图10是图1所示的efpga引擎的执行过程示意图。图3对应实施例可以由efpga引擎执行。参见图10,输入包括vlist文件和xdc文件。Vlist文件通过文件引擎进行格式转换后生成FPGA文件列表。FPGA设置引擎读取FPGA文件列表和xdc文件,设置FPGA综合工具、映射工具、布局布线工具。FPGA运行脚本调用设置引擎里指定的FPGA综合工具、映射工具、布局布线工具以及时序检查工具,运行完这些工具后调用FPGA工具写出功能写出verilog网表、sdf仿真时序文件、布线后的xdc、时序报告以及bitfile文件。
图11是soc芯片的验证流程示意图。一般会分成EDA仿真流程和FPGA验证流程,在FPGA验证环境搭建时需要处理的事项在SCD-Auto芯片自动化系统中的efpga引擎将这些需要处理的事项流程化;如:
a)FPGA的顶层端口和ASIC不一致时可以在csv文件定义;
b)FPGA芯片型号可以在efpga引擎指定型号;
c)efpga引擎生成FPGA验证时所需各个模块空壳文件;
d)FPGA验证所需的模块文件列表efpga引擎基于EDA仿真验证文件自动生成FPGA工具所需要的文件格式。
如图11所示,本申请实施例提供的方法还包括:获取电路设计文件;其中,电路设计文件可以是图形化的电路的文件。根据所述电路设计文件,生成RTL代码;对所述RTL代码进行模块级仿真和芯片级仿真。其中,搭建FPGA环境可以由efpga引擎执行,efpga引擎的执行过程可以参照图3和图10对应实施例。在FPGA环境搭建之后,进行FPGA级验证。
下面几项是SCD-Auto芯片自动化系统csv、vp、ver、efpga、esyn、edft和eformal等几个引擎的个别单独功能介绍;SCD-Auto系统基于gmake环境将这几个功能整合进来,使用者只需要在项目当前目录下运行make即可使用者可以基于当前的意图可以单独使用makertl编译寄存器列表以及整个SoC芯片各个模块的RTL;make ver编译寄存器读写C测试用例;make efpga是生成FPGA验证所需的运行环境;make syn是生成各个模块、各个层级、各个子系统和整个芯片的综合环境;makedft是产生各个模块、各个层级、各个子系统和整个芯片的DFT环境;make formal是产生各个模块、各个层级、各个子系统和整个芯片的形式验证环境;或者用make all将这些功能和环境一次性的生成出来。
1、整个系统大幅度的降低人为的干预以及人为造成的;
2、整个系统尽可能的不改变RTL设计工程师的开发习惯;
3、整个开发环境均在同一个操作系统系统(Linux或Unix);
4、整个系统输入文件是csv文本文件以及def寄存器定义文件;
5、整个系统的管脚定义和复用CSV文件适应不同厂家的IO库和管脚信号定义;
6、整个系统整合芯片RTL设计(Design)、FPGA、EDA验证(Verification)、综合(Synthesis)、形式验证(Formal)以及软件(Software)等不同阶段所需环境以及工具;
7、系统会自动对同一层级模块间的连线以及上下层级的模块之间的连线;
8、系统会自动生成每个模块以及每个子系统的顶层RTL文件;
9、系统会自动生成寄存器头文件给设计、验证以及软件确保三个阶段的寄存器文件跟RTL代码一致;
10、系统同时生成html的寄存器文件;
11、系统会自动生成芯片每个模块的寄存器读写的C验证用例;
12、系统会自动生成综合(Synthesis)、DFT、形式验证环境的执行文件;
13、系统支持不同EDA厂家的工具;
14、系统的csv负责整个SoC芯片的管脚复用,每个I/O管脚的复用可以基于芯片实际应用扩展4个、8个、16种或者更多的功能复用;
15、系统的def寄存器环境支持8比特、32比特以及64比特CPU处理器类型;
16、系统保证RTL代码的在不同工艺节点的可移植性。整个芯片设计所使用的标准单元库、时钟门控单元、时钟选择单元、SRAM以及异步处理单元均由自动化开发系统提供,可以最大幅度的在不同工艺节点之间移植;
17、系统基于csv自动生成芯片的最顶层RTL文件chip.v、管脚复用RTL、文件iomux.v以及基于工艺I/O库的RTL文件iopad.v;
18、系统的csv支持不同I/O库的特性如输出使能的极性、I/O的上下拉电阻、slewrate、输出驱动能力、输入迟滞、输入使能、开漏类型I/O,…,等I/O特性;
19、系统自动生成BSD边界扫描链电路逻辑;
20、系统支持Bottom-Up和Top-Down芯片实现流程
21、系统生成的综合环境限制每个模块或子系统的负责人改动调用的工艺库以及综合工具的选项,避免负责人改动造成整个芯片实现策略不同引起不可预期的问题;
22、系统生成的形式验证环境限制每个模块或子系统的负责人调用工具的选项,避免负责人改动造成整个芯片实现策略改变造成不可预期的问题;
23、系统对于相同模块不同个数的例化可以直接使用回圈的方式然后生成RTL代码。此方法大幅度减少代码输入错误的可能性以及RTL代码功能错误后容易定位问题,因为此方法造成的功能错误都会是整体错误而不会是只有某几个被例化模块出错;
24、系统可以基于def寄存器定义文件自动生成每个模块的寄存器RTL代码,此寄存器的接口支持APB和AHB从设备接口
25、SoC自动化系统支持芯片开发阶段的综合设计检查,确保每个模块和子系统负责人交付给上一级综合负责人时是符合规定的;
26、系统支持芯片开发阶段的DFT规则检查,确保每个模块或子系统负责人交付给上一级DFT负责人时的DFT规则是符合规定;
27、系统的形式验证环境确保每个模块或子系统负责人交付给上一级形式验证负责人时的形式验证结果是符合规定;
28、系统支持项目管理人员检查开发人员的结果是否符合要求;
29、系统提供项目管理人员对于项目进度可从多方面来评估进度是否如工程师评估的一致以及差异;
30、系统会自动检查连线之间的位宽是否匹配,不匹配则不会正常生成RTL代码;
31、系统会自动检查连线之间的方向属性是否匹配,不匹配则不会正常生成RTL代码;
32、系统整合全芯片的中断号以及DMA通道号;
33、系统的寄存器测试用例使用生成的寄存器头文件定义参数完成寄存器地址寻址以及寄存器比特的读写;
34、系统尽可能的保证ASIC和FPGA两者RTL代码的一致性;也就是说,RTL设计代码中的标准单元库、Memory、时钟门控单元、时钟选择单元、I/O和iomux.v这些代码ASIC和FPGA都一致;如果ASIC和FPGA的顶层端口相同则chiip.v和chip_fppga以及iopad.v和iopad_fpga.v文件也会相同;
35、系统在FPGA环境中基于csv自动生成用户基于项目所需的chip_fpga.v和iopad_fpga.v,同时一并生成ASIC所需的chip.v和iopad.v;
36、基于仿真的文件列表和用户的xdc管脚定义自动生成产生FPGA验证所需的运行文件和bitfile文件;
37、efpga引擎可以和SCD-Auto系统无缝结合,使得芯片开发中除了ASIC EDA验证之外还可以有效的在FPGA环境验证电路和软件;
38、生成的FPGA bitfile验证文件基于运行时间自动生成运行目录,避免FPGA运行文件生成在同一目录导致混淆;
39、适合用户同时需要生成多个试验的FPGA bitfile文件。
因为SCD-Auto将个别单独的引擎利用gmake串联起来,生成好的环境依然可以利用gmake来运行;也就是说SCD-Auto芯片自动化系统可以直接运行生成好的运行文件或者直接运行makefile。利用makefile还可以跟grid engine或load balance负载均衡等软硬件搭配使用,可以让服务器利用率大幅度的提升和释放工程师资源。
同时SCD-Auto芯片自动化系统所有的操作均在单一系统Linux或UNIX下完成,不需要跨不同OS来完成。比如在Windows环境下定义好寄存器再经由套件生成RTL代码后再回传至Linux或UNIX环境,因为文件导出和导入容易导致操作文件疏失或传输造成文件不匹配而且可能文件传输有可能有档案传输权限的问题。SCD-Auto芯片自动化系统不管是产生寄存器的RTL代码、模块之间的连线或者顶层chip层级的RTL代码产生均在Linux或UNIX环境下,而且只需要make rtl简单的操作,可以让刚开始接触此系统不熟悉环境的工程师能够很快的上手。
SCD-Auto芯片自动化开发系统还有个最大的优势是所有在项目中的使用者都可以更新检查,每一个人都可以是检查者确保整个项目的数据是否完整有无上传未被验证过的代码破坏项目当前的数据库,另外SCD-Auto芯片自动化系统再搭配类似SCDTek内部的mini regresssion环境可以实时在预设的时间运行预先设置好的测试用例确保项目的数据库如果被破坏最长不会超过半天12小时,如果出问题可以将出问题的时间窗缩小到12小时内或者更短,这取决于mini regression一次的最长时间多长;如果跑一轮miniregression只需要4小时则可以设置每6小时运行一次mini regression将出问题的时间窗缩小到6小时内。这些都是为了能尽早发现项目数据库有没有被破坏,如果破坏可以尽可能的提早知道。另外SCD-Atuo芯片自动化系统更适合多地同时开发,因为数据上传数据库在预先设置的时间窗内就可以知道上传的数据是否有无问题;因为可以多地、甚至不同时区同时开发,因此对于这个项目的进度可以更好的推进。如果再搭配版本控制以及gridengine则每次自动运行可以确保项目的数据库都是最新的RTL代码、验证环境和测试用例且可以平衡服务器的负载和提高服务器的利用率。
这也是为什么SCDTek的SCD-Auto芯片自动化开发系统会在各个独立的引擎架设在gmake环境以及搭配Linux/UNIX服务器上的grid engine功能,因为这样可以才能让基于SCD-Auto流程开发的芯片环境是一个针对芯片设计开发的一个系统工具;同时SCD-Auto芯片自动化系统可以让使用者基于自身的习惯做更好的扩充功能。
本申请上述实施例提供的技术方案,可以获取仿真文件列表和管脚分配定义文件;通过文件引擎对仿真文件列表进行格式转换;根据格式转换后的仿真文件列表生成FPGA文件列表;通过设置引擎整合FPGA文件列表和管脚分配定义文件,生成自动化运行文件;调用自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件,从而可以有效的在FPGA环境验证电路和软件,无需专人管理,降低人力和时间成本。
下述为本申请装置实施例,可以用于执行本申请上述FPGA芯片的自动化开发方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请FPGA芯片的自动化开发方法实施例。
图12为本申请一实施例示出的FPGA芯片的自动化开发装置的框图,如图12所示,该装置包括:文件获取模块1210、格式转换模块1220、文件生成模块1230、文件整合模块1240以及脚本调用模块1250。
文件获取模块1210,用于获取仿真文件列表和管脚分配定义文件;
格式转换模块1220,用于通过文件引擎对所述仿真文件列表进行格式转换;
文件生成模块1230,用于根据格式转换后的仿真文件列表生成FPGA文件列表;
文件整合模块1240,用于通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;
脚本调用模块1250,用于调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。
上述装置中各个模块的功能和作用的实现过程具体详见上述FPGA芯片的自动化开发方法中对应步骤的实现过程,在此不再赘述。
在一实施例中,所述FPGA文件列表包括:电路模块文件、FPGA工艺库文件、FPGA综合选项、布局选项和布线选项。
在一实施例中,文件整合模块1240具体用于:读入FPGA文件列表和管脚分配定义文件;设置FPGA综合策略、FPGA映射策略、FPGA布局布线策略以及输出文件策略,得到所述自动化运行文件。
在一实施例中,所述FPGA综合策略,包括:根据FPGA型号以及FPGA工具将RTL代码综合成门级网表。
在一实施例中,所述FPGA映射策略,包括:将所述门级网表映射到FPGA型号的器件。
在一实施例中,所述FPGA映射策略,包括:若电路占用资源未超出FPGA型号的器件所能提供的资源,生成所述FPGA型号的器件的布局和布线策略。
在一实施例中,本申请实施例提供的装置,还包括:
电路设计模块,用于获取电路设计文件;
代码生成模块,用于根据所述电路设计文件,生成RTL代码;
电路仿真模块,用于对所述RTL代码进行模块级仿真和芯片级仿真。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
Claims (10)
1.一种FPGA芯片的自动化开发方法,其特征在于,所述FPGA芯片的自动化开发方法应用于SCD-Auto系统;所述SCD-Auto系统是一个提供跨操作系统OS、跨EDA厂家工具的一个芯片自动化开发系统;所述SCD-Auto系统基于选定的工艺库,提供从芯片架构的功能和管脚定义到芯片设计、验证、综合实现、可测试电路DFT实现以及形式验证所需的环境;所述SCD-Auto系统包括智能管脚引擎、智能虚拟连线引擎、智能验证引擎、智能综合引擎、智能可测试引擎、智能形式验证引擎、智能仿真引擎以及efpga引擎;所述efpga引擎用于执行所述FPGA芯片的自动化开发方法;
所述FPGA芯片的自动化开发方法,包括:
获取仿真文件列表和管脚分配定义文件;
通过文件引擎对所述仿真文件列表进行格式转换;
根据格式转换后的仿真文件列表生成FPGA文件列表;
通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;
调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。
2.根据权利要求1所述的方法,其特征在于,所述FPGA文件列表包括:电路模块文件、FPGA工艺库文件、FPGA综合选项、布局选项和布线选项。
3.根据权利要求1所述的方法,其特征在于,所述通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件,包括:
读入FPGA文件列表和管脚分配定义文件;
设置FPGA综合策略、FPGA映射策略、FPGA布局布线策略以及输出文件策略,得到所述自动化运行文件。
4.根据权利要求3所述的方法,其特征在于,所述FPGA综合策略,包括:
根据FPGA型号以及FPGA工具将RTL代码综合成门级网表。
5.根据权利要求4所述的方法,其特征在于,所述FPGA映射策略,包括:
将所述门级网表映射到FPGA型号的器件。
6.根据权利要求5所述的方法,其特征在于,所述FPGA映射策略,包括:
若电路占用资源未超出FPGA型号的器件所能提供的资源,生成所述FPGA型号的器件的布局和布线策略。
7.根据权利要求1所述的方法,其特征在于,还包括:
获取电路设计文件;
根据所述电路设计文件,生成RTL代码;
对所述RTL代码进行模块级仿真和芯片级仿真。
8.一种FPGA芯片的自动化开发装置,其特征在于,所述FPGA芯片的自动化开发装置设于SCD-Auto系统;所述SCD-Auto系统是一个提供跨操作系统OS、跨EDA厂家工具的一个芯片自动化开发系统;所述SCD-Auto系统基于选定的工艺库,提供从芯片架构的功能和管脚定义到芯片设计、验证、综合实现、可测试电路DFT实现以及形式验证所需的环境;所述SCD-Auto系统包括智能管脚引擎、智能虚拟连线引擎、智能验证引擎、智能综合引擎、智能可测试引擎、智能形式验证引擎、智能仿真引擎以及efpga引擎;
所述FPGA芯片的自动化开发装置,包括:
文件获取模块,用于获取仿真文件列表和管脚分配定义文件;
格式转换模块,用于通过文件引擎对所述仿真文件列表进行格式转换;
文件生成模块,用于根据格式转换后的仿真文件列表生成FPGA文件列表;
文件整合模块,用于通过设置引擎整合所述FPGA文件列表和管脚分配定义文件,生成自动化运行文件;
脚本调用模块,用于调用所述自动化运行文件,生成仿真电路文件、时序报告、标准延迟文件以及配置比特流文件。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任意一项所述的FPGA芯片的自动化开发方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的FPGA芯片的自动化开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252774.3A CN112949233B (zh) | 2021-03-08 | 2021-03-08 | Fpga芯片的自动化开发方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252774.3A CN112949233B (zh) | 2021-03-08 | 2021-03-08 | Fpga芯片的自动化开发方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112949233A CN112949233A (zh) | 2021-06-11 |
CN112949233B true CN112949233B (zh) | 2024-02-27 |
Family
ID=76228800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110252774.3A Active CN112949233B (zh) | 2021-03-08 | 2021-03-08 | Fpga芯片的自动化开发方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112949233B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392608B (zh) * | 2021-06-25 | 2023-08-29 | 成都海光集成电路设计有限公司 | 电路生成方法、装置、电子设备及存储介质 |
CN114117985B (zh) * | 2021-12-03 | 2024-04-05 | 芯格(上海)微电子有限公司 | 集成运放的智能验证方法、系统、介质及终端设备 |
CN114330199B (zh) * | 2021-12-28 | 2024-05-17 | 海光信息技术股份有限公司 | 一种设计文件生成方法、电路板的制作方法和相关设备 |
CN115454397A (zh) * | 2022-08-25 | 2022-12-09 | 苏州思得普信息科技有限公司 | 一种fpga在线开发方法、装置、开发服务器和介质 |
CN116225396B (zh) * | 2022-12-23 | 2024-05-17 | 中山市科卓尔电器有限公司 | 一种mcu单片机功能端口的设计方法 |
CN116227396A (zh) * | 2023-03-17 | 2023-06-06 | 摩尔线程智能科技(北京)有限责任公司 | 用于对片上系统进行后仿真的方法和仿真平台 |
CN116562204B (zh) * | 2023-07-12 | 2023-09-22 | 英诺达(成都)电子科技有限公司 | 芯片验证方法及装置、电子设备、计算机可读存储介质 |
CN117094269B (zh) * | 2023-10-17 | 2024-02-02 | 北京开源芯片研究院 | 一种验证方法、装置、电子设备及可读存储介质 |
CN117744546B (zh) * | 2024-02-21 | 2024-05-28 | 深圳市山海半导体科技有限公司 | 数字电路评估方法、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102608517A (zh) * | 2012-02-16 | 2012-07-25 | 工业和信息化部电子第五研究所 | 一种创建集成电路测试程序包的快速方法 |
CN109710536A (zh) * | 2018-12-29 | 2019-05-03 | 湖北航天技术研究院总体设计所 | 一种自动提取fpga软件验证结果仿真波形的系统及方法 |
WO2019167081A1 (en) * | 2018-03-02 | 2019-09-06 | Apasangi Akash | System and method for emulation and simulation of rtl (design under test) using fpga |
CN112100949A (zh) * | 2020-09-15 | 2020-12-18 | 北京士昌鼎科技有限公司 | 集成电路芯片的自动开发方法及装置、电子设备 |
US10922462B1 (en) * | 2019-11-22 | 2021-02-16 | SiFive, Inc. | Intellectual property block validation and design integration for integrated circuits |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106291336B (zh) * | 2016-07-15 | 2019-10-25 | 上海华岭集成电路技术股份有限公司 | 一种fpga测试配置码流实时下载方法及系统 |
RU2659742C1 (ru) * | 2017-08-17 | 2018-07-03 | Акционерное общество "Лаборатория Касперского" | Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных |
US11036907B2 (en) * | 2019-03-01 | 2021-06-15 | Synopsys, Inc. | Automatic testbench generator for test-pattern validation |
-
2021
- 2021-03-08 CN CN202110252774.3A patent/CN112949233B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102608517A (zh) * | 2012-02-16 | 2012-07-25 | 工业和信息化部电子第五研究所 | 一种创建集成电路测试程序包的快速方法 |
WO2019167081A1 (en) * | 2018-03-02 | 2019-09-06 | Apasangi Akash | System and method for emulation and simulation of rtl (design under test) using fpga |
CN109710536A (zh) * | 2018-12-29 | 2019-05-03 | 湖北航天技术研究院总体设计所 | 一种自动提取fpga软件验证结果仿真波形的系统及方法 |
US10922462B1 (en) * | 2019-11-22 | 2021-02-16 | SiFive, Inc. | Intellectual property block validation and design integration for integrated circuits |
CN112100949A (zh) * | 2020-09-15 | 2020-12-18 | 北京士昌鼎科技有限公司 | 集成电路芯片的自动开发方法及装置、电子设备 |
Non-Patent Citations (1)
Title |
---|
VLSI测试向量转换过程实现;张金凤;唐金慧;马成英;;电子技术与软件工程(第17期);第115-116页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112949233A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112949233B (zh) | Fpga芯片的自动化开发方法及装置、电子设备 | |
CN112100949B (zh) | 集成电路芯片的自动开发方法及装置、电子设备 | |
US6701504B2 (en) | Block based design methodology | |
US6968514B2 (en) | Block based design methodology with programmable components | |
Coelho | The VHDL handbook | |
US20050149898A1 (en) | Method and apparatus for managing the configuration and functionality of a semiconductor design | |
US12093631B2 (en) | Method, system and verifying platform for system on chip verification | |
US8181131B2 (en) | Enhanced analysis of array-based netlists via reparameterization | |
JPH10232890A (ja) | プログラマブル論理回路のための組み込み式論理アナライザー | |
EP1129483A1 (de) | Dram-zellenanordnung und verfahren zu deren herstellung | |
Huggi et al. | Design and verification of memory elements using python | |
US7086017B1 (en) | Method of post-implementation simulation of a HDL design | |
JP2011145880A (ja) | 半導体集積回路の論理検証にて使用するテストタスクの生成方法 | |
Vieira | Development of a DPI-C Test Environment | |
Kallio | Verification of Communications Plug-in Unit Hardware Using a Logic Simulator | |
Sweeney | Hardware Design Methodologies Hardware Design Methodologies | |
Bu et al. | A configurable SystemC virtual platform for early software development and its sub-system for hardware verification |
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 |