图书目录

目录

第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.1RISCV指令集

7.2基于RISCV的逐条增加指令式实验

7.2.15级流水介绍

7.2.2单条指令的RISCV处理器设计

7.2.32条指令的RISCV处理器设计

7.2.43条指令的RISCV处理器设计

7.2.510条指令的RISCV处理器设计

7.3开源RISCV处理器蜂鸟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的流水线级数

参考文献