题解 | 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]data_tmp;
//注意此处clk不能加posedge,时序会有一小段不对
always@(clk or negedge rst_n)
begin
	if(!rst_n)
	begin
		data_tmp <= 4'd0;
	end
	else 
	begin
		case(addr)
		8'd0:
			data_tmp <= 4'd0;
		8'd1:
			data_tmp <= 4'd2;
		8'd2:
			data_tmp <= 4'd4;
		8'd3:
			data_tmp <= 4'd6;
		8'd4:
			data_tmp <= 4'd8;
		8'd5:
			data_tmp <= 4'd10;
		8'd6:
			data_tmp <= 4'd12;
		8'd7:
			data_tmp <= 4'd14;
		default:
			data_tmp <= 4'd0;
		endcase

	end
end

assign data = data_tmp;

endmodule

全部评论

相关推荐

04-15 14:58
中南大学 Java
点赞 评论 收藏
分享
饼子吃到撑:学院本是这样的,找工作拼运气,你技术再好人家筛选学历照样沉入海底,海投就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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