记录verilog实现灰度图直方图统计(从modelsim读取图片数据)

一、环境
quartussii
二、说明
菜鸟一个,代码写的不完美,只是验证学习。
RAM的IP配置:
ram的IP核配置问题,记得把输出寄存器q去掉,直接提取,不然会有两个clk的延时才能读取到数据,造成写时序必须延时两个clk,然后会出现写地址和读地址相同的情况,此时写不进去数据。

三、原理
网上有很多不解释。
四、逻辑
1.初始化RAM,即对RAM清零
2.数据输入,缓存2个CLK
3.相邻数判断 计数器增
4.写入ram(先读取对应地址的原来的数,然后和3的计数器相加)
5.结束判断,就是对输入有效信号vsync缓存两个clk
前一个作为读地址判断标志,后一个作为写数据判断标志
五、代码

`timescale 1ns / 1ps
/*
****日期:2021.2.9
****	ram的IP核配置问题,记得把输出寄存器q去掉,直接提取,不然会有两个clk的延时才能读取到数据,
****造成写时序必须延时两个clk,然后会出现写地址和读地址相同的情况,此时写不进去数据。
****
*/
module histogram(
input	clk,
input	rst,
input	[7:0] data_in,
output[15:0] q,
input vsync		//图像有效
);

//DPram
wire	[15:0]	ram_rd_data_b;		//B端口读数据
wire	[7:0]	address_aw;			//A地址
wire	[7:0]	address_bw;			//B地址
wire	[15:0]	ram_wr_data_a;				//A写数据

reg	[8:0] w_cnt;				//写控制计数器
reg	[8:0] r_cnt;				//写控制计数器
				
reg tflag;					//清零标志
reg [7:0] buf0;			//第一拍数据
reg [7:0] buf1;			//第二拍数据

		
//写计数器,初始化RAM清零操作
always @(posedge clk or negedge rst)begin
	if(!rst)begin
		t
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值