您现在的位置: 主页 > 嵌入式处理器 > FPGA > 运行Linux的ZedBoard设计实例 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

运行Linux的ZedBoard设计实例 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-18 

ZedBoard 实例证明采用无缝环境可以快速构建并优化设计。

在赛灵思 SDSoC 开发环境发布前,标准 SoC 设计方法涉及一系列不同的工程设计技巧。通常来说,如果系统架构师根据要求生成系统架构和子系统,那么解决的方案会分为硬件功能的实现(逻辑侧)和软件功能的实现(处理器侧)。这样,FPGA 和软件工程师要分别开发各自的功能,再根据集成测试计划进行组成和测试。这种方法持续运用了多年,但赛灵思 Zynq®-7000 All Programmable SoC 以及即将推出的赛灵思 Zynq UltraScale+TM MP-SoC 等功能更强的 SoC 的问世要求采用新的设计方法。

SDSoC 方法能帮助更广泛的工程师用户群开发极高性能系统。在 SDSoC 开发环境中进行开发的工程师新手会发现,可以轻松快速地启动并运行系统,而且系统优化也同样便捷。

我们举一个简单而具代表性的例子来说明如何完成上述任务并获得相应的收益。我们针对的是运行 Linux 的 ZedBoard,并采用内置示例之一:矩阵乘法器和加法模板。

 

运行Linux的ZedBoard设计实例

设计方法简史

可编程逻辑器件自 1980 年推出以来一直迅速发展。起初,工程师通过原理图输入法对器件进行编程(虽然 22v10 等较早期的可编程逻辑器件 (PLD) 是通过逻辑方程编程的)。这需要电子工程师执行大部分 PLD 开发工作,因为逻辑设计和优化通常属于电子工程学范畴。随着器件尺寸和功能的不断提升,这种原理图输入法自然开始面临局限性问题,因为设计和验证时间会随着设计复杂性的增加而显著延长。工程师需要具备在更高抽象层上工作的能力。

VHDL 和 Verilog 应运而生。二者开始都是用来描述和模拟逻辑设计(特别是 ASIC)的语言。VHDL 甚至有自己的军用标准。既然我们要在硬件描述语言 (HDL) 中描述逻辑行为,那么自然应该综合所需的逻辑电路。综合工具的开发使得工程师能描述通常在寄存器传输层的逻辑行为。HDL 也能大幅改进验证方法,有助于开发行为测试平台,支持结构化验证。HDL 也首次支持模块化和厂商独立性。

HDL 内在并行性、寄存器传输层设计法和实现流程则需要了解优化和时序收敛,这就意味着 PLD 开发任务大部分落到了电子工程师的身上。

HDL 一直是 PLD 开发领域的事实标准,但多年发展中也考虑到整体产业的发展需求。单就 VHDL而言,相继于 1987 年(IEEE 采用的第一年)、1993年、2000 年、2002 年、2007 年、2008 年进行了修订。不过,跟原理图输入法一样,HDL 也逐渐开始面临一系列局限性问题,包括开发和验证时间太长、器件功能要求提高等。

随着 PLD 的角色从胶合逻辑向加速外设甚至最终向系统核心发展,业界需要新的设计方法来满足有关发展需求。近年来,高层次综合 (HLS) 越来越受欢迎。根据高层次综合法,设计通过 C/C++(用赛灵思的 Vivado® HLS)或其他工具(如 MathWorks 公司的 MATLAB® 或国家仪器公司的 LabVIEW)输入。由于新的设计方法能够充分发挥器件的功能,这种方法开始将设计和实现从电子工程领域转向软件领域,从而显著扩大了潜在的 PLD 设计人员群体,并巩固了 PLD 作为系统核心的地位。

因此,SoC 设计自然能用 HLS 来生成紧密集成的开发环境,工程师则能在环境中无缝加速设计逻辑侧功能。在此情况下,SDSoC 环境应运而生。

熟悉的环境
SDSoC 开发环境基于 Eclipse,大多数软件开发人员对这种环境应该是比较熟悉的(图1)。该环境通过采用能处理 C 或C++ 程序的全新 SDSoC 编译器无缝支持器件可编程逻辑 (PL)侧功能加速。

图 1 - SDSoC 欢迎界面

SDSoC 环境中使用最高抽象层进行开发,具体如下:
1. 在 C 或 C++ 中开发应用。
2. 对应用进行特性分析,明确性能瓶颈问题。
3. 使用特性分析信息,明确器件 PL 侧哪些功能需要加速。
4. 随后构建系统并生成 SD 卡映像。
5. 硬件到位后,进一步分析性能并根据要求优化加速功能。

我们能在 SDSoC 环境中开发出可在裸机、FreeRTOS 或 Linux 操作系统上运行的各种不同应用。该环境内置支持 ZedBoard、MicroZed 和Digilent ZYBO 等大部分 Zynq SoC 开发板。这样,我们不仅能加速开发应用,还能通过该功能定义自己的底层硬件平台,在自己的定制硬件平台能用于集成时使用。



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 运行Linux的ZedBoard设计实例 - FPGA/ASIC技术 -
 

"运行Linux的ZedBoard设计实例 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()