天天看點

CS:APP3e 深入了解計算機系統_3e Y86-64模拟器指南

詳細的題目要求和資源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 擷取。

雖然我們學校第四章沒有要求做實驗(Architecture Lab ),但課後作業用到了Y86-64的模拟器,也是實驗材料的一部分。我在編譯模拟器的時候遇到了兩個困難,解決後在這分享一下。

在編譯的時候我們會碰到“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的字尾):

CS:APP3e 深入了解計算機系統_3e Y86-64模拟器指南

這樣才能生成GUI的模拟器。

在課本上和sim/misc/README中都提到了有一個能夠将hcl轉換為verilog的程式,但在編譯後隻有hcl2c。這是因為(可能是故意的吧)在sim/misc/Makefile中沒有加上生成hcl2v的指令。Vim輸入指令<code>%s/yas hcl2c/yas hcl2c hcl2v/g</code>即可。随後在sim/下編譯即可生成hcl2v:

CS:APP3e 深入了解計算機系統_3e Y86-64模拟器指南

使用該程式将seq-std.hcl轉換為verilog:

CS:APP3e 深入了解計算機系統_3e Y86-64模拟器指南