📄 collection_buffer.v
字号:
// 模块collection_buffer声明
module collection_buffer
(
// 接口列表
frameValid, lineValid, iPixClk, iData, interClk, interData, XMax, YMax,
x, y
);
parameter pixSize = "32";//声明常量确定象素的最大可输入列数和行数
input frameValid,lineValid,iPixClk;
input [7:0] iData;
output interClk;
output [7:0] interData;
output [4:0] XMax,YMax,x,y;
reg [7:0] interData;
reg [4:0] x,y,XMax,YMax;
reg [5:0] tempx;
wire interClk;
always @( negedge frameValid)
begin
YMax=y; //根据帧有效信号确定输入最大行数
end
always @(posedge lineValid)
begin
if(frameValid==0||y==YMax)//如果下一帧信号到来就重置行数
y=0;
y=y+1; //根据行有效信号计算当前象素所在行坐标
end
always @( negedge lineValid)
begin
XMax=x; //根据行有效信号确定输入最大列数
end
assign interClk= iPixClk;// 将本时钟输出供下个模块使用
always @(posedge iPixClk)
begin
//当前象素的坐标不能超过最大坐标,且必须在行和列有效下
if(lineValid==1 &&frameValid==1&& x<pixSize&&y<pixSize)
begin
interData=iData;//传输有效数据
x=x+1; //计算当前列坐标
end
if(lineValid==0)
x=0; //在行无效时将列坐标置为0
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -