目录
第1章PYNQ开发平台介绍
1.1PYNQ开发板
1.1.1PYNQ Z1
1.1.2PYNQ Z2
1.2Zynq 7020芯片
1.3PYNQ框架
1.4PYNQ平台的使用
第2章实验环境的准备
2.1线下方式实验环境的准备
2.1.1在本机安装Vivado软件
2.1.2PYNQ板卡的准备
2.1.3使用Jupyter Notebook与PYNQ建立连接
2.2线上方式实验环境的准备
第3章基于PYNQ的组成原理实验流程概览
3.1整体开发流程介绍
3.2Vivado开发流程概览
3.3基于Python的硬件交互
第4章Vivado开发流程
4.1创建工程
4.2设计输入
4.2.1原理图方式
4.2.2Verilog/VHDL方式
4.3仿真
4.4综合
4.5引脚绑定(I/O处理)
4.5.1物理引脚的绑定
4.5.2与监控模块(PS)的连接
4.6实现
4.7TCL使用介绍
4.8实例演示
4.8.1原理图方式
4.8.2Verilog方式
第5章基于Python的I/O交互
5.1Jupyter Notebook介绍
5.1.1Jupyter组件
5.1.2Notebook基础
5.1.3Notebook用户界面
5.2使用PYNQ Overlay加载流文件
5.3Python引脚绑定
5.4基于Python调试组合逻辑
5.5基于Python调试时序逻辑
5.6实例演示
5.6.1上传.bit和.tcl文件
5.6.2基于Python的I/O交互
第6章硬件描述语言简介
6.1“模块”的描述
6.1.1输入/输出端口说明
6.1.2数据对象和数据类型
6.1.3顺序语句与并行语句
6.2模块基本用法示例
6.2.1八位乘法器
6.2.2译码器
6.2.3八位二进制比较器
6.2.4JK触发器设计
6.3层次化设计
6.3.1描述方式
6.3.2层次化设计的写法
6.4VHDL语言基础
6.4.1标识符
6.4.2数据对象
6.4.3数据类型
6.4.4数据类型转换
6.4.5运算符
6.4.6运算符优先级
6.4.7VHDL常用语法
6.5Verilog HDL语言基础
6.5.1数据类型
6.5.2数字表示形式
6.5.3parameter定义常量
6.5.4宏定义'define
6.5.5运算符及表达式
6.5.6运算符优先级
6.5.7Verilog HDL常用语法
第7章基于开源CPU的组成原理实验
7.1RISCV指令集
7.2基于RISCV的逐条增加指令式实验
7.2.15级流水介绍
7.2.2单条指令的RISCV处理器设计
7.2.32条指令的RISCV处理器设计
7.2.43条指令的RISCV处理器设计
7.2.510条指令的RISCV处理器设计
7.3开源RISCV处理器蜂鸟E200介绍
7.4基于开源项目的CPU综合实验
7.4.1从完整SoC项目中抽取出CPU内核上板验证
7.4.2删减掉特定的部分并补全
7.4.3扩展开源处理器的流水线级数
7.4.4优秀工作的遴选方法
第8章实验内容设计
8.1基于原理图的实验
8.1.1全加器
8.1.2译码器
8.1.3多路选择器
8.1.4触发器与寄存器
8.1.5移位寄存器
8.1.6计数器
8.1.7有限状态机
8.1.8运算器/ALU
8.1.9存储器
8.1.10寄存器堆
8.1.11总线
8.1.12微程序控制器
8.2基于Verilog HDL的实验
8.2.1全加器
8.2.2译码器
8.2.3多路选择器
8.2.4触发器与寄存器
8.2.5移位寄存器
8.2.6计数器
8.2.7有限状态机
8.2.8运算器/ALU
8.2.9存储器
8.2.10寄存器堆
8.2.11总线
8.2.12微程序控制器
8.2.13中断
8.2.14基于开源项目的CPU内核的实现
8.2.15为开源CPU增加指令
8.2.16增加开源CPU的流水线级数
参考文献