Zedboard学习(四):PS+PL搭建SoC最小系统
zynq最核心的設計理念就是軟件加硬件,即PS+PL。通過軟硬件協同設計,結合了FPGA與雙arm9內核,對于嵌入式擁有極大的優勢。
SoC:System on
Chip的縮寫,稱為芯片級系統,也有稱片上系統,意指它是一個產品,是一個有專用目標的集成電路,其中包含完整系統并有嵌入軟件的全部內容。
整個片上系統主要使用資源:ZYNQ系列FPGA XC7Z020、2片DDR、串口芯片(USB轉UART)。zedboard板子自帶了這些資源,不需要另外添加模塊。
PL部分(VIVADO):
新建工程,工程名為min_system,步驟省略,與前一篇博客建立工程步驟相同。(打開鏈接)
建好工程后,點擊Create Block Design。
名字取為soc_system。
剛建好的Block Design。
點擊,添加IP核。
在彈出的搜索框中輸入zynq,查找zynq7處理器。雙擊選中即可添加入Block Design。
添加完成后,點擊上方出現的Run Block Design,自動進行配置。加載vivado軟件自帶的官方配置。
直接點OK。
加載好的zynq處理器系統。
其相當于一個CPU。現在在vivado中配置的是基礎的硬件配置,屬于PL;后面可以在SDK中對其進行軟件編程,屬于PS。
給處理器連上時鐘,才可以工作。用鼠標左鍵長按拖動即可連線。
雙擊ZYNQ7 Processing System模塊,可以自定義硬件配置,添加或刪減CPU的硬件功能。這里不做修改。
保存當前設計,之后可以看到多出了一個design,如下所示:
在soc_system上,即之前建立的Block Design,右鍵–>Generate Output Products。
點擊generate產生仿真模型。
官方的配置文件一般都不會出錯,如果是自己設計的,最好還是仿真一下,避免有bug。
回到前面新建好的Block Design,右鍵–>Create HDL Wrapper,創建頂層verilog HDL文件。
選上面的,創建的Verilog HDL文件用戶可以自己修改;選下面的,不可以修改。一般選上面的就行了。
隨后自動生成頂層的Verilog HDL文件。
產生比特流文件,作為FPGA的底層硬件配置。
等待vivado分析綜合完,不過編譯得挺慢的,喝杯茶休息一下吧。
產生了比特流文件之后就要導出了。
File–>Export–>Export Hardware
注意Include Bitstream也要選勾,要把生成的比特流文件導出到sdk,不然怎么下載都不會成功的,因為沒有底層硬件配置好CPU,軟件程序怎么可能跑的起來。
PS部分(SDK):
接下來,啟動SDK進行軟件部分的設計。
File–>Launch SDK
SDK界面。
新建工程。
File–>New–>New Appilcation Project
選項解釋:
OS Platform:操作系統平臺,有三種可選:standalone(裸機)、freertos823_xilinx、linux。選standalone。
Hardware Platform:選擇的就是之前導出的硬件平臺,當然也可以選擇其他軟件自帶的配置好的硬件平臺。默認已經選擇好了我們自己建立的硬件平臺。
Processor:zynq自帶的兩個arm9處理器,選擇其中一個即可。默認選擇好了,不改動。
Language:可以選擇c語言或者c++,選默認的c語言。
Board Support Package:板級支持包,名字取為Hello_bsp。
Next,選擇Hello World工程模板。
點擊Finish后,創建工程。
修改Hello_World.c文件。
/****************************************************************************** * * Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * Use of the Software is limited solely to applications: * (a) running on a Xilinx device, or * (b) that interact with a Xilinx device through a bus or interconnect. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * ******************************************************************************//** helloworld.c: simple test application** This application configures UART 16550 to baud rate 9600.* PS7 UART (Zynq) is not initialized by this application, since* bootrom/bsp configures it to baud rate 115200** ------------------------------------------------* | UART TYPE BAUD RATE |* ------------------------------------------------* uartns550 9600* uartlite Configurable only in HW design* ps7_uart 115200 (configured by bootrom/bsp)*/#include <stdio.h> #include "platform.h" #include "xil_printf.h"int main() {init_platform();print("Hello Zedboard\n\r");cleanup_platform(); return 0; }程序就是從串口打印字符串:”Hello Zedboard\n\r”。
默認設置波特率為115200。
下載測試:
SDK自帶串口調試助手,點擊+號,新建一個連接:
填入對應的端口號。
右鍵Hello工程,Run as–>Run Configuration
雙擊下面選中的項,新建一個下載配置。
如下都是默認配置:
指定了硬件平臺、處理器、比特流文件、tcl文件。bit文件為之前vivado下生成的比特流文件。
工程名、可執行文件。elf文件是SDK中工程編譯后生成的可執行文件。
最后可以下載程序進板子了。
首先配置底層硬件。
xilinx tools–>program fpga
由于之前已經導出了比特流文件,所以默認已經選好了比特流文件。
點擊Program。
然后下載軟件程序。
之前在Run Configuration已經配置好,可以直接Run了。
點擊 的小箭頭,選擇之前配置好的下載配置。等一下子程序會下載進去。
運行結果:
總結
以上是生活随笔為你收集整理的Zedboard学习(四):PS+PL搭建SoC最小系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zedboard学习(三):PL下流水灯
- 下一篇: 调用face++平台api进行人脸识别