首页> 中国专利> 一种用于FPGA验证启动的EFUSE模型及FPGA验证启动的方法

一种用于FPGA验证启动的EFUSE模型及FPGA验证启动的方法

摘要

本发明涉及芯片验证技术领域,尤其涉及一种用于FPGA验证启动的EFUSE模型及FPGA验证启动的方法。一种用于FPGA验证启动的EFUSE模型及FPGA验证启动的方法,该模型包括ROM模型及信号端子;ROM模型内嵌于FPGA;EFUSE模型的各信号端子与待验证芯片中EFUSE的各信号端子对应,且分别连接至ROM模型中与其功能匹配的端子;ROM模型用于存储待验证芯片当次启动模式所对应的EFUSE值。本发明在ROM模型基础上搭建EFUSE模型,实现与FPGA的兼容,在验证芯片不同模式下启动时,无需进行多次综合FPGA工程,节省了时间,提高了效率。

著录项

  • 公开/公告号CN115688654A

    专利类型发明专利

  • 公开/公告日2023-02-03

    原文格式PDF

  • 申请/专利权人 深圳鲲云信息科技有限公司;

    申请/专利号CN202211200967.5

  • 发明设计人 蔡权雄;牛昕宇;

    申请日2022-09-29

  • 分类号G06F30/343;G06F1/24;G06F1/06;

  • 代理机构深圳市道臻知识产权代理有限公司;

  • 代理人陈琳

  • 地址 518000 广东省深圳市福田区福保街道福保社区市花路南侧长富金茂大厦1号楼1408

  • 入库时间 2023-06-19 18:34:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-03

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及芯片验证技术领域,尤其涉及一种用于FPGA验证启动的EFUSE模型及FPGA验证启动的方法。

背景技术

芯片流片前需要对其设计进行验证,FPGA(Field Programmable Gate Array,现场可编程门阵列)几乎可以完全映射芯片的逻辑设计,用于芯片验证具有速度快、覆盖场景多等优势,目前已成为芯片验证中必不可少的重要手段。

EFUSE(electronic fuse,一次性可编程存储器)是一种一次性烧写的非易失性存储器,用于储存芯片启动的相关信息。采用FPGA验证芯片启动过程的时候,通常会用到EFUSE中的值,但是EFUSE厂商在前端往往只提供verilog(一种硬件描述语言)模型,其中包含大量不可综合的语句,导致EFUSE与FPGA不兼容。

在验证中,FPGA是一个重要的验证手段。芯片启动具有多种不同的模式,不同模式需采用不同的EFUSE值。由于EFUSE与FPGA不兼容,当采用FPGA验证芯片不同模式下的启动时,只能预先将待验证模式对应的EFUSE值写入FPGA,再进行综合FPGA工程。验证不同模式就需要进行多次综合FPGA工程,耗时较多。在芯片规模越来越大的今天,这一工作耗时也越来越多,影响了芯片验证的效率。

发明内容

本发明要解决的技术问题在于,针对相关技术的上述缺陷,提供一种用于FPGA验证启动的EFUSE模型及FPGA验证启动方法,以解决EFUSE与FPGA不兼容而导致验证启动需多次综合FPGA工程,耗时长、效率低的问题。

本发明解决其技术问题所采用的技术方案是:提供一种用于FPGA验证启动的EFUSE模型,所述EFUSE模型包括ROM模型及信号端子包括ROM模型及信号端子;所述ROM模型内嵌于FPGA;所述EFUSE模型的信号端子与待验证芯片中EFUSE的信号端子对应;所述EFUSE模型的各信号端子分别连接至所述ROM模型中与所述各信号端子功能匹配的端子;所述ROM模型用于存储所述待验证芯片当次启动模式所对应的EFUSE值。

其中,较佳方案是:所述EFUSE模型包括读写控制信号端子,所述ROM模型包括时钟信号端子,所述读写控制信号端子与所述时钟信号端子连接。

其中,较佳方案是:所述EFUSE模型包括总电源开关信号端子,所述ROM模型包括复位信号端子,所述总电源开关信号端子与所述复位信号端子连接。

其中,较佳方案是:所述EFUSE模型包括烧录电源开关信号端子和模式选择信号端子;所述ROM模型包括读使能信号端子;

