这里面用到了类似 数组 的概念。
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 地址对应的数据读出来。
这个一个很简单的用verilog实现的四个LED轮流闪的程序。实现的原理是将输入的高频时钟clk做2500000分频,分成肉眼能识别的频率,然后驱动四个LED灯依次闪灯。
代码输入输出好几个管脚都么有使用,建议去掉。有其他问题随时提问,欢迎采纳。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)