一、Xilinx 芯片类型(转自赛灵思官网)

目前学习的是7系列。性能从低到高:SPARTAN,ARTIX,LINTEX,VIRTEX。

芯片的内部资源在官网中也有介绍,此处就不贴了。

二、Vivado安装

由于电脑系统是win7的,所以在安装Vivado18.1时安装失败,只能安装16.4。看来以后的电脑系统要转用win10了。

三、Modelsim安装

安装Modelsim时,破解时注意创建系统环境变量时的路径,如C:\modeltech_10.5\LICENSE.TXT。注意要有LICENSE.TXT。(唉,一言难尽)需要再重启电脑

四、点亮LED(转自黑金用户手册)

在刚接触Vivado时,以黑金AX7103开发板的用户指导手册作为参考。(全名《黑金AX7103开发板Verilog教程V1.0pdf》)

创建工程

IBUFGDS原语 (FPGA中还有其他的原语)

因为开发板中输入的是差分时钟,而程序中用的是单端时钟,所以需要调用一个IBUFGDS的原语将差分全局时钟转换成单端全局时钟。(IBUFGDS是IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲)

IBUFGDS #
(.DIFF_TERM ("FALSE"),.IBUF_LOW_PWR("FALSE")
)u_ibufg_sys_clk(.I(sys_clk_p),    //此处连接差分时钟信号 正极.IB(sys_clk_n),   //此处连接差分时钟信号 负极.O(sclk)          //此处连接程序中要使用的 单端时钟);

添加引脚约束文件(XDC)

XDC文件主要完成管脚的约束、时钟的约束、组的约束。

添加程序文件时是Add Sources >> Add or create design sources

添加引脚约束文件是Add Sources >>Add or create constraints

引脚定义文件中的内容,以该例程点亮LED为例:

set_property CFGBVS VCCIO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]############## clock define##################
create_clock -period 5 [get_ports sys_clk_p]            //差分时钟的时钟周期为5ns
set_property PACKAGE_PIN R4 [get_ports sys_clk_p]
set_property IOSTANDARD DIFF_SSTL15 [get_ports sys_clk_p]############## key define##################
set_property PACKAGE_PIN T6 [get_ports rst_n]
set_property IOSTANDARD LVCMOS15 [get_ports rst_n]      //电压为1.5V##############LED define##################
set_property PACKAGE_PIN C17 [get_ports {led[0]}]       //数组时要用{ }
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]   //电压为3.3V
set_property PACKAGE_PIN D17 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property PACKAGE_PIN V20 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property PACKAGE_PIN U20 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]#############SPI Configurate Setting##################    //提高SPI FLASH的读写时钟
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]            //使用X4的方式读写
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]

(1)前面两句是配置CFGBVS引脚的电压和配置电路的电压。

在黑金开发板上CFGBVS引脚(即BANK 0 的VCCIO)是上拉到3.3V;配置电路的电压也是3.3V。

(2)基本XDC编写语法(按对编写)

(2.1) set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称” ]
                电平信号癿约束如下:
                   (2.2) set_property IOSTANDARD "电压" [get_ports “端口名称” ]
                需要注意文字的大小写;端口名称是数组的话需要用{ }括起来(led信号)。端口名必须和源代码中的名字一致。

(2.3)create_clock -period "周期" [get_ports “端口名称” ]

时钟引脚还需要定义时钟周期约束,差分时钟只需要定义和约束 P 引脚。此处的周期单位为ns。

(3)防止固化后,关电后重新上电需要等好长时间。所以对SPI FLASH也进行了时钟约束。

编译

(1)点击 Run Synthesis,即可开始综合并生成网表文件

(2)点击 Run Implementation,开始布局布线

(3)点击Generate Bitstream,生成 bit 文件

(4)点击 Implementation >> Report Utilization 查看板子实际资源使用情况:LUT(查找表)、FF(寄存器)、IO(管脚)、BUFG(时钟Buffer)

仿真

(1)设置vivado仿真配置,点击 Simulation >> Simulation Setting,将Simulation栏中的xsim.simulate.runtime 根据需要修改,其他按默认设置即可。

(2)添加测试文件。Add Sources >> Add or create simulation sources。

(3)编写测试文件

