草庐IT

Xilinx-FPGA

全部标签

FPGA——verilog实现格雷码与二进制的转换

文章目录一、格雷码简介二、二进制转格雷码三、格雷码转二进制四、仿真一、格雷码简介格雷码是一种循环二进制码或者叫作反射二进制码。跨时钟域会产生亚稳态问题(CDC问题):从时钟域A过来的信号难以满足时钟域B中触发器的建立时间和保持时间,输入与clk的变化不同步而导致了亚稳态。此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。而格雷码的每次变化位数只有一位,因此使用格雷码可以有效避免这种情况。所以格雷码常用于通信,FIFO或者RAM地址寻址计数器中。下面是典型的格雷码与二进制的转换:二、二进制转格雷码二进制转格雷

基于低功耗蓝牙和微信小程序的门禁系统(FPGA课设设计)

基于低功耗蓝牙和微信小程序的门禁系统(FPGA课设设计)文章目录基于低功耗蓝牙和微信小程序的门禁系统(FPGA课设设计)一、低功耗蓝牙(BLE)的配置和与FPGA通信代码1.1低功耗蓝牙的介绍及配置1.2低功耗蓝牙与FPGA通信二、FPGA控制器的设计2.18-4译码器的设计2.2主控器的设计三、数码管译码电路以及数码管轮询显示四、微信小程序的设计4.1bluetooth.js4.2bluetooth.wxml本次FPGA课程设计基于CycloneIV的EP4CE6F17C8。使用的是AX301开发板(正点原子的新起点也是用同一种芯片,只是要修改引脚)。本系统能够实现通过蓝牙发送密码给FPGA

FPGA实现高带宽NVMeSSD读写——纯逻辑实现

FPGA实现高带宽NVMeSSD读写——纯逻辑实现项目背景方案介绍测试平台测试方案测试硬盘:测试结果:IP连续数据读写测试结果:IP实现及测试中的问题Xilinx官方IP:AXIInterconnect硬盘厂商的调教:队列深度结语项目背景在两年之前的帖子《FPGA实现高带宽NVMeSSD读写》中,我们实现了一个基于PS和PL端的高速NVMeSSDIP。这个IP在我们自己的系统中使用正常,但是由于该IP使用了PS端资源,在与其他应用系统集成时遇到了麻烦。为了保护自有的设计,需要独占PS端的一个ARM处理器,这使得该IP在与其他项目集成时,使用很不方便。除此以外,原方案IP写SSD硬盘的最大速度约

【安路FPGA】联合modelsim仿真

第一在modelsim安装目录下新建一个文件夹Anlogic用来存放TD库文件:打开modelsim仿真软件,feil→changeDirectory,选择刚才新建文件目录,在新建一个Library库如图所示:TD库文件al与common是必须要添加的两个库,我的芯片是ph1系列所以添加ph1在去到这个路径会发现多了三个文件夹,在TD安装路径下把这些库文件拷到这些文件夹下   选择compile,把这三个库全部例化,其实也可以先把库添加到安装目录下,但是我的一直有问题,就先新建库然后再把库文件考进去   编译成功后是这样 重点来啦,然后在modelsim根目录下ini文件夹,添加这三个库路径,

浅谈FPGA网络PHY芯片RTL8211

市面上很多开发板都使用RTL8211PHY芯片,使用简单,你甚至不用配置就可以直接使用。官方默认配置是:开启自协商,速率1000M。 https://numato.com/product/rtl8211e-gigabit-ethernet-expansion-module/芯片地址:RTL8211FD器件地址由5位构成,高两位固定为2’b00,第三位后这三个引脚的上下拉电平决定 

Xilinx FPGA开发环境vivado使用流程

XilinxFPGA开发环境vivado使用流程文章目录XilinxFPGA开发环境vivado使用流程1.启动vivado2.选择CreateNewProject3.指定工程名字和工程存放目录4.选择RTLProject5.选择FPGA设备6.工程创建完成后7.开始编写verilog代码8.添加XDC管脚约束文件9.编译10.下载和调试1.启动vivado2.选择CreateNewProject3.指定工程名字和工程存放目录4.选择RTLProject5.选择FPGA设备6.工程创建完成后7.开始编写verilog代码第一步:点击AddSources按钮第二步:选择addorcreatede

FPGA编译报错内容[Common 17-55] ‘set_property‘ expects at least one object.

项目场景:FPGA代码编译时报错问题描述编译报错内容[Common17-55]‘set_property’expectsatleastoneobject.原因分析:当一个引脚存在于xdc文件中,但是工程的顶层模块的引脚里没有这个引脚时,就会报出这个错误解决方案:查找报错的这个引脚是否存在于工程的顶层模块的引脚列表中,最大的可能是xdc中的引脚名与工程中的引脚名不一致,一般是拼写错误,或者误删了;如果不小心将工程的顶层文件设置错误那么就会爆出很多个[Common17-55]‘set_property’expectsatleastoneobject.错误;

FPGA原理与结构(4)——数据选择器MUX(Multiplexers)

系列文章目录:FPGA原理与结构(0)——目录与传送门一、MUX概述    数据选择器MUX是一种非常经典的组合逻辑电路,它是一个多输入,单输出的器件,功能是可以根据选择信号,选择出需要的输入信号作为输出。 二、FPGA中的MUX    MUX在FPGA中的CLB中,我们打开device视图放大观察可以看到    图片中红色部分标注的就是MUX,可见MUX是作为一种基本元件存在于FPGA中的。但是我们同样知道,MUX作为一种组合逻辑元件,理论上完全可以通过LUT(关于LUT的部分:FPGA原理与结构——查找表LUT(Look_Up_Table))就实现其功能,为什么在FPGA中还要“多此一举”

【FPGA IP系列】FIFO深度计算详解

FIFO(FirstInFirstOut)是一种先进先出的存储结构,经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。FIFO的一个关键参数是其深度,也就是FIFO能够存储的数据条数,深度设计的合理,可以防止数据溢出,也可以节省FPGA资源的消耗。一、FIFO深度计算影响因素影响FIFO深度计算的主要因素包括:FIFO的位宽:决定了每个FIFO存储单元的大小FIFO的数据字长:决定每个数据词包含多少比特有效数据FIFO的总存储容量:决定最大可以存储的数据条数以32位位宽,8位字长的FIFO为例,每个FIFO存储单元需要32/8=4个字节。如果FIFO总容量为128字节,那么可以存储128