# Logic and Computer Design with Proteus **Repository Path**: lai-xiaozheng/proteus-logic-computer ## Basic Information - **Project Name**: Logic and Computer Design with Proteus - **Description**: 基于proteus虚拟仿真平台,采用74系列逻辑器件,从最基础的数字电路开始,搭建全网最复杂的微程序,硬布线和流水线架构的CPU,最后与8086经典外设构成微机系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 5 - **Created**: 2021-02-22 - **Last Updated**: 2025-10-31 ## Categories & Tags **Categories**: ebooks-manual **Tags**: None ## README # 旧日世界的余晖:74系列逻辑器件搭建CPU > 作者:猫斯基(赖晓铮) ## 致敬:Yesterday Once More 在第一块微处理器芯片(4004,1971年)出现之前,计算机给人的印象大概是这样的(图中大神就是大名鼎鼎的冯.若依曼) ![冯.若依曼和第一台冯.若依曼计算机](https://images.gitee.com/uploads/images/2021/0225/174131_5ccb3af8_8708891.png "屏幕截图.png") 眼花缭乱的直插器件,杂乱无章的连线。。。。显然,现在已经没有人会再用逻辑器件去搭建电路或计算机了,效率太低,不可靠,性能有限。但是,微处理器芯片出现前的几十年,上古计算机时代的统治者就是这些逻辑器件搭建的庞然大物。 即使在微处理器芯片发明后的几十年后,很多高校的《计算机组成原理》,《计算机体系结构》实验课,还在延续着这一古老传统:74系列逻辑器件搭建的CPU电路固化在插线板实验箱面板背后,学生们就像五六十年代的程序员先辈一样,不停插拔面板上的连线来“组装”CPU,并且通过拨动开关的方式把编写的程序或微程序二进制代码一点一点的输入到实验箱背后的CPU上。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0225/175008_81860456_8708891.png "屏幕截图.png") ## 项目简介 本项目就是致敬“74系列逻辑器件搭建CPU”的传统工匠精神:在虚拟仿真平台上,采用74系列逻辑器件从组成CPU的基本组件开始,搭建了一个具备完整指令集的8位CPU,并且在同一指令集下给出了微程序,硬布线和流水线三种经典CPU架构,可以对比各个架构的实现差异。为了证明本项目搭建的CPU具有实用性,我选择了经典课程《微机原理》的8086系列CPU常用外设,用上述8位CPU替代8086CPU,与8086经典外设共同组成一个微型计算机系统。 上述设计过程,不需要任何专业知识就能操作,“零门槛”上手。而且,虚拟仿真环境中,所有硬件电路都是“透明”的,可以直观看到每根导线和每个器件管脚上的电平高低;同时,虚拟仿真技术具有高度灵活性特点,避免了浪费大量精力在重复、枯燥的复杂连线上。可以轻松的自主设计不同架构的CPU(例如经典的流水线架构),自定义CPU的指令集,采用最底层的机器语言实现编程。(下图应该是全网第一个74逻辑器件搭建起来的流水线架构CPU,可以控制8086外设做微机原理实验) ![流水线CPU](https://images.gitee.com/uploads/images/2021/0302/183822_8ef70cd2_8708891.png "屏幕截图.png") 如果是保持用74系列逻辑器件搭建的方式来做的实验或课程设计,或是希望用逻辑器件的方式学习CPU的组成和运行原理,那强烈建议使用本项目的方式,更快更直观。如果是采用FPGA可编程器件的路线来设计CPU,请参考我的另一个项目[EDA的图形化编程之路](https://gitee.com/lai-xiaozheng/eda-graphical-programming-with-digiblock) ## 项目架构 ### [数字逻辑](./chapter%20I.%20Digital%20Logic) #### - [触发器与寄存器](./chapter%20I.%20Digital%20Logic/section%201.%20Flip-flop%20and%20Register) #### - [逻辑门与算术电路](./chapter%20I.%20Digital%20Logic/section%202.%20Logic%20Gate%20and%20Arithmetic%20Circuit) #### - [组合逻辑电路](./chapter%20I.%20Digital%20Logic/section%203.%20Combinational%20Logic%20Circuit) #### - [比较器和仲裁电路](./chapter%20I.%20Digital%20Logic/section%204.%20Comparators%20and%20Arbitration%20Circuit) #### - [时序逻辑电路](./chapter%20I.%20Digital%20Logic/section%205.%20Sequential%20Logic%20Circuit) #### - [状态机](./chapter%20I.%20Digital%20Logic/section%206.%20Finite%20State%20Machine) ### [CPU架构](./chapter%20II.%20CPU%20Architecture) #### - [运算器](./chapter%20II.%20CPU%20Architecture/section%201.%20Arithmetic%20Unit) #### - [存储器](./chapter%20II.%20CPU%20Architecture/section%202.%20Memory%20Unit) #### - [微程序控制器](./chapter%20II.%20CPU%20Architecture/section%203.%20%20Microprogrammed%20Control%20Unit) #### - [硬布线控制器](./chapter%20II.%20CPU%20Architecture/section%204.%20%20Hard-wired%20Control%20Unit) #### - [微程序版CPU](./chapter%20II.%20CPU%20Architecture/section%205.%20%20Microprogrammed%20CPU) #### - [硬布线版CPU](./chapter%20II.%20CPU%20Architecture/section%206.%20%20Hard-wired%20CPU) #### - [流水线版CPU](./chapter%20II.%20CPU%20Architecture/section%207.%20%20Pipelined%20CPU) #### - [嵌套中断CPU](./chapter%20II.%20CPU%20Architecture/section%208.%20CPU%20with%20Nested%20Interrupts) ### [微型计算机系统](./chapter%20III.%20Microcomputer%20Principle) #### - [IO端口扩展8255](./chapter%20III.%20Microcomputer%20Principle/section%201.%20IO%20Expander%20(8255)) #### - [定时器&计数器8253](./chapter%20III.%20Microcomputer%20Principle/section%202.%20Timer&Counter%20(8253)) #### - [串口通信8251](./chapter%20III.%20Microcomputer%20Principle/section%203.%20Serial%20Port%20(8251)) #### - [模数转换ADC0809](./chapter%20III.%20Microcomputer%20Principle/section%204.%20Analog-to-digital%20(ADC0809)) #### - [数模转换DAC0832](./chapter%20III.%20Microcomputer%20Principle/section%205.%20Digital-to-analog%20(DAC0832)) #### - [液晶屏显示LCD1602](./chapter%20III.%20Microcomputer%20Principle/section%206.%20Display%20(LCD1602)) #### - [中断控制器8259](./chapter%20III.%20Microcomputer%20Principle/section%207.%20Interrupt%20(8259)) #### - [DMA控制器8237](./chapter%20III.%20Microcomputer%20Principle/section%208.%20DMA%20(8237)) ## 文档说明 1. 每一个分支中都包括对应的md文档,简介该分支的电路结构和基本操作; 2. 每一个分支中都包含对应的ppt文档,可以进一步了解具体的实验步骤和思考题; 3. 需要详尽文字说明的教材,可以参考以下实验教程,在[京东图书](https://book.jd.com/)或[当当网](https://http://book.dangdang.com/)上搜索教材名字即可。撰写教材不易,还请大家多多支持购买! ![输入图片说明](https://images.gitee.com/uploads/images/2021/0228/195653_0c109f32_8708891.png "屏幕截图.png") ## 软件和技术支持 1. 每一个分支中都包含了对应的proteus工程文件(.pdsprj),个别分支中还包含了CPU程序汇编代码(.asm)以及编译后可下载ROM的二进制文件(.hex)。 2. 本项目依托的虚拟仿真软件为proteus8.0版本以上,该软件有不同型号CPU的软件编译功能配置。本项目仅需要8051编译功能即可(用以ROM数据编译,与CPU无关)。 3. 若不需要新建工程文件,仅需要查看和运行本项目的工程文件,可在proteus原厂官网[Labcenter](https://www.labcenter.com/)下载DEMO软件安装运行 4. proteus国内官方代理为[广州风标教育](https://www.fengbiaoedu.com/),官方社区为[普客圈](http://www.proteusedu.com/),有兴趣尝试DEMO软件,购买proteus正版软件以及相关实验箱产品可自行联系。 ## 参与贡献 本项目的编写过程中,李垚圣、黄永燊、邓毓峰同学付出了辛勤的工作,华南理工大学计算机科学与技术专业 12、13、14 级同学们提出了大量宝贵的意见,在此表示最诚挚的感谢!