《自己设计制作CPU与单片机》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:姜咏江著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115364692
  • 页数:608 页
图书介绍:这是一本非常有趣、激动人心的书,本书带领读者进入此前难以想象的领域——自己设计制作CPU,自己设计制作计算机。内容涉猎到电子电路知识、计算机硬件设计制作、软件和操作系统设计编写。全书以CPU设计制作为主线,通俗易懂地讲解了如何使用FPGA进行RISC型和CISC型CPU设计制造的方法,并最终带领读者使用EDA软件设计制造出一台以自己设计的CPU为核心技术的计算机。

上篇CPU设计制作入门 2

第1章 自己就能设计制造CPU 2

1.1自己设计制作CPU有啥意义 2

1.2我设计制作CPU的经历 4

1.3电子电路设计制作的新变化 8

1.4自己设计CPU的条件 8

1.5创新CPU设计的意义 9

第2章 进入硬件设计的天地 11

2.1搭建自己的制造工厂 11

2.1.1安装你的设计制造工具 11

2.1.2获得开工许可证 12

2.1.3熟悉如何建立设计工程 14

2.2设计制造CPU需要热身 17

2.2.1初学硬件编程的例子 17

2.2.2程序书写的要点你知道吗 20

2.2.3程序就是硬件吗? 22

2.2.4怎样知道自己设计的对与错 23

2.2.5掌握仿真测试小工具 31

2.2.6看看自己设计的转换图 33

2.3硬件设计语言Verilog HDL 34

2.3.1 Verilog HDL语言的常量 35

2.3.2 Verilog HDL数据类型 36

2.3.3 Verilog HDL操作符 36

2.4 Verilog HDL语句和模块 37

2.4.1连接语句assign 38

2.4.2 Always语句 38

2.4.3模块 40

2.5 Verilog HDL其他常用语句 43

2.5.1 if语句 43

2.5.2 case语句 44

2.5.3 for循环语句 45

第3章 自己创造CPU的方法 46

3.1深刻理解CPU的结构 46

3.1.1简单CPU的组成 46

3.1.2总线分类与设备控制 48

3.2自创CPU的一般步骤 49

3.3如何设计自己的指令系统 51

3.3.1 CPU必需有哪些指令 51

3.3.2机器结构决定的基本动作 52

3.3.3将基本动作组织成指令 52

3.3.4 CPU指令设计与全程逻辑分析 53

3.4指令分析的一般性总结 59

3.4.1指令有限状态机 59

3.4.2程序如何描述指令 60

3.5让CPU运行程序 61

3.5.1简单汇编指令设计 61

3.5.2 CPU的汇编程序设计 63

3.5.3如何编译汇编程序 64

第4章 一个简单CPU的设计 67

4.1创建一个CPU设计工程 67

4.1.1复制这个简单CPU工程 67

4.1.2执行我们设计的汇编程序 68

4.2剖析这个CPU设计程序 70

4.2.1借用别人的存储器要了解什么 70

4.2.2如何描述CPU的端口 73

4.2.3 CPU要设置哪些内部器件和导线 74

4.2.4器件连接和信息传递的描述 75

4.2.5怎样才能看到CPU运行的内部变化 76

4.3 CPU行为的描述方法 77

4.3.1 CPU初始状态如何描述 77

4.3.2取指令周期的描述 78

4.3.3指令分析的描述 79

4.3.4指令执行周期的描述 80

4.4如何让CPU运行软件程序 87

4.4.1设计用于检验的汇编程序 87

4.4.2用表来编译汇编程序 89

4.4.3仿真检验CPU设计 92

4.5 CPU设计工程小结 94

第5章 自制通用CPU与单片机 95

5.1实体结构与器件应用 95

5.2通用CPU指令系统设计 97

5.2.1规划CPU的指令格式 97

5.2.2增加的指令 98

5.2.3新增输入输出端口 100

5.2.4可读写的程序存储器 102

5.2.5新增指令的状态描述 102

5.3用汇编程序检验CPU设计 108

5.3.1测试CPU的程序设计 108

5.3.2汇编程序执行仿真 109

