UVM实战CH2:10 验证平台加入reference model

验证平台加入reference model

reference model用于完成和DUT相同的功能,输出被scoreboard接受,用于和DUT的输出比较

代码分析

my_model 代码

`ifndef MY_MODEL__SV
`define MY_MODEL__SV

class my_model extends uvm_component;
   
   //声明两个接口,用以和monitor和scoreboard传输数据
   uvm_blocking_get_port #(my_transaction)  port;
   uvm_analysis_port #(my_transaction)  ap;

   extern function new(string name, uvm_component parent);
   extern function void build_phase(uvm_phase phase);
   extern virtual  task main_phase(uvm_phase phase);

   `uvm_component_utils(my_model)
endclass 

function my_model::new(string name, uvm_component parent);
   super.new(name, parent);
endfunction 

function void my_model::build_phase(uvm_phase phase);
   super.build_phase(phase);
   //创建两个接口实例
   port = new("port", this);
   ap = new("ap", this);
endfunction

task my_model::main_phase(uvm_phase phase);
   my_transaction tr;
   my_transaction new_tr;
   super.main_phase(phase);
   while(1) begin
      port.get(tr);
      new_tr = new("new_tr");
      //调用my_transaction的my_copy函数,连续复制DUT传输的TR,并发送出去
      new_tr.my_copy
### Vue 3 中 Element Plus 的 `el-checkbox-group` 使用方法 在 Vue 3 中,Element Plus 是 Element UI 的升级版本,专门适配 Vue 3。它提供了丰富的组件集合,其中包括 `el-checkbox` 和 `el-checkbox-group` 组件。这些组件可以用来创建多选框组,并绑定到数据模型。 以下是详细的使用说明以及示例: #### 属性 `el-checkbox-group` 主要用于管理一组复选框的状态。它的核心属性包括: - **v-model**: 双向绑定的数据源,通常是一个数组,表示当前被选中的选项。 - **size**: 设置尺寸大小(可选值为 `medium`, `small`, 或 `mini`),该属性仅在按钮样式下生效[^1]。 #### 子组件 `el-checkbox` 每个单独的复选框可以通过 `el-checkbox` 来定义,其主要属性包括: - **label**: 表示单个复选框对应的值。 - **disabled**: 是否禁用此复选框。 - **border**: 添加边框样式。 #### 示例代码 以下是一个完整的示例,展示如何在 Vue 3 中使用 `el-checkbox-group` 实现多选功能并设置纵向排列布局。 ```html <template> <div> <!-- 纵向排列 --> <el-checkbox-group v-model="selectedValues" style="display: flex; flex-direction: column;"> <el-checkbox label="Option 1">选项一</el-checkbox> <el-checkbox label="Option 2">选项二</el-checkbox> <el-checkbox label="Option 3">选项三</el-checkbox> </el-checkbox-group> <p>已选择:{{ selectedValues }}</p> </div> </template> <script> import { ref } from &#39;vue&#39;; export default { setup() { const selectedValues = ref([]); // 初始化为空数组 return { selectedValues, }; }, }; </script> ``` 上述代码通过 `style="display: flex; flex-direction: column;"` 将复选框垂直堆叠显示[^2]。同时,利用 `v-model` 动态绑定了一个响应式的数组变量 `selectedValues`,当用户勾选或取消某个复选框时,这个数组会自动更新。 #### 结合动态数据渲染 如果需要从后台获取数据或者基于某些条件生成复选框列表,则可以采用如下方式: ```html <template> <el-checkbox-group v-model="dynamicSelected"> <el-checkbox v-for="(item, index) in optionsList" :key="index" :label="item.value">{{ item.label }}</el-checkbox> </el-checkbox-group> </template> <script> import { ref } from &#39;vue&#39;; export default { setup() { const dynamicSelected = ref([]); const optionsList = [ { value: &#39;A&#39;, label: &#39;苹果&#39; }, { value: &#39;B&#39;, label: &#39;香蕉&#39; }, { value: &#39;C&#39;, label: &#39;橙子&#39; } ]; return { dynamicSelected, optionsList, }; }, }; </script> ``` 在此例子中,我们通过循环遍历 `optionsList` 数组来动态生成多个复选框项[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值