题解 | #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] myrom [7:0];
always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		myrom[0]<=0;
		myrom[1]<=2;
		myrom[2]<=4;
		myrom[3]<=6;
		myrom[4]<=8;
		myrom[5]<=10;
		myrom[6]<=12;
		myrom[7]<=14;
	end
	else begin
		myrom[0]<=myrom[0];
		myrom[1]<=myrom[1];
		myrom[2]<=myrom[2];
		myrom[3]<=myrom[3];
		myrom[4]<=myrom[4];
		myrom[5]<=myrom[5];
		myrom[6]<=myrom[6];
		myrom[7]<=myrom[7];
	end
end
assign data=myrom[addr];
endmodule

实现rom要求:存储数据,根据addr可读数据。存数据方法:生成4位宽8深度(8位数组)寄存器(数组),通过always语句写入原始数值,else写入维持信号防止Latch。因为题目有隐含条件,无上升沿时addr信号改变,data信号也会改变,所以需要通过组合逻辑连接data与myrom[addr],这样实现实时的查询

全部评论

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务