ee_king的个人空间 https://blog.eetop.cn/1494617 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Testbench/IntegrationLevel

已有 860 次阅读| 2018-9-11 19:48 |系统分类:芯片设计

        该测试平台示例采用两个块级验证环境,并说明如何在更高的集成级重用它们。示例中说明的原则适用于多次重复的垂直重用。
       该示例采用SPI块级示例,并将其与GPIO DUT的另一个块级验证环境集成。这两个blocks的硬件已集成到外设子系统(PSS)中,该子系统使用AHB到APB总线桥接器与SPI和GPIO block上的APB接口连接。来自块级的环境由pss_env封装,pss_env还包括用于驱动外部的AHB总线接口的AHB agent。在此配置中,不再公开块级APB总线接口,因此APB agent被置于passive模式以监视APB 传输。激励需要驱动AHB接口,并且寄存器分层使得能够在集成级别重用块级激励。

       【此处需一幅图】

        我们现在将从顶层向下完成测试平台和构建过程,从顶层测试module开始。

        Top Level Test Bench Module

       与块级测试平台示例一样,顶层测试平台模块用于封装DUT,且将接口连接到DUT信号引脚,然后在调用run_test()之前将虚拟接口容器设置在配置空间中。此代码与块级测试平台代码之间的主要区别在于有了更多接口,还需要绑定到某些内部信号以监控APB总线。DUT由一个模块包含着,该模块将其I / O信号连接到UVM测试平台中使用的接口。使用binder模块将内部信号绑定到APB接口:

        module top_tb;

        import uvm_pkg::*;
        import pss_test_lib_pkg::*;

        // PCLK and PRESETn
        //
        logic HCLK;
        logic HRESETn;

        //
        // Instantiate the interfaces:
        //
        apb_if APB(HCLK, HRESETn); // APB interface - shared between passive agents
        ahb_if AHB(HCLK, HRESETn); // AHB interface
        spi_if SPI(); // SPI Interface
        intr_if INTR(); // Interrupt
        gpio_if GPO();
        gpio_if GPI();
        gpio_if GPOE();
        icpit_if ICPIT();
        serial_if UART_RX();
        serial_if UART_TX();
        modem_if MODEM();

        // Binder
        binder probe();

        // DUT Wrapper:
        pss_wrapper wrapper(.ahb(AHB),
                                            .spi(SPI),
                                            .gpi(GPI),
                                            .gpo(GPO),
                                            .gpoe(GPOE),
                                            .icpit(ICPIT),
                                            .uart_rx(UART_RX),
                                            .uart_tx(UART_TX),
                                            .modem(MODEM));

         // UVM initial block:
         // Virtual interface wrapping & run_test()
         initial begin
             uvm_config_db #(virtual apb_if)::set( null , "uvm_test_top" , "APB_vif" , APB);
             uvm_config_db #(virtual ahb_if)::set( null , "uvm_test_top" , "AHB_vif" , AHB);
             uvm_config_db #(virtual spi_if)::set( null , "uvm_test_top" , "SPI_vif" , SPI);
             uvm_config_db #(virtual intr_if)::set( null , "uvm_test_top" , "INTR_vif", INTR);
             uvm_config_db #(virtual gpio_if)::set( null , "uvm_test_top" , "GPO_vif" , GPO);
             uvm_config_db #(virtual gpio_if)::set( null , "uvm_test_top" , "GPOE_vif" , GPOE);
             uvm_config_db #(virtual gpio_if)::set( null , "uvm_test_top" , "GPI_vif" , GPI);
             uvm_config_db #(virtual icpit_if)::set( null , "uvm_test_top" , "ICPIT_vif" , ICPIT);
             uvm_config_db #(virtual serial_if)::set( null , "uvm_test_top" , "UART_RX_vif" , UART_RX);
             uvm_config_db #(virtual serial_if)::set( null , "uvm_test_top" , "UART_TX_vif" , UART_TX);
             uvm_config_db #(virtual modem_if)::set( null , "uvm_test_top" , "MODEM_vif" , MODEM);
             run_test();
        end

        //
        // Clock and reset initial block:
        //
        initial begin
           HCLK = 0;
           HRESETn = 0;
           repeat(8) begin
                #10ns HCLK = ~HCLK;
           end
           HRESETn = 1;
           forever begin
               #10ns HCLK = ~HCLK;
           end
       end

       // Clock assignments:
       assign GPO.clk = HCLK;
       assign GPOE.clk = HCLK;
       assign GPI.clk = HCLK;
       assign ICPIT.PCLK = HCLK;

       endmodule: top_tb


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 6

    评论
  • 访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 07:54 , Processed in 0.015433 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部