![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
从0开始设计和实现CPU
文章平均质量分 54
学习《CPU自制入门》,从0开始设计和实现CPU。
嵌入式历练者
一个在嵌入式领域钻研的学习者,纸上得来终觉浅,绝知此事要躬行。目前从事BMS电池管理系统软件开发
展开
-
《从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 · 1523 阅读 · 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 · 424 阅读 · 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 · 627 阅读 · 0 评论 -
《从0开始设计和实现CPU》总线设计(二)之总线主控多路复用器的实现
1.开发工具Quartus (Quartus Prime 18.1) Standard EditionModelsim SE-64 10.4Icarus 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 · 812 阅读 · 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 · 2080 阅读 · 3 评论 -
《从0开始设计和实现CPU》专栏相关声明
1.专栏声明该专栏源于图灵程序设计丛书《CPU自制入门》,笔者学习此书来弥补对计算机底层原理的知识空白。所观,所感,所调试程序源码做下笔记于此。文笔有限,敬请谅解。程序源码均来自《CPU自制入门》(个别Testbench除外,因为没有,笔者调试过程中自己写)。该专栏免费和持续更新(停更会发出声明),只用于学习用途,欢迎大家一起讨论。笔者也是初学者,对CPU和FPGA只是学了皮毛,故专栏记录一下以下内容:程序源码 , 问题疑惑, 离散知识点 , 调试经验。若有问题疑惑,请阅读《CPU自制入门》。原创 2022-04-14 16:39:03 · 615 阅读 · 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 · 1344 阅读 · 1 评论