0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hello WorldFPGA工程师工作内容

电子设计 来源:电子设计 作者:电子设计 2022-02-09 11:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:ALINX

* 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。

适用于板卡型号:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目录为“ps_hello/vivado”

从本章开始由FPGA工程师与软件开发工程师协同实现。

前面的实验都是在PL端进行的,可以看到和普通FPGA开发流程没有任何区别,ZYNQ的主要优势就是FPGA和ARM的合理结合,这对开发人员提出了更高的要求。从本章开始,我们开始使用ARM,也就是我们说的PS,本章我们使用一个简单的串口打印来体验一下Vivado Vitis和PS端的特性。

前面的实验都是FPGA工程师应该做的事情,从本章节开始就有了分工,FPGA工程师负责把Vivado工程搭建好,提供好硬件给软件开发人员,软件开发人员便能在这个基础上开发应用程序。做好分工,也有利于项目的推进。如果是软件开发人员想把所有的事情都做了,可能需要花费很多时间和精力去学习FPGA的知识,由软件思维转成硬件思维是个比较痛苦的过程,如果纯粹的学习,又有时间,就另当别论了。专业的人做专业的事,是个很好的选择。

1. 硬件介绍

我们从原理图中可以看到ZYNQ芯片分为PL和PS,PS端的IO分配相对是固定的,不能任意分配,而且不需要在Vivado软件里分配管脚,虽然本实验仅仅使用了PS,但是还要建立一个Vivado工程,用来配置PS管脚。虽然PS端的ARM是硬核,但是在ZYNQ当中也要将ARM硬核添加到工程当中才能使用。前面章节介绍的是代码形式的工程,本章开始介绍ZYNQ的图形化方式建立工程。

FPGA工程师工作内容

下面介绍FPGA工程师负责内容。

2. Vivado工程建立

2.1 创建一个名为“ps_hello”的工程,建立过程不再赘述,参考“PL的”Hello World”LED实验”。

2.2 点击“Create Block Design”,创建一个Block设计,也就是图形化设计

pIYBAGAJWK6ARscqAACtN0CIMoA100.jpg

2.3 “Design name”这里不做修改,保持默认“design_1”,这里可以根据需要修改,不过名字要尽量简短,否则在Windows下编译会有问题。

pIYBAGAJWOuAQGQ6AABMZyDhcXg159.png

2.4 点击“Add IP”快捷图标

2.5 搜索“zynq”,在搜索结果列表中双击”Zynq UltraScale+ MPSoC”

2.6 双击Block图中的ZYNQ核,配置相关参数

2.7 首先出现的界面是ZYNQ硬核的架构图,可以很清楚看到它的结构,可以参考ug1085文档,里面有对ZYNQ的详细介绍。图中绿色部分是可配置模块,可以点击进入相应的编辑界面,当然也可以在左侧的窗口进入编辑。下面对各个窗口的功能一一介绍。

o4YBAGAJWs2ALOq3AADGssXbcaA185.jpg

2.7.1 Low Speed配置

1) 在I/O Configuration窗口,配置BANK0~BANK2电压为LVCMOS18,BANK3电压为LVCMOS33。首先配置Low Speed管脚,勾选QSPI,并设置为”Single”模式,Data Mode为”x4“,勾选Feedback Clk

pIYBAGAJWwuAZEPHAACFD0IPArM602.jpg

2) (AXU2CGA开发板没有EMMC,不需要勾选此项)勾选SD 0,配置eMMC。选择MIO13..22,Slot Type选择eMMC,Data Transfer Mode为8Bit,勾选Reset,并选择MIO23。

o4YBAGAJW0yAYv8UAAApXB8V5Ts965.png

3) 勾选SD 1,配置SD卡。选择MIO 46..51,Slot Type选择SD 2.0,Data Transfer Mode选择4Bit,勾选CD,用于检测SD卡插入,选择MIO45

o4YBAGAJW4qAcVbeAAAntwE3Yz4475.png

4) 勾选I2C 1,用于EEPROM等的I2C,选择MIO 32..33

pIYBAGAJW8iAJFlZAAAKGeV09dg682.png

5) 勾选串口UART 1,选择MIO 42..43

o4YBAGAJXEWAVJaoAAAOi48AMSg104.png

6) 勾选TTC0~TTC 3

o4YBAGAJXIKAfW5wAAATI2mtBUs957.png

2.7.2High Speed配置

1) High Speed部分首先配置PS端以太网,勾选GEM 3,选择MIO 64..75,勾选MDIO 3,选择MIO 76..77

pIYBAGAJXMCAfreYAAAtd9lKPnY577.png

2) 勾选USB 0,选择MIO 52..63,勾选USB 3.0,选择GT Lane1

pIYBAGAJXP6AQq8gAAArjFFYctY355.png

USB复位选择MIO 31

pIYBAGAJXTyAK4-kAAALIwgr2VM369.png

3) 勾选PCIe

o4YBAGAJXXqAPH9ZAABW5o5l2B0382.png

4) 点开Switch To Advanced Mode,选择PCIe Configuration,修改以下几个参数,配置为ROOT模式

o4YBAGAJXbmACo2BAACEubISaaQ563.jpg

5) 回到I/O Configuration,选择GT Lane0,复位选择MIO 37;勾选Display Port,选择MIO 27..30,Lane Selection选择Dual Higher

o4YBAGAJXf6AYPTBAABzeKK2p28546.png

至此,I/O部分配置完毕

2.7.3 时钟配置

