FPGA
文章平均质量分 91
Smart_Devil
就是不想写简介
展开
-
【Vivado那些事儿】多版本VIVADO,怎么设置默认运行版本?
有过工程开发经验的小伙伴都会有过在同一台计算机上安装多个Vivado版本的情况,例如装了Vivado 2018.3、Vivado 2018.2、Vivado 2021.1这三个版本。当在开发FPGA项目时,会需要切换到不同的Vivado版本以满足工程的要求。本文将介绍如何在运行xx.xpr文件时,设置默认运行的版本。原创 2023-03-27 21:34:00 · 5765 阅读 · 2 评论 -
Modelsim的仿真之路(结束篇之波形比较)
在仿真上,除了比较仿真激励代码外,直接比较仿真结果也是一种需要。原创 2022-11-06 12:10:01 · 837 阅读 · 0 评论 -
Modelsim的仿真之路(代码覆盖率)
对于仿真的激励测试,其实会有代码覆盖率一说,不过我们平常可能更多是功能覆盖,代码覆盖估计关注的人要少些,不过作为相对系统性的学习,还是大概看下这个功能吧~原创 2022-10-05 17:02:54 · 3835 阅读 · 0 评论 -
Modelsim的仿真之路(Memory小技能)
在Modelsim中关于Memory的一些小技能原创 2022-08-27 17:23:45 · 1913 阅读 · 1 评论 -
Modelsim的仿真之路(激励文件“逆”生成)
激励文件“逆”生成前序编译文件产生激励信号编辑激励信号激励文件生成Testbench测试EVCD测试结束前序对于激励文件,我常用的是直接手写,最初学这个的时候,好像是用的Quartus里的那个Modelsim-Altera的工具去弄了下图形化编辑去制作约束,现在讲到这ModelSim了,也就再捡点来折腾下,还是有点学习价值,毕竟编辑的约束就真的很“直观”了。编译文件其他的就不多回忆了,直接开正题吧,一如既往,把待用的文件准备好,这次就只需要一个counter.v的文件,然后把ModelSim的当前路原创 2022-03-30 22:06:11 · 2475 阅读 · 0 评论 -
Modelsim的仿真之路(开始搞“波形”啦~)
开始搞“波形”啦~闲序波形界面分析工具游标使用脚本生成结束闲序忙了比较长的一段时间,又可以接着续上一些记录了,对于Modlsim的工程之类的操作也都已经有所涉及,现在该开始具体仿真图的操作了,若有错误之处,欢迎指出。先打开一个仿真工程,我就继续以”counter.v“和”tcounter.v“这两个基本的仿真文件来演示,刚看到这篇文章的,想要参考文件的,可以阅读该系列的首篇文章获取;《Modelsim的仿真之路(基础仿真流程)》波形界面启动仿真后,波形文件将会在”Wave“这个窗口让我们分析,如果原创 2022-03-27 21:54:32 · 11624 阅读 · 5 评论 -
Modelsim的仿真之路(多个库的使用)
Modelsim的仿真之路(多个库的使用)准备创建资源库创建工程链接资源库End准备在Modelsim系列的第一篇有讲到过,在modelsim中,库分为了工作库和资源库,本篇将介绍如何进行资源库的使用。在开始前,先去安装目录确定下“modelsim.ini”的那个文件是不是只有可读属性,如果不是的话,改成只读属性,不然映射的库链接会自动写到这个配置文件里,容易出一些问题如果想直接添加资源库进行默认调用的话,可以后续自行在配置文件里添加对应库的路径;创建资源库接下来正式开始本篇的内容老样子,先原创 2021-12-19 23:16:41 · 2762 阅读 · 0 评论 -
Modelsim的仿真之路(仿真工程的使用)
仿真工程的使用前言工程使用创建工程文件编译文件管理仿真配置结束前言上一篇介绍了基础仿真的流程,本篇将以工程的形式来介绍ModelSim的仿真使用,工程一般由:根目录+源码+work库+资源库+仿真设置+元数据组成,其中元数据就是工程的一些设置数据,会以一个 .mpf 后缀的文件存在于指定路径,在这之中会包换:编译的设置,编译顺序还有文件的映射之类的。开始今天的使用吧~工程使用创建工程将本篇使用到的文件放置到自己的工程路径下,然后选择菜单栏 File > New > Project原创 2021-10-31 23:55:52 · 5313 阅读 · 2 评论 -
Modelsim的仿真之路(基础仿真流程)
缓了一段时间,该接着开始系列记录了,这一次将开始ModelSim的仿真之路,对于学FPGA或者从业于该行业的人来说,仿真是必不可免的一件事,而仿真的工具也不少,不过感觉ModelSim推荐的指数要高很多,或许和它优化的能力有关吧~原创 2021-10-30 22:42:20 · 18581 阅读 · 10 评论 -
Vivado与ModelSim的联合仿真
Vivado自带的仿真,个人觉得跑一些小模块的仿真还是可以的,不过跑大的仿真系统,容易无体验感,建议用第三方工具,这边就直接对ModelSim下手了,接下来介绍下这两者联合仿真的操作。首先确定下自己的Vivado版本和适配的ModelSim版本,可以在ug973中,找到对应的版本,比如我用的Vivado是2018.2的,然后匹配的ModelSim是10.6c的版本。(有时候版本不匹配也能用,不过还是建议尽量匹配版本的好,省得出一些奇怪的问题)然后准备编译仿真库,打开Vivado,先打开Settings原创 2021-10-30 22:31:04 · 9608 阅读 · 4 评论 -
【Vivado那些事儿】两种创建工程的方法
【Vivado那些事儿】两种创建工程的方法前言创建工程【方法1】创建工程【方法2】• RTL Project• Netlist Project• I/O Planning Project更改工程参数结语更多精彩,等你发现~前言本篇介绍了两种创建工程的方法,一种是根据向导进行创建,一种是直接使用tcl指令进行创建,还简单介绍了工程参数在哪进行更改。创建工程【方法1】打开Vivado的初始界面后,可以直接点击Create Project也可以在菜单栏File > Project > Ne原创 2020-12-19 17:15:02 · 1421 阅读 · 1 评论 -
【Vivado那些事儿】Vivado环境一览
前言在我看来,用好一个工具的前提,就需要对工具有比较清晰的认识,不然对工具都不熟悉,遇到一些关乎工具上的问题时,会根本无从下手,也会在一定程度上影响项目的开发,所以很多时候,在进行一些项目的时候,团队里使用的开发工具的版本都会进行一定的统一,而不能一味的追求新版本,就是为了减少工具引起问题,从而提高项目进展速度。(PS:个人使用就看你自己的心情了)工程直接使用的Example Project里的BFT那个,本篇主要对Vivado工程界面进行学习,其他的就不多说了,直接开始本篇的内容吧~整体界面一个建原创 2020-12-01 23:52:11 · 2789 阅读 · 1 评论 -
【Vivado那些事儿】Vivado介绍
Vivado介绍摘要设计流模式启动直接启动Tcl启动界面介绍Quick StartCreate ProjectOpen ProjectOpen Example ProjectBase MicroBlazeBase ZynqBFTCPU(HDL)CPU(Synthesized)Wavegen(HDL)TasksManage IPOpen Hardware ManagerXilinx Tcl StoreLearning CenterDocumentation and TutorialsQuick Take V原创 2020-11-22 20:55:57 · 17598 阅读 · 3 评论 -
vivado第三方编辑器的使用
vivado第三方编辑器的使用介绍第一步第二步第三步结语image-20201008141211701---------------------------END---------------------------更多精彩,等你发现~介绍vivado是什么,我相信玩FPGA的都知道了,xilinx发布的一款高度集成的设计软件,其他的一些描述我就不讲了,不过用习惯了一些其他的编辑器,使用vivado自带的编辑器,说实话,真的有点不太舒服,今天就介绍下如何将vivado与你自己习惯用的编辑器进行链接。原创 2020-10-08 14:33:20 · 6279 阅读 · 3 评论 -
System Generator系列之使用AXI接口和IPI
介绍本篇将会介绍使用System Generator实现AXI接口,然后以IP catalog格式保存设计,再使用Vivado的IPIntegrator进行设计,这时将看到在使用 AXI 接口时,IP Integrator如何通过提供连接帮助来增强你的工作效率将分成四个步骤进行AX接口和IP集成的设计:第一步:将查看到如何使用System Generator实现AXI接口第二步:为System Generator生成的IP创建一个Vivado工程第三步:在Vivado工程中创建一..原创 2020-06-14 17:26:31 · 1049 阅读 · 3 评论 -
System Generator系列之多速率系统的使用(下)
前言前两步完成了不同时钟域层次结构的创建以及异步通道的创建,本次将完成多速率系统设计的最后一步,给每个层次指定不同的时钟域。操作双击System Generator生成器,打开其属性编辑器,选择Clocking的菜单,将Enable multiple clocks选上,这时FPGA clock period和Simulink system period的数值处变成灰色,这一步是为了通知System Generator,每一个层次结构将分别指定时钟速率,因此此时的顶层只包含了子系统与FIFO,在多原创 2020-06-08 21:26:27 · 559 阅读 · 0 评论 -
System Generator系列之多速率系统的使用(中)
前言上一篇将创建的设计模块分成了三个时钟层次的子系统,此时子系统之间的数据由于时钟未同步,导致数据在传播时,采样所得的数据会有错误,因此需要建立一个异步通道,使得各时钟通道之间的数据可以准确的被传输。建立异步通道该设计将使用FIFO进行,FIFO(First-In-First-Out)也就是指FIFOs中的数据是先进先出的,控制信号可以确保仅在当前数据有效时才可被读取,并且仅当有可用空间时才写入。如果FIFO是空的或者满的,控制信号会让其停止运行,不过此次的设计不需要考虑FIFO会写满,输入是始原创 2020-06-06 08:03:40 · 563 阅读 · 0 评论 -
System Generator系列之多速率系统的使用(上)
前言玩FPGA的都知道,跨时钟域进行处理设计是很常见的事,而常见的有使用FIFO或者双口RAM实现跨时钟域的数据传输,再进而处理,本次将讲一下在System Generator中使用多速率系统,分成以下三个步骤进行:第一步:创建时钟域层次结构第二步:创建异步通道第三步:指定时钟域在开始之前,需要运行一个.m的文件,用于之后对模块进行配置时所需要的变量赋值,该文件可在文末回复关键字获得,运行后三个主要窗口的结果如下:创建时钟域层次结构在新建的模型文件中放置两个信号源,分别.原创 2020-06-04 16:23:03 · 774 阅读 · 0 评论 -
System Generator系列之资源分析
前言昨天使用System Generator对时序进行了简单的分析,然后今天再介绍一下资源分析的功能,本次的设计文件和昨天的一样,只是System Generator的配置不太相同。介绍双击System Generator,打开配置窗口,Compilation可以是选项中的任意一项,不需要像时序分析那样有特定的要求;在Clocking菜单下,将分析类型改成Resource完成配置,点击Generate生成资源利用的数据,并在一个资源分析的表格中进行显示;表中每一列的标题,就是BR原创 2020-05-28 21:26:35 · 496 阅读 · 0 评论 -
System Generator系列之时序分析
前言在很多时候,进行FPGA的设计都是需要注意时序的问题,因为时序一旦不正确将导致最终的结果与预期的不同,因此今天将分享一下在System Generaotr中是如何分析时序,并且在设计中找到违反时序的根源。开始这次直接准备好了一个设计文件,打开如下所示,可以直接回复文末的关键字获取,双击System Generator,将Compilation菜单下的Compilation改为HDL Netlist,语言可以改成Verilog,也可以默认使用VHDL,然后将目标路径更改下,与以前进行设原创 2020-05-27 18:03:23 · 711 阅读 · 0 评论 -
System Generator系列之Black Box使用(将HDL文件导入进行设计)
前言折腾了下System Generator里头的黑盒(black box),该模块就能实现将硬件语言描述的设计导入到System Generator中进行使用,今天也是对该模块实现将HDL描述导入模型文件,然后用于数字信号处理的实现,其次对模块做好配置,使其可以通过仿真验证。设计打开软件和新建空白模型这些就不再多述了,直接上今天的主题,在模型文件中放置Black Box,路径是:Xilinx Blockset/Index/Black Box,然后在弹出的窗口选择需要链接到黑盒的HDL文件,我这边为让原创 2020-05-24 20:34:38 · 1021 阅读 · 0 评论 -
System Generator系列之使用MCode进行建模控制
前言前些天通过创建数字滤波器的设计,对System Generator做了一些简单的使用介绍,今天将分享一下如何在System Generator中使用MATLAB中编写的M代码进行建模控制。开始老样子,先打开System Generator,启动MATLAB完成后,再打开Simulink进行仿真模型的设计,再添加以下的一些基本模块:Repeating Sequence Stair:用于重复产生离散时间序列,也是本次设计的输入。Gateway In、Gateway Out、System Gen原创 2020-05-22 22:38:20 · 1502 阅读 · 0 评论 -
基于System Generator的浮点数与定点数设计(实现与分析)
前言讲完上次的设计优化,这次将学习到如何使用效率高的定点数类型来创建一个满足所需规范且资源更有效利用的设计,以及使用System Generator下Xilinx Blocksets中的模块来分析这些设计,分成了两个部分进行。浮点数类型设计打开System Generator,然后将第一次设计的滤波器文件Copy一份然后进行一些更改,或直接新建模型,可以参考前几篇文章初识System Generator(安装+使用)基于System Generator的数字滤波器基于System Generat原创 2020-05-21 22:20:30 · 890 阅读 · 0 评论 -
基于System Generator的数字滤波器设计所用资源优化
首先将上次设计的滤波器文件copy一份进行备份,后面还会有用到的时候,或者之后再改回去都可以。基于System Generator的数字滤波器(Simulink验证+Block设计+FPGA的仿真验证)打开System Generator这个模块的Clocking,然后看到之前设置的是20MHz的时钟频率,其实在FPGA器件中,时钟频率是很容易就超过20MHz的,使用更高的时钟频率运行FPGA将允许System Generator使用相同的硬件资源来计算多个中间结果。双击打开FDATool的属性编辑原创 2020-05-20 17:47:04 · 705 阅读 · 0 评论 -
基于System Generator的数字滤波器(Simulink验证+Block设计+FPGA的仿真验证)
首先打开System Generator 2018.2,不清楚咋打开的可以看下我之前发的,等待MATLAB启动完成后,再打开simulink并且建立一个空白模型(以.slx为后缀),将其存放到自己想要存放的位置,保存好文件后就开始放置相关的模块来进行今天的设计。首先产生带有两个或多个频率信息的信号,使用Sine Wave产生,然后用Add进行叠加,设计结果如下图所示图中使用了两个Sine Wave模块,分别产生9M和1M的正弦信号,然后叠加,在示波器上看到各个信号的样子。9M的Sine Wave设置原创 2020-05-20 09:13:01 · 2465 阅读 · 1 评论 -
初识System Generator(安装+使用)
首先简单介绍下它是干嘛用的。System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,嵌入了Xilinx的一些模块,可以在MATLAB中的Simulink中进行定点仿真,可以设置定点信号的类型等操作,不过我更看重的是那个可以直接生成HDL文件,然后用于设计Xilinx的FPGA,ISE可以调用,VIVADO也可以调用,不过现在应该搞得比较多的是VIVADO,所以就直接按VIVADO的来玩这个System Generator。开始安装System Generator是在安装V原创 2020-05-17 15:47:38 · 3892 阅读 · 2 评论