码迷,mamicode.com
首页 > 其他好文 > 详细

Rocket - system - TestHarness

时间:2020-07-14 13:17:07      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:color   out   lan   tput   devices   连接   port   deb   ack   

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

标签:color   out   lan   tput   devices   连接   port   deb   ack   

原文地址:https://www.cnblogs.com/wjcdx/p/13298467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!