高悬赏,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
展开
 我来答
bingpi1984
推荐于2016-10-19 · TA获得超过132个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:137万
展开全部
这是一个 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 地址对应的数据读出来。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式