1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
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
这是一个由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主核心,控制各个模块的逻辑
其它模块待补充。。。
工作原理待补充。。。
WLN08_03是WLN08_01的指令集精简版,为了更好的用独立74芯片复现出来而做的部分删减,早期WLN08_01能做到判断并跳转(相当于if),_03并没有这么高级的功能,只能执行顺序语句,没有分支跳转和alu比较。
WLN08_01框架图:
PROG_RAM
输入:addr[3:0] 地址选择 en:输出使能 databus[7:0]数据输出
功能:存储程序数据,只读
原理:使用8位拨码开关存储一字节,为了保持往上拨为1,往下拨为0的习惯,设计电路为选通该字节地址时输出要为高电平,但138为输出低电平有效,故选择238,拨码开关上方连接译码器输出,下方全部连接在一起并10K拉低连到数据输出缓冲器。地址选择部分由4片3-8译码器构成5-32译码器,数据输出缓冲器选择573,LE常为1,OE低电平输出有效。
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使能
PC:这个没啥好说的,两个161组成32进制计数器,并且有预置数功能可相应jmp跳转指令,输出提供给程序存储器PROG_RAM。
sys_tick:系统时钟模块,时钟源有555和MCU两种选择方式,频率范围1hz-10Khz,把时钟源输出的频率分频为4个顺序的step时钟,
T0-T3波形图如图:
ALU:计算模块共有四个运算模式:加,自加一,自减一,取反。原理自行理解,之后会说明。
目前进度:测试SYS_TICK系统时钟最高速度和波形情况--OK;测试PC计数逻辑时序--OK;验证ALU功能--OK;测试work_reg功能--OK;验证prog_ram--OK。
各个模块验证OK,正在设计core模块。
说出来你们可能不信,在某宝买到了假芯片了,573发热,02引脚反了,导致进度拖延。。。
没错,就是在优信买的,在这里排雷了,买元器件还是去立创商城买正品吧(lcsc打钱!)。
CORE设计:
指令集:目前设计10条指令如下,正在写Verilog,之后设计电路实现。
测试功能中:
慢慢更新。。。。。。
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 |
展开
加载中...
是否需要添加此工程到专辑?