基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程
基于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顶层文件(主函数)。里面可以把模块用上。但这个是不是和那个《块设计》冲突了,这个地方还不懂,过几天试一试看看。
本文可能有一些问题,可能之后的笔记会对此进行修正。如果大家觉得有问题,感谢大家提醒!!!
相关文章
- Mybatis进阶学习笔记——关系查询——一对多查询
- java基础知识回顾之java Thread类学习(三)--java线程实现常见的两种方式实现好处:
- 11-spring学习-表达式语言
- 机器学习、数据挖掘、人工智能、统计模型这么多概念有何差异
- R语言与显著性检验学习笔记
- sql学习
- VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介、案例应用之详细攻略
- Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)
- Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略
- Python语言学习:Python语言学习之文件读取&写入/操作系统(OS模块详解)的简介、案例应用之详细攻略
- Python语言学习:Python语言学习之列表/元祖/字典/集合的简介、案例应用之详细攻略
- Python语言学习:复杂函数(yield/@property)使用方法、案例应用之详细攻略
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
- Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
- Python语言学习之字母G开头函数使用集锦:global用法之详细攻略
- Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例(增删改查排序之选择指定列、根据条件选择特定数据、赋值、列名重命名、修改列数据、处理缺失值、列合并、分组之详细攻略
- Python:Python语言学习总结之常见变量与七大运算符
- 用于检测发作间期癫痫放电的图正则化模糊广义学习系统研究(Matlab代码实现)
- 机器学习案例(九):语言检测
- Python学习75:itertools
- Go语言并发与并行学习笔记(三)
- JavaSE学习总结(三)——Java语言编程练习、格式化字符与常量
- Swiftly语言学习1
- 迁移学习(MixMatch)《MixMatch: A Holistic Approach to Semi-Supervised Learning》
- Python语言开发学习之使用Python预测天气
- web前端Javascript开发学习之JavaScript中的预编译如何进行
- 排序学习之---插入排序
- VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介、案例应用之详细攻略
- VB.net:VB.net编程语言学习之基于VB.net语言控制VS软件中的窗体(各种控件及其属性代码说明)的简介、案例应用(GUI界面设计代码案例)之详细攻略
- java学习笔记记录-01 java简介