FPGA知识汇集-ASIC向FPGA的移植

news2024/10/6 10:41:32

       ASIC原型验证是整个验证环节中非常重要的步骤之一,也是将ASIC的代码移植到FPGA平台上最重要的原因,本文章的意义在于:

       对于系统构架师,将帮助他们在选择商用模拟器还是自行设计方案之间做出更好的选择;

       对于逻辑工程师,他们能够更好的将ASIC设计移植到FPGA原型验证平台中;

       对于验证工程师,其价值在于如何将现有的测试平台移植到新的验证环境中。

       将ASIC设计移植到FPGA芯片中,对于大部分设计团队来讲都是巨大的挑战。主要体现在:ASIC的设计一般都非常大,往往需要做多FPGA芯片划分;需要支持足够的处理性能;需要保证其功能的正确性;需要保证移植前后的功能具有等价性。

       时ASIC设计的移植还没有出现‘原型验证设计’这样的方法学,但是整个移植的任务大致相似:逻辑资源和处理性能评估:选择硬件模拟器或者原型验证平台;FPGA多芯片划分;RTL源代码修改;逻辑综合和物理实现;验证移植后的整个设计。图1说明了整个验证过程中的每一个环节。

       移植过程的总体原则是尽量少地修改原始设计,以免产生新的问题。

资源评估

       从任何一个角度来看,精确的资源评估都是ASIC移植工作的重点。首先它的结果将直接影响到硬件模拟器或者原型验证平台的选型,其次对于整个设计的多芯片划分和成本都有直接的影响。资源估计过少,那么ASIC设计就不能完整的移植到FPGA中;而资源估计过多,则会导致毫无必要的成本开销。

       对于ASIC资源评估的不同方法,感兴趣的读者可以关注公众号,持续更新。

性能评估

       性能评估的结果,会直接影响验证方案的选择,对于大部分的设计来说,不可能期望ASIC设计在FPGA平台上拥有相同的性能指标。除了FPGA内核本身带来的性能降低之外,芯片与芯片之间的通信延迟也降低了整体的性能。如果一个平台的性能指标能够达到ASIC设计的几分之一,那么这个方案就具有了可行性。但是如果只有原始性能的几十分之一,很多验证任务就无法完成。

     在多核处理器的SOC芯片中,某些嵌入式操作系统的启动时间甚至会高达5分钟左右。如果验证平台的性能只有十分之一,那么就要耗费接近1小时,某些程度上还能接受。但是如果性能只有一百分之一,那么基本上要耗费半天来启动这个操作系统。对于绝大部分的嵌入式系统的验证来讲,该方案将变的毫无可行性。

     关于性能评估的内容。感兴趣的读者可以关注公众号,持续更新。

硬件模拟器与原型验证平台

        选择硬件模拟器还是原型验证平台,对于验证团队来讲一直都是长期而艰巨的任务。最终的选择需要满足所有的需求,例如资源容量、整体性能、系统成本、验证范围及能够支持的工具等

FPGA多芯片划分

       ASIC设计所占用的资源一般非常大,常常需要划分到多颗FPGA芯片中才能实现。简单来说就是将ASIC设计的不同部分(一般是以功能模块为划分边界)映射到不同的FPGA芯片中。划分及优化的过程较为复杂,需要考虑到整个方案的系统成本、整体性能、资源容量、FPGA芯片之间如何互联、划分的复杂度等指标。

源代码移植

       虽然ASIC和FPGA都是使用相同的RTL编码方式,但是将适合ASIC芯片的RTL源代码移植到FPGA芯片中时,需要进行相当多的重编码和优化工作。特别是ASIC设计中的时钟树结构,需要正确的分配到FPGA芯片的各种时钟资源上,这将是一项非常大的挑战。

      同时,ASIC设计中的某些资源,例如晶体管、传输门、双向信号甚至是模拟电路,在FPGA芯片内根本无法找到对应的结构,因此需要找到其他方式进行模拟(替代)。

       几乎所有的ASIC设计都会使用到各式各样的IP核:从Synopsys Design Ware库中的简单功能模块(大部分模块都可以使用FPGA结构实现)复到复杂的存储器控制器,PCIE,USB等总线子系统,以及CPU内核等。像Xilinx这样的FPGA供应商能够提供许多可替代的对应IP核,但并不是所有都可替代。

       关于时钟、锁存器、存储器、三态门、组合逻辑及不可综合电路的移植,感兴趣的读者可以关注公众号,持续更新。

