草庐IT

Xilinx-FPGA

全部标签

FPGA的Verilog打拍方式无法打拍,测试的仿真结果不打拍的解决方法。

    先附上参考链接:http://t.csdn.cn/krJki        最近做项目涉及到边缘检测,发现对输入信号打拍时仿真结果无法实现打两拍的功能。这些年多多少少都遇到过类似打拍失效的情况,因为当时项目的原因起初没有太过注意,但现在需要对周期数严格把控,就需要实时的仿真观测到到底是多少拍,由此开始了面向CSDN的学习过程,网上所讲甚少,为了方便后来的小伙伴快速解决,所以根据参考链接和测试有了以下的解决方式。先提出解决方法:在编写测试激励文件也就是tb文件设计时:时钟复位用阻塞赋值(=),其他信号用非阻塞赋值(        为了更具体的看到效果,做下面的测试。简单的设计的一个.v文

FPGA学习笔记(二):clk IP核的使用

笔记二是简单介绍clkIP核的使用,并且通过仿真进行验证 1.打开VIVADO,点击IPCatalog 2. 搜索clk,选择ClockingWizard 3.配置参数(1)选择MMCM   (2)设置主频50Mhz (3)设置输出的4个clk的参数,分别是50M,25M,100M,100M反相。Phase表示相位,0表示同相,180表示反相。   (3)其他参数 4.测试文件moduletb_clock;regclk; //输入时钟regrst_n; //输入复位wireclk_50M; //输出50Mclkwireclk_25M; //输出25Mclkwireclk_1

【FPGA】:ip核----fft

文章目录一、概述二、端口说明三、ip核的生成四、例子五、参考资料一、概述    FFT是一种DFT的高效算法,称为快速傅立叶变换(fastFouriertransform)。傅里叶变换是时域一频域变换分析中最基本的方法之一。在数字处理领域应用的离散傅里叶变换(DFT:DiscreteFourierTransform)是许多数字信号处理方法的基础。FFT基本上可分为时间抽取法和频率抽取法,而一般的时间抽取法和频率抽取法只能处理长度N=2^M的情况,另外还有组合数基四FFT来处理一般长度的FFT。所谓抽选,就是把长序列分为短序列的过程,可在时域也可在频域进行。最常用的时域抽选方法是按奇偶将长序列不

xilinx rdma实现100G以太网开发笔记,支持标准ROCE V2协议,与PC大带宽通信,支持麦乐斯全系列网卡

背景随着现代存储需求越来越快,对数据的传输要求也越来越高,万兆网还未普及,100G以太网需求就已经出现了,实现这种方案主要还是通过FPGA或者ASIC的方式。RDMA作为100G以太网解决方案的一个重要选择,关于RDMA的概念可参考博客https://blog.csdn.net/bandaoyu/article/details/112859853及https://zhuanlan.zhihu.com/p/164908617XILINX公司也有响应的解决方案,当然支持对应的IP对器件等级和型号自然是有要求的,基本上只有VU+级别的器件才支持;xilinx实现RDMA100G以太网主要是利用ERN

使用Quartus II做FPGA设计遭遇的一些问题

问题1:Error:Widthmismatchinpin_name–sourceis。。。这个是原理图设计部门IO端口的命名问题,要求命名中也必须包含端口宽度。比如:由于输出是8位的,所以对于输出端口的命名,你必须要包含[7..0],仅仅命名为q就会出现上述的错误。所以建议OUTPUT、INPUT的命名建议就用模块中端口的名字。自己不要做什么修改。**问题2:Error(275028):Busnameallowedonlyonbusline–pin“data[7…0]”Error(275029):Incorrectconnectorstyleatport“test_data[7…0]”fors

FPGA基础知识-用户自定义原语

目录学习目标学习内容1.UDP的组成2.UDP定义规则3.表示组合逻辑的UDP4.表示时序逻辑的UDP5.UDP表中的缩写符号6.UDP设计指南 学习时间学习总结学习目标:提示:这里可以添加学习目标理解编写UDP的规则,明白UDP的各个组成部分。学会编写表示时序和表示组合逻辑的两种不同的UDP,理解UDP的调用(实例引用)方法。为了使UDP的行为表达得更加简洁和易懂,应记住定义UDP的各种缩写符号。学习内容:提示:这里可以添加要学的内容1.UDP的组成  UDP的定义以关键字primitive作为开始,然后指定原语名称、输出端口和输人端口。在端口声明部分将端口声明为output或者input。

03_Quartus将程序烧录到FPGA的Flash中

将程序烧录到Flash中将程序烧录到flash中的目的.sof文件不能烧录进flash中,导致掉电程序丢失将.sof文件转换成.jic文件的流程进入ConvertProgrammingFiles中配置输出文件类型选择输出.jic文件根据flash的具体型号选择ConfigurationDevice的类型(EPCS16)输出路径可默认选择芯片器件选择FlashLoader,再点击右侧AddDevice选择具体的芯片,再点击OK添加.sof文件选中SOFData,再点击AddFiles,将选中.sof文件,最后点击Open生成.jic文件不单独选中任何一项,点击Generate,若弹出succes

FPGA双口RAM使用

模块名称:dpram()IPCore双口RAM,有俩组数据线和地址线,读写可以同时进行,FIFO读写可以同时进行,可以看作是双口。分为Simpletwo-dualRAM和truetwo-dualRAM。简单双口RAM,一个端口只读,另一个端口只写,且写入和读取的时钟可以不同,位宽比可以不是1:1;而双口RAM两个端口都分别带有读写端口,可以在没有干扰的情况下进行读写,彼此互不干扰。主要功能:调用内部的资源,实现数据的读/写功能实验目的:了解这些芯片专用硬件资源的情况下,将其合理的应用到对应的系统中FPGA芯片的内部结构:1、针对上面的结构图,我们可以看到几个信号线data[7:0],表示的是即

xilinx器件系统时钟接在GTX时钟问题解决

背景:xilinxA7器件,第一次遇到由GTX时钟做系统时钟,尝试输入MMCM产生其他时钟,遇到问题,记录下解决过程。TRY1:输入是差分时钟,直接接到MMCM,选择differentialclock 编译报错vivado12-1411:这是因为管脚接在GTXserdes时钟上,而MMCM差分时钟使用的输入BUFF是IBUFDS到全局时钟上。重新选用IBUFDS_GTE2,详情见尝试步骤try2。TRY2:时钟输入经过IBUFDS_GTE2输入BUFF后,接到MMCM报错PDCN-2721 提示IBUFDS_GTE2不能直接驱动mmcm,可以通过使用约束CLOCK_DEDICATED+ROUT

FPGA 学习笔记:Vivado 2018.2 MicroBlaze 启动 SDK

前言Vivado2018.2,配置好MicroBlazeUartlite等BlockDesign后,生成了bin、bin文件,此时烧写到FPGA板子上,发现没有任何动静,所以需要SDK的支持导出Hardware这里使用的Vivado2018.2,最新的Vivado版本,如Vivado2020.2,启动的SDK是:Vitis,启动方式稍微有点不同,后面补充Vivado2020.2版本的操作方法【File】->【Export】->【ExportHardware…】,导出FPGA的硬件设计文件这里勾选【Includebitstream】文件,方便XilinxSDK中下载FPGA程序如果不更改目录,默