极术小能手 · 2022年03月11日

【课程实验 LAB0】软硬件关系及软件Modelsim, Vivado, Keil的介绍

实验前请点击获取配套资料
关于LAB0:本实验是在 FPGA 上搭建一个 SoC 原型, 然后在这个原型基础上学习一些嵌入式软件开发和软硬件协同设计的知识, 所以 FPGA 开发板和各类开发工具软件是我们学习 SoC 设计的一个基础.本章将对之后介绍的实验内容中使用到的硬件平台和各种开发工具软件做简要的介绍.

软硬件关系

本节和接下来的三节将要介绍本次实验过程中用到的三个软件: Modelsim, Vivado, Keil. 下图是它们的依赖关系.

image.png
软硬件关系
从上图中可以看出, Vivado 负责将硬件描述语言(Verilog/VHDL)所描述的 SoC 编译、综合、实现, 将 FPGA 内部本身无序的各种逻辑资源(如查找表、触发器、RAM 等)配置成为有序的电路, 实现 SoC 功能. 而 Keil 负责将编写的软件编程语言(C / 汇编)编译成为机器码十六进制文件. 将机器码作为 RAM 的初始化内容, 即可进行仿真, 在 Modelsim 软件中观察 SoC 工作时各个信号的波形. 若将机器码通过工具下载到由 FPGA 实现的 SoC 中, 那么就可以让 SoC 执行编写的程序, 通过开发板观察执行结果.

软硬件协同设计的层次结构如下图.
image.png
软硬件开发层次

从下往上看(从硬件到软件), FPGA 被配置成为 SoC, SoC 的工作依赖于一条条的指令, 而指令则是由对应的汇编代码生成, 汇编代码通常又是由编译器编译高层次编程语言得到, 所以软件编程部分主要考虑的问题便是如何编写程序才可以编译出能高效地控制硬件的指令.

从上往下看(从软件到硬件), 如果想要运行编写好的软件, 首先需要利用编译器将代码编译为汇编代码, 然后将汇编代码与指令集对应生成机器码, 接着将机器码存入 SoC 的存储器中, 这时候 SoC 就能开始执行一条条的指令, 而最底层的 SoC 则需要利用 FPGA 实现.

在后续介绍的 SoC 搭建过程中, 相信大家会对软硬件协同设计的思想有更深的理解, 对软硬件协同开发的流程更加熟悉.

Keil

Keil MDK 是用于一系列基于 Arm Cortex-M 的微控制器设备的一个完整的软件开发环境. Keil 软件的主要作用是将 C 语言 / 汇编语言写的程序编译成机器码, 在进入调试模式时, 通过调试器下载机器码到 RAM 中, CPU 启动后, 开始一条条地取指并执行.

image.png
keil 界面
Keil 的界面如上图所示, 与 Xilinx Vivado 软件类似, 主界面也是由工具栏、工程目录、代码编辑、调试信息组成. Keil 窗口中包含菜单栏、快捷键、寄存器界面、内存界面等. 菜单栏中依次为 File、Edit、View、Project、Debug、Peripherals、Tools、SVCS、Window 和 Help. 通过点击菜单栏中的选项可以实现代码调试所需的全部功能. 在快捷键一栏则对应有新建文件、打开文件、复制和粘贴、调试功能、编译代码等一系列常用菜单的快捷键按钮, 方便开发人员使用. 在工程目录一栏可以看到当前工程名及工程中包含的源文件、头文件等各种程序文件. 双击文件名可以在右侧打开窗口查看并编辑该文件的内容.

image.png
keil 调试界面
调试界面可以看到的信息更多, 如上图. 从主窗口中可以查看当前正在调试的源代码, 寄存器界面可以查看执行当前指令时 ARM 处理器中各个寄存器的值, 而右下角的存储器界面则可以查看当前存储器中不同地址的存储单元的值. 通过观察寄存器和存储单元中的值, 软件开发人员能够判断当前代码的执行过程是否正确, 从而通过修改代码完成对软件的调试与纠错.

有关keil的具体使用
在 LAB1 的搭建 Keil 环境中, 有关于 keil 在本实验中的具体用法.

Vivado

Vivado 是由 Xilinx 公司开发的用于 HDL 综合分析的软件, 前身是 Xilinx ISE. Vivado 包括用于综合和验证基于 C 的算法 IP 的系统级设计工具, 基于标准的算法和RTL 级 IP 核打包以供重用, 基于标准的 IP 和所有类型的系统构件的系统集成, 以及模块和系统的验证.

Vivado 软件可以在官网上下载, 推荐使用 2018.2 或 2018.3 版本, 安装时需要选择 System Edition 进行安装.

image.png
vivado 软件界面
Vivado 的软件界面如上图. 最上方为工具栏, 依次为 File、Edit、Flow、Tools、Reports、Window、Layout、View、Help, 在工具栏下方的快捷键一栏则对应有新建文件、打开文件、复制和粘贴、调试功能、编译代码等一系列常用菜单的快捷键按钮, 方便开发人员使用. 左侧为设计流程的各个步骤, 中间是文件管理和代码编辑的区域, 在文件管理一栏可以看到当前工程名及工程中包含的源文件、头文件等各种程序文件. 双击文件名可以在右侧打开窗口查看并编辑该文件的内容, 下方为调试信息和 EDA 工具输出的一些报告, 使用时需注意阅读.

有关 Vivado 的具体使用
在 LAB2 的[下载比特流到 FPGA]中, 有关于 Vivado 在本实验中的具体用法.

不会吧? 你还在用 ISE?
很多同学之前可能使用 ISE 进行设计工作, 但是本实验中最好换为 Vivado, 因为你很可能在 ISE 中找不到本实验要使用的开发板型号.

Modelsim

Modelsim 既可以独立使用, 也可以和 Intel Quartus Prime, Xilinx ISE, Xilinx Vivado 软件协同使用. 在 Modelsim 官网上可以下载到免费版, 也可以在安装 Intel Quartus Prime, Xilinx ISE, Xilinx Vivado 软件时一并安装.

Modelsim 的软件界面如下图所示, 主要由工具栏、模块列表和波形图等几部分组成.

image.png
modelsim界面
菜单栏中依次为 File、Edit、View、Compile、Simulate、Add、Structure、Tools、Layout、Bookmarks、Window 和 Help. 通过点击菜单栏中的选项可以完成从工程建立到源代码编译这一流程所需的全部功能. 在工具栏中的快捷键一栏对应有新建工程、新建文件、打开文件、复制和粘贴、启动仿真工具等一系列常用菜单的快捷键按钮, 方便开发人员使用. 在仿真开始以后, 也可以在快捷键一栏选择仿真时间、启动或停止仿真.

有关 modelsim 的具体使用
在 LAB2 的Modelsim 仿真中, 有关于 modelsim 在本实验中的具体用法.

END

文章来源:

推荐内容

更多内容请关注微处理器系统结构与嵌入式系统设计专栏
推荐阅读
关注数
113
内容数
20
电子科技大学示范性微电子学院开设的「微处理器系统结构与嵌入式系统设计」课程配套实验,原链接:[链接]
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息