
FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列
csdnqiang
这个作者很懒,什么都没留下…
展开
-
用FPGA实现SPI通信
SPI是串行外设接口(Serial Peripheral Interface)的缩写。它是Motorola公司推出的一种高速、全双工的同步串行通信总线技术。SPI的通信接口为:SDI或MISO(数据输入),SDO或MOSI(数据输出),SCK(时钟),CS(片选)。另外,可以通过设置CPOL(时钟极性)和CPHA(时钟相位)来配置主控设备的通信模式。其中时钟极性CPOL用来配置SCLK的空闲态或者有效态电平,时钟相位CPHA 用来配置数据采样是在第几个边沿:CPOL=0,表示SCLK的空闲态电平为0,原创 2020-09-01 17:37:20 · 5492 阅读 · 1 评论 -
FPGA读写DDR3
DDR3是一种内存规格,它是SDRAM家族的内存产品。DDR3之前的产品有DDR和DDR2。DDR(Double Data Rate)是双倍速率同步动态随机存储器,严格的说DDR应该叫DDR SDRAM。DDR2是DDR产品的升级产品,它是四倍速率同步动态随机存储器。DDR3在DDR2的基础上实现了更高的性能(增加到八倍)和更低的电压。DDR内部结构框图如下所示:如上图所示:标号1:逻辑控制单元,用于输入命令解析和模式控制等。标号2:行地址选通单元。标号3:内部存储阵列,上图中分为8个bank。原创 2020-08-18 17:24:21 · 15079 阅读 · 7 评论 -
液晶显示原理以及FPGA驱动
注:文中代码来源于网络,只用于学习和理解。液晶显示(LCD)是英文Liquid Crystal Display 的简写,一般与液晶显示器连接的接口为VGA和HDMI。高清多媒体接口(High Definition Multimedia Interface,HDMI)是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。VGA(Video Graphics Array)是显卡上输出模拟信号的接口。下面主要说明VGA接口的显示原理:一般的16位高彩色VGA显示是用RGB565数据输出,其中红原创 2020-07-22 09:41:07 · 2124 阅读 · 1 评论 -
FIFO例化以及仿真
在FPGA中,数据进行跨时钟域传输时,会出现亚稳态的问题。跨时钟域也就是跨越了两个频滤和相位不同的异步时钟域。为了解决亚稳态和由时钟不同步引起的其他问器,选用了FIFO。本例中,选用了输入和输出为同一时钟来生成FIFO。生成FIFO后可在.veo文件中找到例化模版,如下图所示:操作流程为:Sources(1)→IP Sources(2)→Instantiation template(3)→.veo文件(4)。然后新建测试文件并命名为top.v,在文件中进行实例化,实例化代码如下:fifo_gen原创 2020-07-15 11:39:28 · 4310 阅读 · 1 评论 -
FPGA中port和pin的区别
在vivado中,FPGA中的Pin指的是cell管脚,而port指的是FPGA外部连接引脚。Pin与pin用net相连。Port隶属于FPGA芯片中的IO bank。原创 2020-07-06 11:37:38 · 4885 阅读 · 1 评论 -
FIFO生成器V2.3
一、序言赛琳思FIFO生成器逻辑核是应用于顺序存储和索引的先进先出的存储队列。对于所有FIFO来说,通过配置实现以最小资源达到最大传输性能(高达350MHZ)的目的,FIFO逻辑核提供了这种最佳解决方案。用户可以根据需要设置赛琳思核生成器的结构,包括宽度、深度、状态标志、存储类型和读写端口比。这个文档描述了FIFO生成器逻辑核的功能,详细说明了此逻辑核的接口参数,同时还定义了输入和输出信号。更详细的FIFO生成器逻辑核设计说明,请参考《FIFOGenerator User Guide》。1、FIFO翻译 2020-06-25 21:48:56 · 1230 阅读 · 1 评论 -
SD卡读写
特别说明:以下所涉及代码参考网络、相关开发板厂家。只用于自己学习、理解和感悟。SD存储卡( Secure Digital Memory Card)是一种基于半导体快闪存储器的新一代高速存储设备。SD 卡是现在嵌入式设备重要的存储模块。通常SD卡中都有文件系统,可以安装文件名和目录路径来读写文件。SD卡结构如下图所示:SD卡协议简介数明:SD卡命令是6字节组成的命令包。a) 命令码:命令码由1个字节组成,第7位和第6位固定为“01”。b) 校验与结束码:校验与结束码由7位CRC校验原创 2020-06-21 21:37:03 · 2843 阅读 · 1 评论 -
通过FPGA实现I2C
I2C总线是由Philips公司开发的一种简单、双向二进制串行总线。只需要两根线即可在连接于总线上的器件之间信息传递。I2C的标准速率为100kbit/s,快速模式时速率为400kbit/s,支持多机通讯,支持多主控模块,但同一时刻只允许有一个主控。由数据线SDA和时钟线SCL构成串行总线。每个电路和模块都有唯一的地址。以下以AT24C04为例说明I2C的基本读写操作,I2C设备的操作可分为读写单个存储字节和多个存储字节。读写时序示意图如下所示:如上图所示,I2C通信分为空闲状态、开始态、信息传输原创 2020-06-06 09:58:45 · 9455 阅读 · 4 评论 -
FPGA之按键消抖
按键是一种常用的人机交互输入接口,对于机械按键来说,在按下或弹起的时候,按键输入值往往伴随着输入抖动。消除抖动的方式有很多种,以下是用FPGA实现按键消抖。实现原理:当检测到按键按下(一般按下为低电平)时开始计时(用计数器实现),大概10ms后检测按键状态,如果按键状态为低电平,说明按键按下,输出低电平;如果按键状态为高电平,说明是按键抖动。按键弹起同理。下面对按键消抖的代码(ax_debounce.v)进行分析:module ax_debounce(input clk,input rst,inp原创 2020-05-18 21:57:41 · 5389 阅读 · 1 评论 -
FPGA之UART(三)
module uart_test( input sys_clk_p, input sys_clk_n, input rst_n, input uart_rx, output uart_tx);在模块uart_test中,定义了差分时钟输入脚,复位输入脚,数据接收输入脚和数据发送输出脚。IBUFDS sys_clk_ibufds( .O (sys_clk), .I (sys_clk_p), .IB (sys_clk_n));原创 2020-05-12 22:01:08 · 2005 阅读 · 1 评论 -
FPGA之UART(二)
这篇笔记主要记录对uart_rx模块的理解:module uart_rx#(parameter CLK_FRE = 50,parameter BAUD_RATE = 115200)(input clk,input rst_n,output reg[7:0] rx_data,output reg rx_data_valid,input rx_data_ready,input rx_pin);模块引脚说明:CLK_FRE表示时钟频率。BAUD_RATE表示通讯波特率。Clk表原创 2020-05-11 10:48:26 · 2161 阅读 · 1 评论 -
FPGA之UART(一)
UART( Universal Asynchronous Receiver/Transmitter)指通用异步收发器。UART电平有TTL电平和RS232电平。TTL电平一般以3.3V居多。RS232是负电平逻辑,+5V—+12V为低电平,而-12V—-5V为高电平。然而FPGA引脚电平一般为TTL电平或者COMS电平,UART外接电平为RS232电平,这就需要将TTL转换为RS232电平的电平转换芯片,如MAX3232,MAX232等。有的电路还用UART转USB芯片,如CP2102、CH340等。UA原创 2020-05-09 12:09:04 · 2798 阅读 · 2 评论 -
VIVADO中关于管脚约束错误的一种解决方法
在vivado中,有的IP核已经包含了模块的引脚配置,这样在约束文件中就不用写相应的约束设置。然而在生成位码流的时候就可能会出现如下的错误提示:[DRC UCIO-1] Unconstrained Logical Port: 16 out of 22 logical ports have no user assigned specific location constraint (LOC). T...原创 2020-04-27 11:27:39 · 33131 阅读 · 6 评论 -
FPGA中模块之间如何传输数据
FPGA的编程思想是用软件来描述硬件数字电路,也就是说要用设计硬件数字电路的思维方式来思考软件编程。在FPGA中,模块之间的数据传输就是数字电路元件之间进行数据传输,数字电路元件通过导线把两引脚连接在一起而进行信号传输。在FPGA中通过例化方式来封装元件,例化语句中的参数就是元件的引脚名称。如下通过实例来说明:模块定义如下所示:module ethernet_test(input ...原创 2020-04-24 11:45:57 · 7003 阅读 · 1 评论 -
FPGA之PLL
PLL(Phase Locked Loop)为锁相环。FPGA中的锁相环通常由PFD(鉴频鉴相器)、CP(电荷泵)、LF(滤波器)、VCO(压控振荡器)组成。一般晶体振荡器由于工艺和成本原因达不到高频信号输出。高频电子线路中,需要外部信号与内部的振荡信号同步。一路输入时钟需要生成多路时钟信号。以上几种问题就需要通过PLL来实现。PLL的内部结构如下图所示:以下通过图例来说明生成PLL IP核...原创 2020-04-20 21:23:49 · 8185 阅读 · 1 评论 -
FPGA之从按键程序到寄存器
部分代码如下:reg[3:0] key_v1;定义了寄存器key_v1[0]、key_v1[1]、key_v1[2]、key_v1[3]reg[3:0] key_v2;定义了寄存器key_v2[0]、key_v2[1]、key_v2[2]、key_v2[3]always@(posedge sys_clk) begin key_v1 <= ~key_in; endalways@...原创 2020-04-14 10:49:56 · 1975 阅读 · 1 评论 -
FPGA之vivado
Vivado工程文件包括源文件、约束文件和仿真所用的激励文件。原创 2020-04-13 15:27:33 · 2111 阅读 · 1 评论