5.4外设与CPU接口设计 111

5.4.1输入缓冲区设想 111

5.4.2输入缓冲区设计程序 112

5.4.3仿真检测缓冲区设计 115

5.4.4缓冲区与CPU连接 116

5.5设备驱动程序设计 117

5.5.1一个数码管驱动程序 118

5.5.2四个数码管驱动程序 119

5.5.3走马灯显示设计 119

5.6时钟设计 121

5.6.1分频设计 121

5.6.2锁相环生成时钟程序 122

5.6.3时钟IP程序 124

5.7开发板连接程序设计 127

5.7.1如何定义开发板上的设备 127

5.7.2 PMC开发板连接程序 128

5.7.3连接程序解释 136

5.8 FPGA引脚连接 139

5.8.1引脚连接清单 139

5.8.2引脚连接操作 141

5.9操作系统内核设计 143

59.1操作系统核心 143

5.9.2系统程序常驻内存 144

5.10烧制CPU制作单片机 145

5.10.1 JTAG下载烧制 146

5.10.2检验设计成果 147

5.10.3 ASP下载烧制单片机 148

第6章 流水线CPU设计 150

6.1流水线结构 150

6.1.1流水线要义 150

6.1.2指令流水线的组织 151

6.1.3流水线指令并行工作 153

6.1.4流水线相关问题 154

6.1.5解决相关的办法 156

6.2第一个流水线CPU 158

6.2.1流水线CPU指令系统 159

6.2.2同步存储器 160

6.2.3 CPU设计程序分析 166

6.2.4流水线CPU仿真 174

6.2.5与非流水线速度比较 179

6.3循环流水线CPU 181

6.3.1流水线的效率 181

6.3.2部件式结构设计 182

6.3.3循环流水线的划分 183

6.3.4循环流水线CPU设计 184

6.3.5化解设备相关和控制相关方法 186

6.3.6运行速度比较 188

第7章 非透明流水线通用单片机 190

7.1三级流水线计算机设计思想 190

7.1.1三级流水线的优势 190

7.1.2发射与断流控制 192

7.2重编指令系统 195

7.2.1 补充的指令 195

7.2.2指令系统编码重设 196

7.3流水线通用CPU设计 198

7.3.1三级流水通用CPU程序 199

7.3.2三级流水线通用CPU仿真 203

7.4流水线操作系统内核设计 204

7.4.1流水线操作系统程序 205

7.4.2系统程序仿真 207

7.4.3仿真检验操作系统 208

第8章 流水线编程的透明设计 212

8.1分支指令透明化 212

8.1.1改造分支指令设计 213

8.1.2中断流水机制设计 214

8.2其他指令透明化 215

8.2.1 Iptr指令优化 215

8.2.2 Call和Ret指令优化 217

8.2.3运行汇编程序测试 218

8.3缓冲区连接 221

8.3.1输入缓冲区检验 221

8.3.2缓冲区与CPU关联程序 221

8.3.3通过缓冲区输入仿真 223

8.4开发板的连接 224

8.4.1连接程序设计 224

8.4.2 EP IC12Q引脚连接 225

8.5烧制运行与测试 225

8.5.1常驻程序 226

8.5.2运行检测 226

8.5.3透明三级流水线检测程序设计 228

8.5.4透明流水线编程提示 230

中篇深入CPU设计 232

第9章 信息与信息处理 232

9.1信息与媒体 232

9.1.1客观的信息 232

9.1.2媒体与信息分类 233

9.2信息处理与数据 234

9.2.1信息处理 234

9.2.2数据 235

9.2.3信息量 235

9.2.4计算机是信息处理工具 235

第10章 机器表示数和运算 237

10.1限位记数 237

10.1.1 N进制 237

10.1.2限位数 237

10.1.3反码 238

10.2解决正负数运算的对称制 238

10.2.1限位数运算特征 238

10.2.2用限位数表示正负数 238

10.2.3什么是对称制 239

10.2.4对称制运算 240

10.2.5对称码和反码的关系 240

10.3对称制加法的溢出 241

10.3.1加减法溢出的判断 241

