在前面几期的学习中,我们对于PYNQ的环境配置做了较为详细的介绍,并对PYNQ与ZYNQ的异同点做了较为深入的探究。我们知道,PYNQ = Python + ZYNQ,即将ZYNQ部分功能的Python化,直接调用Python库和FPGA硬件库进行功能的开发,典型的例子便是PYNQ_z2开发板。
这种开发方式极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷。而此种开发方式所用到的在线编辑工具为Jupyter Notebook 。
一. Jupyter简介
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等。
二. Jupyter组件
Jupyter结合了三个组件:
1. 笔记本Web应用程序:交互式Web应用程序,用于交互式编写和运行代码以及编写笔记本文档。
2. 内核:由Notebook Web应用程序启动的独立进程,它以给定语言运行用户代码并将输出返回给Notebook Web应用程序。对于PYNQ来说,它是用Python编写的,是Jupyter Notebook的默认内核,也是PYNQ发行版中为Jupyter Notebook安装的唯一内核。
3. Notebook文档:包含Notebook Web应用程序中所有内容表示的自包含文档。
三. Notebook基础
Notebook服务器在主板的ARM®处理器上运行,当电脑连接网络时,使用浏览器访问pynq:9090即可连接到Jupyter Notebook(详见第一期的开发环境配置)。以下是示例目录的Jupyter Notebook屏幕截图:
1. 要创建新笔记本,请单击列表顶部的“new”按钮,然后从下拉列表中选择。
2. 通过将Notebook文件拖到列表中,可以将文件上载到当前目录。
3. 列表中图标为绿色,且显示绿色“running”文本的文件是正在运行的文件。直到明确关闭为止,这些文件会一直运行。
4. 要查看所有正在运行的文件及其目录,可以单击“running”选项,如图:
四. Notebook UI概述
创建文件或打开现有文件后,将进入Notebook用户界面(UI)。Notebook UI具有以下主要区域:
1. Notebook的名称
2. 主工具栏,提供了保存、导出、重载Notebook,以及重启内核等选项
3. 快捷键
4. Notebook主要区域,包含了Notebook的内容编辑区。如图:
Jupyter笔记本有两种模式:编辑模式和命令模式。
1. 编辑模式
编辑模式由绿色单元格边框指示。当单元格处于编辑模式时,可以像普通文本编辑器一样键入单元格。按Enter或使用鼠标单击单元格的编辑器区域可进入编辑模式。
2. 命令模式
命令模式由带有蓝色左边距的灰色单元格边框表示
notebook可以修改之前的单元格,对其重新运算。这样就可以更新整个文档了。
将上图中的print(study)改为print("love"),然后按下Shift + Enter重新计算该单元格,输出结果马上就更新成了“love”。通过这种方法可以对某一模块进行多次修改,可大大减少程序开发与调试的时间。
Notebook中还有Header单元格和 Markdown单元格两种不同的单元格,可以利用它们对代码进行美化。
Heading可以创建不同层级的标题,并将之与代码相区分,使得代码的层次更加清晰;
Markdown可以对解释文本进行漂亮的渲染,产生美观的注释。如图:
文章转载自:Pynq