这是我研究生期间做的一个项目——碳纳米管计算机。然而此项目暂时告一段落,后续的研究将不再以此为基础,但具有一定的参考价值。
# 项目背景
2013 年,斯坦福大学研制出了世界上第一个碳纳米管计算机系统,该系统由 178 个碳纳米管晶体管(CNTFET,Carbon-nontube Field-effect-transistor)组成。这一个只包含一条 ``SUBNEG`` 指令(subtract and branch if negative)的单指令计算机系统。这个 CNTFET 计算机是一个试验性的成果,只能执行 1 位的操作。当然,也不存在显示器和键盘。
在摩尔定律即将失效的今天,基于硅的集成电路几乎已经到达其工艺的极限,此时集成电路产业迫切需要一种新型材料来打破产业的瓶颈。这样一款碳纳米管计算机的出现时极具里程碑意义的。因此,该研究成果的相关论文也被 Nature 所收录。
# 项目介绍
项目目标:实现一个相对完整的计算机系统,用户可以在该系统上运行自己编写的程序。当然,系统所使用的 CPU 则是使用碳纳米管的相关工艺制造而成的。
该系统所使用的 CPU 的指令系统和微结构由我和一个博士师弟设计,由另一团队进行物理实现。此外,我负责设计并实现该计算机系统的完整结构,包括软硬件协同设计与实现。
## 整体结构
如下图所示,该系统主要由以下三部分组成:
![](https://www.writebug.com/myres/static/uploads/2021/11/12/5e3d03defb1e0b58c2ff48e9a8ea34b0.writebug)
整个系统由五大部分组成:
- Carbon Core:采用碳纳米管实现的 CPU。
- Coordinator:采用 FPGA 实现,其辅助 Carbon Core CPU 完成了指令和数
据存储,产生所需时钟,并完成与输入输出控制 CPU 异步通信等功能。
- External Controller:使用树莓派(Raspberry Pi)作为输入输出控制 CPU,
其上运行 Linux 操作系统。
- Monitor:显示器,用户获得系统信息的方式。
- Keyboard:键盘,用户输入命令的方式。
### Carbon Core
**指令系统**
该系统的 CPU 以世界上第一个 8 位处理器 Intel 8008 的设计为参考,针对碳纳米管 CPU 制造技术特点进行了裁剪和优化。CPU 的指令系统如下表所示:
| 助记符 | 指令编码 | 指令描述 |
| :-------- | :-------: | :------------------------- |
| MOV C | 0000 0000 | acc = C |
| MOV [C] | 0000 0001 | acc = DRAM[C] |
| MOVn | 0000 0101 | DRAM[C = acc |
| ADD C | 0000 1000 | acc = acc + C |
| ADD [C] | 0000 1001 | acc = acc + DRAM[C] |
| ADDn [C] | 0000 1101 | DRAM[C] = acc + DRAM[C] |
| SUB C | 0001 0000 | acc = acc - C |
| SUB [C] | 0001 0001 | acc = acc - DRAM[C] |
| SUBn [C] | 0001 0101 | DRAM[C] = acc - DRAM[C] |
| RSB C | 0001 1000 | acc = C - acc |
| RSB [C] | 0001 1001 | acc = DRAM[C] - acc |
| RSBn [C] | 0001 1101 | DRAM[C] = DRAM[C] - acc |
| DATASEG C | 0010 1000 | DATASEG = C |
| INSTSEG C | 0010 1001 | INSTSEG = C |
| JR C | 0010 1100 | PC = acc, INSTSEG = C |
| B C | 0011 0000 | PC = PC + C |
| BZ C | 0011 0001 | 如果 acc = 0,PC = PC + C |
| BNZ C | 0011 0010 | 如果 acc != 0,PC = PC + C |
| END | 0011 1111 | 停机操作 |
**微体系结构**
如下图所示为该 CPU 的为体系结构。其中包括算术逻辑单元 ALU、指令译码器 DEC、程序计数器 PC、分支判断逻辑等。CPU 由两个同频不同象的时钟控制运行。
![](https://www.writebug.com/myres/static/uploads/2021/11/12/4f5c056eafc2e16eed2daee61eff8706.writebug)
### Coordinator
光有 CPU 是无法运行程序的,因此,需要为其定制设计一个外围的辅助电路。如下图所示为辅助电路模块 Coordinator 的内部实现,主要包含了 7 大部件:
- Clock Generator:时钟发生器,时钟源来自 FPGA 时钟源,向 Decoder 和 Carbon Core CPU 提供时钟。
- Decoder:辅助 Carbon Core CPU 进行译码、寻址、读写 RAM。
- Main Controller:传递外部控制器的控制信号,从而可能告知 Decoder 和 Carbon Core CPU;此外,在捕获到 END 指令后会向外部控制器发送程序运行完毕信号。
- IRAM Controller:控制 Decoder 对 IRAM 的读操作。
- DRAM Controller:控制 Decoder 对 DRAM 的读写操作。
- IRAM:一个包含 256 个双字节存储单元的 RAM,用于存储指令,内部包含基于 I2C 的指令收发协议。
- DRAM:一个包含 256 个单字节存储单元的 RAM,用于存储数据,内部包含基于 I2C 的数据收发协议。
![](https://www.writebug.com/myres/static/uploads/2021/11/12/364d46b6976349a09afb1520b4d748f8.writebug)
### Raspberry
项目使用树莓派作为外部控制器,在树莓派上进行编程,目前只能进行汇编编程。当然,程序需要遵循 Carbon Core CPU 的指令系统。使用我们编写的一个简单的汇编器进行编译,通过控制程序即可让 Carbon Core CPU 执行你所编写的程序。
``raspberry-host/mainController.cpp`` 文件包含整个系统软件控制程序的入口函数。
**编译**
直接运行 ``rasberry-host`` 目录下的 ``build.sh`` 脚本即可编译控制程序:
```bash
$ ./build.sh
```
**运行**
如果想要运行整个系统,则需要搭建相关的电路系统,并使用 FPGA 实现 ``sparntan6-fpga`` 目录中的硬件设计。项目还提供了碳纳米管 CPU 的硬件设计,普通用户虽然无法使用碳纳米管来实现该 CPU,但是可以使用 FPGA 来实现。当然,还需要树莓派、显示器、键盘才能让整个系统运行起来。
当系统搭建完毕之后,即可运行以下命令:
```bash
$ sudo ./mainController > run.log
```
由于系统的运行涉及到树莓派 GPIO 的初始化做操,因此需要 root 权限才能正确运行该系统。另外,运行生成的 ``run.log`` 文件记录系统执行程序时的相关信息。
## 其他补充
### 电平转换
由于 Carbon Core 的工作电压是 2V,而我们的树莓派、FPGA 的工作电压均为 5V,所以在协同工作时需要加入电平转换模块。如下图所示,便是我们设计的电平转换电路。
![](https://www.writebug.com/myres/static/uploads/2021/11/12/86343d9a18ecf272141d55fc016cc6bc.writebug)
### 系统展示
![](https://www.writebug.com/myres/static/uploads/2021/11/12/a90eb4f74cce846d83c8381863c74838.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/12/9a32215adba70c0903bd0eb30e4f8276.writebug)
### 碳纳米管 CPU
![](https://www.writebug.com/myres/static/uploads/2021/11/12/58bcb8f80524065fe4accb52f61b8452.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/11/12/bf0cada4f5d5854037fcef821a25c149.writebug)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目目标:实现一个相对完整的计算机系统,用户可以在该系统上运行自己编写的程序。当然,系统所使用的 CPU 则是使用碳纳米管的相关工艺制造而成的。 该系统所使用的 CPU 的指令系统和微结构由我和一个博士师弟设计,由另一团队进行物理实现。此外,我负责设计并实现该计算机系统的完整结构,包括软硬件协同设计与实现。 详细介绍参考:https://blog.csdn.net/sheziqiong/article/details/130741237
资源推荐
资源详情
资源评论
收起资源包目录
基于Verilog设计8位碳纳米管CPU并实现软硬件计算机系统.zip (737个子文件)
_deps 27KB
_deps 24KB
_info 8KB
_opt1__lock 40B
_opt__lock 39B
_vmake 26B
IramRegisterFile.asy 531B
DramRegisterFile.asy 529B
simulate_isim.bat 3KB
simulate_isim.bat 3KB
simulate_isim.bat 3KB
simulate_isim.bat 3KB
planAhead_ise.bat 3KB
planAhead_ise.bat 3KB
implement.bat 1KB
implement.bat 1KB
simulate_mti.bat 111B
simulate_mti.bat 111B
simulate_mti.bat 111B
simulate_mti.bat 111B
top.bgn 7KB
top.bit 333KB
Top_cs.blc 1KB
Top.bld 1KB
chipscope.cdc 6KB
ila_pro_0.cdc 5KB
top_prom.cfi 360B
coregen.cgc 43KB
coregen.cgc 16KB
coregen.cgp 517B
coregen.cgp 517B
coregen.cgp 228B
Top.cmd_log 10KB
Top.cpj 51KB
i2c.cpp 10KB
mainController.cpp 4KB
parseELF.cpp 3KB
Top_pad.csv 11KB
_primary.dat 7KB
_primary.dat 6KB
_primary.dat 5KB
_primary.dat 4KB
_primary.dat 4KB
_primary.dat 4KB
_primary.dat 4KB
_primary.dat 3KB
_primary.dat 2KB
_primary.dat 2KB
_primary.dat 2KB
_primary.dat 2KB
_primary.dat 1KB
_primary.dat 1010B
_primary.dat 892B
_primary.dat 889B
_primary.dat 702B
_primary.dat 459B
_primary.dat 422B
_primary.dat 401B
_primary.dat 373B
_primary.dat 344B
_primary.dat 288B
_primary.dat 236B
log.dat 185B
inst_data.dat 79B
data_addr.dat 64B
inst_addr.dat 63B
data_data.dat 63B
test03.dat 56B
test01.dat 36B
_primary.dbs 15KB
_primary.dbs 13KB
_primary.dbs 12KB
_primary.dbs 11KB
_primary.dbs 11KB
_primary.dbs 8KB
_primary.dbs 7KB
_primary.dbs 5KB
_primary.dbs 4KB
_primary.dbs 4KB
_primary.dbs 3KB
_primary.dbs 3KB
_primary.dbs 3KB
_primary.dbs 3KB
_primary.dbs 2KB
_primary.dbs 2KB
_primary.dbs 2KB
_primary.dbs 986B
_primary.dbs 950B
_primary.dbs 925B
_primary.dbs 827B
_primary.dbs 749B
_primary.dbs 653B
_primary.dbs 567B
simulate_mti.do 3KB
simulate_mti.do 3KB
simulate_mti.do 3KB
simulate_mti.do 3KB
wave_mti.do 1KB
wave_mti.do 1KB
wave_mti.do 1KB
共 737 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
shejizuopin
- 粉丝: 9625
- 资源: 1288
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- rainy-day.jpg
- IMG_20240501_171218.jpg
- Swift-内购封装swift版本
- 经典CNN网络之ResNet 图像分类网络实战项目:7种小麦叶片病害分类(迁移学习)
- Java毕设之ssm010基于ssm的新能源汽车在线租赁管理系统+vue.rar
- Java毕设之ssm009毕业生就业信息统计系统+vue.rar
- Java毕设之ssm008医院门诊挂号系统+jsp.rar
- Java毕设之ssm007亚盛汽车配件销售业绩管理统+jsp.rar
- Java毕设之ssm006基于java的少儿编程网上报名系统+vue.rar
- Java毕设之ssm005基于SSM框架的购物商城系统+jsp.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功