10.3.2溢出的解决方法 241

10.3.3乘法运算溢出的处理 242

10.3.4变减法为加法 242

10.4信息的二进制表示 243

10.4.1图形文字数值化 244

10.4.2颜色的数值化 245

10.4.3模拟信息的数值化 246

第11章 逻辑代数是CPU的基石 248

11.1逻辑代数的概念 248

11.2逻辑代数的基本运算规则 248

11.2.1逻辑变量与逻辑表达式 249

11.2.2基本逻辑等式 249

11.23异或 251

第12章 万能的逻辑电路 252

12.1二极管和三极管 252

12.1.1简单电路知识 252

12.1.2简单表示电子管 253

12.1.3基本逻辑门电路 254

12.2依据表达式作电路 255

12.2.1线路连接与交叉 256

12.2.2基本组合电路符号 256

12.2.3逻辑电路的画法 257

12.3真值表与逻辑函数 258

12.3.1真值表 259

12.3.2逻辑表达式的化简 261

第13章 元器件与线路设计原理 263

13.1 RS触发器 263

13.1.1 RS触发器的结构 263

13.1.2 RS触发器工作原理 263

13.1.3 RS触发器的符号 264

13.2 D型触发器 265

13.2.1时标触发器 265

13.2.2边沿触发器 266

13.3通断控制开关电路 268

13.3.1三态门电路组成 268

13.3.2三态门工作原理 269

13.4带预置清除端的边沿触发器 270

13.5线路数据传输 271

13.5.1三态总线的数据传输 271

13.5.2两态选择扇出总线 272

13.5.3双向通断可控开关 272

13.6寄存器原理 273

13.6.1暂存寄存器设计 274

13.6.2 L门的工作原理 274

13.6.3 Jk触发器 275

13.6.4 Jk触发器的构造 275

13.6.5 Jk触发器工作过程 275

13.66行波计数器 276

13.7译码器和多路选择器 278

13.7.1译码器 278

13.7.2接收多路选择器 279

第14章CPU的器件设计 280

14.1原理图设计方法 280

14.1.1原理图设计操作 280

14.1.2器件的层次组合 284

14.1.3 Quartus Ⅱ电子元件库 285

14.2加减法运算器设计 286

14.2.1加减法运算器设计的必要性 286

14.2.2加法运算的分析 287

14.2.3全加器设计操作 289

14.2.4四位加法器设计 291

14.2.5八位加法运算器设计 293

14.2.6八位加减运算器设计 293

14.3分段加减法运算器设计 295

14.3.1分段计算原理 295

14.3.2设计分段加减法运算器 296

14.3.3分段加减法运算器仿真 297

14.3.4分段加减法运算相关指令设计 298

14.4通用计数器 300

14.4.1同时同步计数器 300

14.4.2二选一电路 300

14.4.3加减单元 301

14.4.4计数单元 301

14.4.5八位计数器 304

14.4.6计数器一般化 306

14.4.7等效计数器设计 307

14.5标志线的设计 309

14.6移位寄存器设计 310

14.6.1两位移位单元 310

14.6.2多位左移位寄存器设计 313

14.6.3左右移位寄存器设计 314

14.6.4移位寄存器等效电路设计 316

14.7乘法运算器的设计 318

14.7.1乘法手算形式分析 318

14.7.2乘法阵列原理图设计 319

14.7.3分层设计乘法阵列 321

14.8通用乘法运算器设计 324

14.8.1求绝对值电路 324

14.8.2实现有符号乘法运算 326

14.8.3通用乘法运算器仿真 327

14.8.4超长数乘法设计 327

14.9除法运算器设计 328

14.9.1除法手算形式分析 328

14.9.2无符号数除法阵列 329

14.9.3减法运算单元 330

14.9.4四位减法运算器 331

14.9.5除法试商运算单元 332

14.9.6无符号数除法阵列行 333

14.9.7无符号数除法运算器 335

14.9.8有符号数除法器 337

14.10译码器的设计 338

14.10.1译码器设计 338

14.10.2四位译码器设计 340

14.10.3分层构造多位译码器 341