所述EFUSE模型还包括组合逻辑模型,所述烧录电源开关信号端子和模式选择信号端子通过组合逻辑模型与所述读使能信号端子连接。

其中,较佳方案是:所述组合逻辑模型用于根据所述烧录电源开关信号和模式选择信号判断所述EFUSE模型当前是否为读模式。

其中,较佳方案是:所述EFUSE模型和ROM模型均包括地址信号端子,所述EFUSE模型的地址信号端子和ROM模型的地址信号端子对应连接。

其中,较佳方案是:所述EFUSE模型和ROM模型均包括数据信号端子,所述EFUSE模型的数据信号端子和ROM模型的数据信号端子对应连接。

本发明解决其技术问题所采用的技术方案是:提供一种FPGA验证启动的方法,包括:

将所述的EFUSE模型综合入FPGA工程;

将待验证芯片当次启动模式所对应的EFUSE值存储至所述ROM模型;

FPGA上电读取所述EFUSE模型中的当前EFUSE值,进行所述待验证芯片在当次启动模式下的启动验证。

其中,较佳方案是,所述将EFUSE模型综合入FPGA工程的步骤包括:

在编译FPGA时,采用所述EFUSE模型替换所述待验证芯片的原始EFUSE模型;

将替换后的所述EFUSE模型合入FPGA的filelist。

其中,较佳方案是,所述将所述待验证芯片当次启动模式所对应的EFUSE值存储至ROM模型的步骤包括:

设计所述待验证芯片当次启动模式及其对应的EFUSE值;

将所述对应的EFUSE值烧写至所述ROM模型中。

本发明的有益效果在于,与相关技术相比,本发明通过在FPGA所兼容的ROM模型基础上搭建EFUSE模型,匹配连接EFUSE模型与该ROM模型的信号端子,使得EFUSE模型可通过该ROM模型实现与FPGA的正常通信。基于上述EFSUSE模型进行综合FPGA工程后,在每次验证不同模式启动前,将该模式所对应的EFUSE值存储至ROM模型中,验证时即可由FPGA读取使用,而无需在每个模式下都进行一次综合FPGA工程,节省了验证时间,提高了验证效率。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明一实施例的EFUSE模型结构示意图;

图2是本发明一实施例中EFUSE模型的读取时序图。

具体实施方式

现结合附图,对本发明的实施例作详细说明。

关于实施例中可能涉及的英文名词解释如下:

FPGA:Field Programmable Gate Array,现场可编程门阵列;

EFUSE:Electronic Fuse,一次性可编程存储器;

verilog:一种硬件描述语言;

ROM:Read-Only Memory,只读存储器;

SRAM:Static Random-Access Memory,静态随机存取存储器;

filelist:仿真文件。

FPGA根据硬件电路的功能设计硬件描述语言即编程,再将该形式的电路描述映射至实际电路即综合,从而形成具备既定功能的硬件电路。采用FPGA验证芯片即利用FPGA的上述特性实现对芯片功能的模拟,其对芯片当中EFUSE的模拟则需要借助EFUSE厂商所提供的verilog模型。然而verilog模型与FPGA并不兼容,因此通常的做法是在编程时直接将EFUSE的值以常量形式写入FPGA的配置文件,在此基础上进行综合FPGA工程。芯片启动的模式不同,其对应EFUSE的功能不同,所需要的EFUSE值也不同,而FPGA需要覆盖所有的模式,因此只能在模拟不同模式的启动前,重新写入该模式所对应的EFUSE的值,再重新进行综合,形成与该模式对应的硬件电路。这无疑加重了研发人员的负担,因此希望能够获得一种EFUSE模型,既能与FPGA兼容,又能模拟EFUSE的功能。

FPGA有其对应的ROM(Read-Only Memory,只读存储器)模型,可以在不需要重新编译FPGA工程的情况下快速重新烧录内部的值,与FPGA的逻辑设计完全兼容。并且为非易失性,即断电不会丢失内部存储的内容;不能通过芯片自己烧写;其端口一般包括时钟、复位、读使能、读地址以及读数据。

此外,在FPGA验证芯片启动的过程中,可以不考虑EFUSE的烧录工作。该工作一般会在ATE机台测试或用户刚拿到芯片的时候完成,同时在启动场景下,不需要验证EFUSE的烧录功能,并且由于EFUSE烧录时序不容易在FPGA上验证,因此一般不在FPGA上进行该项验证。验证EFUSE的烧录需要另外的方法,此处不再赘述。因此,采用FPGA验证芯片启动只需要验证EFUSE的读取功能。

