【更新中】这是一个8bit CPU!WLN08_03 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【更新中】这是一个8bit CPU!WLN08_03

简介:这是一个由74芯片打造的8bit CPU!32Byte ROM,8Byte RAM,8条指令,经典五级流水线,哈佛架构,可调主频,入门级8bit CPU,适合想了解CPU构造及运行原理的diyer。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2021-05-28 20:32:38
更新时间: 2024-04-16 20:33:23
描述

这是一个由74芯片打造的8bit CPU!名为WLN08_03,硬件资源有32Byte ROM,8Byte RAM,8条指令,经典五级流水线,哈佛架构,可调主频,入门级8bit CPU,适合想了解CPU构造及运行原理的diyer。

 

工程更新中,各个模块正在测试,未最终定型,请勿打板(如果想自己研究也可自行魔改),敬请期待,点个关注等更新吧!

 

先大致讲一下该CPU的结构:大概有8个单独的模块,通过databus总线连接,core核单独控制各个模块,

sys_tick:系统时钟发生模块

alu:计算模块

work_reg:工作寄存器

prog_rom:程序存储器

pc/ir:程序计数器,指令寄存器等

core:CPU主核心,控制各个模块的逻辑

其它模块待补充。。。

工作原理待补充。。。

q7OVWaTbDdA3jborDYS2ncuBIfUJvmXuVr57akE0.png

WLN08_03是WLN08_01的指令集精简版,为了更好的用独立74芯片复现出来而做的部分删减,早期WLN08_01能做到判断并跳转(相当于if),_03并没有这么高级的功能,只能执行顺序语句,没有分支跳转和alu比较。

WLN08_01框架图:

jGDR1aDAXx7Ai20s8j2JOGkN3rH0OvTO2d4QlJwj.png

 

PROG_RAM

输入:addr[3:0] 地址选择    en:输出使能   databus[7:0]数据输出

功能:存储程序数据,只读

原理:使用8位拨码开关存储一字节,为了保持往上拨为1,往下拨为0的习惯,设计电路为选通该字节地址时输出要为高电平,但138为输出低电平有效,故选择238,拨码开关上方连接译码器输出,下方全部连接在一起并10K拉低连到数据输出缓冲器。地址选择部分由4片3-8译码器构成5-32译码器,数据输出缓冲器选择573,LE常为1,OE低电平输出有效。

0Hpdv8PDtJnrgvsvR3IBa0dfSv5yNoaCi73GxayE.png

work_reg

输入:addr[2:0]地址选择   cp:上升沿地址锁存  en:低电平输出使能  read:上升沿读数据  write:上升沿写数据   databus[7:0]:数据总线

原理:工作寄存器由8个573构成这8个573输出输出全接到总线上,读写部分实现:先使用一个寄存器锁存地址,由于573的LE是高电平锁存数据,OE是低电平输出使能,即可使用138控制OE,238控制LE,并分别使用译码器的输出使能来控制读写。由于这8个573的输入和输出是接在总线上的,所以138和238必须保证同一时刻只能有一片在工作。

读reg时序:addr地址提供>cp上升沿锁存地址数据>释放databus>read使能

写reg时序:addr地址提供>cp上升沿锁存地址数据>databus准备数据>write使能

vYZdvqSZf3VKshP7bqzn8mpI4PLaECDtJJVGEuag.png

PC:这个没啥好说的,两个161组成32进制计数器,并且有预置数功能可相应jmp跳转指令,输出提供给程序存储器PROG_RAM。

GJXj5WZy6mmuvHKquBTOvKk6w4xqYyBh3lat2vTt.png

sys_tick:系统时钟模块,时钟源有555和MCU两种选择方式,频率范围1hz-10Khz,把时钟源输出的频率分频为4个顺序的step时钟,

9PHjrayh5DdjvWTi69drIdN42ak70cb8SvSU7NhP.png

T0-T3波形图如图:

6T8k33AnstERdmTB99JtUvNnKzcx1CqrF2XPn3De.png

ALU:计算模块共有四个运算模式:加,自加一,自减一,取反。原理自行理解,之后会说明。

TvZBeXcIOpzFBr1CntiQ42TCPdQoA7s1sSEelxZF.png

 

目前进度:测试SYS_TICK系统时钟最高速度和波形情况--OK;测试PC计数逻辑时序--OK;验证ALU功能--OK;测试work_reg功能--OK;验证prog_ram--OK。

各个模块验证OK,正在设计core模块。

说出来你们可能不信,在某宝买到了假芯片了,573发热,02引脚反了,导致进度拖延。。。

没错,就是在优信买的,在这里排雷了,买元器件还是去立创商城买正品吧(lcsc打钱!)。

 

CORE设计:

指令集:目前设计10条指令如下,正在写Verilog,之后设计电路实现。

t7mTnkemcoTPcFYumuHNAAbT7HZKJAdsrt4dj4pJ.png

 

测试功能中:

 

慢慢更新。。。。。。

hjECsIv0GaKGtwvdwBK21VnUzs8cOMqEG1TBii9m.png

 

 

 

设计图
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 HD74HC238P U1,U2,U3,U4,U14 DIP16 5
2 MC74HC573N U5,REG0,REG1,REG2,REG3,REG7,REG6,REG5,REG4,U15 DIP20 10
3 0.1u C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C19,C22,C23,C24,C25,C26,C27,C28 C0603 24
4 SI2302 Q1 SOT-23(SOT-23-3) 1
5 DSWB08LHGET SW1,SW2,SW0,SW3,SW4,SW5,SW6,SW7,SW8,SW9,SW10,SW11,SW12,SW13,SW14,SW15,SW16,SW17,SW18,SW19,SW20,SW21,SW22,SW23,SW24,SW25,SW26,SW27,SW28,SW29,SW30,SW31 SW-TH_DSWB08LHGET 32
6 双层贴片排针2*6P J1 双层贴片排针2*6P 1
7 10K RN1,RN2,RN3,RN4 RES-ARRAY-SMD_0603-8P-L3.2-W1.6-BL 4
8 双层贴片排针2*8P J4,J2,J11 双层贴片排针2*8P 3
9 1N4148W-7-F D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31,D32 SOD-123_L2.8-W1.8-LS3.7-RD 32
10 10k R2,R1 R0603_NEW 2
11 双层贴片排针2*5P J3,J5,J6,J10 双层贴片排针2*5P 4
12 MM74HC138N U16 DIP16 1
13 R_3296W_EU RP1 RES-ADJ-TH_3296W 1
14 NE555 U11 DIP08-KIT 1
15 DM74LS161AN U8,U6 DIP16 2
16 1u C17,C18 C0603 2
17 0.01u C20 C0603 1
18 A2541WV-3P H1 HDR-TH_3P-P2.54-V-M 1
19 STC8F2K08S2-28I-SOP16 U12 SOIC-16_L9.9-W3.9-P1.27-LS6.0-BL 1
20 OSR50603C1E LED LED0603-R-RD 1
21 双层贴片排针2*4P J7,J8 双层贴片排针2*4P 2
22 2*3P-2.54mm J9 2*3P 2.54MM 1
23 PZ254R-11-04P H2 HDR-TH_4P-P2.54-H-M-W10.4 1
24 10k R3,R4 R_AXIAL-0.4 2
25 MC74HC02AN U10,U21 DIP14 2
26 HD74HC74P U7,U9 DIP14 2
27 HD74HC573P U13,U17,U26 DIP20 3
28 HD74HC283P U19,U20 DIP16 2
29 MC74HC157AN U24,U25 DIP16 2
30 MC74HC86N U27 DIP14 1
31 HD74HC04P U18,U22 DIP14 2

展开

工程视频/附件
暂无
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP