草庐IT

FPGA实现8点FFT

前面我们讲了FFT的原理以及其在C++上的实现,可以参考我的博客:快速傅里叶变换学习(超详细,附代码实现)_Patarw_Li的博客-CSDN博客C++实现FFT算法(迭代版本)_Patarw_Li的博客-CSDN博客下面我们会在FPGA上用Verilog实现8点FFT,下面是需要注意的几点:1.旋转因子在FPGA中直接计算旋转因子是一件比较麻烦的事,因此我们使用MATLAB将旋转因子计算好后直接在verilog中赋值即可: 生成旋转因子实部和虚部的matlab代码:%fft旋转因子生成表%w代表返回值,n代表运算点数%这里将w放大,是因为浮点运算比较消耗时间,因此将其化为整数clearall

FPGA—基于Quartus软件设计全加器

目录前言一、理解全加器1、半加器2、1位全加器二、通过原理图实现1位全加器1、创建工程2、半加器原理图设计1、设计原理图2、仿真实现3、全加器原理图设计1、将设计项目设置为可调用的元件2、原理图绘制3、仿真实现三、通过Verilog编程实现1位全加器1、创建Verilog文件2、代码实现3、仿真实现四、通过Verilog编程实现四位全加器1、代码实现2、仿真实现五、总结六、参考资料前言本篇博客主要是基于Quartus软件件完成一个1位全加器的设计,分别采用:1)原理图输入以及2)Verilog编程这两种设计方法。开发板基于IntelDE2-115。一、理解全加器1、半加器1、定义:半加器是能够

FPGA原理与结构(6)——分布式RAM(Distributed RAM,DRAM)

系列文章目录:FPGA原理与结构(0)——目录与传送门目录一、RAM概述1、RAM基本概念2、FPGA中RAM的分类二、DRAM详解1、FPGA资源     2、DRAM的配置形式2.1 Single-Port(单端口)2.2 Dual-Port(双端口)2.3 Quad-Port(四端口)2.4 SimpleDual-Port(简单双端口)2.5更大深度 3、DRAM数据流 4、ROM 三、设计实现1、vivado推断1.1推断使用BRAM还是DRAM?1.2RAM推断能力1.3DRAM的推断案例2、原语3、IP核四、小结一、RAM概述1、RAM基本概念        RAM:随机存取存储器

四位数码管3641AS的FPGA实现

    一、数码管介绍         四位数码管3641AS为一款共阴极的四位八段数码管,其具体的每一段为单个二极管,可通过压降实现点亮,通过控制单位多段二极管的点亮实现数字或字母等字符。        共阴极:八段发光二极管的阴极端连接在一起,阳极端分开控制,使用时候公共端接地,要使哪个发光二极管亮,则对应的阳极端接高电平;        共阳极:八段发光二极管的阳极端连接在一起,阴极端分开控制,使用时候公共端接电源,要使哪个发光二极管亮,则对应的阴极端接低地。此处为共阴极,其具体原理图如下:     如图所示:A—DP为输入端,全部在二极管的正极,二极管的负极共同接地。只有当A—DP输入

fpga组合逻辑(4位比较器、8-3优先编码器、38译码器实现全减器、数据选择器实现逻辑函数等)

目录组合逻辑VL11 4位数值比较器电路VL12 4bit超前进位加法器电路VL13 优先编码器电路①VL14 用优先编码器①实现键盘编码电路VL15 优先编码器ⅠVL16 使用8线-3线优先编码器ⅠVL17 用3-8译码器实现全减器VL18 实现3-8译码器①VL19 使用3-8译码器①实现逻辑函数LVL20 数据选择器实现逻辑电路工程源码GitHub-ningbo99128/verilog:牛客网练习题工程组合逻辑VL11 4位数值比较器电路        至于为什么不选择更底层的题解?原因有,刷题是为了走数字ic设计,用这种门级电路搭出来的功能,其实没必要,面试也不会考。在代码上,底层到

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文件夹,添加这三个库路径,