14.11浮点加减法运算器设计 342

14.11.1国际标准化组织的标准 342

14.11.2限位浮点数的表示 342

14.11.3浮点数的运算 343

14.11.4随机右移运算器 343

14.11.5浮点加减法运算器结构 346

14.11.6浮点数加减法运算器设计 347

14.12节拍器的设计 349

14.12.1节拍器的结构 349

14.12.2节拍器的工作原理 350

14.13存储器设计 351

14.13.1随机存储器 351

14.13.2 IP程序生成RAM 355

14.13.3随机存储器仿真 359

14.14总线结构设计 360

14.14.1简单总线结构 360

14.14.2总线控制字与微指令 361

14.14.3总线结构中实用存储器 361

14.14.4地址寄存器设计 363

第15章X86型CPU及单片机设计 365

15.1 PMC硬件构成 365

15.2 CPU的逻辑结构 367

15.3指令系统设计 368

15.3.1机器指令设计 368

15.3.2指令格式和寻址方式 371

15.3.3指令全程与控制函数 372

15.4控制矩阵 381

15.4.1控制矩阵电路设计 381

15.4.2分块设计控制矩阵 382

15.5控制矩阵生成器 384

15.5.1控制矩阵生成器安装 384

15.5.2建立指令全程分析表 385

15.5.3生成dBASE III文件 385

15.6控制矩阵生成器的使用 386

15.6.1基本操作 387

15.6.2数据库中建分析表 388

15.6.3生成逻辑模块描述 390

15.7 PMC110总线结构 390

15.7.1运算器存储器总线连接 391

15.7.2指针累加器等连入总线 392

15.7.3寄存器等连入总线 393

15.8 CPU顶层总线结构 394

15.9输入缓冲接口设计 396

15.9.1 PMC110缓冲区设计思想 396

15.9.2缓冲区存储器设计 397

15.9.3缓冲区接口电路 403

15.9.4输入接口解决的问题 407

15.10 PMC 110CPU与外设连接 410

15.11 PMC110操作系统核心设计 411

15.12 PMC110顶层与引脚 413

第16章带LCD的通用单片机 415

16.1 FM12864J液晶屏 415

16.2 FM 12864J逻辑结构与控制 416

16.2.1 HD 16202逻辑结构 416

16.2.2液晶屏操作指令 418

16.3 LCD读写控制 420

16.3.1液晶屏的读写时序 421

16.3.2液晶屏驱动程序 422

16.4 LCD帧控制程序 425

16.4.1端口与工作变量 426

16.4.2随时变化的端口 426

16.4.3帧控制程序的初始状态 427

16.4.4帧控制状态描述 427

16.4.5帧控制例行状态描述 428

16.5字库设计程序 429

16.5.1 Idle状态 430

16.5.2字形设计 430

16.5.3 Ok状态描述 430

16.6时钟和送显信号设计 431

16.7内外总线连接 432

16.8开发板连接程序 434

16.9 EP 1 C 12Q240增加引脚连接 435

16.10带LCD单片机顶层文件 435

16.11带LCD单片机运行测试 436

第17章 动态CPU的思想方法 439

17.1历史背景 439

17.2并行计算机冲突概述 442

17.3 PU-MU-CHL并行结构——计算机核心重组 443

17.4 PU与MU连接控制 448

17.5动态计算机的整机结构 450

第18章 动态CPU设计实例 452

18.1 PMC362CPU逻辑结构 452

18.2 PMC362CPU结构设计 453

18.3 PU设计 455

18.3.1 PU的总线连接 455

18.3.2 PU内部结构 456

18.4 PU-MU指令系统 458

18.4.1 PU指令表 458

18.4.2 PU控制矩阵设计 463

18.5 MU设计 463

18.5.1 MU总线结构 464

18.5.2 MU总线连接设计 464

18.5.3 MU内部结构 466

18.5.4 MU连接标志设计 467

18.6 CHL设计 467

18.6.1 CHL总线连接 468

18.6.2 CHL内部结构 468

18.6.3 CHL指令系统设计 469

18.7顶层结构 472

18.8设备连接优先级设计 474

