一种用于fpga电路位流仿真的方法

文档序号:6506603阅读:667来源:国知局
一种用于fpga电路位流仿真的方法
【专利摘要】本发明属于电子【技术领域】,涉及一种用于对FPGA电路的可编程位流文件进行仿真的方法。本发明针对FDP系列的FPGA器件,使用Verilog语言对其自身功能统一进行多层次硬件建模,包括CLB、IOB和互连资源等,并在能够进行Verilog仿真的商业工具中进行仿真验证,能够实现编程数据下载和配置功能。本方法能在可编程逻辑器件的设计过程中快速验证其电路功能,并且向使用FPGA的用户提供FPGA仿真方法,能同FPGA芯片设计和应用电路设计流程无缝衔接。本方法可用于FPGA芯片流片前的设计阶段,流片后的FPGA芯片测试阶段,以及用户使用FPGA芯片进行电路设计阶段对FPGA位流文件进行仿真与验证,快速验证FPGA电路或用户电路功能的正确性。
【专利说明】—种用于FPGA电路位流仿真的方法
【技术领域】
[0001]本发明属于电子设计自动化(Electronic Design Automation, EDA)【技术领域】,具体涉及一种对FPGA (Field Programmable Gate Array)电路的可编程位流文件进行仿真的方法。
【背景技术】
[0002]随着电子产品的更新速度不断地加快,设计厂商经常采用现场可编程门阵列(Field Programmable Gate Array,FPGA)进行原型设计,以在短时间内开发出满足用户要求的电路芯片。现有技术公开了 FPGA芯片结构包括可编程逻辑块(Configurable LogicBlock,CLB)、可编程输入输出(IOB)和可编程互连,其具有电路功能可重配置、开发周期短、设计成本低等优点。随着电路规模的不断增大,电路的功能越来越复杂,因此,设计一种能验证电路功能正确的方法,将能使电路设计者确定电路功能的正确性。
[0003]目前针对FPGA电路仿真的级别包括RTL级仿真,逻辑综合后的网表仿真,装箱后的CLB网表仿真,以及本申请拟提出的布局布线后的位流级仿真。由于位流文件包含了用户电路的网表功能和布局信息,对FPGA电路的位流文件进行仿真,能够确保和把位流文件下载到实际芯片后的电路功能一样,从而提闻电路验证的效率。
[0004]与本发明相关的现有技术有:
[0005][I]徐振林译.Verilog Hdl硬件描述语言.机械工业出版社,2000.[0006][2] Vaughn Betz, Jonathan Rose, Alexander Marquardt.Architectureand CAD for Deep-Submicron FPGAs.Boston/Dordrecht/London:Kluwer AcademicPublishers, 1999.深亚微米FPGA结构与CAD设计.王伶俐等译.北京:电子工业出版社.2008.。

【发明内容】

