《从0开始设计和实现CPU》专栏相关声明

1.专栏声明
  • 该专栏源于图灵程序设计丛书《CPU自制入门》,笔者学习此书来弥补对计算机底层原理的知识空白。所观,所感,所调试程序源码做下笔记于此。文笔有限,敬请谅解。
  • 程序源码均来自《CPU自制入门》(个别Testbench除外,因为没有,笔者调试过程中自己写)。
  • 该专栏免费和持续更新(停更会发出声明),只用于学习用途,欢迎大家一起讨论。
  • 笔者也是初学者,对CPU和FPGA只是学了皮毛,故专栏记录一下以下内容:程序源码 , 问题疑惑, 离散知识点 , 调试经验。
  • 若有问题疑惑,请阅读《CPU自制入门》。
2.代码规范

源于《CPU自制入门》

  • 采用Verilog HDL语言,避免程序使用大量数字,而较多采用宏。
  • 变量名使用英文小写字母,数字以及下划线(_)命名。
  • 控制信号的极性:负逻辑信号线的名称以下划线(_)结尾。
  • 宏使用英文大写字母,英文小写字母,数字以及下划线(_)命名。
  • 常数使用英文大写字母和下划线(_)命名。
  • 定义比特位或总线,使用单词首字母大写的驼峰拼写法(ByteDataBus)
3.参考书籍(在更新)

《CPU自制入门》
《夏宇闻数字逻辑设计》
《黑金原创教程》

4.开发工具
5.全局通用宏
  • global_config.h .重要说明: global_config.h定义的参数(复位信号的极性有可能随着使用端口的更换而改变)可能会有变化。参见《CPU自制入门》61页

代码清单global_config.h

//global_config.h 
`ifndef __GLOBAL_CONFIG_HEADER__
`define __GLOBAL_CONFIG_HEADER__

`define  RESET_EDGE   negedge   //以实际为准,这里设为下降沿复位
`define  RESET_ENABLE   1'b0    //复位有效  
`define  RESET_DISABLE  1'b1    //复位无效 
`define  MEM_ENABLE     1'b0    //内存有效 
`define  MEM_DISABLE    1'b1    //内存无效 
`endif
  • stddef.h 定义了信号电平高低的H , L ,以及控制信号的有效,无效等通用宏。

代码清单stddef.h

//stddef.h
`ifndef __STDDEF_HEADER__
`define __STDDEF_HEADER__

/*******信号电平******/
`define  HIGH      1'b1
`define  LOW       1'b0

/*******逻辑值******/
`define  ENABLE    1'b1   //有效(正逻辑)
`define  DISABLE   1'b0   //无效(正逻辑)


`define  ENABLE_    1'b0   //有效(负逻辑)
`define  DISABLE_   1'b1   //无效(负逻辑)

/*************/

`define  READ         1'b1  //读取信号
`define  WRITE        1'b0  //写入信号
`define  LSB          0     //最低位
`define  BYTE_DATA_W  8     //数据宽度(字节)
`define  BYTE_MSB     7     //最高位

`define  ByteDataBus  70   //数据总线(字节)
`define  WORD_DATA_W  32     //数据宽度(字)
`define  WORD_MSB     31     //最高位(字)
`define  WordDataBus  31:0   //数据总线(字)

`define  WORD_ADDR_W    30   //地址宽度
`define  WORD_ADDR_MSB  29   //最高位
`define  WordAddrBus    29:0 //地址总线
`define  BYTE_OFFSET_W  2    //位移宽度
`define  ByteOffsetBus  1:0  //位移总线

`define  WordAddrLoc    31:2     //字地址位置
`define  ByteOffsetLoc   1:0     //字节位移位置
`define  BYTE_OFFSET_WORD 2'b00  //字边界

`endif
6.专栏目录(在更新)

《从0开始设计和实现CPU》32寄存器堆_记录篇(1)
《从0开始设计和实现CPU》总线设计(一)之总线仲裁器的实现
《从0开始设计和实现CPU》总线设计(二)之总线主控多路复用器的实现
《从0开始设计和实现CPU》总线设计(三)之地址解码器的实现
《从0开始设计和实现CPU》总线设计(四)之总线从属多路复用器的实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式历练者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值