从0开始设计和实现CPU
文章平均质量分 54
学习《CPU自制入门》,从0开始设计和实现CPU。
嵌入式历练者
一个在嵌入式领域钻研的学习者,纸上得来终觉浅,绝知此事要躬行。目前从事Autosar底盘软件开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《从0开始设计和实现CPU》bus总线顶层模块设计
1.总线Code管理 首先,对前面编写的代码进行一个管理创建一个文件夹命名为bus存放总线设计的代码, 在此目录下创建inc文件夹来存放bus所需要的头文件, 总线的实现的代码放在bus文件下。 2.总线设计概要 1. bus_arbiter.v :实现了总线总裁器的设计,解决了4个总线主控在请求总线时,总线该赋予哪个主控的仲裁问题。 2. bus_master_mux:实现了总线主控多路复用器的设计,这个是基于总线仲裁器的总线赋予信号:赋予信号一旦选择某个主控,该主控成为总线的使用者,该主原创 2022-04-30 16:09:33 · 1823 阅读 · 2 评论 -
《从0开始设计和实现CPU》总线设计(四)之总线从属多路复用器的实现
实现功能:总线从属多路复用器的实现 1.程序源码 /****功能:总线从属多路复用器的实现****/ `include "stddef.h" `include "global_config.h" `include "bus.h" module bus_slave_mux( /****0号总线从属****/ input wire s0_cs_, //片选 input wire [`WordDataBus] s0_rd_data, //原创 2022-04-15 23:03:38 · 599 阅读 · 4 评论 -
《从0开始设计和实现CPU》总线设计(三)之地址解码器的实现
功能:地址解码器的实现 1.总线框图 2.程序源码 /****功能:地址解码器的实现****/ `include "stddef.h" `include "global_config.h" `include "bus.h" module bus_addr_dec( /****总线从属共享信号****/ input wire [`WordAddrBus] s_addr, //地址 29:0 /****总线从属0~7号****/ output reg原创 2022-04-15 22:38:48 · 948 阅读 · 0 评论 -
《从0开始设计和实现CPU》总线设计(二)之总线主控多路复用器的实现
1.开发工具 Quartus (Quartus Prime 18.1) Standard Edition Modelsim SE-64 10.4 Icarus Verilog + gtkwave(开源) 2.总线框图 3.程序源码 `include "stddef.h" `include "global_config.h" `include "bus.h" module bus_master_mux( /****0号总线主控****/ input wire原创 2022-04-15 22:33:03 · 1069 阅读 · 0 评论 -
《从0开始设计和实现CPU》总线设计(一)之总线仲裁器的实现
(一)总线的实现 总线由总线仲裁器,总线主控多路复用器,地址解码器,总线从属多路复用器组成,本文记录总线仲裁器的实现。 原理请看书《CPU自制入门》,书中通俗易懂,图文并茂。 (二)程序源码 1.定义bus_arbiter.h(书中定义为bus.h) `ifndef __BUS_ARBITER_HEADER__ `define __BUS_ARBITER_HEADER__ `define BUS_MASTER_CH 4 //总线主控通道数 `define BUS_MASTER原创 2022-04-14 18:39:06 · 2634 阅读 · 3 评论 -
《从0开始设计和实现CPU》专栏相关声明
1.专栏声明 该专栏源于图灵程序设计丛书《CPU自制入门》,笔者学习此书来弥补对计算机底层原理的知识空白。所观,所感,所调试程序源码做下笔记于此。文笔有限,敬请谅解。 程序源码均来自《CPU自制入门》(个别Testbench除外,因为没有,笔者调试过程中自己写)。 该专栏免费和持续更新(停更会发出声明),只用于学习用途,欢迎大家一起讨论。 笔者也是初学者,对CPU和FPGA只是学了皮毛,故专栏记录一下以下内容:程序源码 , 问题疑惑, 离散知识点 , 调试经验。 若有问题疑惑,请阅读《CPU自制入门》。原创 2022-04-14 16:39:03 · 737 阅读 · 0 评论 -
《从0开始设计和实现CPU》32寄存器堆_记录篇(1)
声明:代码片段来自于《CPU自制入门》这本书。笔者最近对这方面感兴趣,故想亲自试一试,记录相关笔记 1-1 regfile.h `ifndef __REGFILE_HEADER__ `define __REGFILE_HEADER__ /*******信号电平******/ `define HIGH 1'b1 `define LOW 1'b0 /*******逻辑值******/ `define ENABLE 1'b0 //有效(负逻辑) `define DISA原创 2022-04-10 23:40:59 · 1643 阅读 · 1 评论
分享