而ROM有现成的FPGA模型,并且有能够在不用重新编译工程的情况下修改初始值的特性,完全可以满足读取功能的需求。因此可以利用ROM的FPGA模型为基础搭建EFUSE的FPGA模型。

进一步地,ROM与EFUSE具有功能类似的信号。如:ROM具有时钟和复位信号,EFUSE虽没有此类信号,但是EFUSE一般有PD(powerdown)信号,可利用其作为ROM的复位;还有直接使能信号比如STROBE或其他,选定读模式后拉高该信号可以读出对应地址的数据,可作为时钟使用。地址可直接作为地址使用,其他模式选择信号则可以共同产生ROM的片选信号。

具体地,请参阅图1所示,本发明提供一种用于FPGA验证启动的EFUSE模型100的优选实施例。

该EFUSE模型100包括内嵌于FPGA的ROM模型200,以及与待验证芯片中EFUSE信号端子对应的信号端子;EFUSE模型100的各信号端子分别与ROM模型200中与上述各信号端子功能匹配的端子连接;ROM模型200可以用于存储待验证芯片当次启动模式所对应的EFUSE值。由于EFUSE模型100需要替代待验证芯片原始EFUSE实现其功能,因此EFUSE模型100具备与待验证芯片中EFUSE对应的各种信号端子。ROM模型200则具有与FPGA通信所需的各种信号端子。EFUSE模型100的信号端子分别连接至ROM模型200中与该信号端子功能匹配的端子,使得EFUSE模型100能够基于ROM模型200实现与FPGA的通信。

ROM模型200的逻辑设计与FPGA的逻辑设计兼容,FPGA能够随时读取ROM模型200中的数据。因此,在综合FPGA工程映射形成具备待验证芯片及其EFUSE功能的实体电路后,只要在验证前将当前待验证模式所对应的EFUSE值存储至ROM模型200,FPGA即可在验证芯片时直接读取该数据,模拟该模式下启动的过程。验证不同模式下的启动,只需要在每次验证前重新写入其对应的EFUSE值即可,而无需重新进行综合FPGA工程,节省了验证所需时间,提高了效率。

采用FPGA验证芯片,要求仿真的内容尽量和实际产品一致,以保证验证结果的准确度。基于此,本实施例采用FPGA内嵌的ROM模型来搭建EFUSE模型。

FPGA具有多种存储器模型,除ROM模型外,其他存储器模型常见为SRAM(StaticRandom-Access Memory,静态随机存取存储器)模型,为易失性存储,不能达到上电时已经存有预期数据的效果。而ROM模型内部的数据可以快速重新烧写,且不能通过芯片自己烧写,其数据为非易失性的,即断电不会丢失,与EFUSE的工作模式最为接近。同理,由于待验证芯片内嵌EFUSE,因此ROM模型200选用内嵌式,与实际产品最为接近,从而保证验证时尽量还原真实的过程。

在一较佳实施例中,ROM模型200与FPGA通信所需的信号端子包括时钟、复位、读使能、读地址以及读数据等。EFUSE的信号端子通常包括:总电源开关信号PD(powerdown)、烧录电源开关信号PS(power switch)、模式选择信号、地址选择信号以及读写控制信号STROBE,EFUSE模型100相应于待验证芯片的EFUSE,也具备上述信号端子。

请参阅图2,EFUSE模型100没有时钟和复位信号,因此在使用ROM模型200搭建EFUSE模型100时作如下处理:

在读模式下,EFUSE模型100在读写控制信号STROBE的上升沿后一段时间读数据,ROM模型200则在时钟的上升沿读数据,因此将EFUSE模型100的读写控制信号STROBE接到ROM模型200的时钟信号上。当EFUSE模型100的读写控制信号STROBE拉高,ROM模型200即获得一时钟信号,开始读取其特定地址对应的数据。

EFUSE模型100在总电源开关信号PD关闭时完全不工作,因此将EFUSE模型100的总电源开关信号PD接到ROM模型200的复位端。当EFUSE模型100的总电源开关信号PD关闭时,ROM模型200便处于复位状态。

EFUSE模型100在烧录电源开关信号PS打开时处于烧写模式,在烧录电源开关信号PS关闭时处于读模式,模式选择信号包括多根信号端子。将EFUSE模型100的烧录电源开关信号PS和模式选择信号通过组合逻辑模型300接到ROM模型200的读使能信号上。

不同厂商所提供EFUSE的模式选择逻辑有所不同,但均为多根信号组合的结果。举例说明最简单的情况,可能存在片选使能信号CEN、写模式控制信号WEN和读模式控制信号REN CEN未选中时,WEN和REN信号都不生效;CEN片选信号选中并且WEN选中时,为写模式;CEN选中且WEN未选中时,为读模式,还可能存在测试模式使能信号TEST。

组合逻辑模型300针对不同EFUSE的不同模式选择逻辑有不同的具体实现,但基本是与或非逻辑或其组合,均用于根据烧录电源开关信号PS和模式选择信号判断EFUSE模型当前是否为读模式,即根据不同的读写模式需求控制ROM模型的读写使能。例如,当烧录电源开关信号PS处于关闭状态时,若CEN为选中,WEN为非选中,REN为选中,TEST为未选中,则判断当前为读模式,给出读使能信号,即:ROM的读使能信号为上述各信号经与逻辑组合的结果。由此实现ROM模型200数据的读取。

EFUSE模型100和ROM模型200还包括地址信号端子和数据信号端子,将EFUSE模型100的地址信号端子和ROM模型200的地址信号端子对应连接,将EFUSE模型100的数据信号端子和ROM模型200的数据信号端子对应连接,当接收读取指令时,即可实现两者地址和数据的同步。

如上,EFUSE模型100与ROM模型200功能匹配的各信号端子连接后,即可实现两者指令与数据的互通。接收到读指令后,EFUSE模型100将按照其时序读取数据,由于EFUSE模型100与ROM模型200已建立连接,因此EFUSE模型100实际是按照其时序从ROM模型200中读取数据。

例如,安全启动模式属于芯片启动的一种模式,芯片安全启动过程中需要从EFUSE中特定位读取密钥的hash值作为验证,因此在启动阶段就需要从EFUSE中读取该信息。将该值存储于ROM模型200对应的地址,FPGA验证启动时,从EFUSE模型100的特定位读取该信息,实际就是从ROM模型200对应的地址读取该信息。

综上,本发明采用EFUSE模型100替换了待验证芯片的EFUSE本身,对启动过程而言,行为和真实情况完全一致,并且替换后的EFUSE模型100与FPGA完全兼容。

基于上述EFUSE模型100,本发明另一较佳实施例提供一种FPGA验证启动的方法,该方法包括:

将EFUSE模型100综合入FPGA工程;

将待验证芯片当次启动所对应的芯片EFUSE值存储至ROM模型200;

FPGA上电读取EFUSE模型100中的当前EFUSE值,进行待验证芯片当次启动模式下的启动验证。

即在编译FPGA时,将待验证芯片的原始EFUSE模型100替换为上述基于ROM模型200所搭建的EFUSE模型100,即采用本发明的EFUSE模型100替代EFUSE厂商所提供的verilog模型,合入FPGA的filelist(仿真文件),在此基础上综合FPGA工程,映射形成包含本发明EFUSE模型100的实体电路。

接下来即可进入验证阶段,验证开始前设计期望的EFUSE值,即设计当前待验证的模式,及该模式下需要用到对应的EFUSE值,例如EFUSE的特定位指示PCIe(peripheralcomponent interconnect express,外部设备互连总线接口)的初始配置,则FPGA验证过程中需要该位在上电前分别为不同的配置选项所对应的值。将该值烧写至ROM模型200中。

验证开始,FPGA上电从EFUSE模型100中读取到该值,即可模拟其对应模式的启动,实现对芯片在该模式下启动的验证。

基于本发明的EFUSE模型100验证芯片启动,验证前在ROM模型200中烧写好当次待验证模式所需的EFUSE值,FPGA上电即可读取到相关信息。因此,验证不同模式,不再需要重新进行综合FPGA工程,效率获得显著提升。

以上所述者,仅为本发明最佳实施例,并非用于限制本发明的范围,凡依本发明申请专利范围所作的等效变化或修饰,皆为本发明所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号