逻辑综合和物理实现

       完成了代码移植后,剩下的工作主要就是逻辑综合和物理实现。其中包括解决由于ASIC和FPGA综合工具的差异引起额问题,添加时序、资源、引脚约束、优化工具的参数设置,最终达到时序收敛。

       虽然最新的FPGA工具和设计流程和ASIC很相似,但是一些根本性的差异所造成的问题还是需要工程师解决。通常,ASIC综合工具所支持的Verilog语法要比FPGA综合工具更加宽松,而且由于设计优化的目标不同,ASIC和FPGA综合工具所支持的引导语句和工具选项也不尽相同。另外,无论是资源占用还是布线密度,ASIC工具需要处理的工作远远比FPGA复杂的多。在某些复杂的情况下,FPGA工具甚至会无法布局布线。因此某些情况下必须要修改RTL源代码,甚至是重新规划多芯片划分方案。

验证移植后的设计

       验证移植后的代码是整个过程的最终环节,其目标就是保证移植前后的设计在功能上保持一致,并且符合原始的设计规范。验证的方法有基于软件的功能仿真,基于硬件的模拟器或者原型验证平台,以及基于纯数字推导的等价性验证。

系统集成和功能验证

       ASIC流片之后,需要进行系统集成和功能测试,其主要目的就是保证芯片的功能在整个系统中能够正确的运行。首先芯片被安置于特殊设计的PCB上,测试程序负责向芯片注入激励向量,芯片的输出和预期结果进行比较,以判断其功能是否正确。整个硅片的测试基本都是自动化的测试过程,并且通常会在不同的条件下同时测试硅片。激励向量的产生有多种方式:预先定义的激励向量,使用多输入移位寄存器产生随机序列等。当其中某项测试失败时,可以通过硬件模拟器进行相同的测试来定位问题的根本原因。

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文读懂Go Http Server原理

hello大家好呀,我是小楼,这是系列文《Go底层原理剖析》的第二篇,依旧是分析 Http 模块,话不多说,开始。 从一个 Demo 入手 俗话说万事开头难,但用 Go 实现一个 Http Server 真不难,简单到什么程…

2、Eclipse安装与使用

目录 一、简介 二、下载 三、Eclipse安装 (1)找到Eclipse安装包,右键【以管理员身份运行】 2.因为是写Java程序,所以安装第一个喽 3.安装位置设置(不建议C盘安装哦),点击【INSTALL】 3.点…

day02 数组 | 977、有序数组的平方 209、长度最小的子数组 59、螺旋矩阵II

1、题目 977、有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释&#xff1…

github Page博客速度优化+Cloudflare_https两端配置+解决重定向次数过多问题

网站加速调优 自从加了CDN之后我的博客偶尔会报错”重定向次数过多“ 症状: XXX.XXX.XXX 将您重定向的次数过多。 尝试清除 Cookie. ERR_TOO_MANY_REDIRECTS 可能原因 参考阿里云cdn解决方案https://help.aliyun.com/document_detail/451418.html但是cloudflar…

【UCIe】UCIe Stall 介绍

🔥点击查看精选 UCIe 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0…

【SAP Hana】SAP Hana存储过程开发

SAP Hana存储过程开发Hana 存储过程1、创建&更新语法2、删除语法3、调用语法4、实例演示(1)存储过程入门(2)指定 DEFAULT SCHEMA(3)定义内部变量,执行多个查询(4)定义…

【Javascript】高阶函数,JSON,forEach,map,filter,reduce等高阶函数,函数绑定

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录高阶函数箭头函数apply函数JSONfilter函数map函数总结reduce函数find/findIndex函数every/some函…

【Android安全】frida-gum教程

frida-gum教程 frida-gum概述 frida-gum是基于inline-hook实现的 提供的功能:代码跟踪(Stalker)、内存访问监控(MemoryAccessMonitor)、符号查找、栈回溯实现、内存扫描、动态代码生成和重定位 inline Hook 原理 .…

