Chisel实验笔记(四)
在《Chisel实验笔记(二)》中。通过编写TestBench文件,然后使用Icarus Verilog、GtkWave能够測试,查看相关波形。比較直观,在《Chisel实验笔记(三)》直接对得到C++模拟器进行測试。也能够得到測试结果,实际上对C++模拟器进行測试也能够同一时候得到vcd文件,从而使用GtkWave查看波形,得到直观的结果。
本文就介绍了这个过程。
为了得到相应的vcd文件,须要对《Chisel实验笔记(三)》中的代码做一处改动:
在main方法的margs变量中添加一个參数"--vcd"。例如以下:
val margs=Array("--backend","c","--genHarness","--compile","--test","--vcd") // 添加了一个“--vcd”參数
此时执行该程序。能够输出仿真结果例如以下:
<pre name="code" class="plain">STARTING ./Max2
RESET 5
POKE Max2.io_in0 <- 0x82
POKE Max2.io_in1 <- 0x80
STEP 1 -> 1
PEEK Max2.io_out -> 0x82
EXPECT Max2.io_out <- 130 == 130 PASS
POKE Max2.io_in0 <- 0x65
POKE Max2.io_in1 <- 0xae
STEP 1 -> 2
PEEK Max2.io_out -> 0xae
EXPECT Max2.io_out <- 174 == 174 PASS
POKE Max2.io_in0 <- 0xef
POKE Max2.io_in1 <- 0x3b
STEP 1 -> 3
PEEK Max2.io_out -> 0xef
EXPECT Max2.io_out <- 239 == 239 PASS
POKE Max2.io_in0 <- 0x9c
POKE Max2.io_in1 <- 0xb5
STEP 1 -> 4
PEEK Max2.io_out -> 0xb5
EXPECT Max2.io_out <- 181 == 181 PASS
POKE Max2.io_in0 <- 0x5b
POKE Max2.io_in1 <- 0x2d
STEP 1 -> 5
PEEK Max2.io_out -> 0x5b
EXPECT Max2.io_out <- 91 == 91 PASS
POKE Max2.io_in0 <- 0xc9
POKE Max2.io_in1 <- 0xda
STEP 1 -> 6
PEEK Max2.io_out -> 0xda
EXPECT Max2.io_out <- 218 == 218 PASS
POKE Max2.io_in0 <- 0x2a
POKE Max2.io_in1 <- 0xaa
STEP 1 -> 7
PEEK Max2.io_out -> 0xaa
EXPECT Max2.io_out <- 170 == 170 PASS
POKE Max2.io_in0 <- 0x31
POKE Max2.io_in1 <- 0x64
STEP 1 -> 8
PEEK Max2.io_out -> 0x64
EXPECT Max2.io_out <- 100 == 100 PASS
POKE Max2.io_in0 <- 0x7c
POKE Max2.io_in1 <- 0x86
STEP 1 -> 9
PEEK Max2.io_out -> 0x86
EXPECT Max2.io_out <- 134 == 134 PASS
POKE Max2.io_in0 <- 0x94
POKE Max2.io_in1 <- 0x4f
STEP 1 -> 10
PEEK Max2.io_out -> 0x94
EXPECT Max2.io_out <- 148 == 148 PASS
STEP 1 -> 11
RAN 11 CYCLES PASSED
PASSED
共生成了10组随机数,每次输出当中较大的数据。
同一时候得到了一个Max2.vcd文件,使用gtkwave Max2.vcd就可以打开该文件,结果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Chisel实验笔记(四)的更多相关文章
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- 20145221 《Java程序设计》实验报告四:Android开发基础
20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...
- Openstack实验笔记
Openstack实验笔记 制作人:全心全意 Openstack:提供可靠的云部署方案及良好的扩展性 Openstack简单的说就是云操作系统,或者说是云管理平台,自身并不提供云服务,只是提供部署和管 ...
- Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)
>Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口.MAC地址.子网地址.协议) >>实验开始,先上拓扑图参考: 一.基于端口划分VLAN ...
- 官网实例详解-目录和实例简介-keras学习笔记四
官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras 版权声明: ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- ChCore Lab3 用户进程和异常处理 实验笔记
本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第三篇:用户进程与异常处理.所有章节的笔记可在此处查看:chcore | ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- SQL*Loader实验笔记【二】
所有SQL*Loader实验笔记 实验案例总结(1-7): SQL*Loader实验笔记[一] 实验案例总结(8-13): SQL*Loader实验笔记[二] 实验案例总结(14-19 ...
随机推荐
- Struts2值栈的相关操作
import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import ...
- 学习 shell —— 条件判断 if 的参数
1. 文件判断表达式 -e filename:如果 filename 存在(exist),则为真: -d filename:如果 filename 为目录(directory),则为真: -f fil ...
- Redis学习笔记(七) 基本命令:Set操作
原文链接:http://doc.redisfans.com/set/index.html 虽然set和list很相似但还是有一些差别的,如set中的顺序没有先后之分,所以不像list一样可以在首尾增删 ...
- JVM源码分析之javaagent原理完全解读--转
原文地址:http://www.infoq.com/cn/articles/javaagent-illustrated 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员 ...
- SQL Server 计算汉字笔画函数
create function [dbo].[fun_getbh](@char nchar(2)) returns int as begin return( case when unicode(@ch ...
- JQuery (总结)
延迟触发事件 Ajax异步请求数据 Jquery事件: Focus获得焦点 blur失去焦点 Change内容在变化的时候 Click点击事件 ---------------------------- ...
- USACO 保护花朵 Protecting the Flowers, 2007 Jan
Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园 ...
- string 去除空格
/** * 去除空格 * @param {str} * @param {type} * type: 1-所有空格 2-前后空格 3-前空格 4-后空格 * @return {String} */ ...
- vue 父子组件通信props/emit
props 1.父组件传递数据给子组件 父组件: <parent> <child :childMsg="msg"></child>//这里必须要 ...
- MyBatis数据持久化(十一)Mybatis3、Spring4、Struts2整合开发
上一节我们將Mybatis和Spring4进行整合,本节向大家介绍Mybatis在Web开发中的应用,并与主流的MVC框架Struts2进行整合. 我们首先需要获取Struts2框架,Struts2官 ...