1) 在Clock Configuration界面,Input Clocks窗口配置参考时钟,其中PSS_REF_CLOCK为ARM的参考时钟默认为33.333MHz;PCIe选择Ref Clk0,100MHz;Display Port选择Ref Clk2,27MHz;USB0选择Ref Clk1,26MHz。

pIYBAGAJXjyAOx8ZAABYQ9WfuYo654.png

2) 在Output Clocks窗口,如果不是IOPLL,改成IOPLL,保持一致,用同样的PLL

pIYBAGAJXn2ACu8SAACkJr1z_H4930.jpg

3) PL的时钟保持默认,这是给PL端逻辑提供的时钟。

o4YBAGAJXs2AOOR9AAAYqfp4IOA017.png

4) Full Power部分,其他保持默认,将DP_VIDEO改为VPLL,DP_AUDIO和DP_STC改为RPLL。

o4YBAGAJXwuAf2GkAAAl6avl6mY864.png

最下面的Interconnect修改如下

pIYBAGAJX0mASWf6AAAUpMVC-JY952.png

其他部分保持默认,至此,时钟部分配置完成。

2.7.4 DDR配置

在DDR Configuration窗口中,Load DDR Presets选择”DDR4_MICRON_MT40A256M16GE_083E”

pIYBAGAJX4eABKewAACTFmydx50553.jpg

AXU2CGA开发板配置如下:

pIYBAGAJX8WAJRw2AABNDT6hF7c580.png

AXU2CGB开发板配置如下:

pIYBAGAJYAOAUtV-AABBtXO5IVU477.png

其它保持默认,点击OK,配置完成,并连接时钟如下:

1)选择Block设计,右键“Create HDL Wrapper.。.”,创建一个Verilog或VHDL文件,为block design生成HDL顶层文件。

o4YBAGAJYIWAfdxqAABGCa5r3m4430.png

2)保持默认选项,点击“OK”

o4YBAGAJYMSALo_EAABN0Sj_m_U678.png

3)展开设计可以看到PS被当成一个普通IP 来使用。

pIYBAGAJYQGAHwICAAA90ds-xmA959.png

4)选择block设计,右键“Generate Output Products”,此步骤会生成block的输出文件,包括IP,例化模板,RTL源文件,XDC约束,第三方综合源文件等等。供后续操作使用。

pIYBAGAJYUCAPmAAAABe785h4uQ743.png

5)点击“Generate”

pIYBAGAJYYCASKKmAABGPyMXOlw414.png

6)在菜单栏“File -》 Export -》 Export Hardware.。.”导出硬件信息,这里就包含了PS端的配置信息。

o4YBAGAJYb-AW3n6AAB_w__2FQc566.png

7) 在弹出的窗口中选择Fixed,点击Next

pIYBAGAJYf-AEr87AABl-Wgn30Q272.png

8) 在弹出的对话框中点击“OK”,因为实验仅仅是使用了PS的串口,不需要PL参与,这里就没有使能不选择“Include bitstream”,点击Next

pIYBAGAJYkyAflstAABDlPKZfbk552.png

9) 可修改导出名字以及导出路径,默认是在vivado工程目录下的,这个文件可以根据自己的需要在合适的位置,不一定要放在vivado工程下面,vivado和vitis软件是独立的。在这里我们选择默认不做更改。点击Next

o4YBAGAJYoqAc_PZAABSfN-sDL4039.png

点击Finish

pIYBAGAJYsuAfeCOAABXSQl-Kw0602.png

o4YBAGAJYwmAPHEGAAAL_sEFqMQ163.png

此时在工程目录下可以看到xsa文件,这个文件就是这个文件就包含了Vivado硬件设计的信息,可交由软件开发人员使用。

o4YBAGAJY0eAVX9cAAAbnMt8Kqs525.png

到此为止,FPGA工程师工作告一段落。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630270
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    这句话用在哪里都合适 #硬件工程师 #电子爱好者 #工作日常 #内容过于真实

    硬件工程师
    扬兴科技
    发布于 :2025年10月17日 18:20:17

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    新编电气工程师手册

    新编电气工程师手册,一款最新的、最全面的电气知识手册。 全手册1522页。共五篇、四十六章。 该手册不愧为对从事电气专业的所有人员都实用的一部非常好的工具书。不用再一册一册地找了,内容丰富,有图有
    发表于 06-03 16:26

    (仰天长啸)为什么受伤的总是硬件工程师...#MDD#MDD辰达半导体 #电子工程师

    电子工程师
    MDD辰达半导体
    发布于 :2025年04月27日 18:21:47

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    硬件工程师手册(全套)

    §1.2.1 硬件工程师职责 一个技术领先、运行可靠的硬件平台是公司产品质量的基础,硬件工程师职 责神圣,责任重大。yf-f4-06-cjy 1、硬件工程师应勇于尝试新的先进技术之应用,在产品硬件
    发表于 04-22 15:05

    硬件工程师:回答我!#回答我 #硬件工程师 #YXC晶振 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2025年03月25日 18:46:59

    一招拿捏电子工程师#被AI拿捏了 #电子工程师 #电子电工

    电子工程师
    安泰小课堂
    发布于 :2025年03月25日 17:30:51

    硬件系统工程师宝典—完整版

    资料介绍: 这是一本硬件工程师的必备书,介绍了硬件工程师所必须的一些知识,例如EMC、SI、PI等知识,让你将学习过的硬件知识融会贯通。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评
    发表于 03-22 15:47

    硬件工程师工作前VS工作后!抱歉!是我想的太简单了!# #电工 #电子爱好者

    硬件工程师
    MDD辰达半导体
    发布于 :2025年01月08日 18:15:18