MySQL中常见的数值函数

第一个 ceil(x):向上取整 取整,顾名思义就是取整数; 向上取整是只要小数位不是 0,都会向上进 1 位整数。 案例 1: select ceil(9.2); 解析: 9.2 向上取一位整数,就是 10。 查询结果&#xff…

全屋智能品牌很多坑!选华为还是卡特加特数字家庭?技术角度分析亮了

市面上的智能家居品牌有很多,但拥有成熟全屋智能系统、完善产品体系,以及线下线上闭环销售渠道的则没几个。细数下来只有手机厂商华为、小米,以及科创型企业欧瑞博、摩根、UIOT和卡特加特,而其中以华为和卡特加特为代表的&#xf…

自定义类型:结构体,枚举,联合(3)

TIPS 1. 2. 枚举 1. 枚举顾名思义就是一一列举可能的取值,比如一周的星期一到星球天是有限的七天,可以一一列举。有比如性别,月份。 2. 像这种容易并且可以被一一列举的数据我们就可以定义为枚举类型。 枚举类型 1. 枚举的关键字为e…

【2】成功安装部署K8s集群

目录 1、安装方式 2、环境初始化 【1】主机名解析 【2】时间同步 【3】禁用iptables和firewalld服务(三台都要设置) 【4】禁用selinux(三台都要设置) 【5】禁用swap分区 【6】修改linux的内核参数 3、安装docker 【1】安…

自定义类型:结构体,枚举,联合(详解版)

🐋自定义类型:结构体,枚举,联合🦖结构体🐔1.结构体的声明🐤1.1 结构的基础知识🐤1.2 结构的声明🐤1.3 特殊的声明🐤1.4 结构的自引用🐤1.5 结构体…

APSIM实战练习:Kingsthorpe土壤水分蒸发研究

在本练习中,您将对来自澳大利亚昆士兰州金斯索普的真实试验的数据进行建模。使用从试验中观察到的数据,您将创建一个气象文件,模拟三个蒸发曲线并将模拟输出与观察到的数据进行比较。 有关试用的更多背景信息,请参阅此 PowerPoin…

操作系统-进程与线程

进程的概念、组成、特征 概念 程序:是静态的,就是存放在磁盘里的可执行文件,如:QQ.exe。 线程:是动态的,是程序的一次执行过程,如:可同时启动多次QQ程序。 组成 进程由PCB、程序…

Java数组(复习)

Java数组 数组:数组是指一种容器,可以用来存储同种数据类型的多个值 数组容器在存储数据的时候,需要结合隐士转换考虑。例如:int类型的数组容器,可以存储byte,short,int类型的数组。double类型…

矩阵乘GPU性能优化之split k

矩阵乘计算GPU实现中通常为线程块计算一个较大的[m_tile, k] *[k, n_tile]的矩阵乘,最后分配到每个线程后同样为每个线程计算更小的一个[m_tile, k] *[k, n_tile]。 这样存在的一个问题主要是在于m和n较小而k很大时,如下图所示的矩阵乘案例,…

总结各种常见的池子

池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 池化技术的优点主要有两个:提前准备和重复利用。 像池化技术一些典型的池子就比如线程池,内存池,对象池,数据库连接池等等,线程…

cmake入门之一:编译、INSTALL及shell语句

cmake入门之一:编译、INSTALL及shell语句1.创建相应文件1.1 工程目录下CMakeLists.txt1.2 src文件夹1.2.1 src文件夹下main.c1.2.2 src文件夹下CMakeLists.txt1.3 runhello.sh1.4 其他文件/文件夹2.编译3.查看结果参考文献在学习cmake-practice这本书中的demo时&…

《基于机器学习的雷达辐射源分选与识别技术研究》论文解读

Data:2023-1-12 Ref: 李雪琼, “基于机器学习的雷达辐射源分选与识别技术研究,” PhD Thesis, 国防科技大学, 2020. 文章目录背景重频(PRI)基于已知信号的雷达分选技术基于未知信号的雷达分选技术这篇文章我主要关注他的第三、四章。第三章主要描述了基于已知信号的雷达分选技术…