目录 :
第1章 CPU的设计与实现 1
1.1 序 ………………………………………………………………………………………………..2
1.2 计算机系统……………………………………………………………………………………4
1.2.1 什么是计算机………………………………………………………………………………………….4
1.2.2 什么是CPU……………………………………………………………………………………………..5
专栏 CPU的位宽……………………………………………………………………………………………..8
1.2.3 什么是内存……………………………………………………………………………………………..8
1.2.4 什么是I/O……………………………………………………………………………………………….9
专栏 字节序………………………………………………………………………………………………….10
1.2.5 什么是总线……………………………………………………………………………………………12
专栏 总线的优缺点………………………………………………………………………………………..14
1.2.6 小结 …………………………………………………………………………………………………….14
专栏 计算机相关书籍 …………………………………………………………………………………….14
1.3 数字电路基础 ………………………………………………………………………………15
1.3.1 什么是数字电路 …………………………………………………………………………………….15
1.3.2 数值表达 ………………………………………………………………………………………………15
1.3.3 有符号二进制数 …………………………………………………………………………………….16
专栏 比特和字节……………………………………………………………………………………………17
专栏 1K字节有多大 ……………………………………………………………………………………….17
1.3.4 MOSFET的结构 …………………………………………………………………………………….17
1.3.5 逻辑运算 ………………………………………………………………………………………………19
1.3.6 CMOS基本逻辑门电路……………………………………………………………………………20
1.3.7 存储元件 ………………………………………………………………………………………………21
专栏 建立时间与保持时间 ………………………………………………………………………………24
1.3.8 组合电路和时序电路 ………………………………………………………………………………25
1.3.9 时钟同步设计………………………………………………………………………………………..25
1.3.10 小结 …………………………………………………………………………………………………….25
专栏 数字电路相关书籍………………………………………………………………………………….25
1.4 Verilog HDL语言 ………………………………………………………………………….26
1.4.1 什么是Verilog HDL…………………………………………………………………………………26
1.4.2 电路描述 ………………………………………………………………………………………………27
专栏 默认网络类型………………………………………………………………………………………..32
专栏 组合电路描述中锁存器的推定与Don’t care……………………………………………….37
专栏 正逻辑与负逻辑 …………………………………………………………………………………….42
1.4.3 电路仿真 ………………………………………………………………………………………………43
专栏 同步电路中信号变化的时序 …………………………………………………………………….45
1.4.4 Verilog HDL的仿真环境…………………………………………………………………………..50
1.4.5 小结 …………………………………………………………………………………………………….56
专栏 Verilog HDL相关书籍……………………………………………………………………………..56
1.5 系统蓝图……………………………………………………………………………………..57
1.5.1 目标系统整体介绍………………………………………………………………………………….57
1.5.2 关于本章中的代码………………………………………………………………………………….58
专栏 字编址与字节位移………………………………………………………………………………….62
1.6 总线的设计与实现………………………………………………………………………..63
1.6.1 总线的设计……………………………………………………………………………………………63
1.6.2 总线的实现……………………………………………………………………………………………66
1.6.3 小结 …………………………………………………………………………………………………….78
1.7 存储器的设计与实现 …………………………………………………………………….79
1.7.1 FPGA的RAM区域…………………………………………………………………………………..79
1.7.2 ROM的设计与实现 ………………………………………………………………………………..81
1.7.3 小结 …………………………………………………………………………………………………….83
专栏 存储器相关书籍 …………………………………………………………………………………….83
1.8 AZ Processor的设计与实现……………………………………………………………84
1.8.1 关于CPU ………………………………………………………………………………………………84
专栏 CPI和MIPS值………………………………………………………………………………………..93
1.8.2 AZ Processor的设计 ………………………………………………………………………………93
专栏 指令集架构与微架构 …………………………………………………………………………….105
1.8.3 AZ Processor的实现 …………………………………………………………………………….106
1.8.4 小结 …………………………………………………………………………………………………..159
专栏 计算机架构相关书籍 …………………………………………………………………………….159
1.9 I/O的设计与实现 ………………………………………………………………………..162
1.9.1 定时器………………………………………………………………………………………………..162
1.9.2 UART …………………………………………………………………………………………………167
专栏 UART实例…………………………………………………………………………………………..168
1.9.3 GPIO ………………………………………………………………………………………………….181
1.9.4 小结 …………………………………………………………………………………………………..188
专栏 I/O相关书籍 ………………………………………………………………………………………..188
1.10 AZPR SoC整体连接………………………………………………………………….189
1.10.1 各模块的连接………………………………………………………………………………………189
1.10.2 时钟模块的实现 …………………………………………………………………………………..191
1.10.3 顶层模块的实现 …………………………………………………………………………………..193
1.10.4 小结 …………………………………………………………………………………………………..193
1.11 AZPR SoC的仿真……………………………………………………………………..194
1.11.1 仿真模型的编写 …………………………………………………………………………………..194
1.11.2 Testbench的编写…………………………………………………………………………………197
1.11.3 执行仿真 …………………………………………………………………………………………….200
1.11.4 小结 …………………………………………………………………………………………………..201
1.12 本章总结………………………………………………………………………………….202
第2章 电路板的设计与制作 203
2.1 序 …………………………………………………………………………………………….204
2.2 电路板规格………………………………………………………………………………..206
2.2.1 电路板名称………………………………………………………………………………………….206
2.2.2 电路板的构成………………………………………………………………………………………206
2.2.3 电路板尺寸………………………………………………………………………………………….206
2.2.4 电路板层数………………………………………………………………………………………….207
2.2.5 FPGA选型 …………………………………………………………………………………………..207
2.2.6 外围电路的选定 …………………………………………………………………………………..208
专栏 关于FPGA …………………………………………………………………………………………..209
专栏 关于JTAG……………………………………………………………………………………………211
2.3 元件选型……………………………………………………………………………………212
2.3.1 元件选型标准………………………………………………………………………………………212
2.3.2 元件选型 …………………………………………………………………………………………….212
2.3.3 元件的选购………………………………………………………………………………………….218
2.4 电路设计……………………………………………………………………………………221
2.4.1 下载规格书………………………………………………………………………………………….222
2.4.2 配置电路 …………………………………………………………………………………………….223
2.4.3 外围电路 …………………………………………………………………………………………….228
2.4.4 电源电路 …………………………………………………………………………………………….232
2.4.5 电路板设计环境 …………………………………………………………………………………..234
2.4.6 使用Eagle设计电路图……………………………………………………………………………236
专栏 关于ULP……………………………………………………………………………………………..241
专栏 Eagle使用方法相关的书籍/说明书…………………………………………………………..241
2.4.7 完成的电路图………………………………………………………………………………………241
2.5 布局设计……………………………………………………………………………………247
2.5.1 电路板设计约束条件及布线策略 …………………………………………………………….247
2.5.2 FPGA板的布局设计………………………………………………………………………………248
2.5.3 电源板的布局设计………………………………………………………………………………..252
2.5.4 使用Eagle布局 …………………………………………………………………………………….254
2.5.5 完成的布局………………………………………………………………………………………….259
2.6 制作元件库………………………………………………………………………………..261
2.6.1 制作Symbol ………………………………………………………………………………………..261
2.6.2 制作Package ……………………………………………………………………………………….263
2.6.3 制作Device …………………………………………………………………………………………264
2.7 电路板3D模型 ……………………………………………………………………………269
2.7.1 软件使用说明………………………………………………………………………………………269
2.7.2 准备3D模型库……………………………………………………………………………………..271
专栏 关于3D模型库的管理 ……………………………………………………………………………278
2.7.3 制作电路板模型 …………………………………………………………………………………..279
2.8 制作感光板电路板………………………………………………………………………280
2.8.1 整体流程 …………………………………………………………………………………………….280
2.8.2 制作光罩 …………………………………………………………………………………………….282
2.8.3 粘合光罩 …………………………………………………………………………………………….284
2.8.4 曝光 …………………………………………………………………………………………………..285
2.8.5 显像 …………………………………………………………………………………………………..288
2.8.6 蚀刻 …………………………………………………………………………………………………..289
2.8.7 阻焊剂………………………………………………………………………………………………..291
2.8.8 开孔 …………………………………………………………………………………………………..296
2.8.9 在背面安装VPort接头时的处理 ………………………………………………………………298
2.8.10 制作通孔 …………………………………………………………………………………………….299
2.8.11 飞线 …………………………………………………………………………………………………..300
2.9 使用电路板制造服务 …………………………………………………………………..302
2.9.1 电路板制造服务 …………………………………………………………………………………..302
2.9.2 DRC …………………………………………………………………………………………………..302
2.9.3 输出Gerber数据 …………………………………………………………………………………..305
2.9.4 检查Gerber数据 …………………………………………………………………………………..306
专栏 执行DFM检查的方法 ……………………………………………………………………………309
专栏 阻焊层遮罩的印刷设置………………………………………………………………………….312
2.9.5 向P板.com公司下单制板……………………………………………………………………….312
专栏 拼板数据的准备 …………………………………………………………………………………..314
2.9.6 向OLIMEX公司下单制板……………………………………………………………………….318
2.10 组装电路板………………………………………………………………………………321
2.10.1 电源板………………………………………………………………………………………………..321
2.10.2 组装FPGA板………………………………………………………………………………………..321
2.11 功能测试………………………………………………………………………………….323
2.11.1 识别FPGA …………………………………………………………………………………………..323
2.11.2 诊断程序 …………………………………………………………………………………………….323
2.12 本章总结………………………………………………………………………………….326
第3章 编程 327
3.1 序 …………………………………………………………………………………………….328
3.2 开发环境……………………………………………………………………………………329
3.2.1 准备工作 …………………………………………………………………………………………….329
3.2.2 FPGA开发环境…………………………………………………………………………………….330
3.2.3 ISE WebPACK……………………………………………………………………………………..331
3.2.4 UrJTAG ………………………………………………………………………………………………359
专栏 cblsrv-0.1_ft2232…………………………………………………………………………………370
3.2.5 交叉汇编程序………………………………………………………………………………………370
3.2.6 第一个程序………………………………………………………………………………………….376
3.3 串口通信……………………………………………………………………………………381
3.3.1 安装Tera Term …………………………………………………………………………………….381
3.3.2 编写程序 …………………………………………………………………………………………….382
专栏 子程序………………………………………………………………………………………………..388
专栏 ASCII码………………………………………………………………………………………………389
3.3.3 执行程序 …………………………………………………………………………………………….390
3.4 程序加载器………………………………………………………………………………..391
3.4.1 XMODEM协议…………………………………………………………………………………….391
3.4.2 编写程序 …………………………………………………………………………………………….393
3.4.3 编写加载测试程序………………………………………………………………………………..402
3.4.4 执行程序 …………………………………………………………………………………………….403
3.5 中断与异常………………………………………………………………………………..406
3.5.1 什么是中断………………………………………………………………………………………….406
3.5.2 编写程序 …………………………………………………………………………………………….410
3.5.3 执行程序 …………………………………………………………………………………………….414
3.5.4 什么是异常………………………………………………………………………………………….415
3.5.5 编写程序 …………………………………………………………………………………………….415
3.5.6 执行程序 …………………………………………………………………………………………….419
3.6 七段数码管………………………………………………………………………………..420
3.6.1 什么是七段数码管………………………………………………………………………………..420
3.6.2 七段数码管的控制………………………………………………………………………………..420
3.6.3 七段数码管计数器概要………………………………………………………………………….422
3.6.4 编写程序 …………………………………………………………………………………………….423
3.6.5 执行程序 …………………………………………………………………………………………….428
3.7 制作一个实用程序………………………………………………………………………429
3.7.1 功能概要 …………………………………………………………………………………………….429
3.7.2 制作程序 …………………………………………………………………………………………….433
3.7.3 执行程序 …………………………………………………………………………………………….446
3.8 结语………………………………………………………………………………………….447
谢辞 …………………………………………………………………………………………………448
后记 …………………………………………………………………………………………………449
版权声明…………………………………………………………………………………………..450
本章将实现一台简单的计算机系统的 SoC(System-on-a-Chip,片上系统)。它以
CPU 为核心,同时实现了负责存储程序和数据的内存、负责和外部进行输入输出的 I/O
以及它们之间的连接总线。SoC 是将一整套系统集成到单一芯片的集成电路设计方法。
开 发 之 前, 我 们 先 来 确 定 CPU 的 名 字。 我 们 为 这 次 开 发 的 CPU 取 名 为 AZ
Processor,因为本书旨在从头到尾亲自动手设计和实现一台计算机,这几个英文字母就
含有从 A 到 Z 全部亲手制作的意思。然后,AZ Processor、内存、各种 I/O 通过总线连
接形成的 SoC,我们称之为 AZPR SoC(AZ Processor 片上系统)。图 1-1 为 AZPR SoC
的概要。
图 1-2 列出了本章的结构。1.2 节 ~1.4 节分别简单介绍计算机系统、数字电路基础
和 Verilog HDL 语言。这 3 节的内容是制作 AZPR SoC 需要掌握的最基础的知识。已经
掌握这些知识和设计经验的读者,可以跳过此部分。
1.5 节 ~1.10 节是本章主要的设计和实现部分。1.5 节将对 AZPR SoC 进行说明。1.6
节 ~1.9 节将分别对总线、内存、CPU 和 I/O 的设计和实现进行说明。1.10 节将各个模块连接,完成 AZPR SoC 的制作。1.11 节介绍 AZPR SoC 的仿真。最后的 1.12 节对本章
进行总结。
原文链接:https://duduziy.com/301.html,转载请注明出处。 郑重声明: 本站所有内容仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。 如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。 如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!
评论0