admin管理员组

文章数量:1655366

开发环境搭建

这篇搭建开发环境,下一篇稍微详述实现过程。这两篇来源于看《自己动手写CPU》(作者博客)时写代码顺带写的笔记。这是一本非常棒的介绍cpu工作原理并且实践性很强的入门书籍,看完之后对CPU内部构造、MIPS指令集、流水线设计、Verilog编程都有了一定的了解。这本书倾向于实践,涉及到的理论部分的内容基本上仅限于《计算机组成与设计:硬件/软件接口》的第三章。开始看这本书的起因是偶然在github上浏览到一个有趣的项目——abcdabcd987/toy-cpu,点进去看了之后,发现语言是verilog,仅十余个源文件,然后想自己也学过verilog,但都没写过电路。了解之后发现这个项目参考自《自己动手写CPU》这本书,然后知乎上逛了一圈,有人说《CPU自制入门》更好一些,然后屁颠屁颠买了之后。发现并不是很能看懂,而且全书有很大一部分是在讲如何制作印制电路板和FPGA什么的。看了100页,看不下去,仿真老是通不过,有输入,但是输出全为x,找不到原因,很受挫,于是去图书馆借了《自己动手写CPU》。看了之后觉得,比前面那一本更容易懂一些。这本书实现了MIPS指令集的MIPS32版本的所有整数指令。可以使用GNU的汇编工具将MIPS汇编翻译成机器码,就不用自己设计指令集、手动汇编或者写汇编程序(应该有一定难度)了。这里搭建开发环境、熟悉GNU工具的使用。

Ubuntu虚拟机

这里需要用到Linux,我使用的VMware安装的Ubuntu18.04 LTS,虚拟机就不多介绍了,ubuntu直接无脑下一步就OK了。然后安装VMtools(参考),即可在虚拟机与物理机之间进行文字甚至文件拷贝,虚拟机即可以全屏。安装好之后,装一些必备软件以保证ssh连接能顺利进行。

sudo apt-get update
sudo apt-get install net-tools
sudo apt-get install ssh openssh-server
sudo apt-get install vim
sudo apt-get install lrzsz

先使用ifconfig命令获取ubuntu虚拟机的IP,这里虚拟机的网络连接最好用桥接,并且保证ubuntu网卡处于打开状态,如果没有则切换到root用户使用ifup [网卡名称]命令打开。然后使用XShell建立新连接:输入IP,端口号22,协议SSH,以及ubuntu的用户名和密码,进行远程连接,即可通过rz命令向虚拟机上传文件,sz [file]命令下载文件到本机。也可以通过Xftp建立ssh连接之后直接拖动文件即可完成传输。XShell and Xftp is free for home/school. 官网填写信息,即可免费下载。

GNU工具链

这里使用GNU的MIPS工具链,下载文件mips-2013.05-65-mips-sde-elf-i686-pc-linux-gnu.tar.bz2(CSDN下载,我使用的这一个),cp/opt目录下解压:

tar -xvjf ./mips-2013.05-65-m

本文标签: 环境writeToyCPU