李秋豪计算机系统,CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南

虽然我们学校第四章没有要求做实验(Architecture Lab ),但课后作业用到了Y86-64的模拟器,也是实验材料的一部分。我在编译模拟器的时候遇到了两个困难,解决后在这分享一下。

1. Tcl/Tk等命令找不到

在编译的时候我们会碰到“XXX命令找不到”的情况,这时只需要使用“sudo apt install XXX”即可(我这里是debian系)。但是要注意的是,再安装Tcl/Tk的时候会默认安装8.6的版本,而我们需要要指定安装Tcl8.5和Tk8.5(sudo apt install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev),并将Makefile改为如下(即添加8.5的后缀):

2fececbb49e8d8629d442bccf53dd403.png

这样才能生成GUI的模拟器。

2. 没有hcl2v

在课本上和sim/misc/README中都提到了有一个能够将hcl转换为verilog的程序,但在编译后只有hcl2c。这是因为(可能是故意的吧)在sim/misc/Makefile中没有加上生成hcl2v的指令。Vim输入命令%s/yas hcl2c/yas hcl2c hcl2v/g即可。随后在sim/下编译即可生成hcl2v:

91c7a660b3a7b6f6bc76ae3ac8ca8427.png

使用该程序将seq-std.hcl转换为verilog:

dac63faaff9370c230f498cb6b30db30.png

CS:APP3e 深入理解计算机系统_3e MallocLab实验

详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

CS:APP3e 深入理解计算机系统_3e bomblab实验

bomb.c /*************************************************************************** * Dr. Evil's Ins ...

CS:APP3e 深入理解计算机系统_3e CacheLab实验

详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

CS:APP3e 深入理解计算机系统_3e ShellLab(tsh)实验

详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

CS:APP3e 深入理解计算机系统_3e Attacklab 实验

详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

CS:APP3e 深入理解计算机系统_3e C Programming Lab实验

queue.h: /* * Code for basic C skills diagnostic. * Developed for courses 15-213/18-213/15-513 by R. ...

CS:APP3e 深入理解计算机系统_3e Datalab实验

由于http://csapp.cs.cmu.edu/并未完全开放实验,很多附加实验做不了,一些环境也没办法搭建,更没有标准答案.做了这个实验的朋友可以和我对对答案:) 实验内容和要求可在http:// ...

深入理解计算机系统_3e 第八章家庭作业 CS:APP3e chapter 8 homework

8.9 关于并行的定义我之前写过一篇文章,参考: 并发与并行的区别 The differences between Concurrency and Parallel +---------------- ...

深入理解计算机系统_3e 第四章家庭作业(部分) CS:APP3e chapter 4 homework

4.52以后的题目中的代码大多是书上的,如需使用请联系 randy.bryant@cs.cmu.edu 更新:关于编译Y86-64中遇到的问题,可以参考一下CS:APP3e 深入理解计算机系统_3e ...

随机推荐

[MySQL Reference Manual]14 InnoDB存储引擎

14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...

Linux(ubanto):可以ping通IP,但不能ping通域名

打开/etc/resolv.conf文件 vi /etc/resolv.conf 插入一下两行保存即可 nameserver 8.8.8.8 nameserver 8.8.4.4

guava学习--集合2&Range

转载:http://www.cnblogs.com/peida/p/Guava_ImmutableCollections.html Table: 当我们需要多个索引的数据结构的时候,通常情况下,我们只 ...

Qt 学习之路:视图选择 (QItemSelectionModel)

选择是视图中常用的一个操作.在列表.树或者表格中,通过鼠标点击可以选中某一项,被选中项会变成高亮或者反色.在 Qt 中,选择也是使用了一种模型.在 model/view 架构中,这种选择模型提供了一种 ...

POJ1753 搜索

Flip Game Description Flip game is played on a rectangular 4x4 field with two-sided pieces placed on ...

Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

STM32启动文件深度解析

STM32启动过程全面解析,包括启动过程的介绍.启动代码的陈列以及深入解析.相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化.ARM7/ARM9 ...

LNMP分离式部署实例[转]

很多人在练习部署LNMP环境的时候,大都数是部署在同一个虚拟机上面的.但是实际工作中,我们一般都是分离部署的. 今天我就用3台虚拟机,部署下LNMP环境.以供参考! 网络拓扑图: 首先准备3台虚拟机: ...

Django自带的加密算法及加密模块

Django 内置的User类提供了用户密码的存储.验证.修改等功能,可以很方便你的给用户提供密码服务. 默认的Ddjango使用pbkdf2_sha256方式来存储和管理用的密码,当然是可以自定义的 ...

按照Right-BICEP要求设计的测试用例

测试用例: 测试方法:Right-BICEP 测试要求: Right-结果是否正确? B-是否所有的边界条件都是正确的? P-是否满足性能要求? 题目是否有重复? 数量是否可定制? 数值范围是否可定制 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值