基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写

这篇具有很好参考价值的文章主要介绍了基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写

终于找到之前写的部分了,在OneNote上,以后还是专注写在一个地方

1. 系统架构图

ZedBoard 可以通过四个不同的方法烧写,这些方法是:

  1. USB-JTAG
    这是默认的并且是最直接的烧写 ZedBoard 的方法 , 这只要通过 ZedBoard 工具包的 USB 到 micro-USB 连接线就可以直接完成。

  2. 传统 JTAG
    板卡上有一个可用的 Xilinx JTAG 接口,如果需要的话可用来 替代 USB-JTAG 连接。这会需要一根未包含在 ZedBoard 工具包中的连接线:如一根 Xilinx Platform USB 连接线 [11],或者一根 Digilent USB-JTAG 烧写线 [10]。

  3. Quad-SPI 闪存
    板卡上的闪存是非易失性的,因此它可以用来保存板卡上 次断电时的配置信息。使用这种方法不需要连接线来烧写 Zynq 设备。

  4. SD 卡
    ZedBoard 的背面有一个 SD 卡槽。利用这个特性可以通过 SD 卡中存 储的文件来烧写 Zynq,并且不需要任何烧写线。这种方法在 《ZedBoardGetting Started Guide》中有所描述 [6]。

ZedBoard 的用户可以通过一系列的跳线来选择引导 / 烧写方式,这些跳线位于 Digilent logo 的下方,并在图 6.4 中有所标注。在五个跳线中,中间的三个被用 来定义板卡的烧写信息来源 (JTAG,闪存或 SD 卡),最右边的控制 JTAG 的模式,最左边则决定内部 PLL 是否被使用。
上文引用网址
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

2. vivado软件

