ASIC设计转FPGA时需要注意的几点

fpga原型验证和其他验证方法是不同的,任何一种其他验证方法都是asic验证中的一个环节,而fpga验证却是一个过程。由于fpga与asic在结构、性能上各不相同,asic是基于标准单元库,fpga用的是厂商提供的宏单元模块,因此首先要进行寄存器传输级(rtl)代码的修改。然后进行fpga器件映射,映射工具根据设置的约束条件对rtl代码进行逻辑优化,并针对选定的fpga器件的基本单元映射生成网表。接着进行布局布线,生成配置文件和时序报告等信息。当时序能满足约束条件时,就可以利用配置文件进行下载。如果时序不能满足约束,可通过软件报告时序文件来确认关键路径,进行时序优化。可以通过修改约束条件,或者修改rtl代码来满足要求。
需要转换的代码 存储单元 存储单元是必须进行代码转换的,asic中的存储单元通常用代工厂所提供的memory compiler来定制,它可以生成.gsp、.v等文件。.v文件只用来做功能仿真,通常不能综合。而最后流片时,只需将标准提供给代工厂。如果直接将asic代码中的存储单元作为fpga的输入,通常综合器是综合不出来的,即使能综合出来,也要花费很长时间,并且资源消耗多、性能不好。而fpga厂商其实已经提供了经过验证并优化的存储单元。因此存储单元要进行代码转换。
时钟单元 数字电路中,时钟是整个电路最重要、最特殊的信号。在asic中,用布局布线工具来放置时钟树,利用代工厂提供的pll进行时钟设计。fpga中通常已经配置一定数量的pll宏单元,并有针对时钟优化的全局时钟网络,一般是经过fpga的特定全局时钟管脚进入fpga内部,后经过全局时钟buf适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。因此时钟单元也是需要进行转换的。
增加流水 由于实现结构上的不同,fpga器件内部的单元延时远大于asic的基本门单元延时。导致在同样设计的情况下,asic可以满足其时序,而fpga有可能无法满足。为了验证的需要,修改asic代码实现fpga原型时,对asic实现的流水结构在fpga实现时需要适当增加流水。比如在一个很长的组合逻辑路径中加入寄存器。
同步设计 在fpga设计中,同步设计是应该遵循的重要原则。异步设计容易导致电路处于亚稳态,产生毛刺。当从asic设计转向fpga设计时,应该进行仔细的同步。具体体现在主时钟选取、功能模块的统一复位、同步时序电路设计。在fpga设计中要使用时钟使能代替门控时钟。在asic的设计中,为了减少功耗,使用门控时钟(clock gating),门控时钟的结构如图2所示。当写有效时,数据才写进存储器,那么只有写有效时,寄存器才会发生翻转,这样可以减少功耗。

关于段码液晶屏三种连接方式的简单分析
新唐科技W588C025主板介绍
人工智能技术发展迅速,它能为我们做些什么
日美计划开展半导体人才合作
镍氢电池的特性都有哪些呢
ASIC设计转FPGA时需要注意的几点
什么是射频同轴连接器 射频同轴连接器的基本结构
Speedcore eFPGA 在汽车智能化中的应用
fireflyFace-RK3399主板升级固件介绍
分析高速DSP系统中产生干扰的原因及如何解决
广凌应急广播如何实现应急管理,筑牢校园安全防线?
土壤温度水分盐分PH测定仪的产品简介
AWS发布新一代Amazon Aurora Serverless
键值型数据库在分布式爬虫系统中的应用分析
压力变送器的选用参数有哪些
本田思域面临停产,理由为疫情延误零部件短缺
市面上使用率较多开源RTOS的具体内容
RFID电子标签让不同设备实现互联,有效提高了生产效率
Option Byte如何实现CH3通道PWM输出IO复用
电脑系统的32位和64位究竟有什么不一样