题解 | #ROM的简单实现#

ROM的简单实现

https://www.nowcoder.com/practice/b76fdef7ffa747909b0ea46e0d13738a

`timescale 1ns/1ns
module rom(
	input clk,
	input rst_n,
	input [7:0]addr,
	
	output [3:0]data
);
reg [3:0] rom_data[7:0],out;
always @( clk or negedge rst_n)
begin
if(!rst_n)
begin
rom_data[0]<=4'b0000;
rom_data[1]<=4'b0010;
rom_data[2]<=4'b0100;
rom_data[3]<=4'b0110;
rom_data[4]<=4'b1000;
rom_data[5]<=4'b1010;
rom_data[6]<=4'b1100;
rom_data[7]<=4'b1110;
out<=4'b0000;
end
else
begin
case(addr)
8'b0000_0000:out<=rom_data[0];
8'b0000_0001:out<=rom_data[1];
8'b0000_0010:out<=rom_data[2];
8'b0000_0011:out<=rom_data[3];
8'b0000_0100:out<=rom_data[4];
8'b0000_0101:out<=rom_data[5];
8'b0000_0110:out<=rom_data[6];
8'b0000_0111:out<=rom_data[7];
default:out<=4'b0000;
endcase
end
end
assign data=out;
endmodule

全部评论

相关推荐

双尔:项目太多太杂没有重点,4个项目不如精简到两个,实习工作描述太宽泛了,要具体到做了什么
点赞 评论 收藏
分享
10-10 16:30
济宁学院 Java
一表renzha:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务