高悬赏,FPGA verilog程序求解释,速求!!!!!!!!!!!!
moduleRAM(input[7:0]dataIn,inputdataInterrupt,input[5:0]Address,output[7:0]dataOut);r...
module RAM(input[7:0]dataIn,input dataInterrupt,input [5:0]Address,output[7:0]dataOut);
reg[7:0] Memory [63:0];
reg[5:0] memIndex;
always @(posedge dataInterrupt)
begin
if(dataIn ==8'h30)
begin
memIndex<=0;
Memory[0]<=8'hff;
end
else
begin
Memory[memIndex]<=dataIn;
memIndex<=memIndex+1'b1;
if (memIndex == 63)
begin
memIndex<=63;
end
end
end
assign dataOut = Memory[Address];
// always @(Address)
// begin
// dataOut = Memory[Address];
// end
endmodule 展开
reg[7:0] Memory [63:0];
reg[5:0] memIndex;
always @(posedge dataInterrupt)
begin
if(dataIn ==8'h30)
begin
memIndex<=0;
Memory[0]<=8'hff;
end
else
begin
Memory[memIndex]<=dataIn;
memIndex<=memIndex+1'b1;
if (memIndex == 63)
begin
memIndex<=63;
end
end
end
assign dataOut = Memory[Address];
// always @(Address)
// begin
// dataOut = Memory[Address];
// end
endmodule 展开
展开全部
这是一个 RAM的程序。
这里面用到了类似 数组 的概念。
reg[7:0] Memory [63:0]; 这个定义表示 64 个 8bits 数。
always @(posedge dataInterrupt)
begin
if(dataIn ==8'h30)
begin // 这个if 表示 输入数据为 8'h30 的时候,
memIndex<=0; // 地址为 0
Memory[0]<=8'hff; // 0地址存储的数据为 8'hff
end
else
begin
Memory[memIndex]<=dataIn; // 将输入数据写入对应的地址中
memIndex<=memIndex+1'b1; // 地址自增 1
if (memIndex == 63)
begin
memIndex<=63; // 写满了64个数据,就不动了,除非输入数据为 8'h30
end
end
end
assign dataOut = Memory[Address]; //这是读数据,将 address 地址对应的数据读出来。
这里面用到了类似 数组 的概念。
reg[7:0] Memory [63:0]; 这个定义表示 64 个 8bits 数。
always @(posedge dataInterrupt)
begin
if(dataIn ==8'h30)
begin // 这个if 表示 输入数据为 8'h30 的时候,
memIndex<=0; // 地址为 0
Memory[0]<=8'hff; // 0地址存储的数据为 8'hff
end
else
begin
Memory[memIndex]<=dataIn; // 将输入数据写入对应的地址中
memIndex<=memIndex+1'b1; // 地址自增 1
if (memIndex == 63)
begin
memIndex<=63; // 写满了64个数据,就不动了,除非输入数据为 8'h30
end
end
end
assign dataOut = Memory[Address]; //这是读数据,将 address 地址对应的数据读出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询