18.9主要部件和特色 476

18.10测试程序设计 476

18.11 PMC362程序并行执行仿真 480

18.12下载到开发板上运行检验 485

第19章PMC计算机应用 490

19.1 PMC110汇编语言设计工具 490

19.1.1程序设计编译器的安装 490

19.1.2程序设计编译器的使用 492

19.1.3编辑编译器使用实例 497

19.2程序输入装填与执行 499

19.2.1程序的输入与装填 499

19.2.2输入编辑 501

19.2.3人机交互方式 502

19.2.4执行结果表示 502

19.3系统复位与复杂操作 503

19.3.1系统复位的方法 503

19.3.2缓冲区复位 503

19.3.3分段输入程序操作 503

19.4需要知道的限制 504

第20章 汇编语言程序设计 506

20.1汇编程序的基本结构 506

20.1.1顺序结构 506

20.1.2分支结构 507

20.1.3循环结构 507

20.1.4子程序调用结构 507

20.2指令的分类 508

20.2.1算术运算类指令 508

20.2.2数据传送类指令 508

20.2.3逻辑运算类指令 509

20.2.4跳转类指令 509

20.2.5数据移位指令 509

20.2.6其他控制类指令 509

20.3程序设计 510

20.3.1分支循环结构设计 510

20.3.2多重循环 511

20.3.3使用地址指针 513

20.3.4起泡排序 515

20.4宏指令 518

20.4.1宏指令格式 519

20.4.2无参数宏 519

20.4.3带参数的宏 519

20.4.4宏与函数 520

20.5汇编程序编译方法 520

20.5.1编译的一般过程 520

20.5.2机器编译方法 521

20.5.3用数据库软件设计编译器 523

20.6典型问题求解 524

20.6.1求自然数n的阶乘 524

20.6.2超长数乘除法 527

20.6.3超长数除法运算器设计 532

20.6.4超长数除法运算仿真 534

20.7虚拟存储器结构设计 534

20.7.1虚拟存储执行的机制 534

20.7.2虚拟存储编程 535

20.7.3虚拟存储程序设计 535

下篇 自己制作单片机 542

第21章 自制单片机器件与环境 542

21.1自制计算机系统整体结构 542

21.1.1单芯片计算机实例 542

21.1.2功能结构划分 543

21.1.3 FPGA芯片和配件 544

21.1.4 FPGA的配件 546

21.2 PMC计算机的供电系统 547

21.2.1直流电源与开关 547

21.2.2稳压器件 548

21.2.3整流二极管和滤波器件 548

21.2.4下载线 549

21.3输入设备 549

21.3.1数据输入开关 549

21.3.2状态控制开关 549

21.3.3触发控制按钮 549

21.4显示输出设备 549

21.4.1发光二极管 550

21.42数码管 550

21.43液晶显示屏 551

21.5 PCB印刷电路板 551

21.6个人设计制作计算机所需的工作环境 552

第22章PMC110计算机电路设计 554

22.1计算机辅助设计软件PADS 554

22.1.1元器件库 554

22.1.2元器件图制作 555

22.2基本型PMC电路的原理图设计 568

22.2.1供电系统设计 568

22.2.2 FPGA的引脚 569

22.2.3信号保障系统设计 574

22.2.4程序下载系统设计 575

22.2.5输入系统设计 577

22.2.6输出系统设计 578

22.2.7为PCB准备网表 580

22.3 PMC 110计算机PCB设计 580

22.3.1 PCB的边界绘制 580

22.3.2导入元器件 582

22.3.3元器件布局 582

22.3.4电路板的布线 584

22.3.5电路板敷铜 587

22.4器件PCB封装设计 589

22.4.1使用自动导航设计 589

22.4.2一般器件PCB设计 592

第23章 计算机组装与下载 595

23.1 PCB检测 595

23.2器件焊接 596

23.2.1器件焊接的顺序 596

23.2.2焊接技巧 597

23.3上电检测和断电修正 599

23.3.1 PC计算机设计下载 599

23.3.2常驻内存程序测试 601

23.3.3自编程序测试 602

附录 607