`timescale 100ps / 1ps
//
// Module Name: vtf_led_test
//
module vtf_led_test;// Inputsreg sys_clk_p;wire sys_clk_n;reg rst_n;// Outputswire [3:0] led;// Instantiate the Unit Under Test (UUT)led_test uut (.sys_clk_p(sys_clk_p),.sys_clk_n(sys_clk_n),.rst_n(rst_n),.led(led));
initial begin// Initialize Inputssys_clk_p = 0;rst_n = 0;// Wait 100 ns for global reset to finish#1000;rst_n = 1;// Add stimulus here, stop simulation after 2ms#20000;$stop;endalways #25 sys_clk_p = ~ sys_clk_p; //5ns 一个周期,产生 200MHz 时钟源,timescale是100nsassign sys_clk_n=~sys_clk_p;    //此处需要注意
endmodule

(4)点击 Run Simulation >> Run Behavioral Simulation

下载和调试

(1)右键Program And Debug >> Bitstream Setting...;-bit_file打勾,其他不打勾。

(2)点击Generate Bitstream 产生 bit 文件和 bin 文件。

(3)点击Program And Debug >> Open Hardware Manager >> Open Target >> Auto Connect ,在Hardware界面下显示xc71100t_0 的图表说明JTAG已经建立连接。

(4)右键xc71100t_0 >> Program Device

(5)软件会自动选择项目生成的 bit 件,点击Program即可。

固化

(1)右键xc71100t_0 >> Add Configuration Memory Device...

(2)选择FLASH型号

(3)在弹出的 Program Configuration Memory Device 窗口中,Configration file 选择生成的 .bin 文件。

(4)点击OK,开始编程FLASH

Vivado初学笔记相关推荐

  1. python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...

    环境,Win10,python3.7.3,wxPython 4.0.4,wxFormBuilder 3.9 1.准备一个窗体. 点击wxformbuilder上方的标签"forms" ...

  2. Lucene.Net 初学笔记 - 索引

    上次随笔写的Lucene.Net 初学笔记 - 介绍,有许多前辈让我知道了Lucene.Net已经不再更新,最后的版本写到2.9.2,不过只更新在svn上.我上次下载是官方正式发布的版本,只有2.0. ...

  3. 0起步的摄影初学笔记

    摄影初学笔记 双镜头反光相机 单镜头反光相机(单反) 光圈 类似瞳孔大小 景深  成像范围 小光圈大景深 大光圈小景深 Av模式:光圈有限模式 自己决定光圈大小 左手动镜头调光圈 右手相机调光圈 光圈 ...

  4. GAMMA初学笔记三

    GAMMA初学笔记三 简单记录下学习过程,以防后面自己忘记,如果有问题,欢迎大家交流留言. 一.语法记录 1.查看影像经纬度范围 SLC_corners 20190424.mli.par 2.拼接哨兵 ...

  5. cocoscreator初学笔记001

    cocoscrestor初学笔记 由于工作原因需要学习cocoscreator基础进行简单的游戏制作,也因为时间原因,之前自学的unity3d也放置了许久,等有空了才能填之前unity3d学习的坑了. ...

  6. Python初学笔记(第一学期学完c后和栗子一起学python)

    Python初学笔记 一.基本数据类型 1.整数 2.浮点数 3.字符串 4.布尔值(即"对"与"错"): 5.空值 二.变量的定义 1.变量名 2.变量的定义 ...

  7. ASP.NET MVC 初学笔记.3 MVC5、EF、RDLC实现报表操作

    在ASP.NET的研究学习中又要用到报表,比如在OA系统里实现凭证.文件等,报表是一个必不可少的东西,但百度了一圈,发现讲得最多的还是水晶报表等第三方报表,好像微软原装的RDLC报表随着MVC的升级渐 ...

  8. CMake初学笔记(一)

    CMake初学笔记(一) CMake是什么 CMake怎么实现跨平台 CMake具体实践过程 CMakeLists.txt编写快速入门 常见函数 例子 CMake是什么 跨平台编译工具,为了实现&qu ...

  9. Altium Designer 初学笔记

    Altium Designer 初学笔记–从零开始发厂打印 新手初学AD,此博客作为初学笔记,供日后复习及分享学习经验使用.如有不足,恳请指正. 软件:Altium Designer20 一.新建工程 ...

最新文章

  1. CentOS5.6下安装Oracle10G软件 【保留报错经验】
  2. linux和windows接口中文乱码_使用jmeter进行接口自动化实例
  3. 报错提示:java.lang.IllegalArgumentException: Target must not be null
  4. SVN错误---Authorization failed
  5. error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4
  6. spring源码分析之@ImportSelector、@Import、ImportResource工作原理分析
  7. ASP.NET MVC3 上传头像图片并截图
  8. 使用 Boost.MPI 的 gather() 的示例
  9. SUN服务器清除所有报错信息,SUN服务器可能遇到的问题总结.doc
  10. python 只去除英文_如何使用 Python 制作词云(Word Cloud)-英文词云篇
  11. 重载(overload)、覆盖(override)、隐藏(hide)的区别
  12. linux中Cron定时任务系统命令详解
  13. centos 截图命令 screenshot
  14. 「leetcode」1356.根据数字二进制下1的数目排序【如何计算二进制中1的数量】详解!
  15. Json简介与转换数据例子
  16. Angular动态注册组件(controller,service...)
  17. C++ malloc头文件
  18. kali系统的部分查看命令
  19. 软件企业研发人员激励机制研究
  20. you-get下载bilibili视频

热门文章

  1. Iconfont怎么保留图标颜色
  2. Redis 学习 - 2.Redis高级:RDB AOF 事务 锁 删除策略 Bitmaps HyperLogLog GEO
  3. 41个城市,轨道交通的数据都在这里
  4. android 绝对坐标,Android布局之绝对布局AbsoluteLayout详解
  5. aix查看oracle进程内存使用情况,AIX 查看进程的内存使用情况
  6. 发送邮件springboot-stater-mail
  7. JavaScript万能比较函数
  8. 三层交换机的配置练习
  9. C++ : 类的成员函数修改类中数据成员值
  10. html屏蔽右键、禁止复制与禁止查看源代码