![原型验证过程中的ASIC到FPGA的代码转换_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/51ac6371-fbd1-40f7-a7c4-2f534912a2ca/51ac6371-fbd1-40f7-a7c4-2f534912a2ca1.gif)
![原型验证过程中的ASIC到FPGA的代码转换_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/51ac6371-fbd1-40f7-a7c4-2f534912a2ca/51ac6371-fbd1-40f7-a7c4-2f534912a2ca2.gif)
![原型验证过程中的ASIC到FPGA的代码转换_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/51ac6371-fbd1-40f7-a7c4-2f534912a2ca/51ac6371-fbd1-40f7-a7c4-2f534912a2ca3.gif)
![原型验证过程中的ASIC到FPGA的代码转换_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/51ac6371-fbd1-40f7-a7c4-2f534912a2ca/51ac6371-fbd1-40f7-a7c4-2f534912a2ca4.gif)
![原型验证过程中的ASIC到FPGA的代码转换_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/51ac6371-fbd1-40f7-a7c4-2f534912a2ca/51ac6371-fbd1-40f7-a7c4-2f534912a2ca5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、原型验证过程中的ASIC到FPGA的代码转换在对ASIC设计进行FPGA原型验证时,由于物理结构不同,ASIC的代码必须进行一定的转换后才能作为FPGA的输入现代集成电路设计中,芯片的规模和复杂度正呈指数增加。尤其在ASIC设计流程中,验证和调试所花的时间约占总工期的70%。为了缩短验证周期,在传统的仿真验证的基础上,涌现了许多新的验证手段,如断言验证、覆盖率驱动的验证,以及广泛应用的基于现场可编程器件(FPGA)的原型验证技术。采用FPGA原型技术验证ASIC设计,首先需要把ASIC设计转化为FPGA设计。但ASIC是基于标准单元库,FPGA则是基于查找表,ASIC和FPGA物理结构上的不同
2、,决定了ASIC代码需要一定的修改才能移植到FPGA上。但应该注意到这只是由于物理结构不同而对代码进行的转换,并不改变其功能,因此对代码的这种修改只能限制在一定范围内。基本原理 基于FPGA原型验证的流程由于FPGA的可编程特性,基于FPGA的原型技术已经被广泛采用。和仿真软件相比,FPGA的硬件特性可以让设计运行在较高的频率上,加速仿真。另一方面,可以在ASIC芯片设计前期并行设计外围电路及应用软件,缩短了芯片验证周期。FPGA原型验证和其他验证方法是不同的,任何一种其他验证方法都是ASIC验证中的一个环节,而FPGA验证却是一个过程。由于FPGA与ASIC在结构、性能上各不相同,ASIC是
3、基于标准单元库,FPGA用的是厂商提供的宏单元模块,因此首先要进行寄存器传输级(RTL)代码的修改。然后进行FPGA器件映射,映射工具根据设置的约束条件对RTL代码进行逻辑优化,并针对选定的FPGA器件的基本单元映射生成网表。接着进行布局布线,生成配置文件和时序报告等信息。当时序能满足约束条件时,就可以利用配置文件进行下载。如果时序不能满足约束,可通过软件报告时序文件来确认关键路径,进行时序优化。可以通过修改约束条件,或者修改RTL代码来满足要求。 需要转换的代码1. 存储单元存储单元是必须进行代码转换的,ASIC中的存储单元通常用代工厂所提供的Memory Compiler来定制,它可以生成
4、.gsp、.v等文件。.v文件只用来做功能仿真,通常不能综合。而最后流片时,只需将标准提供给代工厂。如果直接将ASIC代码中的存储单元作为FPGA的输入,通常综合器是综合不出来的,即使能综合出来,也要花费很长时间,并且资源消耗多、性能不好。而FPGA厂商其实已经提供了经过验证并优化的存储单元。因此存储单元要进行代码转换。2. 时钟单元数字电路中,时钟是整个电路最重要、最特殊的信号。在ASIC中,用布局布线工具来放置时钟树,利用代工厂提供的PLL进行时钟设计。FPGA中通常已经配置一定数量的PLL宏单元,并有针对时钟优化的全局时钟网络,一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过
5、全局时钟BUF适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。因此时钟单元也是需要进行转换的。3. 增加流水由于实现结构上的不同,FPGA器件内部的单元延时远大于ASIC的基本门单元延时。导致在同样设计的情况下,ASIC可以满足其时序,而FPGA有可能无法满足。为了验证的需要,修改ASIC代码实现FPGA原型时,对ASIC实现的流水结构在FPGA实现时需要适当增加流水。比如在一个很长的组合逻辑路径中加入寄存器。如图1所示。图1 增加流水4. 同步设计在FPGA设计中,同步设计是应该遵循的重要原则。异步设计容易导致电路处于亚稳态,产
6、生毛刺。当从ASIC设计转向FPGA设计时,应该进行仔细的同步。具体体现在主时钟选取、功能模块的统一复位、同步时序电路设计。在FPGA设计中要使用时钟使能代替门控时钟。在ASIC的设计中,为了减少功耗,使用门控时钟(clock gating),门控时钟的结构如图2所示。当写有效时,数据才写进存储器,那么只有写有效时,寄存器才会发生翻转,这样可以减少功耗。图2 门控时钟示意图由于设计的异步特性,对于FPGA来说,使用这种门控时钟容易产生毛刺,导致数据不正确。所以在FPGA设计中,使用有使能信号的电路来替换门控时钟电路。可以在寄存器前面加上MUX来实现时钟使能信号,如图3所示。现在的FPGA厂商则
7、提供可以直接有使能,同步SET和RESET引脚的寄存器,如图4所示。图3 用MUX生成时钟使能信号图4 FPGA内带有时钟使能的寄存器5. 充分利用FPGA中已有的IP核FPGA厂商及第三方厂商已经实现并优化了很多典型的IP核,例如Xilinx提供了基础逻辑、总线接口与I/O、视频与图像处理、数字信号处理、存储器接口、微处理器、控制器等大量IP核。在代码转换时可以充分利用这些资源,对代码进行优化来提高设计性能。如在FPGA中使用SRL实现移位寄存器,用三态Buffer来替换三态总线和三态MUX,改进算术单元和有限状态机的编码。代码转换的实现结合同济大学微电子中心的“32位高性能嵌入式CPU开发
8、”项目,为了在流片之前确保功能的可靠性,对32位全定制高性能嵌入式CPU bc320进行了原型验证。设计采用Memec Design公司的FF1152开发板。该板使用了Xilinx的Virtex- Pro系列芯片中的XC2VP30。该FPGA拥有30 816个逻辑单元,相当于有30多万的ASCI门。另有2Mb的片上Block RAM,644个I/O口。采用了Xilinx的全自动、完整的集成设计环境ISE 7.1i,进行FPGA综合使用的工具是Synplify Pro。用bc320的ASIC RTL代码作为FPGA的输入,具体的代码转换如下。 存储单元设计中用到了很多SRAM,例如Icache中
9、的SRAM。在FPGA实现时根据所需RAM的宽度、深度和功能来决定采用哪种单元来进行替换。Xilinx提供了片外RAM、Block RAM和LUT RAM。ISE提供了两种具体的实现方法:IP生成器(Core Generator)和语言模板(Language Templates)。IP生成器是Xilinx FPGA设计中的一个重要设计输入工具,它提供了大量Xilinx和第三方公司设计的成熟高效IP核。这里是用Core Generator来产生了名为块存储器(Block Memory)的单口存储器模块。Core Generator用图形化设置参数的方式来提供块存储器,其界面如图5所示。块存储器的
10、大小根据向量的大小来制定,一个普通单元向量只需要4个51232bit的块存储器就够了。Core Generator产生块存储器时,除了参数设置外,还需要输入一个为.coe的文件来初始化块存储器的内容。Core Generator产生的文件同时考虑了后端执行和仿真两方面,主要有三个文件:file.v,file.mif,file.edn。其中.v文件为Verilog格式的SRAM仿真模型; .mif文件为作为其初始化内容,其内容和.coe文件里的具体向量内容是一致的;而实际后端文件为.edn,包含了块存储器的全部信息。图5 IP生成器的界面Language Templates主要利用Xilinx的
11、块存储器元件库,直接进行调用。XC2VP30内部的单口块存储器型号主要有:16k1bit、1k16bit、2k8bit、4k4bit、51232bit、8k2bit。可以根据自己的需要随意调用这些模块,在RTL代码中实例化,并把SRAM初始值作为参数传递进去。这些模块在Synplify Pro中根据选定的FPGA型号被自动识别,然后综合成统一的.edn文件,再进行后续操作。语言模板方式的灵活性比较强,可以设置多个不同位宽,不同深度的块存储器,仿真也比较方便,但是参数设定时,SRAM初始值的设置比较麻烦。另外,Xilinx提供工具Data2mem,它可以每次只改变FPGA中块存储器的内容,而不需将整个设计重新翻译、映射和布局布线,为大量的向量验证节约了时间。 时钟单元 时钟使能带代替门控时钟把实现门控时钟信号转换成实现使能信号,例如信号PCEPL,代码如下。第二段代码是修改后的代码。module(out,in,CLK, PCEPL);always (CLK or PCEPL)assign PCEPLV = PCEPL & CLK;always (posedge PCEPLV)beginout = in;endendmodulemodule(out,in,CLK, PCEPL);always (posedge CLK)beginif (PCE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2012建筑租赁合同范本
- 人防租赁转让合同范本
- 分项劳务合同范本
- 加盟销售合同范例
- 人情补偿写合同范本
- 出租车司机加盟合同范本
- 2025年中国恒转矩变频器行业市场深度研究及投资战略规划报告
- 上海建筑施工合同范本
- 2025年中国工业防水插座行业市场发展前景及发展趋势与投资战略研究报告
- 公司联营股合同范本
- 中国氢内燃机行业发展环境、市场运行格局及前景研究报告-智研咨询(2024版)
- 开学季初三冲刺中考开学第一课为梦想加油课件
- 中日合同范本
- T-CARM 002-2023 康复医院建设标准
- 《康复按摩知识》课件
- 申论详解(PPT课件)
- 封条模板A4直接打印版
- 立式加工中心说明书
- 唐太宗李世民
- 作文纸格子信纸
- 第八版神经病学配套课件-12-中枢神经系统感染性疾病
评论
0/150
提交评论