FPGA开发——vivado使用

导读:本篇文章讲解 FPGA开发——vivado使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    小生才疏学浅,孤陋寡闻,下文若有不当之处,还请赐教

一、vivado开发

1 error

1、synth8-5535 ? clk100 has illegal connection Xvendor=%s Xleid=%d Xhiername=%s”

      解决:从引脚输入的clk100不可以直接作为多个模块的输入信号

2 使用细节

  • 关于microblaze使用

   microblaze是内嵌在FPGA中的软核,一个工程文件可设置多个micrablaze

  • vivado HLS 代码中叠加或叠减符

在vivado HLS中写C/C++是不可使用叠加或者叠减符号,否则在RTL综合时或将某一个量定义成input/output型。

  • 关于Vivado IP的两种综合方式:Global 和 Out-Of-Context,见链接:

https://blog.csdn.net/Setul/article/details/81903800

  • vivado SDK 中program FPGA时不能更新download.bit

鄙人用的是vivado 2018.2,原因到xilinx官方论坛,百度找了一圈都没找到,估摸着是SDK本身的BUG;最后我把原hw_platform_x的download.bit文件删掉,新建了一个空的download.bit文件,重新program FPGA就好了;本来是想直接新建一个hw_platform_x+1来着,找了一圈也没找到怎么新建;不知道有没有朋友遇到过这种情况,还望在评论区留言解惑。

  • vivado SDK 编译.C文件时出现头文件错误

我遇到的是SDK自己的头文件说没有声明,之前都好好的,突然说没有该文件,后来多编译几次就好了,很奇怪,不知道原因,难道是SDK 的BUG?

  • vivado的网表文件

参考链接:https://blog.csdn.net/u014035968/article/details/105128741/

  • VIO模块

VIO模块可以连接到目标设计的IO引脚来模拟真实的IO引脚,vivado可以借助jtag对设计中的VIO信号针对性的置位,以便获得自己想要的场景

二、vivado的tcl脚本运用

再进行block design开发时,可以先进行图形界面开发,然后再export到tcl脚本,再在生成的tcl脚本的基础上增加synthsis、implementation和write bitstream等命令。

  • 一些重要命令
  1. apply_bd_automation
    该命令自动将板子上的资源连接到需要配置的信号,因此该命令一般要求需要调用的IP有对应的信号,例如reset信号、DDR信号等
    apply_bd_automation -rule xilinx.com:bd_rule:board -config {Board_Interface {reset (FPGA Reset)} Manual_Source {New External Port (ACTIVE_HIGH)}}  [get_bd_pins ddr4_0/sys_rst]

    该命令的作用是新建一个port口叫reset,并映射到FPGA开发板上的Reset信号,并连接到ddr4模块上的sys_rst的pin脚

    与该命令作用相同的可以用一下命令代替:

    set_property -dict [CONFIG.RESET_BOARD_INTERFACE {reset}] $ddr4_0

     

  2. get_cells、get_nets、get_ports、get_pins、get_clocks用法
    参考链接:https://blog.csdn.net/weixin_42626447/article/details/88973430
  3.  

三、XILINX FPGA芯片特性

     1、IO特性

       (1)输入输出标准:

               单端模式:可配置为LVCMOS,LVTTL,HSTL,PCI,SSTL电平标准,例如按键输入,led驱动等;

               差分输入输出(两个IO引脚):可以设置为LVDS,Mini_LVDS,RSDS,PPDS,BLVDS,以及差分HSTL和SSTL标准,这                                                                      样可增强FPGA的应用范围,处理不同类型的信号。

        (2)引脚可分为高效引脚(HP)和宽范围引脚(HR)

                HP:追求高效率,例如访问高速存储器和其他芯片间接口,电压最高1.8V;

                HR:满足宽范围应用的IO标准,电压最高3.3V

     2、内部存储器

                FPGA的内部存储器有两种:BRAM(块RAM)和DRAM(分布RAM)。

               二者最本质的区别是:BRAM默认输入有寄存器,所以它在读、写使能信号后的下一个时钟沿返回数据;而DRAM         就没有,就是个组合逻辑,读、写使能的同一时刻返回数据,即给地址就给数据。从时序的角度上来说,BRAM更好,唯一不足的是它是比较珍贵的硬件资源。

          (1)DRAM

               是由FPGA逻辑资源查找表LUT拼起来的。

          (2)BRAM

               FPGA 的固有硬件资源,主要用于产生较大FIFO或timing要求较高。可配置为同步双端口RAM和单端口RAM,每个双端口的36Kbit BRAM         

      3、时钟管理资源

        MMCM(mixed-mode clock manager):混合模式时钟管理器,用于在与给定输入时钟有设定的相位和频率关系的情况下,生成不同的时钟信号。

        PLL(phase-locked loop):锁相环,主要用于频率综合,使用一个PLL可以从一个输入时钟信号生成多个时钟信号。

        PLL输入时钟的频率范围为19~1066MHz。相较而言MMCM的频率范围更宽为10~1066MHz。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82540.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!