Rocket - system - TestHarness

Posted wjcdx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocket - system - TestHarness相关的知识,希望对你有一定的参考价值。

https://mp.weixin.qq.com/s/MUK2K1WrhcyoEsOVwpgrlw

 

简单介绍TestHarness的实现。

 

技术图片

 

1. 测试模块

 

TestHarness是一个测试模块,直接继承自Module类:

技术图片

 

2. io

 

测试模块向外输出一个测试是否成功的信号:

技术图片

 

3. 实例化ExampleRocketSystem

 

待测设备(dut)即是一个ExampleRocketSystem:

技术图片

a. 使用LazyModule(...)包裹创建一个ExampleRocketSystem实例;

b. 引用其lazy val module,根据diplomacy节点连接,生成其具体逻辑;

c. 使用Module(...)包裹,收集构建信息;

 

4. 连接各个输入输出接口

 

技术图片

a. 连接复位信号;

b. dontTouch输入输出IO端口:

技术图片

c. 关闭中断输入:

技术图片

d. 连接AXI存储模拟模块:

技术图片

e. 关闭前端总线:

技术图片

 

tieoff定义如下:

技术图片

f. 连接调试模块:

技术图片

 

根据配置选择DMI抑或JTAG调试接口:

技术图片

 

5. 附录

 

// See LICENSE.SiFive for license details.

 

package freechips.rocketchip.system

 

import Chisel._

import freechips.rocketchip.config.Parameters

import freechips.rocketchip.devices.debug.Debug

import freechips.rocketchip.diplomacy.LazyModule

 

class TestHarness()(implicit p: Parameters) extends Module {

val io = new Bundle {

val success = Bool(OUTPUT)

}

 

val dut = Module(LazyModule(new ExampleRocketSystem).module)

dut.reset := reset | dut.debug.ndreset

 

dut.dontTouchPorts()

dut.tieOffInterrupts()

dut.connectSimAXIMem()

dut.connectSimAXIMMIO()

dut.l2_frontend_bus_axi4.foreach(_.tieoff)

Debug.connectDebug(dut.debug, clock, reset, io.success)

}

 

 

以上是关于Rocket - system - TestHarness的主要内容,如果未能解决你的问题,请参考以下文章

Rocket - system - TestHarness

Rocket - config - DefaultConfig

rocket-api

php [WordPress] [WP Rocket]禁用Automattic AMP插件创建的AMP页面上的所有WP Rocket功能。

云原生之Docker实战使用Docker部署Web在线聊天室Rocket.Chat

php [WordPress] [WP Rocket] Wrapper功能:将WP Rocket的LazyLoad应用于wp_get_attachment_image()