FPGA
文章平均质量分 56
小灰灰的FPGA
从事FPGA开发设计,图像处理爱好者,芯片驱动控制爱好者,数据处理算法爱好者,通信行业工作者
展开
-
AXI协议之AXILite开发设计(结束篇)
至此AXI4Lite系列完结,本工程只是简单的使用AXI4lite,但已经具备工程应用思想,完全可以移植至项目中,只需要对wb的主机控制和自定义从机的寄存器内容即可。,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等。1、通过wb转换axilite接口,便于操作使用,不同控制axilite的各个通道;2、对宏定义的Slaver0/Slaver1的自定义寄存器进行操作,从而实现寄存器的读写控制。原创 2023-08-01 17:28:11 · 180 阅读 · 0 评论 -
AXI协议之AXILite开发设计(四)—Block Design使用
(10)先右键assign后,按系统要求,slaver0寄存器地址范围为0x00000000—0x0000FFFF,内部寄存器使用必须在此范围;(5)双击AXI interconnect,修改slaver和master num个数,适配工程应用场景,本文用例采用1Master-2Slaver应用,因为对应互联模块应该设置为1Slave和2Master,才能适配成功。(11)设置成功后,如图所示,代码开发中需保证各个Slaver用户使用的寄存器在此范围配置内,否则无法响应。(3)点击“+”,add ip。原创 2023-07-30 00:12:07 · 1543 阅读 · 0 评论 -
AXI协议之AXILite开发设计(三)
本章内容介绍工程中使用的AXI Crossbar ip以及Block Design中可使用的AXI interconnect组件,通过搭建工程使用。AXI Crossbar IP生成,尤其是基地址仲裁选择,需要注意适配项目的应用场景,本文采用1Master2Slaver应用场景,工程2个Slaver对应至AXI Crossbar IP的两个Master互联,即2个Master。工程1个Master对应至AXI Crossbar IP的slaver互联,即1个Slaver。②各类型器件的AXI性能。原创 2023-07-28 11:17:33 · 825 阅读 · 2 评论 -
AXI协议之AXILite开发设计(二)
(byte_index*8) +: 8],byte_index = 0/1/2/3,对应[0:7],[8:15],[16:23],[24:31],对应32位数据。axi_awaddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB],即axi_awaddr[3:2],写通道地址的高两位。在写地址通道有效、写地址通道准备信号ok以及写数据通道有效、写数据通道准备信号ok时,寄存器写使能slv_reg_wren才有效。写数据操作时候,使用三个通道,即写地址、写数据、写响应通道。原创 2023-07-27 19:36:46 · 272 阅读 · 0 评论 -
AXI协议之AXILite开发设计(一)
本设计主要介绍AXILite的设计开发,通过一个主机Master读写控制两个从机Slaver(通过基地址进行寄存器地址偏移),从而实现外设寄存器的控制。包括:IP的生成、各通道的信号讲解,以及基地址的使用。原创 2023-07-26 14:38:12 · 596 阅读 · 0 评论 -
基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)
本文采用两种算法进行灰度处理,平均法和加权均值法;加权均值法采用了直接公式求解和查找表两种方式验证;同时FPGA设计中三个设计技巧,可用于工程项目借鉴,一是宏定义参数化设计;二是generate if参数定义;三是调用xilinx的rom原语实现ROM核,省去ip核的调用原创 2023-05-11 15:10:39 · 3472 阅读 · 0 评论 -
Vivado Block Design中IP使用技巧
Utility Vector Logic在Block design可用于向量的与、或、异或、非。比如:复位信号,外部提供低有效的信号,DDR MIG IP复位高有效,可使用此IP转换输入MIG原创 2022-04-10 09:00:00 · 2823 阅读 · 0 评论 -
Vivado关联NotePad编译器
Vivado自带编译器,多数人使用起来不方便,推荐链接外部编译器,比如NotePad(笔者自己所习惯的)、Vs等均可指令—编译器电脑路径 [file name] — E:\FPGA\Notepad++/NotePad++.exe [file name]原创 2022-04-09 09:00:00 · 4137 阅读 · 1 评论 -
Vivado封装IP实例
工具平台:Vidado 2020器件型号:xczu7ev-ffvc1156-2-i封装步骤如下:1、新建vivado工程,添加源码2、Tools——Create and Package New IP,选择Package your current project(封装当前工程pro)注意:Create AXI4 Peripheral 封装AXI4外设接口3、Create New IP4、设置IP信息在主界面Package IP页中,点击左侧Packaging Steps一栏中的“Iden原创 2022-04-08 15:05:56 · 4542 阅读 · 0 评论 -
HDMI RGB_TO_DVI模块
HDMI RGB_TO_DVI模块一、模块简介在HDMI视频数据传输过程中,将24位的RGB888格式的图像,在编码和并串转换后,以TMDS数据输出至HDMI。HDMI_Encoder模块负责对数据进行编码,HDMI_Serializer模块对编码后的数据进行并串转换,最后通过OBUFDS转化成TMDS差分信号传输。二、逻辑代码module HDMI_RGBtoDVI( input wire [00:00] i_pixel_clk , //像素数据输入时钟原创 2021-08-05 11:38:07 · 1960 阅读 · 0 评论 -
HDMI并串转换模块
HDMI并串转换模块一、简介在HDMI视频数据传输过程中,需要对来自TMDS编码后的10bit并行像素数据转换成1bit串行数据。从理论上讲,生成一个10倍于像素时钟的快时钟对其装换发送。关于OSERDESE2原语模块,一方面可以实现DDR的功能,即它在五倍时钟频率的基础上又实现了双倍数据速率,因此逻辑代码使用一个5倍的时钟频率,即可实现10倍的时钟频率。另一方面,由于一个OSERDESE2模块只能实现最多8:1的转换率,通过位宽扩展实现了10:1 的并串转换(如图)。注意:OSERDESE2位宽扩原创 2021-08-05 10:57:46 · 1009 阅读 · 0 评论 -
TMDS数据编码算法
TMDS,Transition Minimized Differential Signaling,即最小化差分传输信号,在DVI(数字视频接口,只能传输视频)和HDMI(音视频均可传输)协议中用于传输音视频数据,使用差分信号传输高速串行数据。1、TMDS接口TMDS连接从逻辑功能上可以划分成两个阶段:编码和并串转换。在编码阶段,编码器将视频源中的像素数据、HDMI的音频/附加数据,以及行同步和场同步信号分别编码成10位的字符流。然后在并串转换阶段将上述的字符流转换成串行数据流,并将其从三个差分输出通道发原创 2021-05-06 10:38:20 · 5236 阅读 · 4 评论 -
跨时钟域之全握手信号(Verilog)
跨时钟域之全握手信号(Verilog)1、Verilog的实现实现多位数据的跨时钟域传输,存在一定的数据延迟module class_3_clka_clkb#( parameter Width = 31 )( input wire i_clk_a , input wire i_clk_b原创 2021-04-07 14:13:29 · 3385 阅读 · 0 评论 -
同步FIFO和异步FIFO的Verilog实现(代码仿真实现)
同步FIFO和异步FIFO的Verilog实现一、同步FIFO1、同步FIFO的Verilog实现module class_6_fifo#( parameter Width = 16, parameter Depth = 4 )( input wire i_clk , input wire原创 2021-04-01 17:02:29 · 1431 阅读 · 0 评论 -
二进制码和格雷码转换的Verilog实现
二进制码和格雷码之间的转换一、二进制码与格雷码转换原理(1)二进制码转换格雷码二进制码 Bi Bi-1 Bi-2 ... B1 B0 ^ ^ ^ ^ ^ 0 Bi Bi-1 ... B2 B1格雷码 Gi Gi-1 Gi-2 ... G原创 2021-04-01 15:45:10 · 1527 阅读 · 0 评论 -
Lattice Diamond在线调试Reveal Analyzer使用教程
Lattice Diamond在线调试Reveal Analyzer使用教程1、插入Reveal Inserter,直接点击Reveal Inserter图标或者从Tools打开Reveal Analyzer。2、在“Trace Signal Setup”窗口设置采样信号、时钟、深度等,将“Design Tree”中需要抓取的信号“COME_5V_EN”等拖入“Trace”窗口,将采样时钟“CPLD_50M_CLK”拖入“Sampl Clock”,并设置采样深度“Buffer Depth”。3、原创 2021-03-30 17:40:17 · 5398 阅读 · 3 评论 -
FPGA中复位情况汇总(五种)
原创 2021-03-30 09:10:32 · 355 阅读 · 0 评论 -
UART数据发送和接收(Verilog)
UART数据发送和接收(Verilog)UART 通信的原理,FPGA 来实现 UART 通信中的数据发送和接收一、UART通信原理UART即异步串行通信。一种异步收发传输器,数据发送将并行数据转换成串行数据发送,数据接收将串行数据转换成并行数据接收,可实现全双工传输和接收。1、RS232的引脚定义DCD——调制解调器通知PC有载波被侦测到RXD——接收数据TXD——发送数据DTR——PC通知调制解调器进行传输GND——地线DSR——调制解调器通知PC准备就绪RTS——PC要求调制解原创 2021-03-15 17:45:42 · 9882 阅读 · 9 评论 -
Verilog实现AD采样(二)
原创 2020-12-15 11:46:42 · 3201 阅读 · 2 评论 -
Verilog实现ADC采样
原创 2020-12-09 20:25:13 · 9819 阅读 · 1 评论 -
BCD码转二进制数
原创 2020-12-01 13:31:29 · 1560 阅读 · 0 评论 -
Verilog实现二进制转BCD码(两种程序)
原创 2020-12-01 10:39:22 · 927 阅读 · 1 评论 -
Verilog实现并行CRC16_4校验
原创 2020-11-18 14:23:06 · 1881 阅读 · 2 评论 -
FPGA电源模块设计
原创 2020-11-05 14:40:03 · 549 阅读 · 0 评论 -
基于FPGA的异步RAM实现数据SPI传输
原创 2020-10-20 17:18:35 · 780 阅读 · 1 评论 -
一帧数据的逆序输出
原创 2020-10-19 10:05:37 · 154 阅读 · 0 评论 -
通信——UART和SPI
STM32F4与FPGA之间的UART和SPI通信原创 2020-10-17 14:59:48 · 454 阅读 · 0 评论 -
Lattice的JTAG编程烧录
Lattice的JTAG编程烧录JTAG基础知识JTAG定义JTAG(Joint Test Action Group),联合测试行动组)是一种国际标准测试协议(IEEE1149.1兼容)。主要功能两种:一是用于测试芯片,二是用于Debug,对各类芯片以及外围设备进行调试。此处介绍Debug功能。JTAG的基本原理是在器件内部定义一个TAP(Test Access Port测试访问口)通过专用的JTAG测试工具对内部节点测试。边界扫描边界扫描技术——在芯片的输入、输出引脚附近增加一个移位寄存器单元原创 2021-03-09 13:05:37 · 5788 阅读 · 0 评论