ASIC验证
文章平均质量分 77
ASIC验证
那么菜
仗剑天涯,谁来也不怕
展开
-
计算机主板chipset中的北桥和南桥
南桥芯片和北桥芯片的区别是在主板上的位置和作用不同,以及发展方向不同。一、位置不同北桥芯片就是主板上离CPU最近的芯片,以CPU插座为北的话,靠近CPU插座的一个起连接作用的芯片称为“北桥芯片;南桥芯片(South Bridge)是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI的前面,即靠主机箱前的一面。二、作用不同北桥主要负责CPU与内存之间的数据交换,主要控制 CPU内存显卡等高速设备;南桥主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能转载 2022-04-15 10:54:07 · 5867 阅读 · 0 评论 -
ASIC 芯片 PVT
1.工艺角 process corner不同的晶片和不同的批次之间,因为掺杂、刻蚀、温度等外界因素导致MOSFET参数的变化范围比较大。为减轻设计困难度,需要将器件性能限制在某个范围内,并报废超出这个范围的芯片,来严格控制预期的参数变化。工艺角即为这个性能范围。1.2 5 个 Corner modelTT:nmos -Typical corner & pmos -Typical cornerFF:nmos -Fast corner & pmos -Fast cornerS原创 2022-03-30 14:23:07 · 796 阅读 · 0 评论 -
ASIC验证,关于后仿那些事
1.什么是后仿?后仿真也被称为时序仿真,或者门级仿真。当芯片在后端完成布局布线后,时序文件SDF文件,会被反标到网表文件上,那么此时针对带有时序信息的网表进行仿真,称为后仿真。2.后仿真有何用?检查电路中的timing violation和 test fail,一般都是已知的问题。一般后仿真花销2周左右的时间。网表仿真的目的是,检查RTL仿真和pd综合后的一致性(logic Equivalence check),由于网表仿真非常慢,所以 并不会对前仿中的所有testcase 都做后仿。有..原创 2022-03-29 08:33:53 · 3011 阅读 · 0 评论 -
关于 Makefile,如何编译动态链接库.so和静态链接库.a
名词介绍静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。 动态函数库 这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动原创 2022-03-28 18:09:42 · 3616 阅读 · 0 评论 -
#systemVerilog# SV 和 C/C++ 之间的桥梁 DPI(一)
基本讲解Verilog与C之间进行程序交互,PLI(Programming Language Interface),经过了TF,ACC,VPI等模式。使用PLI可以生成延时计算器,来连接和同步多个仿真器,并可以通过波形显示等调试工具。通过PLI方式连接一个简单的C程序,需要编写很多代码,并理解多仿真阶段的同步,调用段,实例指针等概念。PLI方式给仿真带来了额外的负担,为了保护Verilog的数据结构,仿真器需要不断的在Verilog和C之间复制数据。SystemVerilog引入了DPI(Direc转载 2022-03-24 08:29:25 · 5829 阅读 · 0 评论 -
关于 Makefile,如何编写成型文件
工作原理:要生成终极目标,先检查依赖条件是否都具备,如果有依赖条件不存才则再寻找新的规则来生成依赖条件Makefile的编写Makefile文件命名为makefile或Makefile第一种形式app:main.c insert_sort.c select_sort.c gcc *.c -o app -std=c99直接使用命令生成目标文件,但是只要更新了其中的一个文件,所有文件都需要重新编译,大大浪费了时间app:main.c insert_sort.c select_sor..转载 2022-03-23 15:11:56 · 140 阅读 · 0 评论 -
关于 Makefile 伪目标的妙用
clean:rm *.o temp因为,我们并不生成“clean”这个文件。“伪目标”并不是一个文件,只是一个标签,由于“伪目标”不是文件,所以make无法生成它的依赖关系和决定它是否要执行。我们只有通过显示地指明这个“目标”才能让其生效。当然,“伪目标”的取名不能和文件名重名,不然其就失去了“伪目标”的意义了。当然,为了避免和文件重名的这种情况,我们可以使用一个特殊的标记“.PHONY”来显示地指明一个目标是“伪目标”,向make说明,不管是否有这个文件,这个目标就是“伪目标”。.PHON转载 2022-03-23 15:00:15 · 605 阅读 · 0 评论 -
关于 Makefile, 该知道这些
一 Makefile 的用途(1)可用做于管理工程文件的工具(2)make 是解释Makefile的解释命令工具(3)可以提高工作效率,减少出错的几率。二 基本规则2.1 目标:依赖 (tab)命令目标 --> 要生成的目标文件。(关于伪目标,请看最后补充说明。)依赖 --> 生成目标文件需要的一些文件。命令 --> 借助依赖文件生成目标文件的手段。忽略错误命令继续执行,不显示执行时候的命令细节。tab --> 缩进,有且只有...原创 2022-03-23 14:51:19 · 1796 阅读 · 1 评论 -
#VCS# VCS动态加载DPI shared lib (.so)方法
VCS动态加载DPI shared lib,在vcs compile之后,调用GCC执行C的编译,产生so文件。在vcs run的时候,手动加载so。包括以下2种种命令都行: 1) -sv_liblist,指定一个so的list文件bootstrap file,其中的so不需要加后缀名。 2) -sv_lib,加lib名,不需要加后缀。注意:-sv_root是指定DPI shared lib的根目录,可以识别环境变量$ENV,就很有用了。例子:以上先设置:-sv_root转载 2022-03-23 10:08:08 · 2348 阅读 · 0 评论 -
Linux基础——g++编译、静态库与动态库(共享库)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库(*.a)与动态库(*.so)的生成与使用方式是不同的。刚开始可能会不适应,但是用多了应该会习惯这种使用,因为步骤上并没有VS下配置那么繁琐。下面就分别总结下linux下生成并使用静态库与动态库的方法:(由于是C++项目,所以编译器用的g++,但是与gcc的使用是相通的)。首先是准备工作,把我们需要封装转载 2022-03-23 09:43:15 · 1434 阅读 · 0 评论 -
Linux基础——gcc编译、静态库与动态库(共享库)
gcc 编译器1、gcc工作流程2、gcc常用参数参数 用途 -v 查看版本 -o 产生目标文件 -I+目录 指定头文件目录 -D 编译时定义宏 -00/-01/-03 没有优化/缺省值/优化级别最高 -Wall 提示更多警告信息 -c 只编译子程序 -E 生成预处理文件 -g 包含调试信息 静态库1、静态库的命名格式lib + 库的名字 + .a例:libMyTest.a (My.转载 2022-03-23 09:26:11 · 1029 阅读 · 0 评论 -
关于验证Verification IP,举个例子看看
专业解释:VIP(Verfication IP)代码确认与验证技术,是预先验证过的内建验证结构,提供了完整的、灵活的应用机制,可以方便地插入到基于仿真的确认测试中,可以大大提高验证可重用性和验证效率。VIP是一种验证模型,并提供一套全面测试环境,帮助设计者和验证者确认其设计功能的正确性,可用于各个层次的仿真验证。通常,VIP是基于标准协议的,如:AMBA、PCIE、USB、Ethernet等。VIP中包括很多验证部件IP,这些IP都严格遵循这些标准协议、已经被验证过,通常包括:产生testbench所必须转载 2022-03-22 22:24:50 · 3384 阅读 · 0 评论 -
关于验证VIP,该知道点什么,做点什么
目录VIP 概述VIP的用武之地?VIP的应用优势?VIP的选择?VIP提供商?VIP的开发开发概述VIP开发阶段阶段一(定义):阶段二(VIP基本搭建)阶段三(完成monitor和scoreboard)阶段四(扩充Test与sequence)阶段五(完成标准)如何用商用VIP辅助开发VIP?VIP 概述VIP的用武之地?设计IP的开发者:需要一个稳定的VIP帮助其完成设计IP的验证。设计IP的集成者:需要更深层次去验证设计是否经得住转载 2022-03-22 14:40:41 · 5678 阅读 · 0 评论 -
亿万打工人的梦:16万个CPU随你用
如果有一天,你有16万个CPU,你要怎么用?梦想还是要有的,万一它实现了呢?首先,你要有个调度器。我们现在说的调度器,主要是基于HPC场景的集群任务调度系统,英文叫Cluster Scheduler、Job Scheduler等。市面上主流调度器有四大流派:LSF/SGE/Slurm/PBS。不同行业因为使用习惯和不同调度器对应用的支持力度不同,往往会有不同的偏好:比如高校和超算经常用Slurm,半导体公司最常用的是LSF和SGE,工业制造业可能用PBS更多一些。调度转载 2022-03-21 16:38:22 · 285 阅读 · 0 评论 -
探究20000个VCS任务背后的故事
强大的云计算加速验证回归,小厂也能有大厂的算力。新思科技(Synopsys)家的VCS,在半导体行业使用率极高,背景我们就不多说了。对经常跑EDA或其他算力密集型任务的用户来说,在深度掌握本行业业务知识及熟练运用常见EDA工具以外,通常还需要在技能树上点上一门技能——IT,就是怎么(顺利)使用机器把手里的任务给(高效)跑完。一般讲,IT技能升级打怪之旅一般分为三个阶段:第一阶段:单机单CPU核,单任务第二阶段:单机多CPU核,多任务第三阶段:多机多CPU核,多任务一个CPU可以.转载 2022-03-21 16:32:20 · 485 阅读 · 0 评论 -
#PLI# Verilog ACC 子程序列表(五)
为保证子程序的原汁原味,避免拉跨拙劣的翻译水平,所有子程序列表均保留英文说明。这里也没有对所有的子程序都进行验证,由于版本或抄写问题,可能会有所疏漏,欢迎指正。建议使用时再仔细研究对应类型的子程序,多多参考其他例子中参数的类型及设置。ACC 子程序主要分为 5 大类:句柄(handle)、后继(next)、值变链接(VCL)、取值(fetch)、杂项(miscellaneous)、修改(modify)。句柄子程序返回类型 调用格式及说明 handle ◆acc_handle_by转载 2022-03-20 14:16:45 · 318 阅读 · 0 评论 -
#PLI# Verilog ACC 子程序(四)
功能特性ACC 子程序主要完成的功能有:从内部数据结构中读取特定对象的相关信息 把特定对象的相关信息写入内部数据结构中ACC 子程序可操作的对象类型有:模块实例、模块端口、模块的端到端的路径以及模块之间的路径 顶层模块 原语实例和原语端口 wire、reg、parameter、integer、time、real 等变量类型 时序检查 命名事件ACC 子程序的主要特征有:均以 acc_ 为前缀 开头必须调用 acc_initialize() 以进行环境初始化 退出时必须调用转载 2022-03-20 15:03:45 · 385 阅读 · 0 评论 -
#PLI# Verilog TF 子程序列表(三)
为保证子程序的原汁原味,避免拉跨拙劣的翻译水平,所有子程序列表均保留英文说明。建议使用时再仔细研究对应类型的子程序。这里也没有对所有的子程序都进行验证,由于版本或抄写问题,可能会有所疏漏,欢迎指正。TF 子程序常用于 Verilog 和用户 C 子程序之间的双向数据传输。当以 tf_ 为前缀的子程序有一个以 tf_i 为前缀的子程序与之对应时,这个以 tf_i 为前缀的对应子程序中发生操作的实例指针必须被当做变量列表最后的附加变量加以传递。TF 子程序在命名形式上没有明确的分类标志,简单做如下总结。转载 2022-03-20 14:09:01 · 215 阅读 · 0 评论 -
#PLI# Verilog PLI 之 TF 子程序(二)
功能:TF (task/function) 子程序主要用于 Verilog 与用户 C 程序边界的两个方向上的数据传输。TF 子程序总是以 tf_ 为前缀,定义在头文件 veriuser.h 中。所以用 C 语言写系统任务或函数时,都需要在 C 文件中添加 #include "veriuser.h" 。TF 子程序用途可划分为:获取系统任务的信息 获取参数列表信息 获取参数值 把参数值回传给系统任务 监视参数值的改变 获取仿真时间和调度事件的信息 算数运算 显示信息 管理维.转载 2022-03-20 14:06:34 · 463 阅读 · 0 评论 -
#PLI# Verilog PLI 简介(一)
编程语言接口(PLI, Program Language Interface)提供了一套接口子程序,用于访问设计内部的数据结构,并可以提取仿真环境信息。用户可以调用这些子程序,自定义系统任务和系统函数,与设计内部数据以及 Verilog 仿真器环境进行交互。转载 2022-03-20 12:20:12 · 2900 阅读 · 0 评论 -
Smoke test,Sanity test,Regression test之间的区别
在测试领域,冒烟测试(smoke test)、可用性测试(sanity test)和回归测试(regression test)彼此之间很相似,范围也有重叠,所以比较容易混淆:都是在需求变更或问题修改后对系统全面测试之前的一种预测试,都是为了发现是否在界面和代码层面引入了问题。我们可以用一个和河流相关的类比来更好的理解它们之间的差别,在类比之前,我们先了解下这几个测试的简单定义:Smoke Testing: 测试新特性有关的所有方面 (广度) ,但不深入,用以判断我们是否需要执行进一步的测试S.转载 2022-01-17 22:08:28 · 2285 阅读 · 0 评论