SV_LAB学习02篇 LAB2

本文详细介绍了SV_LAB的第二部分——LAB2的驱动代码实现,包括定义发送参数、驱动代码gen()和send()的功能及工作原理,并提供了传输时序图。gen()函数用于生成数据,send()负责按特定时序发送数据,模拟完整帧的发送过程。
摘要由CSDN通过智能技术生成

一、顶层代码

(1)  接口Interface代码router_io.sv 与LAB1保持一致。

(2)  顶层代码 router_test_top.sv 与LAB1保持一致。

后篇同理,将不在赘述,快速传送链接 https://blog.csdn.net/ShiAokai/article/details/99639366 

二、驱动代码 test.sv

2.1  定义发送参数

  bit[3:0] sa;
  bit[3:0] da;
  //定义8位的队列,即一个字节
  logic[7:0] payload[$];
  int run_for_n_packets;

2.2  驱动代码

相比LAB1,在reset()之后加入了 gen()、send();前者用来产生数据,后者用来按时序将数据发出。

  initial begin
    $vcdpluson;
    reset();
    run_for_n_packets = 21;
    repeat(run_for_n_packets) begin
        gen();
        send();
    end
    repeat(10) @(rtr_io.cb);
  end

2.2.1  gen() 产生数据

这里产生一个包,为从端口3输入,从输出端口7输出;然后随机往数据队列放入2~4个数据,对应在驱动书需要n*8个周期(因为一个数据8位)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值