CN111142013B - 基于max7000系列cpld逻辑还原方法 - Google Patents
基于max7000系列cpld逻辑还原方法 Download PDFInfo
- Publication number
- CN111142013B CN111142013B CN201911411414.2A CN201911411414A CN111142013B CN 111142013 B CN111142013 B CN 111142013B CN 201911411414 A CN201911411414 A CN 201911411414A CN 111142013 B CN111142013 B CN 111142013B
- Authority
- CN
- China
- Prior art keywords
- cpld
- restored
- functional
- circuit
- configuration file
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了基于MAX7000系列CPLD逻辑还原方法,涉及可编程逻辑器件的逻辑还原技术领域,该方法包括对CPLD样本芯片进行处理得到各个层级照片;在层级照片中对器件进行识别和连线得到各个层级电路,对层级电路进行整理得到四个功能电路;确定功能电路与样本配置文件中数据段区间之间的对应关系;建立CPLD功能结构建模得到还原模型;将待还原配置文件输入还原模型得到待还原CPLD的功能电路;对功能电路进行化简得到待还原CPLD的HDL网表;通过本申请的还原方法从CPLD的底层电路逐步分析,通过还原模型和化简提高了待还原配置文件还原的准确性和效率,可完成MAX7000系列CPLD对应的所有待还原配置文件的逻辑还原。
Description
技术领域
本发明涉及可编程逻辑器件的逻辑还原技术领域,尤其是基于MAX7000系列CPLD逻辑还原方法。
背景技术
CPLD是以逻辑阵列块(Logic Array Blocks,LABs)、宏单元(Macro ell,MAC)、可编程互连阵列(Programmable Interconnect Array,PIA)和I/O控制块(I/O ControlBlocks,IOB)为基本单元的特定用途集成电路(Application Specific IntegratedCircuit,ASIC)芯片,且CPLD基于EEPROM工艺。FPGA和CPLD都属于可编程逻辑器件,目前国外有一些针对FPGA的逆向技术研究,针对Xilinx FPGA国外有些研究方法和工具,比如Debit工具。图1所示为Debit工具通过试验分析获得FPGA内部器件配置关系的流程,该流程基于FPGA芯片内部结构和集成软件环境(Integrated Software Environment,ISE)的开发流程,结合Xdlrc、Xdl、NCD等文件,通过ISE命令接口使用不同的测试方法来获得不同类型可编程点(Programmable Point,PP)的位流映射关系数据,即FPGA编程点位流库。Debit工具通过将需还原的目标文件与位流库进行对比,对FPGA进行布点布线、配置逻辑,最终生成NCD文件,NCD文件即用户编程逻辑所对应的电路。使用FPGA Editor工具便可以形象直观的获得目标文件所对应电路在FPGA芯片中的各类详细信息(逻辑信息、连接信息、布局信息等)。
Debit工具采用Ncd2BitMapping方法(即生成多种样本后的Bitstream文件来确定布线资源对应的坐标)获得Bitstream文件与FPGA具体底层电路配置的映射关系,并提供一套类FPGA Editor的电路结构图形化显示工具,Debit工具获得位流库的方法如图1所示。但Debit工具存在一些问题,使得其适用范围、分析性能及分析结果准确度受限,问题主要包括:
1)Ncd2BitMapping方法需要测试分析坐标的样本数据非常庞大,随芯片规模的增加,样本的获取和试验分析的时间成指数级上升,这将限制其应用在大型芯片(比如Virtex-5/6系列芯片)的分析。
2)经过大量实验,我们发现Bitstream文件中存在很多冗余的控制数据。如果冗余数据没有得到有效剔除,那么所得到的Bitstream映射数据结果是不完全正确,甚至是错误的。经过对Debit工具的实验测试,发现其Bitstream文件解析所得结果的准确度不尽如人意。
3)Debit提供图形化显示电路的还原结果的集合,并不完整正确,它并没有很好的方法来解决还原信息的拼接、整合过程。因此,用Debit工具得到的Bitstream文件分析结果展示图和原始用FPGA Editor打开的原电路图,它们相似但并不相同,缺少大部分的细节信息。
因此并不能直接将Xilinx FPGA所使用的Debit工具移植到CPLD中进行CPLD的逻辑还原,而目前也没有其他方法和工具可以实现CPLD的逻辑还原。
发明内容
本发明人针对上述问题及技术需求,提出了基于MAX7000系列CPLD逻辑还原方法,本发明的技术方案如下:
基于MAX7000系列CPLD逻辑还原方法,包括如下步骤:
S1、获取MAX7000系列的CPLD芯片样本并通过芯片反向技术对CPLD芯片样本进行揭盖、解剖、染色、逐层拍片,得到CPLD芯片样本的各个层级照片;
S2、根据各个层级照片中的器件及器件之间的连线关系得到CPLD芯片样本的各个层级的电路;
S3、对各个层级的电路根据CPLD芯片样本的datasheet资料进行层次化整理得到CPLD芯片样本的四个功能电路,四个功能电路分别对应CPLD芯片的各个功能模块,CPLD芯片的功能模块包括LABs模块、MAC模块、PIA模块和IOB模块;
S4、对于每个功能模块,根据功能模块的配置位确定功能模块对应的样本配置文件中数据段区间,从而确定功能模块对应的功能电路与样本配置文件中数据段区间之间的对应关系,样本配置文件为CPLD芯片样本的配置文件;
S5、根据各个功能电路与样本配置文件中各个数据段区间之间的对应关系进行CPLD功能结构建模,得到MAX7000系列CPLD芯片的还原模型;
S6、将待还原配置文件输入还原模型,待还原配置文件是MAX7000系列的待还原CPLD芯片的配置文件,还原模型根据待还原配置文件中各个数据段区间的配置信息生成数据段区间对应的功能电路,得到待还原CPLD芯片的四个功能电路;
S7、根据预设化简原则对待还原CPLD芯片的四个功能电路进行电路化简得到待还原CPLD芯片的HDL网表。
其进一步的技术方案为,根据功能模块的配置位确定功能模块对应的样本配置文件中数据段区间,包括:
确定CPLD芯片样本的存储阵列中存储功能模块的配置位的存储块;
确定存储块对应的样本配置文件的数据段区间为功能模块对应的样本配置文件中的数据段区间。
其进一步的技术方案为,根据预设化简原则对待还原CPLD芯片的四个功能电路进行电路化简,包括:
将四个功能电路中存在断路故障的电路结构删除,完成对四个功能电路的无效逻辑化简操作;
将完成无效逻辑化简操作的四个功能电路中不影响电路逻辑的电路结构删除,完成对四个功能电路的冗余逻辑化简操作。
其进一步的技术方案为,根据各个层级照片中的器件及器件之间的连线关系得到CPLD芯片样本的各个层级的电路,包括对于每个层级照片:
识别层级照片中的器件及器件之间的连线关系;
用对应的元器件符号表示识别得到的各个器件,并根据识别得到的器件之间的连线关系通过线网标注对各个元器件符号进行连接得到CPLD芯片样本对应层级的电路。
其进一步的技术方案为,方法还包括:
将待还原CPLD芯片的HDL网表导入电路仿真软件得到待还原CPLD芯片的还原后的电路。
本发明的有益技术效果是:
本申请公开的基于MAX7000系列CPLD逻辑还原方法,该方法通过芯片反向技术直接从CPLD芯片的底层电路逐步分析,避免了电路逻辑的二义性和不确定性,由于功能电路的所有配置位都会和存储阵列中的存储块一一对应,从而使还原模型中的对应关系的准确性提高,大大降低逻辑还原方法的工作量,避免通过大量的试验来推导和验证配置文件与CPLD芯片的底层电路之间的对应关系,有效防止了待还原配置文件还原后四个功能电路中有缺失和错误的问题;通过本申请的方法将待还原配置文件直接转化成HDL网表,该HDL网表可以直接通过普通的文本软件打开,EDA设计人员容易看懂,克服了逆向还原工具对FPGA开发工具的依赖;通过还原模型和预设化简原则提高了待还原配置文件还原的准确性和效率,可完成MAX7000系列CPLD芯片对应的所有待还原配置文件的逻辑还原。
附图说明
图1是背景技术中公开的Debit工具获得位流库的方法流程图。
图2是本申请公开的基于MAX7000系列CPLD逻辑还原方法的流程图。
图3是本申请一个实施例示出的通过还原模型还原后的局部功能电路图。
图4是本申请一个实施例示出的预设化简原则的方法流程图。
图5是本申请一个实施例示出的将HDL网表导入电路仿真软件得到的还原后的部分电路图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开的基于MAX7000系列CPLD逻辑还原方法,如图2所示,包括如下步骤:
S1、获取MAX7000系列的CPLD芯片样本并通过芯片反向技术对CPLD芯片样本进行揭盖、解剖、染色、逐层拍片,得到CPLD芯片样本的各个层级照片。
S2、根据各个层级照片中的器件及器件之间的连线关系得到CPLD芯片样本的各个层级的电路。
具体的,通过识别层级照片中的器件及器件之间的连线关系,本申请通过使用Cadence IC工具的virtuoso schematic软件,在软件中用对应的元器件符号表示识别得到的各个器件,器件包括二极管、三极管和MOS管等器件。根据识别得到的器件之间的连线关系通过线网标注对各个元器件符号进行连接得到CPLD芯片样本对应层级的电路。
S3、对各个层级的电路根据CPLD芯片样本的datasheet资料进行层次化整理得到CPLD芯片样本的四个功能电路,四个功能电路分别对应CPLD芯片的各个功能模块,CPLD芯片的功能模块包括LABs模块、MAC模块、PIA模块和IOB模块。通过S2和S3步骤中对CPLD芯片样本的底层电路开始逐步进行分析,从根本上避免了电路逻辑的二义性和不确定性。
S4、对于每个功能模块,根据功能模块的配置位确定功能模块对应的样本配置文件中数据段区间。
具体的,确定CPLD芯片样本的存储阵列中存储功能模块的配置位的存储块,确定存储块对应的样本配置文件的数据段区间为功能模块对应的样本配置文件中的数据段区间。从而确定了功能模块对应的功能电路与样本配置文件中数据段区间的配置信息之间的对应关系。其中,样本配置文件为CPLD芯片样本的配置文件。
S5、根据各个功能电路与样本配置文件中各个数据段区间之间的对应关系进行CPLD功能结构建模,得到MAX7000系列CPLD芯片的还原模型。通过该对应关系使还原模型还原的准确性提高,大大降低逻辑还原方法的工作量,避免通过大量的试验来推导和验证配置文件与CPLD芯片的底层电路之间的对应关系。
S6、将待还原配置文件输入还原模型,待还原配置文件是MAX7000系列的待还原CPLD芯片的配置文件,还原模型根据待还原配置文件中各个数据段区间的配置信息生成数据段区间对应的功能电路,得到待还原CPLD芯片的四个功能电路,请参考图3,其示出了MAC功能模块对应的功能电路的局部电路图,其中,各个器件之间是通过线网标注互相连接,图中并未示出各个器件之间的联系关系。还原模型有效防止了待还原配置文件还原后生成的四个功能电路中有缺失和错误的问题。
S7、根据预设化简原则对待还原CPLD芯片的四个功能电路进行电路化简得到待还原CPLD芯片的HDL网表。
如图4所示,具体的,将四个功能电路中存在断路故障的电路结构删除。比如,四个功能电路中的某一个电路结构的输出端为断路,则将该电路结构和与其相连的其他电路结构都进行删除。完成对四个功能电路的无效逻辑化简操作。
将完成无效逻辑化简操作的四个功能电路中不影响电路逻辑的电路结构删除。比如,某一个电路结构为与门逻辑电路,若该与门逻辑电路的输入端存在“0”,则将该与门逻辑电路和与其连接的上一级电路结构进行删除,并将该与门逻辑电路输出端连接的下一级电路结构直接输入0电平。再比如,若该与门逻辑电路的输入端存在“1”,则将该输入端和与其连接的上一级电路结构进行删除,化简该与门逻辑电路的输入引脚。完成对四个功能电路的冗余逻辑化简操作,得到待还原CPLD芯片的HDL网表。
最终,将待还原CPLD芯片的HDL网表导入电路仿真软件得到待还原CPLD芯片的还原后的电路。请参考图5,其示出了HDL网表中MAC功能模块对应的还原后的部分电路图。
通过本申请的方法将待还原配置文件直接转化成HDL网表,该HDL网表可以直接通过普通的文本软件打开,EDA设计人员容易看懂,克服了逆向还原工具对FPGA开发工具的依赖。通过还原模型和预设化简原则提高了待还原配置文件的准确性和效率,可完成MAX7000系列CPLD芯片对应的所有待还原配置文件的逻辑还原。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (5)
1.基于MAX7000系列CPLD逻辑还原方法,其特征在于,所述方法包括如下步骤:
S1、获取MAX7000系列的CPLD芯片样本并通过芯片反向技术对所述CPLD芯片样本进行揭盖、解剖、染色、逐层拍片,得到所述CPLD芯片样本的各个层级照片;
S2、根据各个所述层级照片中的器件及器件之间的连线关系得到所述CPLD芯片样本的各个层级的电路;
S3、对各个层级的电路根据所述CPLD芯片样本的datasheet资料进行层次化整理得到所述CPLD芯片样本的四个功能电路,所述四个功能电路分别对应CPLD芯片的各个功能模块,CPLD芯片的功能模块包括LABs模块、MAC模块、PIA模块和IOB模块;
S4、对于每个功能模块,根据所述功能模块的配置位确定所述功能模块对应的样本配置文件中数据段区间,从而确定所述功能模块对应的功能电路与样本配置文件中数据段区间之间的对应关系,所述样本配置文件为所述CPLD芯片样本的配置文件;
S5、根据各个功能电路与所述样本配置文件中各个数据段区间之间的对应关系进行CPLD功能结构建模,得到MAX7000系列CPLD芯片的还原模型;
S6、将待还原配置文件输入所述还原模型,所述待还原配置文件是MAX7000系列的待还原CPLD芯片的配置文件,所述还原模型根据所述待还原配置文件中各个数据段区间的配置信息生成数据段区间对应的功能电路,得到所述待还原CPLD芯片的四个功能电路;
S7、根据预设化简原则对所述待还原CPLD芯片的四个功能电路进行电路化简得到所述待还原CPLD芯片的HDL网表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述功能模块的配置位确定所述功能模块对应的样本配置文件中数据段区间,包括:
确定所述CPLD芯片样本的存储阵列中存储所述功能模块的配置位的存储块;
确定所述存储块对应的所述样本配置文件的数据段区间为所述功能模块对应的样本配置文件中的数据段区间。
3.根据权利要求1所述的方法,其特征在于,所述根据预设化简原则对所述待还原CPLD芯片的四个功能电路进行电路化简,包括:
将所述四个功能电路中存在断路故障的电路结构删除,完成对所述四个功能电路的无效逻辑化简操作;
将完成无效逻辑化简操作的所述四个功能电路中不影响电路逻辑的电路结构删除,完成对所述四个功能电路的冗余逻辑化简操作。
4.根据权利要求1-3任一所述的方法,其特征在于,所述根据各个所述层级照片中的器件及器件之间的连线关系得到所述CPLD芯片样本的各个层级的电路,包括对于每个层级照片:
识别所述层级照片中的器件及器件之间的连线关系;
用对应的元器件符号表示识别得到的各个器件,并根据识别得到的器件之间的连线关系通过线网标注对各个元器件符号进行连接得到所述CPLD芯片样本对应层级的电路。
5.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
将所述待还原CPLD芯片的HDL网表导入电路仿真软件得到所述待还原CPLD芯片的还原后的电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911411414.2A CN111142013B (zh) | 2019-12-31 | 2019-12-31 | 基于max7000系列cpld逻辑还原方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911411414.2A CN111142013B (zh) | 2019-12-31 | 2019-12-31 | 基于max7000系列cpld逻辑还原方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142013A CN111142013A (zh) | 2020-05-12 |
CN111142013B true CN111142013B (zh) | 2021-12-07 |
Family
ID=70522558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911411414.2A Active CN111142013B (zh) | 2019-12-31 | 2019-12-31 | 基于max7000系列cpld逻辑还原方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142013B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113848455A (zh) * | 2021-09-24 | 2021-12-28 | 成都华微电子科技有限公司 | Fpga内部互联线延时测试方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101793941A (zh) * | 2009-12-24 | 2010-08-04 | 上海华岭集成电路技术有限责任公司 | Fpga配置文件的生成方法 |
CN103019947A (zh) * | 2012-11-28 | 2013-04-03 | 复旦大学 | 一种fpga芯片配置信息模型的层出化构建方法 |
CN103914580A (zh) * | 2012-12-31 | 2014-07-09 | 复旦大学 | 一种用于fpga电路位流仿真的方法 |
CN105373668A (zh) * | 2015-11-30 | 2016-03-02 | 上海华虹宏力半导体制造有限公司 | 芯片版图设计方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
CN107895087A (zh) * | 2017-11-29 | 2018-04-10 | 中科亿海微电子科技(苏州)有限公司 | 可编程逻辑电路模块级仿真配码自动生成的方法及系统 |
CN108733404A (zh) * | 2018-05-28 | 2018-11-02 | 电子科技大学 | 一种针对fpga固件的精准逆向工程方法 |
CN110073333A (zh) * | 2017-11-03 | 2019-07-30 | 华为技术有限公司 | 恢复fpga芯片中的逻辑的方法、系统和fpga设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119532A2 (en) * | 2004-06-04 | 2005-12-15 | The Regents Of The University Of California | Low-power fpga circuits and methods |
-
2019
- 2019-12-31 CN CN201911411414.2A patent/CN111142013B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101793941A (zh) * | 2009-12-24 | 2010-08-04 | 上海华岭集成电路技术有限责任公司 | Fpga配置文件的生成方法 |
CN103019947A (zh) * | 2012-11-28 | 2013-04-03 | 复旦大学 | 一种fpga芯片配置信息模型的层出化构建方法 |
CN103914580A (zh) * | 2012-12-31 | 2014-07-09 | 复旦大学 | 一种用于fpga电路位流仿真的方法 |
CN105373668A (zh) * | 2015-11-30 | 2016-03-02 | 上海华虹宏力半导体制造有限公司 | 芯片版图设计方法 |
CN106202761A (zh) * | 2016-07-15 | 2016-12-07 | 中国电子科技集团公司第五十八研究所 | 用于大容量fpga电路功能仿真的最优网表的生成方法 |
CN110073333A (zh) * | 2017-11-03 | 2019-07-30 | 华为技术有限公司 | 恢复fpga芯片中的逻辑的方法、系统和fpga设备 |
CN107895087A (zh) * | 2017-11-29 | 2018-04-10 | 中科亿海微电子科技(苏州)有限公司 | 可编程逻辑电路模块级仿真配码自动生成的方法及系统 |
CN108733404A (zh) * | 2018-05-28 | 2018-11-02 | 电子科技大学 | 一种针对fpga固件的精准逆向工程方法 |
Non-Patent Citations (3)
Title |
---|
Field Programmability of Supply Voltages for FPGA Power Reduction;Fei Li,et al;《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》;20070430;第752-764页 * |
FPGA位流解析及电路还原;吴强;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20130715(第7期);第I135-639页 * |
软件滞后制约多核应用;何正未;《计算机世界》;20060605;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111142013A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jyu et al. | Statistical timing analysis of combinational logic circuits | |
US5831869A (en) | Method of compacting data representations of hierarchical logic designs used for static timing analysis | |
US7480878B2 (en) | Method and system for layout versus schematic validation of integrated circuit designs | |
CA2315456C (en) | Schematic organization tool | |
TW201833801A (zh) | 早期積體電路佈局設計drc處理工具 | |
US20070094622A1 (en) | Methods, Apparatus and Computer Program Products for Generating Selective Netlists that Include Interconnection Influences at Pre-Layout and Post-Layout Design Stages | |
US9298865B1 (en) | Debugging an optimized design implemented in a device with a pre-optimized design simulation | |
CN108733404B (zh) | 一种针对fpga固件的精准逆向工程方法 | |
CN1347149A (zh) | 复合集成电路的设计验证方法 | |
CN109492337B (zh) | 一种可编程逻辑器件的信息流追踪模型生成方法 | |
CN109272571B (zh) | 一种PDS三维数据转换为Flowmaster模型的系统和方法 | |
US20230153499A1 (en) | Register-transfer level signal mapping construction method, device, apparatus and storage medium | |
US7584448B1 (en) | Constructing a model of a programmable logic device | |
US6895562B2 (en) | Partitioning integrated circuit hierarchy | |
JP2023536765A (ja) | 人工知能に基づく回路設計方法及び実装システム | |
CN111142013B (zh) | 基于max7000系列cpld逻辑还原方法 | |
US10846449B1 (en) | Conversion of block model-based circuit designs into circuit implementations | |
CN117521574A (zh) | 基于模块化策略的中间表示层扫描链插入方法及系统 | |
US7003753B2 (en) | Method of generating a physical netlist for a hierarchical integrated circuit design | |
CN109543316B (zh) | 提取版图不同模块连接关系的方法 | |
US7451425B1 (en) | Determining controlling pins for a tile module of a programmable logic device | |
CN114021514B (zh) | 一种spice电压或温度扫描仿真筛选瓶颈单元的方法 | |
US20020038446A1 (en) | Gate extractor | |
CN112861455A (zh) | Fpga建模验证系统及方法 | |
JPH07287051A (ja) | 論理シミュレータ用入力データ作成装置 |
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 |