持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天!
--
make run时报错的原因的是按照指定的makefile文件去寻找test= test_base.而在lab2中使用test_da_3_inst 类去继承test_base类。
并且在“test_da_3_inst”类中去override基类方法。
pack_da_3类的定义
这个时候,我们在test_collection中实现了两种不同类型之间的重载
set_inst_override_by_type("env.i_agent*.seqr.*",packet::get_type(),packet_da_3::get_type());
这个时候,如果需要重新跑仿真的话,就不可以直接make all ,而是需要使用该语句make test=test_da_3_inst。 需将test的测试指定为重载之后的类型。否则就是makefile中的指定类型。
Override with different factory method
- override method in uvm_component
- function void set_inst_override_by_type(string relative_inst_path,【相对路径】
uvm_object_wrapper original_type,
uvm_object_wrapper override_type);
- function void set_inst_override(string relative_inst_path,
string original_type_name,
string overrride_type_name);
- function void set_type_override(uvm_object_wrapper original_type,
uvm_object_wrapper override_type,
bit replace = 1);
- function void set_type_override(string original_type_name,
string override_type_name,
bit replace = 1);
- override method in uvm_factory
function void set_inst_override_by_type(uvm_object_wrapper original_type,
uvm_object_wrapper override_type,
string full_inst_path);
function void set_inst_override_by_name(string original_type_name,
string override_type_name,
string full_inst_path);
function void set_type_override_by_type(uvm_object_wrapper original_type,
uvm_object_wrapper override_type,
bit replace=1);
function void set_type_override_by_name(string original_type_name,
string override_type_name,
bit replace = 1);
override的两类方法,总共8种。一类是用在uvm_component类中,一类是用在uvm_factory中。
SoC架构
- 什么是SoC 目前的SoC,都是基于ARM的CPU结构。 SoC芯片设计主要是基于IP的集成
- CPU
- DSP (DSP作为一种“专精型”微处理器,内部采用的是哈佛结构。这一结构中,程序存储器和数据存储器采用不同的总线,通过指令、数据分开的方式,两条总线能够重叠访问两个空间。这样一来,DSP就具有更大的存储器带宽,数据的移动和交换更加方便,非常适合处理数字信号任务)
- IPs(USB,PCIE)
- AMBA
深亚微米EDA软件,主要是Synopsys,Cadence,mento
芯片量产流程
- 市场调研 -> 产品定义 -> 方案设计 -> 芯片需求(这里定义芯片的specification)
- 芯片需求分析 -> 芯片定义(选什么CPU) -> 模块划分 -> 电路设计 -> 芯片验证 -> 物理设计 -> 流片 -> 封装 -> ATE测试 (一般芯片设计指的是物理设计之前的部分) 3. 板级模块测试 -> 系统级测试 -> 稳定性测试 -> 产品样机 -> 产品小批量 -> 芯片量产
CPU -SoC中的内核
-
CPU所做的工作由其指令集(ISA)决定
-
CPU的控制和数据通路执行指令集中的各种指令