[0007]本发明的目的在于提供一种用于FPGA电路位流仿真的方法,通过该位流仿真方法对FPGA电路的可编程位流文件进行功能仿真,以验证电路功能的正确性。
[0008]本发明针对FPGA器件(复旦大学专用集成电路与系统国家重点实验室自主设计研究的FDP系列),使用Verilog语言对其自身功能统一进行多层次硬件建模,包括CLB(Configurable Logic Block)、IOB(Input Output Block)和互连资源等,并在任何能够进行Verilog仿真的商业工具中进行仿真验证,能够实现编程数据下载和配置功能。
[0009]本发明所提出的方法首先读入FPGA电路设计工具生成的位流文件,并完成对FPGA自身的配置过程,然后对FPGA功能进行行为仿真,从而能够快速验证位流文件的正确性。
[0010]本发明的用于FPGA电路位流仿真的方法,主要包括对位流文件解析和对FPGA结构进行建模。通过对位流文件进行解析,提取出FPGA顶层模块TILE的所有码点信息,然后标注到对TILE进行verilog建模的模块中,并给出测试向量,对电路进行功能验证。[0011]更具体的,本发明的用于FPGA电路位流仿真的方法,其特征在于,其包括步骤:提取位流文件中FPGA器件的码点信息,并对FPGA的硬件结构进行多层次的建模,通过逐步对FPGA顶层TILE模块进行细化,然后对其中的各个单元块进行建模,并对最底层单元模块通过Register Transfer Level (RTL)行为级Verilog代码实现,实现顶层模块功能。
[0012]通常FPGA电路的码点是通过SRAM配置单元来实现,而FPGA硬件结构中SRAM数目多至数百万甚至千万个,对SRAM建模将非常占用系统资源,本发明的位流文件解析中:不对SRAM进行建模,只是在相应的Verilog文件中申明一个存储变量来存储相应SRAM的值,通过对位流文件解析出每个TILE中的所有码点的信息,并标注到变量中;在顶层模块中申请一维存储器数组,在仿真初始化的时候通过Verilog中的系统任务$readmemb将位流文件中的码点信息加载到存储器数组中,底层模块直接读取这个存储器数组完成对仿真中编程点的配置;本方法简化了对实际电路依靠SRAM存储编程点信息的方法,并不真正为SRAM建模来存储编程点信息,提高了仿真速度,图2是TILE中的可编程开关配置信息传递的流程图,本发明以TILE中的编程点配置为例说明具体流程:将生成的TILE位流文件放在顶层模块TOTAL所在的文件夹中,名为“my_TILE_RAM.array”,其中包含所有M个TILE的全部编程点配置信息,顶层模块TOTAL中加入下列语句:
[0013]
【权利要求】
1.一种用于FPGA电路位流仿真的方法,其特征在于,包括对位流文件解析和对FPGA结构进行建模,提取位流文件中FPGA器件的码点信息,并对FPGA的硬件结构进行多层次的建模,通过逐步对FPGA顶层TILE模块进行细化,然后对其中的各个单元块进行建模,并对最底层单元模块通过Register Transfer Level (RTL)行为级Verilog代码实现,实现顶层模块功能。
2.根据权利要求1所述的方法,其特征在于,所述的: (1)位流文件解析中:不对SRAM进行建模,只在相应的Verilog文件中申明一个存储变量来存储相应SRAM的值,通过对位流文件解析出每个TILE中的所有码点的信息,并标注到变量中; (2)FPGA硬件模块建模中:主要包含以下几个: 对LUT建模; 对DFF建模; 对互连资源(GSB)建模; 对多路选择器(MUX)建模; 对基本逻辑单元如与非门,或非门,异或门,反相器,缓冲器,三态缓冲器建模。
3.根据权利要求2所述的方法,其特征在于,所述的对LUT进行建模的方法中:当作为一个普通LUT使用的时候,LUT就是一个RAM,该LUT的建模方式为,直接从存储码点的位流文件中读取码点值到存储器数组;当LUT作为分布式RAM或者移位寄存器时,将这个存储单元进行行为建模,将它配置为普通LUT、分布式RAM或移位寄存器三种模式,LUT建模模块命名为 LC_LUT。
4.根据权利要求2所述的方法,其特征在于,所述的对DFF进行建模的方法中:除Slice外,IO Block中有同样的可编程触发器,这两个触发器各有一个清零端,一个置位端和一个使能端,被配置成四种情况:同步锁存器、异步锁存器、同步D触发器和异步D触发器;可编程触发器的模块名称为LC_DFF。
5.根据权利要求2所述的方法,其特征在于,所述的对互连资源(GSB)建模的方法中:TILE中的互连结构模块为MUX和GSB,MUX为LB的前级互连模块以及LB的后级互连模块,GSB为各个TILE之间以及TILE和IOB之间通信的互连结构模块;一个外部信号通过GSB整理的路径进入或者直接进入MUX中,再由MUX整理的路径进入LB,从逻辑单元块输出的信号直接通往MUX’再经由MUX整理的路径直接输出TILE或进入TILE的GSB后输出TILE。
6.根据权利要求2所述的方法,其特征在于,所述的对多路选择器(MUX)建模中:采用的4选I多路选择器紧接在外部信号输入端,由两个编程点配置,选择该路信号、该路信号的非、逻辑O或逻辑I。
【文档编号】G06F17/50GK103914580SQ201310323430
【公开日】2014年7月9日 申请日期:2013年7月29日 优先权日:2012年12月31日
【发明者】王伶俐, 周学功, 童家榕, 黄郑, 陈帅, 张作舟 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1