这一个上一小节也提供,单二者用的不是一个例子
操作目录如做所示。
第一个是项目管理(project manager),其中右基础设置、添加头文件(例如约束文件或者源代码文件)、语言模板(相当于语言帮助,里面有些常用句模板、IP目录
第二个是IP 综合块,里面右创建、打开和产生block design
第三个是仿真(可以看,里面有五种不同的仿真模式(行为仿真、综合功能仿真、综合时序仿真、实现功能仿真、实现时序仿真)
第四个是RTL分析(寄存器级别),查看当前设计的基础原理图
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

第五个是综合分析(synthesis),查看当前元器件级别的原理图
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

第六个implementation,实现级别,查看在当前硬件上的原件占用以及排布情况
(一块块的,酷似农田)
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

第七个是程序和debug,其中第一个是产生bitestream文件,这类文件适用于烧写至硬件中执行。但事先需要打开目标硬件,在右击当前硬件选择program device,即可烧写bit流文件至zedboard中

3. USB转串口测试

收到的板子在SD卡内预装了LINUX内核和文件系统,下面就是给大家介绍如何使用串口终端查看启动过程的输出,以及使用简单命令控制读开关量和写数码管;
连接以太网线实现了HTTP协议可以通过网页访问板子的WEB页面,通过SSH客户端可以对板子进行控制;
连接HDMI之后在屏幕上显示了两只企鹅(证明HDMI正常);连接VGA显示;在OLED上显示DIGILENT的图标。

首先需要拷贝SD_IMAGE内的文件到SD卡的跟目录下。

3.1.串口:

  1. 先连接串口,打开putty_V0.63.0.0.43510830软件,连接主机和zedboard(需要安装USB转串口的驱动)(如下图CP210xVCPInstaller_x64)
    基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

  2. 就可以用putty_V0.63.0.0.43510830软件输入查看灯情况和开关情况等
    基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

  3. 搜索ip文件可以看见Linux目录
    输入:ftp://192.168.1.10/
    基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习
    步骤:
    跳线安装readme设置,可以只通过串口连接,也可以通过网口(下图左为串口,右为网口SSH)
    基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

3.2.网口:

  1. 连接网口,将主机网络管理ip调成zedboard
  2. 用串口ping一下,检查连接情况
  3. 就可以用putty_V0.63.0.0.43510830软件输入查看灯情况和开关情况等
    搜索ip文件可以看见Linux目录

4.PL烧写程序

第一步:用vivado生成源代码文件和约束文件
第二步:调试成功后,生成bits流文件
第三步:open target连接zedboard:
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

上图中,arm是32arm:ps-》programmable system 处理器系统
xc7z020_1: pl-》 programmable logic
这次用的就是pl,就是将ZYNQ7当做一个单纯的FPGA来使用。
第四步:右击选择program device,即可烧写bit流文件至zedboard中

5.PS处理器系统

Zynq7这块板子内核分为ps和pl,其中,pl表示处理器可编辑器件,单独使用可以看作FPGA,ps是处理器系统,例如arm32这样的嵌入式cpu,与pl不同的是:语言一般使用c、c++这样的软件开发语言。本次尝试就是使用ps实现一些串口功能。
PS: programmable system
这部分上学期写的,这学期好久没看都有点忘记了,所以要多实践!
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习
1. 点击生成某个bd文件,board design 设计IP
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习
2. 双击PS产生左图。去掉不用的端口模块,以免重新连接
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习
3. 右击bd文件,先generate output product,再create HDL wrapper。产生硬件描述语言,并自动产生top文件。
4. 生成bits流文件
5. 导入SDK,并自动打开SDK
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习
6. 打开串口(与烧写口不是一个口),运行程序

基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

6.PL和PS协同处理

ZYNQ7的逻辑部分PL和处理器PS部分采集协同工作才能体现出其强大。这个例子只是简单的是一个实现:将FPGA当做一个PS处理器的外设,通过寄存器地址映射到PS的寻址空间。在处理器的使用C程序访问这些寄存器,来实现软件和逻辑结合的协同设计的效果。具体步骤就是先在VIVADO配置ZYNQ处理器吗,做好FPGA的外设,互联完成之后生产BIT流文件下载到板子。在SDK环境下开发好软件之后,进行在线调试运行。下面展示VIVADO的操作步骤,以及SDK的下对代码进行分析

步骤:
1、 创建项目、创建一个IP块设计(block design),在块中加入ZYQN主模块、AXI interconnect交互模块、两个GPIO(一个led一个sw,8输入8输出)、一个reset模块
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

(这里我一开始生成五个模块后直接自动连接,后来运行时会报错,查看后发现有线连错了。所以自动连线一定要注意,尤其时reset的线)
2、和PS处理器系统一样吗,需要右击当前bd文件,先generate output product,再create HDL wrapper。产生硬件描述语言,并自动产生top文件。
3、编译通过后,生成bits流文件,再open target
4、expert hardware 再launch SDK,
5、打开SDK后,创建新的application project,再设置时,选择外设测试。在testperiph.c代码中选择适当的测试代码,其余注释掉
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习

可以将主函数换成上述代码,这样LED和SW就作为arm的外设进行调试。

总结:左边的方法不知道好不好用,还是说直接用Verilog写到底更切合FPGA习惯。但是ZYNQ的优势也是在于结合PS和PL。目前学习和接触的实践太少了,仍需要进一步了解。
当时电脑同时安装了vivado和 vivado HLS,找了许多解释的:
基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写,FPGA,fpga开发,学习文章来源地址https://www.toymoban.com/news/detail-585750.html

到了这里,关于基于vivado(语言Verilog)的FPGA学习(2)——zedboard开机测试和程序烧写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于vivado+Verilog FPGA开发 — 基于AD9767高速DAC的DDS信号发生器

    基于vivado+Verilog FPGA开发 — 基于AD9767高速DAC的DDS信号发生器

    目录  一、功能定义 二、设计输入  1、主模块 2、DDS模块 3、 按键消抖模块 三、功能仿真  四、综合优化 五、布局布线 六、时序仿真 七、板级调试  代码规范:Verilog 代码规范_verilog代码编写规范-CSDN博客 开发流程:FPGA基础知识----第二章 FPGA 开发流程_fpga 一个项目的整个

    2024年03月18日
    浏览(18)
  • ZedBoard+AD9361_FPGA的PL端纯逻辑(verilog)配置控制9361(一)_初始化寄存器脚本文件生成

    ZedBoard+AD9361_FPGA的PL端纯逻辑(verilog)配置控制9361(一)_初始化寄存器脚本文件生成

    由于9361的寄存器较多,首先利用AD936X Evaluation Software 软件,根据我们的项目需求,配置相应的功能参数,生成寄存器参数配置文件。 我建议大家选择安装AD936X Evaluation Software 2.1.3版本,下载安装软件,一路点击下一步即可完成安装。软件安装包:百度网盘  提取码:mww7 安装

    2024年02月13日
    浏览(9)
  • 基于Verilog 语言开发的FPGA密码锁工程

    基于Verilog 语言开发的FPGA密码锁工程

    基于Verilog 语言开发的FPGA密码锁工程。 通过矩阵键盘输入按键值。 输入12修改密码,13清除密码,可以修改原来默认的密码,修改时首先要输入当前密码进行验证,正确后才能更新当前密码,否则修改不成功。 修改结束后按键15,确认修改成功。 也直接使用默认密码作为最终

    2024年02月10日
    浏览(10)
  • FPGA 驱动数码管动态显示(Verilog&Vivado)

    FPGA 驱动数码管动态显示(Verilog&Vivado)

    应用实例: (1)使用串口发送实现ACX720开发板时钟显示 本章将实现 FPGA 驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证。最终板级调试时使用 Virtual Input/Output(VIO,虚拟输入/输出端口工具),输入需要显示的数据,数码管则显

    2023年04月12日
    浏览(17)
  • 基于FPGA的Lorenz混沌系统verilog开发,含testbench和matlab辅助测试程序

    基于FPGA的Lorenz混沌系统verilog开发,含testbench和matlab辅助测试程序

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 将vivado的仿真结果导入到matlab显示三维混沌效果:     vivado2019.2 matlab2022a testbench如下所示:        洛伦兹混沌系统是一种非线性动力系统,最初由爱德华·洛伦兹(Edward

    2024年02月11日
    浏览(10)
  • m基于FPGA的8PSK调制解调系统verilog实现,包含testbench测试文件

    m基于FPGA的8PSK调制解调系统verilog实现,包含testbench测试文件

    目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 8PSK调制原理 2.2 基于FPGA的8PSK调制解调器设计和实现 3.Verilog核心程序 4.完整算法代码文件获得 vivado仿真结果如下: 借助matlab看8PSK的星座图:         随着通信技术的不断发展,相位调制技术因其高频谱效率和抗干扰能力而广

    2024年02月05日
    浏览(12)
  • 一种基于FPGA的TCP乱序重排算法,并通过Verilog语言进行了实现

    一种基于FPGA的TCP乱序重排算法,并通过Verilog语言进行了实现

    基于fpga的tcp乱序重排算法实现,通过verilog实现适用于fpga的tcp乱序重排算法,并通过实际数据测试验证。 代码里包含注释,可以明白每个模块的含义。 采用自创的乱序重排算法,易于在硬件中实现。 该算法和工程可用于实际应用、算法设计、研究学习。 提供测试用的抓包文

    2024年02月05日
    浏览(57)
  • 基于FPGA的Verilog语言 signed unsigned 运算&&不同位宽运算(无聊的碎碎叨叨)

    基于FPGA的Verilog语言 signed unsigned 运算&&不同位宽运算(无聊的碎碎叨叨)

     此文以quartus为例,使用Verilog语言简单编写验证。并对常见赋值运算进行介绍,读者可采用附带程序进行验证和理解。 很神奇的一件事,机器运算仅可以完成最简单的“1+1”,而“1+1”在二进制中可以完成不同bit的加减。他是如何实现的呢? a.(相同位宽减法) 例如-8‘d8可以

    2024年02月10日
    浏览(11)
  • m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核

    m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核

    目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 Hamming编码过程 2.2 Hamming解码与纠错 2.3 FPGA实现 3.Verilog核心程序 4.完整算法代码文件 本系统进行了Vivado2019.2平台的开发,测试结果如下:        在现代数字通信和存储系统中,错误检测和纠正(Error Detection and Correction, EDC)机

    2024年01月23日
    浏览(10)
  • [从零开始学习FPGA编程-32]:进阶篇 - 基本时序电路-D触发器(Verilog语言)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:  目录 第1章 什么是时序电路 1.1 时序电路 1.2 什么是触发器

    2023年04月08日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包