草庐IT

基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程

小草莓爸爸 2023-04-09 原文

基于vivado(语言Verilog)的FPGA学习(1)——了解程序面板和编译过程

每日废话:最近找实习略微一些焦虑,不想找软件开发,虽然有些C++和python基础(之前上课学的),但重点头疼的并不是语言,而是算法。想到本科阶段,有几次接触FPGA和MSP430时还是觉得很有意思,所以想往集成电路上转一下。(虽然当时还用的阿特尔(现被英特尔收购)的quartusⅡ工具,用的还是简单的VHDL和大量的时序集成电路。)去年一年回头又看了看Verilog的基本语法,趁着找实习的劲儿打算实操实操。


该系列文章主要记录自己学习AMD赛灵思的zed-board板子,在这个过程中慢慢熟悉一下Verilog和vivado工具。

文章目录


1、vivado界面介绍

奇了怪,总觉得上学期写了这部分,梦里写的?


1.1 左边的导航栏

第一个是整个项目的管理(设置包含了项目设备选择、语言选择、文件管理等;添加资源文件;语言模板;IP目录)其中IP就是集成好的逻辑器件,最早在quartus上也是用这个进行连线的。
第二个就是IP集成,分别是创建块设计(手贱点了一下就有了右边的bd后缀文件);打开块设计(手继续贱打开后发现可以生成已经存在的IP核和自己编译的模块,可能经过连接就可以组合在一起变成“新设计出来的块”)

第三个是运行仿真,里面:
1.行为仿真:比如在测试某个模块功能时,只需要写一个.v的激励文件测试该模块。以下四种会考虑电路情况

2.综合功能仿真:模拟无延迟情况,和行为仿真相同。

3.综合时序仿真:只要器件延迟(下面这个逻辑就不定状态了,很迷)

4.实现功能仿真:会将生成模块的逻辑器件映射到板子中的基本逻辑单元中,无延迟,所以和行为仿真相同

5.实现时序仿真:同上,包含了器件延迟和延迟线(例如在板子里,延迟线就是一对输入输出的实际距离连线)。这个地方与综合时序仿真不同,后面还恢复正常了???

第四个是RTL分析,也就是可以画出原理图程度的仿真。寄存器转换级

第五个是综合分析,可以画出实际情况会用到哪些具体原件的原理图。门级网表(因为用了for循环,叠加着加电路,图乱)

第六个是实现分析,会画出在板子上,用到哪些区域的哪些逻辑单元(LUT、乘法器、IO等)。实现级

距离拉近后:

再拉近:

1.2 右边的文件栏

有三类文件夹:
第一个是源代码文件(.v),可以自己写很多模块(函数库)
第二个是约束文件(.xdc),管脚赋值文件,这个感觉写着还很麻烦,需要将自己写的输入输出变量和硬件口对应起来。

第三个是激励文件,一般需要设置成top顶层文件(主函数)。里面可以把模块用上。但这个是不是和那个《块设计》冲突了,这个地方还不懂,过几天试一试看看。

本文可能有一些问题,可能之后的笔记会对此进行修正。如果大家觉得有问题,感谢大家提醒!!!

有关基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. ruby - Sinatra set cache_control to static files in public folder编译错误 - 2

    我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.

  4. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  5. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  6. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  7. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  8. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  9. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  10. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

随机推荐