FPGA----lineBuffer的设计

本文详细介绍了FPGA中用于图像处理的LineBuffer设计,包括起始地址、读写使能信号的设定,以及如何使用两个LineBuffer缓存三行数据进行像素对齐输出。内容涵盖RAM延迟特性及具体地址更新逻辑,最后提到了LineBuffer在计算图像sobel运算中的作用。
摘要由CSDN通过智能技术生成

在FPGA处理图像过程中,经常遇到需要对于像素按照行对齐的输出,比如说 在求取图像sobel运算 需要一个像素点周围的8个像素,着九个像素怎么得到呢? 首先需要得到第一行 第二行 第三行的第一个像素,然后通过移位寄存器保存该三个像素, 再得到第一行 第二行 第三行的第二个像素,由此可见,每一行的像素都是对齐输出的。
怎么样确保每一行的像素都能够对齐输出呢?这就需要用到lineBuffer 行缓冲器。

一、行缓冲的设计

1.1 起始写地址、读地址
起始的写地址为0
起始的读地址位(0-w) w为图像一行像素的个数
这样定义可以使读和写的地址差距时钟保持在一行w个像素
1.2 读写使能信号
记住最关键的一点:写比读延迟两个时钟周期 因为RAM 2个时钟周期才出数
当数据以及数据有效信号到来时 直接将数据有效信号赋给ren

assign ren = dataInValid;

而对于wen来说 需要将dataInValid延迟两拍再输入给lineBuffer

always @(posedge clkin)
	begin
		dataInValid1 <= dataInValid;
		dataInValid2 <= dataInValid1;
		
		dataIn1      <= dataIn;
		dataIn2      <= dataIn1;
	end

assign wen = dataInValid2;

1.3 缓冲单元的设计
缓冲单元就是一个RAM
主要设定来初始地址 以及后续每一次地址++的过程

module LineBuffer
(
	input rst_n,
	
	input w
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光非宅男

你的鼓励是我最大的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值